Skip to contentSkip to conversation

Fixes for PACKAGE_EXCLUDE_COMPLEMENTARY

PATCH New Peter Kjellerstedt 1 participant 5 messages Oct 5, 2016

lore
Share & tools
lore
#0 lore raw

v2 cover Fixes for PACKAGE_EXCLUDE_COMPLEMENTARY

The first patch fix a problem with PACKAGE_EXCLUDE_COMPLEMENTARY where it could not contain a regular expression that began with a dash, and the second makes it possible to specify multiple, whitespace separated regular expressions in PACKAGE_EXCLUDE_COMPLEMENTARY.

PATCH v2: Added two more patches to make do_rootfs and do_populate_sdk depend on PACKAGE_EXCLUDE_COMPLEMENTARY.

//Peter

The following changes since commit 4189a1977e65f71ddb8fc0498bcef91754c673d8:

bitbake: toaster: add Font Awesome license (2016-10-05 10:28:53 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib pkj/complementary_packages
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=pkj/complementary_packages

Peter Kjellerstedt (4):
package_manager.py: Allow a leading - in PACKAGE_EXCLUDE_COMPLEMENTARY package_manager.py: Allow multiple regexps in
PACKAGE_EXCLUDE_COMPLEMENTARY
image.bbclass: Make do_rootfs depend on PACKAGE_EXCLUDE_COMPLEMENTARY populate_sdk_base.bbclass: Make do_populate_sdk depend on
PACKAGE_EXCLUDE_COMPLEMENTARY

 meta/classes/image.bbclass             | 2 +-
 meta/classes/populate_sdk_base.bbclass | 2 +-
 meta/lib/oe/package_manager.py         | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
Signature · 1 line
2.9.0
#1 lore raw

PATCH v2 1/4 package_manager.py: Allow a leading - in PACKAGE_EXCLUDE_COMPLEMENTARY

This allows a regular expression specified in PACKAGE_EXCLUDE_COMPLEMENTARY to have a leading dash. Without this, the dash was treated by oe-pkgdata-util as the beginning of a command line argument. E.g., if PACKAGE_EXCLUDE_COMPLEMENTARY = "-foo$", it resulted in an error like:

ERROR: <imagename>-1.0-r0 do_populate_sdk: Could not compute complementary packages list. Command '<topdir>/scripts/oe-pkgdata-util -p <builddir>/tmp/sysroots/<machine>/pkgdata glob <workdir>/installed_pkgs.txt *-dev *-dbg -x -foo$' returned 2:
ERROR: argument -x/--exclude: expected one argument
usage: oe-pkgdata-util glob [-h] [-x EXCLUDE] pkglistfile glob [glob ...]

---
 meta/lib/oe/package_manager.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/lib/oe/package_manager.py +1 -1
index 434b898..5f86aff 100644
@@ -598,7 +598,7 @@ class PackageManager(object, metaclass=ABCMeta):
                globs]
         exclude = self.d.getVar('PACKAGE_EXCLUDE_COMPLEMENTARY', True)
         if exclude:
-            cmd.extend(['-x', exclude])
+            cmd.extend(['--exclude=' + exclude])
         try:
             bb.note("Installing complementary packages ...")
             bb.note('Running %s' % cmd)
Signature · 1 line
2.9.0
#2 lore raw

PATCH v2 2/4 package_manager.py: Allow multiple regexps in PACKAGE_EXCLUDE_COMPLEMENTARY

In reply to Peter Kjellerstedt

The PACKAGE_EXCLUDE_COMPLEMENTARY variable can currently only contain one regular expression. This makes it hard to add to it from different configuration files and recipes.

Allowing it to contain multiple, whitespace separated regular expressions should be backwards compatible as it is assumed that whitespace is not used in package names and thus is not used in any existing instances of the variable.

After this change, the following three examples should be equivalent:

PACKAGE_EXCLUDE_COMPLEMENTARY = "foo|bar"

PACKAGE_EXCLUDE_COMPLEMENTARY = "foo bar"

PACKAGE_EXCLUDE_COMPLEMENTARY = "foo"
PACKAGE_EXCLUDE_COMPLEMENTARY += "bar"

---
 meta/lib/oe/package_manager.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/lib/oe/package_manager.py +1 -1
index 5f86aff..3cee973 100644
@@ -598,7 +598,7 @@ class PackageManager(object, metaclass=ABCMeta):
                globs]
         exclude = self.d.getVar('PACKAGE_EXCLUDE_COMPLEMENTARY', True)
         if exclude:
-            cmd.extend(['--exclude=' + exclude])
+            cmd.extend(['--exclude=' + '|'.join(exclude.split())])
         try:
             bb.note("Installing complementary packages ...")
             bb.note('Running %s' % cmd)
Signature · 1 line
2.9.0
#3 lore raw

PATCH v2 3/4 image.bbclass: Make do_rootfs depend on PACKAGE_EXCLUDE_COMPLEMENTARY

In reply to Peter Kjellerstedt
---
 meta/classes/image.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/image.bbclass +1 -1
index 4d5a401..915500a 100644
@@ -120,7 +120,7 @@ def rootfs_variables(d):
                  'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','RM_OLD_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
                  'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
                  'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
-                 'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR']
+                 'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY']
     variables.extend(rootfs_command_variables(d))
     variables.extend(variable_depends(d))
     return " ".join(variables)
Signature · 1 line
2.9.0
#4 lore raw

PATCH v2 4/4 populate_sdk_base.bbclass: Make do_populate_sdk depend on PACKAGE_EXCLUDE_COMPLEMENTARY

In reply to Peter Kjellerstedt
---
 meta/classes/populate_sdk_base.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/populate_sdk_base.bbclass +1 -1
index a23775e..4462b52 100644
@@ -263,7 +263,7 @@ def sdk_command_variables(d):
 def sdk_variables(d):
     variables = ['BUILD_IMAGES_FROM_FEEDS','SDK_OS','SDK_OUTPUT','SDKPATHNATIVE','SDKTARGETSYSROOT','SDK_DIR','SDK_VENDOR','SDKIMAGE_INSTALL_COMPLEMENTARY','SDK_PACKAGE_ARCHS','SDK_OUTPUT',
                  'SDKTARGETSYSROOT','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS','PACKAGE_ARCHS',
-                 'PACKAGE_CLASSES','TARGET_VENDOR','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI']
+                 'PACKAGE_CLASSES','TARGET_VENDOR','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI', 'PACKAGE_EXCLUDE_COMPLEMENTARY']
     variables.extend(sdk_command_variables(d))
     return " ".join(variables)
 
Signature · 1 line
2.9.0