Opened 4 years ago

Closed 4 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 4 years ago by mf2k (Frank Schima)

You are better off posting your question on the macports developer mailing list.

comment:2 Changed 4 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 4 years ago by tenzap

Thank you for the clarification. On welle.io side, license seems to be GPL2 indeed

comment:4 Changed 4 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).

https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility

comment:5 Changed 4 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 4 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 4 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 4 years ago by tenzap

Owner: set to tenzap
Resolution: fixed
Status: newclosed

In 9218dc4b44e08df09016c07c796d490a3f515e4e/macports-ports (master):

welle.io: update to 2.1

  • update to 2.1
  • update welle.io-devel to 20191210
  • update license to GPL-3+ (see #59779)

Closes: #59779

comment:9 Changed 4 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 4 years ago by tenzap

Resolution: fixed
Status: closedreopened

comment:11 Changed 4 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.

Last edited 4 years ago by jmroot (Joshua Root) (previous) (diff)

comment:12 Changed 4 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 4 years ago by jmroot (Joshua Root)

comment:14 Changed 4 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 Changed 4 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 4 years ago by tenzap

Maybe this is true only on macOS, since the GPL2 file is specific to macOS

comment:17 in reply to:  15 Changed 4 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 4 years ago by tenzap

Status: reopenedassigned

Thank you for the clarification

I guess this ticket can be closed, but I don't find how to do that.

Last edited 4 years ago by tenzap (previous) (diff)

comment:19 Changed 4 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.

Last edited 4 years ago by tenzap (previous) (diff)

comment:20 Changed 4 years ago by tenzap

Resolution: fixed
Status: assignedclosed

In 2665a8973c79537c886b8aa23f626e03fc1e31f5/macports-ports (master):

welle.io: Update welle.io-devel & rearranage variants for binary distribution

  • update welle.io-devel to 20200114
  • bump welle.io revision to "1"
  • disable welle-cli by default and make it a variant (to enable binary distribution of welle.io GUI because of licensing issues) [ Closes: #59779 ]
  • add "kiss_fft" variant
  • add "profiling" variant
Note: See TracTickets for help on using tickets.