* [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