diff options
| -rw-r--r-- | meta/lib/oe/package_manager.py | 3 | ||||
| -rw-r--r-- | meta/lib/oeqa/selftest/pkgdata.py | 5 | ||||
| -rwxr-xr-x | scripts/oe-pkgdata-util | 6 |
3 files changed, 13 insertions, 1 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')) |
diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util index 5a9f89b31b..b075775b8f 100755 --- a/scripts/oe-pkgdata-util +++ b/scripts/oe-pkgdata-util | |||
| @@ -55,7 +55,10 @@ def glob(args): | |||
| 55 | logger.error('Unable to find package list file %s' % args.pkglistfile) | 55 | logger.error('Unable to find package list file %s' % args.pkglistfile) |
| 56 | sys.exit(1) | 56 | sys.exit(1) |
| 57 | 57 | ||
| 58 | skipregex = re.compile("-locale-|^locale-base-|-dev$|-doc$|-dbg$|-staticdev$|^kernel-module-") | 58 | skipval = "-locale-|^locale-base-|-dev$|-doc$|-dbg$|-staticdev$|^kernel-module-" |
| 59 | if args.exclude: | ||
| 60 | skipval += "|" + args.exclude | ||
| 61 | skipregex = re.compile(skipval) | ||
| 59 | 62 | ||
| 60 | mappedpkgs = set() | 63 | mappedpkgs = set() |
| 61 | with open(args.pkglistfile, 'r') as f: | 64 | with open(args.pkglistfile, 'r') as f: |
| @@ -466,6 +469,7 @@ def main(): | |||
| 466 | description='Expands one or more glob expressions over the packages listed in pkglistfile') | 469 | description='Expands one or more glob expressions over the packages listed in pkglistfile') |
| 467 | parser_glob.add_argument('pkglistfile', help='File listing packages (one package name per line)') | 470 | parser_glob.add_argument('pkglistfile', help='File listing packages (one package name per line)') |
| 468 | parser_glob.add_argument('glob', nargs="+", help='Glob expression for package names, e.g. *-dev') | 471 | parser_glob.add_argument('glob', nargs="+", help='Glob expression for package names, e.g. *-dev') |
| 472 | parser_glob.add_argument('-x', '--exclude', help='Exclude packages matching specified regex from the glob operation') | ||
| 469 | parser_glob.set_defaults(func=glob) | 473 | parser_glob.set_defaults(func=glob) |
| 470 | 474 | ||
| 471 | 475 | ||
