Make digestcheck() fail if an ebuild isn't listed in the Manifest. Thanks to pva...
authorZac Medico <zmedico@gentoo.org>
Sat, 11 Nov 2006 10:13:24 +0000 (10:13 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 11 Nov 2006 10:13:24 +0000 (10:13 -0000)
svn path=/main/trunk/; revision=5002

pym/portage.py

index 10f8748c745dda5fb45ca5d249fa84d34a7fd980..604deb1047c84e7b82bbe806555a7748dc8762ac 100644 (file)
@@ -2560,6 +2560,12 @@ def digestcheck(myfiles, mysettings, strict=0, justmanifest=0):
                writemsg("!!! Got: %s\n" % e.value[2], noiselevel=-1)
                writemsg("!!! Expected: %s\n" % e.value[3], noiselevel=-1)
                return 0
+       # Make sure that all of the ebuilds are actually listed in the Manifest.
+       for f in os.listdir(pkgdir):
+               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
        """ 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")