Opened 5 years ago
Closed 5 years ago
#59779 closed defect (fixed)
welle.io @20191124+git1aa8e2f: binaries are not available
Reported by: | tenzap | Owned by: | tenzap |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | jmroot (Joshua Root) | |
Port: | welle.io |
Description
Hello,
I created the Portfile for welle.io and added the line:
license_noconflict openssl
Despite this, the binaries are still not distributed. The reason in the log is as follows
"welle.io-devel" is not distributable because its license "GPL-2" conflicts with license "OpenSSLException" of dependency "qt5-qtbase"
Is this warning normal ?
For example with KeePassXC there is no such warning and binaries are distributed (they also use license_noconflict openssl and qtbase)
Is there another way to have them distributed ?
Full log here
Change History (20)
comment:1 Changed 5 years ago by mf2k (Frank Schima)
comment:2 Changed 5 years ago by jmroot (Joshua Root)
Cc: | jmroot added |
---|
The message is slightly confusing but yes, there is a license conflict here. The license in qt5-qtbase is {LGPL-3 GPL-3 OpenSSLException}
. The license in welle.io is GPL-2
. If these are both correct, then welle.io can't be distributed because GPLv3 and LGPLv3 have requirements that aren't in GPLv2 and are thus incompatible.
comment:3 Changed 5 years ago by tenzap
Thank you for the clarification. On welle.io side, license seems to be GPL2 indeed
comment:4 Changed 5 years ago by jmroot (Joshua Root)
The important thing is whether the code is under GPLv2 only or uses the "or any later version" language. If the latter, then the license should be listed as GPL-2+
in the portfile and qt5 would no longer make it non-distributable (though some other dependency still might).
comment:5 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
All of the files I've looked (such as this one) do say "or ... any later version":
* welle.io is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version.
comment:6 Changed 5 years ago by tenzap
Thanks for pointing out the logic. I looked more thouroughly and found out that in these folders there are files having following licence.
- backend/ : GPL-2+ GPL-3+
- input/ : GPL-2+
- tests/ : GPL-2+
- welle-cli/ : GPL-2+ (nothing specified in .js & .html)
- welle-gui/ : GPL-2+
- waterfallitem.* : MIT
- QML : no license specified
So what should be in the Portfile ?
license GPL-2+ GPL-3+ MIT
or is that sufficient
license GPL-2+ MIT
comment:7 Changed 5 years ago by jmroot (Joshua Root)
If there's any GPL-3+ in there, then the only way to comply with all the licenses when distributing binaries is to follow the conditions of GPLv3. So effectively it's just GPL-3+.
comment:8 Changed 5 years ago by tenzap
Owner: | set to tenzap |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:9 Changed 5 years ago by tenzap
Thank you for your advice.
This one is now fixed but now the message is as follows: "welle.io" is not distributable because its license "GPL-3+" conflicts with license "GPL-2" of dependency "mpg123"
In the Portfile, mpg123 is both licensed under GPL-2 & LGPL-2.1. According to the license compatibility table, isn't it supposed to work when considering LGPL-2.1 as license ?
BTW: the source package also ships withs a copy of mpg123 source
comment:10 Changed 5 years ago by tenzap
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:11 Changed 5 years ago by jmroot (Joshua Root)
The mpg123 portfile says:
license GPL-2 LGPL-2.1
That means both of those licenses apply, not that there is a choice of either one (that would be indicated with braces). So while the LGPL-2.1 part is fine for welle.io, GPLv2 is incompatible with GPLv3.
comment:12 Changed 5 years ago by jmroot (Joshua Root)
However that was set 8 years ago, and it's possible that mpg123's license has changed since then.
comment:13 Changed 5 years ago by jmroot (Joshua Root)
Nope, the CoreAudio output module still says it's GPL: https://www.mpg123.de/cgi-bin/scm/mpg123/trunk/src/libout123/modules/coreaudio.c?revision=4209&view=markup
comment:14 Changed 5 years ago by tenzap
Ok thank you. So, given all the licenses in welle.io & in mpg123 and the use of qtbase, I understand welle.io can't be distributed as binary.
comment:15 follow-up: 17 Changed 5 years ago by tenzap
Moreover, since GPLv2 is incompatible with GPLv3, and given the various licenses of files in welle.io (some GPL-2+, GPL-3+, MIT) would it actually be allowed to copy & use mpg123 in welle.io (wether binaries are distributed or not) ? The matrix suggests it's not...
comment:16 Changed 5 years ago by tenzap
Maybe this is true only on macOS, since the GPL2 file is specific to macOS
comment:17 Changed 5 years ago by jmroot (Joshua Root)
Replying to tenzap:
Moreover, since GPLv2 is incompatible with GPLv3, and given the various licenses of files in welle.io (some GPL-2+, GPL-3+, MIT) would it actually be allowed to copy & use mpg123 in welle.io (wether binaries are distributed or not) ? The matrix suggests it's not...
Each of the source files can be distributed under the terms of its own license. None of the licenses involved have any requirements that would make it a problem to distribute all the differently licensed source files in the same archive. This is an example of what is referred to as "mere aggregation" in the GPL. So copying in source form is fine.
The GPL doesn't impose any restrictions on what you can do with software privately; its requirements only come into effect when you distribute the software to others. So it's also fine to combine GPL'd code and code under a GPL-incompatible license and run the combination privately. You just can't distribute the combination.
comment:18 Changed 5 years ago by tenzap
Status: | reopened → assigned |
---|
Thank you for the clarification
comment:19 Changed 5 years ago by tenzap
welle.io is composed of a GUI and CLI component. Only the CLI component relies on libout123. (see https://github.com/AlbrechtL/welle.io/issues/442#issuecomment-569205395)
To have it distributed as binary, would it be ok to modify the portfile this way ?
- by default disable CLI and only build/distribute the GUI
- add a variant to enable CLI
I would then add mpg123
to license_noconflict
and in the "CLI" variant put this license_noconflict-delete mpg123
so that it doesn't get distributed by mistake as binary in case someone wants to add it as default variant.
comment:20 Changed 5 years ago by tenzap
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
You are better off posting your question on the macports developer mailing list.