Openembedded Core Discussions
 help / color / mirror / Atom feed
* [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