Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

microprofile embeds non-free code #81

Open
Tachi107 opened this issue Nov 1, 2022 · 0 comments · May be fixed by #82
Open

microprofile embeds non-free code #81

Tachi107 opened this issue Nov 1, 2022 · 0 comments · May be fixed by #82

Comments

@Tachi107
Copy link
Contributor

Tachi107 commented Nov 1, 2022

Hi, microprofile currently contains some non-free JavaScript code embedded in src/microprofile*.html, specifically the HSL to/from RGB functions:

function ConvertRgbToHsl(hexTripletColor) //from https://gist.github.com/mjackson/5311256
{
var color = hexTripletColor;
color = color.substring(1);
color = parseInt(color, 16);
var r = ((color >> 16) % 256)/255.0;
var g = ((color >> 8) % 256)/255.0;
var b = ((color >> 0) % 256)/255.0;
var max = Math.max(r, g, b), min = Math.min(r, g, b);
var h, s, l = (max + min) / 2;
if (max == min) {
h = s = 0; // achromatic
}
else
{
var d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
switch (max)
{
case r: h = (g - b) / d + (g < b ? 6 : 0); break;
case g: h = (b - r) / d + 2; break;
case b: h = (r - g) / d + 4; break;
}
h /= 6;
}
return [ h, s, l ];
}
function ConvertHslToColor(h, s, l) //from https://gist.github.com/mjackson/5311256
{
var r, g, b;
if (s == 0)
{
r = g = b = l; // achromatic
}
else
{
function hue2rgb(p, q, t)
{
if (t < 0) t += 1;
if (t > 1) t -= 1;
if (t < 1/6) return p + (q - p) * 6 * t;
if (t < 1/2) return q;
if (t < 2/3) return p + (q - p) * (2/3 - t) * 6;
return p;
}
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
var p = 2 * l - q;
r = hue2rgb(p, q, h + 1/3);
g = hue2rgb(p, q, h);
b = hue2rgb(p, q, h - 1/3);
}
var color = ((r*255)<<16) | ((g*255)<<8) | (b*255);
return '#' + ("000000" + color.toString(16)).slice(-6);
}

The code from https://gist.github.com/mjackson/5311256 is not licensed, meaning that it cannot be used for any purpose; on the Gist thread, people asked multiple times for a license, but the author never did so.

On that same thread, user @vahidk linked to an alternative implementation free to use for any purpose: https://gist.github.com/mjackson/5311256?permalink_comment_id=2710361#gistcomment-2710361. I'd suggest using that instead.

This has been originally reported on Debian: https://bugs.debian.org/1023178

Tachi107 added a commit to Tachi107/microprofile that referenced this issue Nov 3, 2022
The unlicensed ConvertRgbToHsl and ConvertHslToColor functions taken
from https://gist.github.com/mjackson/5311256 have been replaced with
free alternatives taken from
https://gist.github.com/vahidk/05184faf3d92a0aa1b46aeaa93b07786

Fixes jonasmr#81
Tachi107 added a commit to Tachi107/microprofile that referenced this issue Nov 3, 2022
The unlicensed ConvertRgbToHsl and ConvertHslToColor functions taken
from https://gist.github.com/mjackson/5311256 have been replaced with
free alternatives taken from
https://gist.github.com/vahidk/05184faf3d92a0aa1b46aeaa93b07786

Fixes jonasmr#81
@Tachi107 Tachi107 linked a pull request Nov 3, 2022 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant