For bug #173184, handle the CommandNotFound that is produced during uninstallation...
authorZac Medico <zmedico@gentoo.org>
Mon, 2 Apr 2007 19:44:25 +0000 (19:44 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 2 Apr 2007 19:44:25 +0000 (19:44 -0000)
svn path=/main/branches/2.1.2/; revision=6333

pym/portage_checksum.py

index cd5e0cb31a58c3b3672e80b39902933ae2ae2307..885535ee04bb7336cf47d0e64f6738b346db239b 100644 (file)
@@ -181,6 +181,7 @@ def perform_checksum(filename, hashname="MD5", calc_prelink=0):
        @rtype: Tuple
        @return: The hash and size of the data
        """
+       global prelink_capable
        myfilename      = filename[:]
        prelink_tmpfile = os.path.join("/", PRIVATE_PATH, "prelink-checksum.tmp." + str(os.getpid()))
        mylock          = None
@@ -189,10 +190,14 @@ def perform_checksum(filename, hashname="MD5", calc_prelink=0):
                        mylock = portage_locks.lockfile(prelink_tmpfile, wantnewlockfile=1)
                        # Create non-prelinked temporary file to checksum.
                        # Files rejected by prelink are summed in place.
-                       retval = portage_exec.spawn([PRELINK_BINARY, "--undo", "-o",
-                               prelink_tmpfile, filename], fd_pipes={})
-                       if retval == os.EX_OK:
-                               myfilename = prelink_tmpfile
+                       try:
+                               retval = portage_exec.spawn([PRELINK_BINARY, "--undo", "-o",
+                                       prelink_tmpfile, filename], fd_pipes={})
+                               if retval == os.EX_OK:
+                                       myfilename = prelink_tmpfile
+                       except portage_exception.CommandNotFound:
+                               # This happens during uninstallation of prelink.
+                               prelink_capable = False
                try:
                        if hashname not in hashfunc_map:
                                raise portage_exception.DigestException(hashname + \