For bug #167795, try avoid the population routine when possible, so that FEATURES...
authorZac Medico <zmedico@gentoo.org>
Tue, 20 Feb 2007 21:48:34 +0000 (21:48 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 20 Feb 2007 21:48:34 +0000 (21:48 -0000)
svn path=/main/trunk/; revision=6019

pym/portage/dbapi/bintree.py

index a833f033c09a6753e9877af58a5fb42b2956e334..4a0c70e18f4072e33ea3213dd754dacc452c1080 100644 (file)
@@ -285,6 +285,17 @@ class binarytree(object):
                use for a given cpv.  If a collision will occur with an existing
                package from another category, the existing package will be bumped to
                ${PKGDIR}/${CATEGORY}/${PF}.tbz2 so that both can coexist."""
+               if not self.populated:
+                       # Try to avoid the population routine when possible, so that
+                       # FEATURES=buildpkg doesn't always force population.
+                       mycat, mypkg = catsplit(cpv)
+                       myfile = mypkg + ".tbz2"
+                       full_path = os.path.join(self.pkgdir, "All", myfile)
+                       if not os.path.exists(full_path):
+                               return
+                       tbz2_cat = portage.xpak.tbz2(full_path).getfile("CATEGORY")
+                       if tbz2_cat and tbz2_cat.strip() == mycat:
+                               return
                full_path = self.getname(cpv)
                if "All" == full_path.split(os.path.sep)[-2]:
                        return