diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-02-18 08:52:07 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-02-18 08:52:07 +0000 |
commit | 6964b400aed4e4a80403adc71b13978832feab95 (patch) | |
tree | f3574ee1b8da0359ebe659f30195156c741400fa /pym | |
parent | eaa624f4cef9aca474202bacc898bd9828196e71 (diff) | |
download | portage-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.py | 18 |
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. |