summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-02-18 08:52:07 +0000
committerZac Medico <zmedico@gentoo.org>2007-02-18 08:52:07 +0000
commit6964b400aed4e4a80403adc71b13978832feab95 (patch)
treef3574ee1b8da0359ebe659f30195156c741400fa /pym
parenteaa624f4cef9aca474202bacc898bd9828196e71 (diff)
downloadportage-6964b400aed4e4a80403adc71b13978832feab95.tar.gz
portage-6964b400aed4e4a80403adc71b13978832feab95.tar.bz2
portage-6964b400aed4e4a80403adc71b13978832feab95.zip
For bug #163990, warn about binary packages with invalid categories and do not allow them to be installed. (trunk r5989:5990)
svn path=/main/branches/2.1.2/; revision=5991
Diffstat (limited to 'pym')
-rw-r--r--pym/portage.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 1691d96a5..fadc9cec5 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -6498,6 +6498,8 @@ class binarytree(object):
if (not os.path.isdir(self.pkgdir+"/All") and not getbinpkgs):
return 0
+ categories = set(self.settings.categories)
+
if not getbinpkgsonly:
pkg_paths = {}
dirs = listdir(self.pkgdir, dirsonly=True, EmptyOnError=True)
@@ -6536,6 +6538,14 @@ class binarytree(object):
if mycpv in pkg_paths:
# All is first, so it's preferred.
continue
+ if mycat not in categories:
+ writemsg(("!!! Binary package has an " + \
+ "unrecognized category: '%s'\n") % full_path,
+ noiselevel=-1)
+ writemsg(("!!! '%s' has a category that is not" + \
+ " listed in /etc/portage/categories\n") % mycpv,
+ noiselevel=-1)
+ continue
pkg_paths[mycpv] = mypath
self.dbapi.cpv_inject(mycpv)
self._pkg_paths = pkg_paths
@@ -6567,6 +6577,14 @@ class binarytree(object):
continue
mycat=self.remotepkgs[mypkg]["CATEGORY"].strip()
fullpkg=mycat+"/"+mypkg[:-5]
+ if mycat not in categories:
+ writemsg(("!!! Remote binary package has an " + \
+ "unrecognized category: '%s'\n") % fullpkg,
+ noiselevel=-1)
+ writemsg(("!!! '%s' has a category that is not" + \
+ " listed in /etc/portage/categories\n") % fullpkg,
+ noiselevel=-1)
+ continue
mykey=dep_getkey(fullpkg)
try:
# invalid tbz2's can hurt things.