From: Zac Medico Date: Sun, 18 Feb 2007 08:23:18 +0000 (-0000) Subject: For bug #163990, warn about ebuilds with invalid categories and do not allow them... X-Git-Tag: v2.1.2.1~66 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=eaa624f4cef9aca474202bacc898bd9828196e71;p=portage.git For bug #163990, warn about ebuilds with invalid categories and do not allow them to be installed. (trunk r5987:5988) svn path=/main/branches/2.1.2/; revision=5989 --- diff --git a/pym/portage.py b/pym/portage.py index fe023f378..1691d96a5 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -5610,7 +5610,7 @@ class portdbapi(dbapi): else: global settings self.mysettings = config(clone=settings) - + self._categories = set(self.mysettings.categories) # This is strictly for use in aux_get() doebuild calls when metadata # is generated by the depend phase. It's safest to use a clone for # this purpose because doebuild makes many changes to the config @@ -6026,6 +6026,7 @@ class portdbapi(dbapi): def cp_list(self, mycp, use_cache=1, mytree=None): mysplit=mycp.split("/") + invalid_category = mysplit[0] not in self._categories d={} if mytree: mytrees = [mytree] @@ -6041,6 +6042,10 @@ class portdbapi(dbapi): os.path.join(oroot, mycp, x), noiselevel=-1) continue d[mysplit[0]+"/"+pf] = None + if invalid_category and d: + writemsg(("\n!!! '%s' has a category that is not listed in " + \ + "/etc/portage/categories\n") % mycp, noiselevel=-1) + return [] return d.keys() def freeze(self):