Bug #214879 - Fix FEATURES=-strict behavior so that distfiles digests are
authorZac Medico <zmedico@gentoo.org>
Thu, 27 Mar 2008 16:49:02 +0000 (16:49 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 27 Mar 2008 16:49:02 +0000 (16:49 -0000)
always checked.

svn path=/main/trunk/; revision=9519

man/make.conf.5
pym/portage/__init__.py

index 952d7079ec89a67d7fde6c6b58a30c44569e4db8..ab612b7415a6abdb3dd28b0b00bf01ddff5d15f1 100644 (file)
@@ -272,7 +272,7 @@ stored for later use by various debuggers.  This feature is disabled by
 .TP
 .B strict
 Have portage react strongly to conditions that have the potential to be 
-dangerous (like missing or incorrect digests for ebuilds or distfiles).
+dangerous (like missing or incorrect digests for ebuilds).
 .TP
 .B stricter
 Have portage react strongly to conditions that may conflict with system
index 6fe3d6a826668eb2191118064e80b4a76e2f59e3..42318409bfe8ed52eed479c373733fc385b67848 100644 (file)
@@ -3098,7 +3098,7 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks",
                        mymirrors += [x.rstrip("/") for x in mysettings["GENTOO_MIRRORS"].split() if x]
 
        pkgdir = mysettings.get("O")
-       if pkgdir and "strict" in features:
+       if pkgdir is not None:
                mydigests = Manifest(
                        pkgdir, mysettings["DISTDIR"]).getTypeDigests("DIST")
        else:
@@ -3744,8 +3744,6 @@ def digestcheck(myfiles, mysettings, strict=0, justmanifest=0):
        """Verifies checksums.  Assumes all files have been downloaded.
        DEPRECATED: this is now only a compability wrapper for 
                    portage.manifest.Manifest()."""
-       if not strict:
-               return 1
        pkgdir = mysettings["O"]
        manifest_path = os.path.join(pkgdir, "Manifest")
        if not os.path.exists(manifest_path):
@@ -3757,15 +3755,16 @@ def digestcheck(myfiles, mysettings, strict=0, justmanifest=0):
        eout = portage.output.EOutput()
        eout.quiet = mysettings.get("PORTAGE_QUIET", None) == "1"
        try:
-               eout.ebegin("checking ebuild checksums ;-)")
-               mf.checkTypeHashes("EBUILD")
-               eout.eend(0)
-               eout.ebegin("checking auxfile checksums ;-)")
-               mf.checkTypeHashes("AUX")
-               eout.eend(0)
-               eout.ebegin("checking miscfile checksums ;-)")
-               mf.checkTypeHashes("MISC", ignoreMissingFiles=True)
-               eout.eend(0)
+               if strict:
+                       eout.ebegin("checking ebuild checksums ;-)")
+                       mf.checkTypeHashes("EBUILD")
+                       eout.eend(0)
+                       eout.ebegin("checking auxfile checksums ;-)")
+                       mf.checkTypeHashes("AUX")
+                       eout.eend(0)
+                       eout.ebegin("checking miscfile checksums ;-)")
+                       mf.checkTypeHashes("MISC", ignoreMissingFiles=True)
+                       eout.eend(0)
                for f in myfiles:
                        eout.ebegin("checking %s ;-)" % f)
                        mf.checkFileHashes(mf.findFile(f), f)
@@ -3792,7 +3791,8 @@ def digestcheck(myfiles, mysettings, strict=0, justmanifest=0):
                if f.endswith(".ebuild") and not mf.hasFile("EBUILD", f):
                        writemsg("!!! A file is not listed in the Manifest: '%s'\n" % \
                                os.path.join(pkgdir, f), noiselevel=-1)
-                       return 0
+                       if strict:
+                               return 0
        """ epatch will just grab all the patches out of a directory, so we have to
        make sure there aren't any foreign files that it might grab."""
        filesdir = os.path.join(pkgdir, "files")
@@ -3808,7 +3808,8 @@ def digestcheck(myfiles, mysettings, strict=0, justmanifest=0):
                        if file_type != "AUX" and not f.startswith("digest-"):
                                writemsg("!!! A file is not listed in the Manifest: '%s'\n" % \
                                        os.path.join(filesdir, f), noiselevel=-1)
-                               return 0
+                               if strict:
+                                       return 0
        return 1
 
 # parse actionmap to spawn ebuild with the appropriate args