Handle EnvironmentError instead of OSError since open()
authorZac Medico <zmedico@gentoo.org>
Thu, 18 Oct 2007 21:10:21 +0000 (21:10 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 18 Oct 2007 21:10:21 +0000 (21:10 -0000)
actually raises IOError. Also, treat a missing SLOT
file as SLOT="" since it is currently possible to
install an ebuild with an undefined SLOT even though
repoman generates a SLOT.missing error with such an
ebuild. (trunk r8174)

svn path=/main/branches/2.1.2/; revision=8175

pym/portage.py

index 932d7c4b8bfc9fc1967bedcdb26027f959d9a24c..91bfc3402e088dc97aab146b8b6015b9dd06369c 100644 (file)
@@ -7878,16 +7878,20 @@ class dblink:
                        return 1
 
                inforoot_slot_file = os.path.join(inforoot, "SLOT")
+               slot = None
                try:
                        f = open(inforoot_slot_file)
                        try:
                                slot = f.read().strip()
                        finally:
                                f.close()
-               except OSError, e:
-                       writemsg("!!! Error reading '%s': %s\n" % (inforoot_slot_file, e),
-                               noiselevel=-1)
-                       return 1
+               except EnvironmentError, e:
+                       if e.errno != errno.ENOENT:
+                               raise
+                       del e
+
+               if slot is None:
+                       slot = ""
 
                if slot != self.settings["SLOT"]:
                        writemsg("!!! WARNING: Expected SLOT='%s', got '%s'\n" % \