Separate masked and unavailable ebuilds and report that masked ebuilds can be
authorJason Stubbs <jstubbs@gentoo.org>
Wed, 21 Dec 2005 16:00:43 +0000 (16:00 -0000)
committerJason Stubbs <jstubbs@gentoo.org>
Wed, 21 Dec 2005 16:00:43 +0000 (16:00 -0000)
handled with package.keywords or package.unmask when they are detected.

svn path=/main/trunk/; revision=2427

bin/emaint

index b5508652dcce9bd139b23b7d374be3c10d227cab..617cf2a1a5b8d0c9815c2dd8c5050e9e66e13d27 100755 (executable)
@@ -16,6 +16,7 @@ class WorldHandler(object):
        def __init__(self):
                self.invalid = []
                self.not_installed = []
+               self.masked = []
                self.unavailable = []
                self.okay = []
                self.found = os.access(portage_const.WORLD_FILE, os.R_OK)
@@ -25,8 +26,10 @@ class WorldHandler(object):
                                self.invalid.append(atom)
                        elif not portage.db["/"]["vartree"].dbapi.match(atom):
                                self.not_installed.append(atom)
-                       elif not portage.db["/"]["porttree"].dbapi.match(atom):
+                       elif not portage.db["/"]["porttree"].dbapi.xmatch("match-all", atom):
                                self.unavailable.append(atom)
+                       elif not portage.db["/"]["porttree"].dbapi.match("match-visible", atom):
+                               self.masked.append(atom)
                        else:
                                self.okay.append(atom)
 
@@ -35,7 +38,10 @@ class WorldHandler(object):
                if self.found:
                        errors += map(lambda x: "'%s' is not a valid atom" % x, self.invalid)
                        errors += map(lambda x: "'%s' is not installed" % x, self.not_installed)
+                       errors += map(lambda x: "'%s' is masked (manually fix by adding to package.keywords)" % x, self.masked)
                        errors += map(lambda x: "'%s' has no ebuilds available" % x, self.unavailable)
+                       if self.masked:
+                               errors += "Masked ebuilds can be manually unmasked with package.keywords or package.unmask"
                else:
                        errors.append(portage_const.WORLD_FILE + " could not be opened for reading")
                return errors