summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2015-02-18 10:26:33 (GMT)
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-03-03 14:34:17 (GMT)
commitc82164fd0aa29d08681802ed9e2effdc2f2f62d3 (patch)
tree8fd4946fb4c64902a31a3c592033f8e99aa5ff86
parent586a3d5ff5e2fa84bb031e491fc6f5a53aa389a3 (diff)
downloadpoky-c82164fd0aa29d08681802ed9e2effdc2f2f62d3.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 master rev: d4fe8f639d87d5ff35e50d07d41d0c1e9f12c4e3) (From OE-Core rev: 5e92eb11cdf1dd06a3e2ca015f1aebaace321acd) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oe/package_manager.py3
-rwxr-xr-xscripts/oe-pkgdata-util12
2 files changed, 12 insertions, 3 deletions
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 1c64205..1c33b0f 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -519,6 +519,9 @@ class PackageManager(object):
519 cmd = [bb.utils.which(os.getenv('PATH'), "oe-pkgdata-util"), 519 cmd = [bb.utils.which(os.getenv('PATH'), "oe-pkgdata-util"),
520 "glob", self.d.getVar('PKGDATA_DIR', True), installed_pkgs_file, 520 "glob", self.d.getVar('PKGDATA_DIR', True), installed_pkgs_file,
521 globs] 521 globs]
522 exclude = self.d.getVar('PACKAGE_EXCLUDE_COMPLEMENTARY', True)
523 if exclude:
524 cmd.extend(['-x', exclude])
522 try: 525 try:
523 bb.note("Installing complementary packages ...") 526 bb.note("Installing complementary packages ...")
524 complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT) 527 complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index a373116..4900955 100755
--- a/scripts/oe-pkgdata-util
+++ b/scripts/oe-pkgdata-util
@@ -28,7 +28,7 @@ import re
28import optparse 28import optparse
29from collections import defaultdict 29from collections import defaultdict
30 30
31def glob(args, usage, debug=False): 31def glob(args, usage, debug=False, exclude=""):
32 if len(args) < 3: 32 if len(args) < 3:
33 usage() 33 usage()
34 sys.exit(1) 34 sys.exit(1)
@@ -45,7 +45,10 @@ def glob(args, usage, debug=False):
45 print('ERROR: Unable to find package list file %s' % pkglist_file) 45 print('ERROR: Unable to find package list file %s' % pkglist_file)
46 sys.exit(1) 46 sys.exit(1)
47 47
48 skipregex = re.compile("-locale-|^locale-base-|-dev$|-doc$|-dbg$|-staticdev$|^kernel-module-") 48 skipval = "-locale-|^locale-base-|-dev$|-doc$|-dbg$|-staticdev$|^kernel-module-"
49 if exclude:
50 skipval += "|" + exclude
51 skipregex = re.compile(skipval)
49 52
50 mappedpkgs = set() 53 mappedpkgs = set()
51 with open(pkglist_file, 'r') as f: 54 with open(pkglist_file, 'r') as f:
@@ -305,6 +308,9 @@ Available commands:
305 parser.add_option("-d", "--debug", 308 parser.add_option("-d", "--debug",
306 help = "Report all SRCREV values, not just ones where AUTOREV has been used", 309 help = "Report all SRCREV values, not just ones where AUTOREV has been used",
307 action="store_true", dest="debug", default=False) 310 action="store_true", dest="debug", default=False)
311 parser.add_option("-x", "--exclude",
312 help = "Exclude packages matching specified regex from the glob operation",
313 action="store", type="string", dest="exclude", default="")
308 314
309 options, args = parser.parse_args(sys.argv) 315 options, args = parser.parse_args(sys.argv)
310 args = args[1:] 316 args = args[1:]
@@ -314,7 +320,7 @@ Available commands:
314 sys.exit(1) 320 sys.exit(1)
315 321
316 if args[0] == "glob": 322 if args[0] == "glob":
317 glob(args[1:], parser.print_help, options.debug) 323 glob(args[1:], parser.print_help, options.debug, options.exclude)
318 elif args[0] == "lookup-pkg": 324 elif args[0] == "lookup-pkg":
319 lookup_pkg(args[1:], parser.print_help, options.debug) 325 lookup_pkg(args[1:], parser.print_help, options.debug)
320 elif args[0] == "lookup-recipe": 326 elif args[0] == "lookup-recipe":