* [PATCH] license.bbclass: do not process LICENSE_pn variables @ 2016-05-27 6:26 Markus Lehtonen 2016-05-27 10:07 ` Martin Jansa 0 siblings, 1 reply; 4+ messages in thread From: Markus Lehtonen @ 2016-05-27 6:26 UTC (permalink / raw) To: openembedded-core The loop iterating over LICENSE_pn variables has never worked. In addition, the LICENSE variable is supposed to contain all licenses defined in LICENSE_pn variables. Thus, it is simpler just to use LICENSE as the data we get is essentially the same. [YOCTO #9499] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> --- meta/classes/license.bbclass | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index 69335d6..eacf9e8 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass @@ -376,20 +376,6 @@ def find_license_files(d): import shutil import oe.license - pn = d.getVar('PN', True) - for package in d.getVar('PACKAGES', True): - if d.getVar('LICENSE_' + package, True): - license_types = license_types + ' & ' + \ - d.getVar('LICENSE_' + package, True) - - #If we get here with no license types, then that means we have a recipe - #level license. If so, we grab only those. - try: - license_types - except NameError: - # All the license types at the recipe level - license_types = d.getVar('LICENSE', True) - # All the license files for the package lic_files = d.getVar('LIC_FILES_CHKSUM', True) pn = d.getVar('PN', True) @@ -487,7 +473,7 @@ def find_license_files(d): v = FindVisitor() try: - v.visit_string(license_types) + v.visit_string(d.getVar('LICENSE', True)) except oe.license.InvalidLicense as exc: bb.fatal('%s: %s' % (d.getVar('PF', True), exc)) except SyntaxError: -- 2.6.6 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] license.bbclass: do not process LICENSE_pn variables 2016-05-27 6:26 [PATCH] license.bbclass: do not process LICENSE_pn variables Markus Lehtonen @ 2016-05-27 10:07 ` Martin Jansa 2016-05-30 11:26 ` Markus Lehtonen 0 siblings, 1 reply; 4+ messages in thread From: Martin Jansa @ 2016-05-27 10:07 UTC (permalink / raw) To: Markus Lehtonen; +Cc: openembedded-core [-- Attachment #1: Type: text/plain, Size: 2833 bytes --] On Fri, May 27, 2016 at 09:26:10AM +0300, Markus Lehtonen wrote: > The loop iterating over LICENSE_pn variables has never worked. In > addition, the LICENSE variable is supposed to contain all licenses > defined in LICENSE_pn variables. Is this really true? I've seen couple examples where LICENSE variable is used as a "default" for most packages, and then only 1 package sets different LICENSE_pn. Changing the semantics as you said would force people to define LICENSE_pn-dev LICENSE_pn-staticdev LICENSE_pn LICENSE_pn-dbg to foo when they have just one file in LICENSE_pn-blah which containd unwanted LICENSE bar And then overall license will be "foo & bar" There are real-world examples where there is one GPLv3 shell script we don't even need in LGPLv2 component - for now it was simple to move this script to separate package and set just LICENSE_pn-blah-script > Thus, it is simpler just to use LICENSE > as the data we get is essentially the same. > > [YOCTO #9499] > > Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> > --- > meta/classes/license.bbclass | 16 +--------------- > 1 file changed, 1 insertion(+), 15 deletions(-) > > diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass > index 69335d6..eacf9e8 100644 > --- a/meta/classes/license.bbclass > +++ b/meta/classes/license.bbclass > @@ -376,20 +376,6 @@ def find_license_files(d): > import shutil > import oe.license > > - pn = d.getVar('PN', True) > - for package in d.getVar('PACKAGES', True): > - if d.getVar('LICENSE_' + package, True): > - license_types = license_types + ' & ' + \ > - d.getVar('LICENSE_' + package, True) > - > - #If we get here with no license types, then that means we have a recipe > - #level license. If so, we grab only those. > - try: > - license_types > - except NameError: > - # All the license types at the recipe level > - license_types = d.getVar('LICENSE', True) > - > # All the license files for the package > lic_files = d.getVar('LIC_FILES_CHKSUM', True) > pn = d.getVar('PN', True) > @@ -487,7 +473,7 @@ def find_license_files(d): > > v = FindVisitor() > try: > - v.visit_string(license_types) > + v.visit_string(d.getVar('LICENSE', True)) > except oe.license.InvalidLicense as exc: > bb.fatal('%s: %s' % (d.getVar('PF', True), exc)) > except SyntaxError: > -- > 2.6.6 > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 188 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] license.bbclass: do not process LICENSE_pn variables 2016-05-27 10:07 ` Martin Jansa @ 2016-05-30 11:26 ` Markus Lehtonen 2016-05-30 21:27 ` Paul Eggleton 0 siblings, 1 reply; 4+ messages in thread From: Markus Lehtonen @ 2016-05-30 11:26 UTC (permalink / raw) To: Martin Jansa; +Cc: openembedded-core Hi Martin, On Fri, 2016-05-27 at 12:07 +0200, Martin Jansa wrote: > On Fri, May 27, 2016 at 09:26:10AM +0300, Markus Lehtonen wrote: > > The loop iterating over LICENSE_pn variables has never worked. In > > addition, the LICENSE variable is supposed to contain all licenses > > defined in LICENSE_pn variables. > > Is this really true? That's what I've been told: LICENSE is supposed to contain all licenses and LICENSE_pn can be used to refine on per-package basis. But, that said, I don't know if that has actually been documented anywhere except perhaps in the bitbake manual which states that LICENSE is "The list of source licenses for the recipe". > I've seen couple examples where LICENSE variable is used as a > "default" > for most packages, and then only 1 package sets different LICENSE_pn. > > Changing the semantics as you said would force people to define > LICENSE_pn-dev > LICENSE_pn-staticdev > LICENSE_pn > LICENSE_pn-dbg > to foo when they have just one file in > LICENSE_pn-blah > which containd unwanted LICENSE bar > > And then overall license will be "foo & bar" > > There are real-world examples where there is one GPLv3 shell script > we > don't even need in LGPLv2 component - for now it was simple to move > this > script to separate package and set just LICENSE_pn-blah-script Do you have any specific examples of packages like this? My current understanding is that they use LICENSE and LICENSE_pn incorrectly, but I might well be wrong. Also, I don't know if all the license checking correctly applies to LICENSE_pn variables. In any case, I see you point, it would be very convenient to have this "default binary license". Whatever the outcome is, it probably would be good to add a sanity checker for the usage if LICENSE* variables inside a recipe. Thanks, Markus > > Thus, it is simpler just to use LICENSE > > as the data we get is essentially the same. > > > > [YOCTO #9499] > > > > Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> > > --- > > meta/classes/license.bbclass | 16 +--------------- > > 1 file changed, 1 insertion(+), 15 deletions(-) > > > > diff --git a/meta/classes/license.bbclass > > b/meta/classes/license.bbclass > > index 69335d6..eacf9e8 100644 > > --- a/meta/classes/license.bbclass > > +++ b/meta/classes/license.bbclass > > @@ -376,20 +376,6 @@ def find_license_files(d): > > import shutil > > import oe.license > > > > - pn = d.getVar('PN', True) > > - for package in d.getVar('PACKAGES', True): > > - if d.getVar('LICENSE_' + package, True): > > - license_types = license_types + ' & ' + \ > > - d.getVar('LICENSE_' + package, True) > > - > > - #If we get here with no license types, then that means we have > > a recipe > > - #level license. If so, we grab only those. > > - try: > > - license_types > > - except NameError: > > - # All the license types at the recipe level > > - license_types = d.getVar('LICENSE', True) > > - > > # All the license files for the package > > lic_files = d.getVar('LIC_FILES_CHKSUM', True) > > pn = d.getVar('PN', True) > > @@ -487,7 +473,7 @@ def find_license_files(d): > > > > v = FindVisitor() > > try: > > - v.visit_string(license_types) > > + v.visit_string(d.getVar('LICENSE', True)) > > except oe.license.InvalidLicense as exc: > > bb.fatal('%s: %s' % (d.getVar('PF', True), exc)) > > except SyntaxError: > > -- > > 2.6.6 > > > > -- > > _______________________________________________ > > Openembedded-core mailing list > > Openembedded-core@lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-core > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] license.bbclass: do not process LICENSE_pn variables 2016-05-30 11:26 ` Markus Lehtonen @ 2016-05-30 21:27 ` Paul Eggleton 0 siblings, 0 replies; 4+ messages in thread From: Paul Eggleton @ 2016-05-30 21:27 UTC (permalink / raw) To: openembedded-core On Mon, 30 May 2016 14:26:30 Markus Lehtonen wrote: > Hi Martin, > > On Fri, 2016-05-27 at 12:07 +0200, Martin Jansa wrote: > > On Fri, May 27, 2016 at 09:26:10AM +0300, Markus Lehtonen wrote: > > > The loop iterating over LICENSE_pn variables has never worked. In > > > addition, the LICENSE variable is supposed to contain all licenses > > > defined in LICENSE_pn variables. > > > > Is this really true? > > That's what I've been told: LICENSE is supposed to contain all licenses > and LICENSE_pn can be used to refine on per-package basis. But, that > said, I don't know if that has actually been documented anywhere except > perhaps in the bitbake manual which states that LICENSE is "The list of > source licenses for the recipe". AIUI, LICENSE is indeed supposed to contain all of the licenses; LICENSE_<package> then specifies it on a per package basis, but you're not supposed to specify anything in the latter that isn't also specified in the former. Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-05-30 21:28 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-05-27 6:26 [PATCH] license.bbclass: do not process LICENSE_pn variables Markus Lehtonen 2016-05-27 10:07 ` Martin Jansa 2016-05-30 11:26 ` Markus Lehtonen 2016-05-30 21:27 ` Paul Eggleton
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox