From 4e76cd54ef3c939e0cd33fe30e6a354782690509 Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Wed, 6 Dec 2006 19:26:56 +0000 Subject: [PATCH] Merged from trunk 5172:5176 For bug #157134, make `emerge --digest` automatically reload the config with FEATURES=digest enabled globally. Fix up mtimedb["ldpath"] references broken by the previous commit. Make match_to_list = behavior consistent with >= and <= for bug #152127. Sync match_to_list >=, <=, etc.. code with the new = code. svn path=/main/branches/prefix/; revision=5177 --- bin/emerge | 12 +++++++++--- pym/portage_dep.py | 16 +++++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/bin/emerge b/bin/emerge index 576c06702..359a7f6ca 100755 --- a/bin/emerge +++ b/bin/emerge @@ -4470,7 +4470,6 @@ def emerge_main(): settings, trees, mtimedb = load_emerge_config(trees=trees) portdb = trees[settings["ROOT"]]["porttree"].dbapi - ldpath_mtimes = mtimedb["ldpath"] xterm_titles = "notitles" not in settings.features """Disable color as early as possible via NOCOLOR and stdout @@ -4492,6 +4491,13 @@ def emerge_main(): tmpcmdline.extend(sys.argv[1:]) myaction, myopts, myfiles = parse_opts(tmpcmdline) + if "--digest" in myopts: + os.environ["FEATURES"] = os.environ.get("FEATURES","") + " digest" + # Reload the whole config from scratch so that the portdbapi internal + # config is updated with new FEATURES. + settings, trees, mtimedb = load_emerge_config(trees=trees) + portdb = trees[settings["ROOT"]]["porttree"].dbapi + for myroot in trees: mysettings = trees[myroot]["vartree"].settings mysettings.unlock() @@ -4723,13 +4729,13 @@ def emerge_main(): validate_ebuild_environment(trees) vartree = trees[settings["ROOT"]]["vartree"] if 1 == unmerge(settings, myopts, vartree, myaction, myfiles, - ldpath_mtimes, raise_on_missing=False): + mtimedb["ldpath"], raise_on_missing=False): if "--pretend" not in myopts: post_emerge(settings, mtimedb, 0) elif "depclean"==myaction: validate_ebuild_environment(trees) - action_depclean(settings, trees, ldpath_mtimes, + action_depclean(settings, trees, mtimedb["ldpath"], myopts, spinner) if "--pretend" not in myopts: post_emerge(settings, mtimedb, 0) diff --git a/pym/portage_dep.py b/pym/portage_dep.py index 45467397c..e7c82ff3c 100644 --- a/pym/portage_dep.py +++ b/pym/portage_dep.py @@ -533,8 +533,17 @@ def match_from_list(mydep, candidate_list): mylist.append(x) elif operator == "=": # Exact match - if mycpv in candidate_list: - mylist = [mycpv] + mysplit = ["%s/%s" % (cat, pkg), ver, rev] + for x in candidate_list: + try: + result = pkgcmp(pkgsplit(x), mysplit) + except SystemExit: + raise + except: + writemsg("\nInvalid package name: %s\n" % x, noiselevel=-1) + raise + if result == 0: + mylist.append(x) elif operator == "=*": # glob match # The old verion ignored _tag suffixes... This one doesn't. @@ -552,9 +561,10 @@ def match_from_list(mydep, candidate_list): mylist.append(x) elif operator in [">", ">=", "<", "<="]: + mysplit = ["%s/%s" % (cat, pkg), ver, rev] for x in candidate_list: try: - result = pkgcmp(pkgsplit(x), [cat + "/" + pkg, ver, rev]) + result = pkgcmp(pkgsplit(x), mysplit) except SystemExit: raise except: -- 2.26.2