Bug #214879 - Fix FEATURES=-strict behavior so that distfiles digests are
authorZac Medico <zmedico@gentoo.org>
Fri, 28 Mar 2008 12:49:25 +0000 (12:49 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 28 Mar 2008 12:49:25 +0000 (12:49 -0000)
always checked. (trunk r9519)

svn path=/main/branches/2.1.2/; revision=9572

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

index 513e3ea5a2f47a4f5c1222524ba6d3d6193f82a2..03e634ff3cd41117f5cdc6a02603a72457f4296f 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 d0271c8226fcd83540b2f6903d81512eb9150fee..ecb391b6489afdc4f4c9ff4774c919bc4ed10e49 100644 (file)
@@ -3074,7 +3074,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:
+       if pkgdir is not None:
                mydigests = Manifest(
                        pkgdir, mysettings["DISTDIR"]).getTypeDigests("DIST")
        else:
@@ -3720,8 +3720,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):
@@ -3733,15 +3731,16 @@ def digestcheck(myfiles, mysettings, strict=0, justmanifest=0):
        eout = 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)
@@ -3768,7 +3767,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")
@@ -3784,7 +3784,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