Bug 1884 - gettext: GPL-3 is not checked in order to be exluded from a non-GPLv3 build
Summary: gettext: GPL-3 is not checked in order to be exluded from a non-GPLv3 build
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: core (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium normal
Target Milestone: 1.2 M2
Assignee: Andrei Gherzan
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2012-01-07 12:15 UTC by Andrei Gherzan
Modified: 2012-01-11 02:09 UTC (History)
2 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrei Gherzan 2012-01-07 12:15:47 UTC
If non-GPLv3 build fix-gettext-version.patch should be included. This was done   
already but the "if" structure (probably) contains a typo.

if not ((d.getVar("INCOMPATIBLE_LICENSE", True) or "").find("GPLv3") != -1):
This means (if INCOMPATIBLE_LICENSE DOESN'T contain GPLv3) cause it's a double negation.

This should be fixed to exclude that "not":
if ((d.getVar("INCOMPATIBLE_LICENSE", True) or "").find("GPLv3") != -1):

I sent an email to oe-core with the very simple fix.

Please be aware that this bug makes a non-GPLv3 build not build-able - this is why i will set Severity on "major".
Comment 1 Andrei Gherzan 2012-01-07 13:13:58 UTC
(In reply to comment #0)
> If non-GPLv3 build fix-gettext-version.patch should be included. This was done  
> already but the "if" structure (probably) contains a typo.
> 
> if not ((d.getVar("INCOMPATIBLE_LICENSE", True) or "").find("GPLv3") != -1):
> This means (if INCOMPATIBLE_LICENSE DOESN'T contain GPLv3) cause it's a double
> negation.
> 
> This should be fixed to exclude that "not":
> if ((d.getVar("INCOMPATIBLE_LICENSE", True) or "").find("GPLv3") != -1):
> 
> I sent an email to oe-core with the very simple fix.
> 
> Please be aware that this bug makes a non-GPLv3 build not build-able - this is
> why i will set Severity on "major".

After looking a little more into this problem i realized that i was wrong. The problem is not here. The problem is that gettext 0.18 is not excluded from a non-GPLv3 build even if it is GPLv3 license. In a non-GPLv3 build gettext 0.18 is compiled but in gnutls, the patch for this gettext version is omitted due to the above specified patch and it fails with this error:

...
| make[4]: Entering directory `/home/agherzan/work/wrs/yocto-adige/test/tmp/work/armv5te-poky-linux-gnueabi/gnutls-2.12.14-r3.4/gnutls-2.12.14/lib/po'
| *** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version 0.17 but the autoconf macros are from gettext version 0.18
...

I found strange the fact that gettext has in it's bb file the following license:
LICENSE = "GPL-3+ & LGPL-2.1+"

I checked the license and it is GPLv3.
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

So after all it is a typo... 

Sau, what do you think about this issue?

P.S.: Fortunately, i realized this in time not to send this patch to oe-core.
Comment 2 Andrei Gherzan 2012-01-08 04:47:25 UTC
I sent a patch for this (as a workaround or not).

http://lists.linuxtogo.org/pipermail/openembedded-core/2012-January/015848.html
Comment 3 Andrei Gherzan 2012-01-08 04:48:03 UTC
I sent a patch for this (as a workaround or not) and modified the summary of this bug.

http://lists.linuxtogo.org/pipermail/openembedded-core/2012-January/015848.html
Comment 4 Saul Wold 2012-01-08 23:25:09 UTC
I demoted this to normal, major is for when a core builds are broken and needs to be fixed by a Milestone (M1, M2, ...)

I assigned this back to you since you appear to be working on this issue. I would suggest that you extend the code handling INCOMPATIBLE_LICENSE to use the SPDX names also.

So we have 2 names for GPLv3 (OE-Style) and GPL-3 (SPDX)
Comment 7 Andrei Gherzan 2012-01-11 02:09:26 UTC
commit 4005c3ff5e673f9d561026c76326054bd0a3a2b6