mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
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>
This commit is contained in:
parent
586a3d5ff5
commit
c82164fd0a
|
@ -519,6 +519,9 @@ class PackageManager(object):
|
|||
cmd = [bb.utils.which(os.getenv('PATH'), "oe-pkgdata-util"),
|
||||
"glob", self.d.getVar('PKGDATA_DIR', True), installed_pkgs_file,
|
||||
globs]
|
||||
exclude = self.d.getVar('PACKAGE_EXCLUDE_COMPLEMENTARY', True)
|
||||
if exclude:
|
||||
cmd.extend(['-x', exclude])
|
||||
try:
|
||||
bb.note("Installing complementary packages ...")
|
||||
complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
|
||||
|
|
|
@ -28,7 +28,7 @@ import re
|
|||
import optparse
|
||||
from collections import defaultdict
|
||||
|
||||
def glob(args, usage, debug=False):
|
||||
def glob(args, usage, debug=False, exclude=""):
|
||||
if len(args) < 3:
|
||||
usage()
|
||||
sys.exit(1)
|
||||
|
@ -45,7 +45,10 @@ def glob(args, usage, debug=False):
|
|||
print('ERROR: Unable to find package list file %s' % pkglist_file)
|
||||
sys.exit(1)
|
||||
|
||||
skipregex = re.compile("-locale-|^locale-base-|-dev$|-doc$|-dbg$|-staticdev$|^kernel-module-")
|
||||
skipval = "-locale-|^locale-base-|-dev$|-doc$|-dbg$|-staticdev$|^kernel-module-"
|
||||
if exclude:
|
||||
skipval += "|" + exclude
|
||||
skipregex = re.compile(skipval)
|
||||
|
||||
mappedpkgs = set()
|
||||
with open(pkglist_file, 'r') as f:
|
||||
|
@ -305,6 +308,9 @@ Available commands:
|
|||
parser.add_option("-d", "--debug",
|
||||
help = "Report all SRCREV values, not just ones where AUTOREV has been used",
|
||||
action="store_true", dest="debug", default=False)
|
||||
parser.add_option("-x", "--exclude",
|
||||
help = "Exclude packages matching specified regex from the glob operation",
|
||||
action="store", type="string", dest="exclude", default="")
|
||||
|
||||
options, args = parser.parse_args(sys.argv)
|
||||
args = args[1:]
|
||||
|
@ -314,7 +320,7 @@ Available commands:
|
|||
sys.exit(1)
|
||||
|
||||
if args[0] == "glob":
|
||||
glob(args[1:], parser.print_help, options.debug)
|
||||
glob(args[1:], parser.print_help, options.debug, options.exclude)
|
||||
elif args[0] == "lookup-pkg":
|
||||
lookup_pkg(args[1:], parser.print_help, options.debug)
|
||||
elif args[0] == "lookup-recipe":
|
||||
|
|
Loading…
Reference in New Issue
Block a user