try not to crash when otool isn't there, as that can happen
authorFabian Groffen <grobian@gentoo.org>
Wed, 20 Aug 2008 20:48:37 +0000 (20:48 -0000)
committerFabian Groffen <grobian@gentoo.org>
Wed, 20 Aug 2008 20:48:37 +0000 (20:48 -0000)
svn path=/main/branches/prefix/; revision=11444

pym/portage/dbapi/vartree.py

index 9a5d6d4f349167d40b798a46f8fdbbe8fd8b16fb..50e73c355a1ee2a41a3bb7b50ae029a892342dd9 100644 (file)
@@ -478,12 +478,19 @@ class LinkageMapMachO(object):
                        otool = EPREFIX+"/usr/bin/otool"
                        for items in self._dbapi.plib_registry.getPreservedLibs().values():
                                for x in items:
-                                       proc = subprocess.Popen([otool, "-DX", x.lstrip(".")],
-                                                       stdout=subprocess.PIPE)
-                                       install_name = proc.communicate()[0].split("\n")[0]
-                                       proc = subprocess.Popen([otool, "-LX", x.lstrip(".")],
-                                                       stdout=subprocess.PIPE)
-                                       output = [l.lstrip() for l in proc.communicate()[0].split("\n")]
+                                       try:
+                                               proc = subprocess.Popen([otool, "-DX", x.lstrip(".")],
+                                                               stdout=subprocess.PIPE)
+                                               install_name = proc.communicate()[0].split("\n")[0]
+                                               proc = subprocess.Popen([otool, "-LX", x.lstrip(".")],
+                                                               stdout=subprocess.PIPE)
+                                               output = [l.lstrip() for l in proc.communicate()[0].split("\n")]
+                                       except OSError:
+                                               # if otool can't be found (like in an odcctools
+                                               # upgrade -> binutils-config needs to update
+                                               # symlinks) just ignore it, don't crash
+                                               continue
+
                                        n = ""
                                        for l in output:
                                                if l == '':