Patchwork [PATCHv2] license: fix LICENSE_CREATE_PACKAGE to stay disabled by default

login
register
mail settings
Submitter Martin Jansa
Date Jan. 29, 2013, 1:04 p.m.
Message ID <1359464656-27638-1-git-send-email-Martin.Jansa@gmail.com>
Download mbox | patch
Permalink /patch/43639/
State Accepted, archived
Headers show

Comments

Martin Jansa - Jan. 29, 2013, 1:04 p.m.
* as reported by Enrico on #oe
  11:06:50 < ensc|w> JaMa: might this be caused by dc78ef91a2bf01efb8028c9afbe69e506e016265
  which checks for 'd.getVar('LICENSE_CREATE_PACKAGE', True)' evaluating to 'True' for every
  string (including the default 0)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/license.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Chris Larson - Jan. 29, 2013, 2:29 p.m.
On Tue, Jan 29, 2013 at 6:04 AM, Martin Jansa <martin.jansa@gmail.com>wrote:

> * as reported by Enrico on #oe
>   11:06:50 < ensc|w> JaMa: might this be caused by
> dc78ef91a2bf01efb8028c9afbe69e506e016265
>   which checks for 'd.getVar('LICENSE_CREATE_PACKAGE', True)' evaluating
> to 'True' for every
>   string (including the default 0)
>
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
>  meta/classes/license.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
> index d4ebb26..229f755 100644
> --- a/meta/classes/license.bbclass
> +++ b/meta/classes/license.bbclass
> @@ -103,7 +103,7 @@ python do_populate_lic() {
>  # it would be better to copy them in do_install_append, but
> find_license_filesa is python
>  python perform_packagecopy_prepend () {
>      enabled = d.getVar('LICENSE_CREATE_PACKAGE', True)
> -    if d.getVar('CLASSOVERRIDE', True) == 'class-target' and enabled:
> +    if d.getVar('CLASSOVERRIDE', True) == 'class-target' and enabled ==
> "1":


We do have an existing mechanism for handling boolean variables in a sane
way, as an FYI.

LICENSE_CREATE_PACKAGE[type] = "boolean"

LICENSE_CREATE_PACKAGE = "1"
oe.data.typed_value(d, 'LICENSE_CREATE_PACKAGE') == True
LICENSE_CREATE_PACKAGE = "0"
oe.data.typed_value(d, 'LICENSE_CREATE_PACKAGE') == False

Available types: boolean, integer (with support for different bases), float
(with support for hexadecimal floating point values), regex, choice (which
lets you only allow from a set of possible string values), list (which does
the (d.getVar() or "").split() crap for you).

You can also INHERIT += "type_check", and you'll know immediately at
ConfigParsed time if any of the values are invalid for their specified
types.
Martin Jansa - Jan. 29, 2013, 2:58 p.m.
Ah, good to know, sending v3.


On Tue, Jan 29, 2013 at 3:29 PM, Chris Larson <clarson@kergoth.com> wrote:

>
> On Tue, Jan 29, 2013 at 6:04 AM, Martin Jansa <martin.jansa@gmail.com>wrote:
>
>> * as reported by Enrico on #oe
>>   11:06:50 < ensc|w> JaMa: might this be caused by
>> dc78ef91a2bf01efb8028c9afbe69e506e016265
>>   which checks for 'd.getVar('LICENSE_CREATE_PACKAGE', True)' evaluating
>> to 'True' for every
>>   string (including the default 0)
>>
>> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
>> ---
>>  meta/classes/license.bbclass | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
>> index d4ebb26..229f755 100644
>> --- a/meta/classes/license.bbclass
>> +++ b/meta/classes/license.bbclass
>> @@ -103,7 +103,7 @@ python do_populate_lic() {
>>  # it would be better to copy them in do_install_append, but
>> find_license_filesa is python
>>  python perform_packagecopy_prepend () {
>>      enabled = d.getVar('LICENSE_CREATE_PACKAGE', True)
>> -    if d.getVar('CLASSOVERRIDE', True) == 'class-target' and enabled:
>> +    if d.getVar('CLASSOVERRIDE', True) == 'class-target' and enabled ==
>> "1":
>
>
> We do have an existing mechanism for handling boolean variables in a sane
> way, as an FYI.
>
> LICENSE_CREATE_PACKAGE[type] = "boolean"
>
> LICENSE_CREATE_PACKAGE = "1"
> oe.data.typed_value(d, 'LICENSE_CREATE_PACKAGE') == True
> LICENSE_CREATE_PACKAGE = "0"
> oe.data.typed_value(d, 'LICENSE_CREATE_PACKAGE') == False
>
> Available types: boolean, integer (with support for different bases),
> float (with support for hexadecimal floating point values), regex, choice
> (which lets you only allow from a set of possible string values), list
> (which does the (d.getVar() or "").split() crap for you).
>
> You can also INHERIT += "type_check", and you'll know immediately at
> ConfigParsed time if any of the values are invalid for their specified
> types.
> --
> Christopher Larson
>
Martin Jansa - Jan. 29, 2013, 3:59 p.m.
On Tue, Jan 29, 2013 at 07:29:55AM -0700, Chris Larson wrote:
> On Tue, Jan 29, 2013 at 6:04 AM, Martin Jansa <martin.jansa@gmail.com>wrote:
> 
> > * as reported by Enrico on #oe
> >   11:06:50 < ensc|w> JaMa: might this be caused by
> > dc78ef91a2bf01efb8028c9afbe69e506e016265
> >   which checks for 'd.getVar('LICENSE_CREATE_PACKAGE', True)' evaluating
> > to 'True' for every
> >   string (including the default 0)
> >
> > Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> > ---
> >  meta/classes/license.bbclass | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
> > index d4ebb26..229f755 100644
> > --- a/meta/classes/license.bbclass
> > +++ b/meta/classes/license.bbclass
> > @@ -103,7 +103,7 @@ python do_populate_lic() {
> >  # it would be better to copy them in do_install_append, but
> > find_license_filesa is python
> >  python perform_packagecopy_prepend () {
> >      enabled = d.getVar('LICENSE_CREATE_PACKAGE', True)
> > -    if d.getVar('CLASSOVERRIDE', True) == 'class-target' and enabled:
> > +    if d.getVar('CLASSOVERRIDE', True) == 'class-target' and enabled ==
> > "1":
> 
> 
> We do have an existing mechanism for handling boolean variables in a sane
> way, as an FYI.
> 
> LICENSE_CREATE_PACKAGE[type] = "boolean"
> 
> LICENSE_CREATE_PACKAGE = "1"
> oe.data.typed_value(d, 'LICENSE_CREATE_PACKAGE') == True
> LICENSE_CREATE_PACKAGE = "0"
> oe.data.typed_value(d, 'LICENSE_CREATE_PACKAGE') == False

I did the same and now it's failing with:
AttributeError: 'str' object has no attribute 'getVarFlag'

here is last version
http://bpaste.net/show/73667/

Cheers,

> Available types: boolean, integer (with support for different bases), float
> (with support for hexadecimal floating point values), regex, choice (which
> lets you only allow from a set of possible string values), list (which does
> the (d.getVar() or "").split() crap for you).
> 
> You can also INHERIT += "type_check", and you'll know immediately at
> ConfigParsed time if any of the values are invalid for their specified
> types.
> -- 
> Christopher Larson
Chris Larson - Jan. 29, 2013, 5:30 p.m.
On Tue, Jan 29, 2013 at 8:59 AM, Martin Jansa <martin.jansa@gmail.com>wrote:

> > We do have an existing mechanism for handling boolean variables in a sane
> > way, as an FYI.
> >
> > LICENSE_CREATE_PACKAGE[type] = "boolean"
> >
> > LICENSE_CREATE_PACKAGE = "1"
> > oe.data.typed_value(d, 'LICENSE_CREATE_PACKAGE') == True
> > LICENSE_CREATE_PACKAGE = "0"
> > oe.data.typed_value(d, 'LICENSE_CREATE_PACKAGE') == False
>
> I did the same and now it's failing with:
> AttributeError: 'str' object has no attribute 'getVarFlag'
>
> here is last version
> http://bpaste.net/show/73667/


Ah, I probably remembered the argument order for typed_value wrong :)

Patch

diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index d4ebb26..229f755 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -103,7 +103,7 @@  python do_populate_lic() {
 # it would be better to copy them in do_install_append, but find_license_filesa is python
 python perform_packagecopy_prepend () {
     enabled = d.getVar('LICENSE_CREATE_PACKAGE', True)
-    if d.getVar('CLASSOVERRIDE', True) == 'class-target' and enabled:
+    if d.getVar('CLASSOVERRIDE', True) == 'class-target' and enabled == "1":
         lic_files_paths = find_license_files(d)
 
         # LICENSE_FILES_DIRECTORY starts with '/' so os.path.join cannot be used to join D and LICENSE_FILES_DIRECTORY