summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2015-02-16 17:57:03 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-02-17 14:20:45 +0000
commitfdb5639e906779814e8454b8fc696c25e8c7a870 (patch)
treec6f81c2538306d0ee2a593146e8e7c01038c92e6 /meta
parent3d2d158e34224dff7ec27be341044332798c5e32 (diff)
downloadpoky-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.py3
-rw-r--r--meta/lib/oeqa/selftest/pkgdata.py5
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'))