[OE-core] [PATCH] license.bbclass: do not process LICENSE_pn variables
Markus Lehtonen
markus.lehtonen at linux.intel.com
Mon May 30 11:26:30 UTC 2016
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 at 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 at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
More information about the Openembedded-core
mailing list