* [PATCH 1/2] typecheck.bbclass: update per current variable typing code
@ 2012-05-10 2:40 Christopher Larson
2012-05-10 2:40 ` [PATCH 2/2] archiver.bbclass: leverage variable typing support Christopher Larson
2012-05-11 17:38 ` [PATCH 1/2] typecheck.bbclass: update per current variable typing code Saul Wold
0 siblings, 2 replies; 5+ messages in thread
From: Christopher Larson @ 2012-05-10 2:40 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/classes/typecheck.bbclass | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/meta/classes/typecheck.bbclass b/meta/classes/typecheck.bbclass
index 646cd4e..353532d 100644
--- a/meta/classes/typecheck.bbclass
+++ b/meta/classes/typecheck.bbclass
@@ -7,6 +7,6 @@ python check_types() {
if isinstance(e, bb.event.ConfigParsed):
for key in e.data.keys():
if e.data.getVarFlag(key, "type"):
- oe.types.value(key, e.data)
+ oe.data.typed_value(key, e.data)
}
addhandler check_types
--
1.7.7
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] archiver.bbclass: leverage variable typing support
2012-05-10 2:40 [PATCH 1/2] typecheck.bbclass: update per current variable typing code Christopher Larson
@ 2012-05-10 2:40 ` Christopher Larson
2012-05-10 5:03 ` Saul Wold
2012-05-11 17:38 ` [PATCH 1/2] typecheck.bbclass: update per current variable typing code Saul Wold
1 sibling, 1 reply; 5+ messages in thread
From: Christopher Larson @ 2012-05-10 2:40 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
This makes use of variable typing to avoid reinventing the wheel in that way
and adds default values for a couple of said variables. It also changes
PATCHES_ARCHIVE_WITH_SERIES to use ?= rather than =.
Further, doing this fixes a single bug that occurs in many places:
if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in 'SRPM':
This is performing a substring search. It should have done "== 'SRPM'"", or if
there *were* multiple options for that case (there aren't), it would do "not
in ['SRPM']" or similar.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/classes/archiver.bbclass | 45 +++++++++++++++++--------------------
meta/classes/package_rpm.bbclass | 12 +++++-----
2 files changed, 27 insertions(+), 30 deletions(-)
diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
index 59b58f4..844dbf8 100644
--- a/meta/classes/archiver.bbclass
+++ b/meta/classes/archiver.bbclass
@@ -2,10 +2,19 @@
# It also output building environment to xxx.dump.data and create xxx.diff.gz to record
# all content in ${S} to a diff file.
-ARCHIVE_EXCLUDE_FROM ?= ".pc autom4te.cache"
-ARCHIVE_TYPE ?= "TAR SRPM"
DISTRO ?= "poky"
-PATCHES_ARCHIVE_WITH_SERIES = 'TRUE'
+ARCHIVE_EXCLUDE_FROM ?= ".pc autom4te.cache"
+
+PATCHES_ARCHIVE_WITH_SERIES ?= "true"
+PATCHES_ARCHIVE_WITH_SERIES[type] = "boolean"
+
+SOURCE_ARCHIVE_PACKAGE_TYPE ?= "tar"
+SOURCE_ARCHIVE_PACKAGE_TYPE[type] = "choice"
+SOURCE_ARCHIVE_PACKAGE_TYPE[choices] = "tar srpm"
+
+SOURCE_ARCHIVE_LOG_WITH_SCRIPTS ?= "logs_with_scripts"
+SOURCE_ARCHIVE_LOG_WITH_SCRIPTS[type] = "choice"
+SOURCE_ARCHIVE_LOG_WITH_SCRIPTS[choices] = "none logs logs_with_scripts"
def get_bb_inc(d):
'''create a directory "script-logs" including .bb and .inc file in ${WORKDIR}'''
@@ -253,14 +262,6 @@ def move_tarball_deploy(d,tarball_list):
os.remove(os.path.join(tar_sources,source))
shutil.move(os.path.join(work_dir,source),tar_sources)
-def check_archiving_type(d):
- '''check the type for archiving package('tar' or 'srpm')'''
- try:
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in d.getVar('ARCHIVE_TYPE', True).split():
- raise AttributeError
- except AttributeError:
- bb.fatal("\"SOURCE_ARCHIVE_PACKAGE_TYPE\" is \'tar\' or \'srpm\', no other types")
-
def store_package(d,package_name):
'''store tarbablls name to file "tar-package"'''
try:
@@ -287,24 +288,21 @@ def archive_sources_patches(d,stage_name):
'''archive sources and patches to tarball. stage_name will append strings ${stage_name} to ${PR} as middle name. for example, zlib-1.4.6-prepatch(stage_name).tar.gz '''
import shutil
- check_archiving_type(d)
if not_tarball(d):
return
source_tar_name = archive_sources(d,stage_name)
if stage_name == "prepatch":
- if d.getVar('PATCHES_ARCHIVE_WITH_SERIES',True).upper() == 'TRUE':
+ if oe.data.typed_value('PATCHES_ARCHIVE_WITH_SERIES', d):
patch_tar_name = select_archive_patches(d,"all")
- elif d.getVar('PATCHES_ARCHIVE_WITH_SERIES',True).upper() == 'FALSE':
- patch_tar_name = select_archive_patches(d,"applying")
else:
- bb.fatal("Please define 'PATCHES_ARCHIVE_WITH_SERIES' is strings 'True' or 'False' ")
+ patch_tar_name = select_archive_patches(d,"applying")
else:
patch_tar_name = ''
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in 'SRPM':
+ if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'tar':
move_tarball_deploy(d,[source_tar_name,patch_tar_name])
- else:
+ else: # srpm
tarpackage = os.path.join(d.getVar('WORKDIR', True),'tar-package')
if os.path.exists(tarpackage):
os.remove(tarpackage)
@@ -317,7 +315,7 @@ def archive_scripts_logs(d):
work_dir = d.getVar('WORKDIR', True)
temp_dir = os.path.join(work_dir,'temp')
- source_archive_log_with_scripts = d.getVar('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', True)
+ source_archive_log_with_scripts = oe.data.typed_value('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', d)
if source_archive_log_with_scripts == 'logs_with_scripts':
logdir = get_bb_inc(d)
tarlog = archive_logs(d,logdir,True)
@@ -326,10 +324,9 @@ def archive_scripts_logs(d):
tarlog = archive_logs(d,temp_dir,False)
else:
return
-
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in 'SRPM':
- move_tarball_deploy(d,[tarlog])
+ if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'tar':
+ move_tarball_deploy(d,[tarlog])
else:
store_package(d,tarlog)
@@ -427,14 +424,14 @@ python do_archive_linux_yocto(){
s = d.getVar('S', True)
if 'linux-yocto' in s:
source_tar_name = archive_sources(d,'')
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in 'SRPM':
+ if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'tar':
move_tarball_deploy(d,[source_tar_name,''])
}
do_kernel_checkout[postfuncs] += "do_archive_linux_yocto "
# remove tarball for sources, patches and logs after creating srpm.
python do_remove_tarball(){
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
+ if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
work_dir = d.getVar('WORKDIR', True)
try:
for file in os.listdir(os.getcwd()):
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 623069e..8033a37 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -505,19 +505,19 @@ python write_specfile () {
# append information for logs and patches to %prep
def add_prep(d,spec_files_bottom):
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
+ if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
spec_files_bottom.append('%%prep -n %s' % d.getVar('PN', True) )
spec_files_bottom.append('%s' % "echo \"include logs and patches, Please check them in SOURCES\"")
spec_files_bottom.append('')
# get the name of tarball for sources, patches and logs
def get_tarballs(d):
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
+ if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
return get_package(d)
# append the name of tarball to key word 'SOURCE' in xxx.spec.
def tail_source(d,source_list=[],patch_list=None):
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
+ if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
source_number = 0
patch_number = 0
for source in source_list:
@@ -956,7 +956,7 @@ python do_package_rpm () {
import os
def creat_srpm_dir(d):
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
+ if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
clean_licenses = get_licenses(d)
pkgwritesrpmdir = bb.data.expand('${PKGWRITEDIRSRPM}/${PACKAGE_ARCH_EXTEND}', d)
pkgwritesrpmdir = pkgwritesrpmdir + '/' + clean_licenses
@@ -1083,13 +1083,13 @@ python do_package_rpm () {
cmd = cmd + " --define 'debug_package %{nil}'"
cmd = cmd + " --define '_rpmfc_magic_path " + magicfile + "'"
cmd = cmd + " --define '_tmppath " + workdir + "'"
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
+ if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
cmdsrpm = cmd + " --define '_sourcedir " + workdir + "' --define '_srcrpmdir " + creat_srpm_dir(d) + "'"
cmdsrpm = 'fakeroot ' + cmdsrpm + " -bs " + outspecfile
cmd = cmd + " -bb " + outspecfile
# Build the source rpm package !
- if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
+ if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
d.setVar('SBUILDSPEC', cmdsrpm + "\n")
d.setVarFlag('SBUILDSPEC', 'func', '1')
bb.build.exec_func('SBUILDSPEC', d)
--
1.7.7
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] archiver.bbclass: leverage variable typing support
2012-05-10 2:40 ` [PATCH 2/2] archiver.bbclass: leverage variable typing support Christopher Larson
@ 2012-05-10 5:03 ` Saul Wold
2012-05-10 5:05 ` Chris Larson
0 siblings, 1 reply; 5+ messages in thread
From: Saul Wold @ 2012-05-10 5:03 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On 05/09/2012 07:40 PM, Christopher Larson wrote:
> From: Christopher Larson<chris_larson@mentor.com>
>
> This makes use of variable typing to avoid reinventing the wheel in that way
> and adds default values for a couple of said variables. It also changes
> PATCHES_ARCHIVE_WITH_SERIES to use ?= rather than =.
>
> Further, doing this fixes a single bug that occurs in many places:
>
> if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in 'SRPM':
>
> This is performing a substring search. It should have done "== 'SRPM'"", or if
> there *were* multiple options for that case (there aren't), it would do "not
> in ['SRPM']" or similar.
>
> Signed-off-by: Christopher Larson<chris_larson@mentor.com>
> ---
> meta/classes/archiver.bbclass | 45 +++++++++++++++++--------------------
> meta/classes/package_rpm.bbclass | 12 +++++-----
> 2 files changed, 27 insertions(+), 30 deletions(-)
>
> diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
> index 59b58f4..844dbf8 100644
> --- a/meta/classes/archiver.bbclass
> +++ b/meta/classes/archiver.bbclass
> @@ -2,10 +2,19 @@
> # It also output building environment to xxx.dump.data and create xxx.diff.gz to record
> # all content in ${S} to a diff file.
>
> -ARCHIVE_EXCLUDE_FROM ?= ".pc autom4te.cache"
> -ARCHIVE_TYPE ?= "TAR SRPM"
> DISTRO ?= "poky"
> -PATCHES_ARCHIVE_WITH_SERIES = 'TRUE'
> +ARCHIVE_EXCLUDE_FROM ?= ".pc autom4te.cache"
> +
> +PATCHES_ARCHIVE_WITH_SERIES ?= "true"
> +PATCHES_ARCHIVE_WITH_SERIES[type] = "boolean"
> +
> +SOURCE_ARCHIVE_PACKAGE_TYPE ?= "tar"
> +SOURCE_ARCHIVE_PACKAGE_TYPE[type] = "choice"
> +SOURCE_ARCHIVE_PACKAGE_TYPE[choices] = "tar srpm"
> +
Great patch! But:
Moving this here results in the following error if archiver.bbclass is
not inherit'ed by default!
ERROR: SOURCE_ARCHIVE_PACKAGE_TYPE: No type specified. Valid types:
regex, float, list, choice, boolean, integer
Sau!
> +SOURCE_ARCHIVE_LOG_WITH_SCRIPTS ?= "logs_with_scripts"
> +SOURCE_ARCHIVE_LOG_WITH_SCRIPTS[type] = "choice"
> +SOURCE_ARCHIVE_LOG_WITH_SCRIPTS[choices] = "none logs logs_with_scripts"
>
> def get_bb_inc(d):
> '''create a directory "script-logs" including .bb and .inc file in ${WORKDIR}'''
> @@ -253,14 +262,6 @@ def move_tarball_deploy(d,tarball_list):
> os.remove(os.path.join(tar_sources,source))
> shutil.move(os.path.join(work_dir,source),tar_sources)
>
> -def check_archiving_type(d):
> - '''check the type for archiving package('tar' or 'srpm')'''
> - try:
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in d.getVar('ARCHIVE_TYPE', True).split():
> - raise AttributeError
> - except AttributeError:
> - bb.fatal("\"SOURCE_ARCHIVE_PACKAGE_TYPE\" is \'tar\' or \'srpm\', no other types")
> -
> def store_package(d,package_name):
> '''store tarbablls name to file "tar-package"'''
> try:
> @@ -287,24 +288,21 @@ def archive_sources_patches(d,stage_name):
> '''archive sources and patches to tarball. stage_name will append strings ${stage_name} to ${PR} as middle name. for example, zlib-1.4.6-prepatch(stage_name).tar.gz '''
> import shutil
>
> - check_archiving_type(d)
> if not_tarball(d):
> return
>
> source_tar_name = archive_sources(d,stage_name)
> if stage_name == "prepatch":
> - if d.getVar('PATCHES_ARCHIVE_WITH_SERIES',True).upper() == 'TRUE':
> + if oe.data.typed_value('PATCHES_ARCHIVE_WITH_SERIES', d):
> patch_tar_name = select_archive_patches(d,"all")
> - elif d.getVar('PATCHES_ARCHIVE_WITH_SERIES',True).upper() == 'FALSE':
> - patch_tar_name = select_archive_patches(d,"applying")
> else:
> - bb.fatal("Please define 'PATCHES_ARCHIVE_WITH_SERIES' is strings 'True' or 'False' ")
> + patch_tar_name = select_archive_patches(d,"applying")
> else:
> patch_tar_name = ''
>
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in 'SRPM':
> + if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'tar':
> move_tarball_deploy(d,[source_tar_name,patch_tar_name])
> - else:
> + else: # srpm
> tarpackage = os.path.join(d.getVar('WORKDIR', True),'tar-package')
> if os.path.exists(tarpackage):
> os.remove(tarpackage)
> @@ -317,7 +315,7 @@ def archive_scripts_logs(d):
>
> work_dir = d.getVar('WORKDIR', True)
> temp_dir = os.path.join(work_dir,'temp')
> - source_archive_log_with_scripts = d.getVar('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', True)
> + source_archive_log_with_scripts = oe.data.typed_value('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', d)
> if source_archive_log_with_scripts == 'logs_with_scripts':
> logdir = get_bb_inc(d)
> tarlog = archive_logs(d,logdir,True)
> @@ -326,10 +324,9 @@ def archive_scripts_logs(d):
> tarlog = archive_logs(d,temp_dir,False)
> else:
> return
> -
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in 'SRPM':
> - move_tarball_deploy(d,[tarlog])
>
> + if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'tar':
> + move_tarball_deploy(d,[tarlog])
> else:
> store_package(d,tarlog)
>
> @@ -427,14 +424,14 @@ python do_archive_linux_yocto(){
> s = d.getVar('S', True)
> if 'linux-yocto' in s:
> source_tar_name = archive_sources(d,'')
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in 'SRPM':
> + if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'tar':
> move_tarball_deploy(d,[source_tar_name,''])
> }
> do_kernel_checkout[postfuncs] += "do_archive_linux_yocto "
>
> # remove tarball for sources, patches and logs after creating srpm.
> python do_remove_tarball(){
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
> + if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
> work_dir = d.getVar('WORKDIR', True)
> try:
> for file in os.listdir(os.getcwd()):
> diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
> index 623069e..8033a37 100644
> --- a/meta/classes/package_rpm.bbclass
> +++ b/meta/classes/package_rpm.bbclass
> @@ -505,19 +505,19 @@ python write_specfile () {
>
> # append information for logs and patches to %prep
> def add_prep(d,spec_files_bottom):
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
> + if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
> spec_files_bottom.append('%%prep -n %s' % d.getVar('PN', True) )
> spec_files_bottom.append('%s' % "echo \"include logs and patches, Please check them in SOURCES\"")
> spec_files_bottom.append('')
>
> # get the name of tarball for sources, patches and logs
> def get_tarballs(d):
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
> + if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
> return get_package(d)
>
> # append the name of tarball to key word 'SOURCE' in xxx.spec.
> def tail_source(d,source_list=[],patch_list=None):
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
> + if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
> source_number = 0
> patch_number = 0
> for source in source_list:
> @@ -956,7 +956,7 @@ python do_package_rpm () {
> import os
>
> def creat_srpm_dir(d):
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
> + if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
> clean_licenses = get_licenses(d)
> pkgwritesrpmdir = bb.data.expand('${PKGWRITEDIRSRPM}/${PACKAGE_ARCH_EXTEND}', d)
> pkgwritesrpmdir = pkgwritesrpmdir + '/' + clean_licenses
> @@ -1083,13 +1083,13 @@ python do_package_rpm () {
> cmd = cmd + " --define 'debug_package %{nil}'"
> cmd = cmd + " --define '_rpmfc_magic_path " + magicfile + "'"
> cmd = cmd + " --define '_tmppath " + workdir + "'"
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
> + if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
> cmdsrpm = cmd + " --define '_sourcedir " + workdir + "' --define '_srcrpmdir " + creat_srpm_dir(d) + "'"
> cmdsrpm = 'fakeroot ' + cmdsrpm + " -bs " + outspecfile
> cmd = cmd + " -bb " + outspecfile
>
> # Build the source rpm package !
> - if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) and d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
> + if oe.data.typed_value('SOURCE_ARCHIVE_PACKAGE_TYPE', d) == 'srpm':
> d.setVar('SBUILDSPEC', cmdsrpm + "\n")
> d.setVarFlag('SBUILDSPEC', 'func', '1')
> bb.build.exec_func('SBUILDSPEC', d)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] archiver.bbclass: leverage variable typing support
2012-05-10 5:03 ` Saul Wold
@ 2012-05-10 5:05 ` Chris Larson
0 siblings, 0 replies; 5+ messages in thread
From: Chris Larson @ 2012-05-10 5:05 UTC (permalink / raw)
To: Saul Wold
Cc: Christopher Larson,
Patches and discussions about the oe-core layer
On Wed, May 9, 2012 at 10:03 PM, Saul Wold <sgw@linux.intel.com> wrote:
> On 05/09/2012 07:40 PM, Christopher Larson wrote:
>>
>> From: Christopher Larson<chris_larson@mentor.com>
>>
>> This makes use of variable typing to avoid reinventing the wheel in that
>> way
>> and adds default values for a couple of said variables. It also changes
>> PATCHES_ARCHIVE_WITH_SERIES to use ?= rather than =.
>>
>> Further, doing this fixes a single bug that occurs in many places:
>>
>> if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in
>> 'SRPM':
>>
>> This is performing a substring search. It should have done "== 'SRPM'"",
>> or if
>> there *were* multiple options for that case (there aren't), it would do
>> "not
>> in ['SRPM']" or similar.
>>
>> Signed-off-by: Christopher Larson<chris_larson@mentor.com>
>> ---
>> meta/classes/archiver.bbclass | 45
>> +++++++++++++++++--------------------
>> meta/classes/package_rpm.bbclass | 12 +++++-----
>> 2 files changed, 27 insertions(+), 30 deletions(-)
>>
>> diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
>> index 59b58f4..844dbf8 100644
>> --- a/meta/classes/archiver.bbclass
>> +++ b/meta/classes/archiver.bbclass
>> @@ -2,10 +2,19 @@
>> # It also output building environment to xxx.dump.data and create
>> xxx.diff.gz to record
>> # all content in ${S} to a diff file.
>>
>> -ARCHIVE_EXCLUDE_FROM ?= ".pc autom4te.cache"
>> -ARCHIVE_TYPE ?= "TAR SRPM"
>> DISTRO ?= "poky"
>> -PATCHES_ARCHIVE_WITH_SERIES = 'TRUE'
>> +ARCHIVE_EXCLUDE_FROM ?= ".pc autom4te.cache"
>> +
>> +PATCHES_ARCHIVE_WITH_SERIES ?= "true"
>> +PATCHES_ARCHIVE_WITH_SERIES[type] = "boolean"
>> +
>> +SOURCE_ARCHIVE_PACKAGE_TYPE ?= "tar"
>> +SOURCE_ARCHIVE_PACKAGE_TYPE[type] = "choice"
>> +SOURCE_ARCHIVE_PACKAGE_TYPE[choices] = "tar srpm"
>> +
>
>
> Great patch! But:
>
> Moving this here results in the following error if archiver.bbclass is not
> inherit'ed by default!
>
> ERROR: SOURCE_ARCHIVE_PACKAGE_TYPE: No type specified. Valid types: regex,
> float, list, choice, boolean, integer
Ah! Doh, I didn't think about that -- we really need to fix the
package_rpm code there to not depend on archiver.bbclass specifics.
I'll rework the patch. Thanks.
--
Christopher Larson
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] typecheck.bbclass: update per current variable typing code
2012-05-10 2:40 [PATCH 1/2] typecheck.bbclass: update per current variable typing code Christopher Larson
2012-05-10 2:40 ` [PATCH 2/2] archiver.bbclass: leverage variable typing support Christopher Larson
@ 2012-05-11 17:38 ` Saul Wold
1 sibling, 0 replies; 5+ messages in thread
From: Saul Wold @ 2012-05-11 17:38 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On 05/09/2012 07:40 PM, Christopher Larson wrote:
> From: Christopher Larson<chris_larson@mentor.com>
>
> Signed-off-by: Christopher Larson<chris_larson@mentor.com>
> ---
> meta/classes/typecheck.bbclass | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/meta/classes/typecheck.bbclass b/meta/classes/typecheck.bbclass
> index 646cd4e..353532d 100644
> --- a/meta/classes/typecheck.bbclass
> +++ b/meta/classes/typecheck.bbclass
> @@ -7,6 +7,6 @@ python check_types() {
> if isinstance(e, bb.event.ConfigParsed):
> for key in e.data.keys():
> if e.data.getVarFlag(key, "type"):
> - oe.types.value(key, e.data)
> + oe.data.typed_value(key, e.data)
> }
> addhandler check_types
Merged this into OE-Core
Thanks
Sau!
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-05-11 17:48 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-10 2:40 [PATCH 1/2] typecheck.bbclass: update per current variable typing code Christopher Larson
2012-05-10 2:40 ` [PATCH 2/2] archiver.bbclass: leverage variable typing support Christopher Larson
2012-05-10 5:03 ` Saul Wold
2012-05-10 5:05 ` Chris Larson
2012-05-11 17:38 ` [PATCH 1/2] typecheck.bbclass: update per current variable typing code Saul Wold
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox