Merged from trunk 5172:5176
authorFabian Groffen <grobian@gentoo.org>
Wed, 6 Dec 2006 19:26:56 +0000 (19:26 -0000)
committerFabian Groffen <grobian@gentoo.org>
Wed, 6 Dec 2006 19:26:56 +0000 (19:26 -0000)
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
pym/portage_dep.py

index 576c0670223eff1062db2064a0982edca526cc28..359a7f6caea6ad51dbff92013fddba66d394871f 100755 (executable)
@@ -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)
index 45467397c93b29e12138e57ad49c7130cfc3e28d..e7c82ff3c221cd21ef000558f254c970d8f641eb 100644 (file)
@@ -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: