diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2015-02-16 17:57:03 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-02-17 14:20:45 +0000 |
commit | fdb5639e906779814e8454b8fc696c25e8c7a870 (patch) | |
tree | c6f81c2538306d0ee2a593146e8e7c01038c92e6 /meta | |
parent | 3d2d158e34224dff7ec27be341044332798c5e32 (diff) | |
download | poky-fdb5639e906779814e8454b8fc696c25e8c7a870.tar.gz |
lib/oe/package_manager: support exclusion from complementary glob process by regex
Sometimes you do not want certain packages to be installed when
installing complementary packages, e.g. when using dev-pkgs in
IMAGE_FEATURES you may not want to install all packages from a
particular multilib. This introduces a new PACKAGE_EXCLUDE_COMPLEMENTARY
variable to allow specifying regexes to match packages to exclude.
(From OE-Core rev: d4fe8f639d87d5ff35e50d07d41d0c1e9f12c4e3)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/lib/oe/package_manager.py | 3 | ||||
-rw-r--r-- | meta/lib/oeqa/selftest/pkgdata.py | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index fcf05dc282..986ae54942 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py | |||
@@ -531,6 +531,9 @@ class PackageManager(object): | |||
531 | cmd = [bb.utils.which(os.getenv('PATH'), "oe-pkgdata-util"), | 531 | cmd = [bb.utils.which(os.getenv('PATH'), "oe-pkgdata-util"), |
532 | "-p", self.d.getVar('PKGDATA_DIR', True), "glob", installed_pkgs_file, | 532 | "-p", self.d.getVar('PKGDATA_DIR', True), "glob", installed_pkgs_file, |
533 | globs] | 533 | globs] |
534 | exclude = self.d.getVar('PACKAGE_EXCLUDE_COMPLEMENTARY', True) | ||
535 | if exclude: | ||
536 | cmd.extend(['-x', exclude]) | ||
534 | try: | 537 | try: |
535 | bb.note("Installing complementary packages ...") | 538 | bb.note("Installing complementary packages ...") |
536 | complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT) | 539 | complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT) |
diff --git a/meta/lib/oeqa/selftest/pkgdata.py b/meta/lib/oeqa/selftest/pkgdata.py index f689bf344e..34eea468e8 100644 --- a/meta/lib/oeqa/selftest/pkgdata.py +++ b/meta/lib/oeqa/selftest/pkgdata.py | |||
@@ -207,6 +207,11 @@ class OePkgdataUtilTests(oeSelfTest): | |||
207 | # The following should not error (because when we use this during rootfs construction, sometimes the complementary package won't exist) | 207 | # The following should not error (because when we use this during rootfs construction, sometimes the complementary package won't exist) |
208 | result = runCmd('oe-pkgdata-util glob %s "*-nonexistent"' % pkglistfile) | 208 | result = runCmd('oe-pkgdata-util glob %s "*-nonexistent"' % pkglistfile) |
209 | self.assertEqual(result.output, '') | 209 | self.assertEqual(result.output, '') |
210 | # Test exclude option | ||
211 | result = runCmd('oe-pkgdata-util glob %s "*-dev *-dbg" -x "^libz"' % pkglistfile) | ||
212 | resultlist = result.output.split() | ||
213 | self.assertNotIn('libz-dev', resultlist) | ||
214 | self.assertNotIn('libz-dbg', resultlist) | ||
210 | 215 | ||
211 | def test_specify_pkgdatadir(self): | 216 | def test_specify_pkgdatadir(self): |
212 | result = runCmd('oe-pkgdata-util -p %s lookup-pkg glibc' % get_bb_var('PKGDATA_DIR')) | 217 | result = runCmd('oe-pkgdata-util -p %s lookup-pkg glibc' % get_bb_var('PKGDATA_DIR')) |