Bug #261992 - Inside Binpkg._prefetch_exit(), avoid potention issues with
authorZac Medico <zmedico@gentoo.org>
Thu, 12 Mar 2009 05:20:48 +0000 (05:20 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 12 Mar 2009 05:20:48 +0000 (05:20 -0000)
shutil.rmtree() by just doing a minimal cleanup.

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

pym/_emerge/__init__.py

index b8a0a505985826817d5006b1331736c743043a21..04c8d72b510c3360d45827ef385e29af74b5cf02 100644 (file)
@@ -3413,12 +3413,14 @@ class Binpkg(CompositeTask):
                pkg_count = self.pkg_count
                if not (self.opts.pretend or self.opts.fetchonly):
                        self._build_dir.lock()
-                       try:
-                               shutil.rmtree(self._build_dir.dir_path)
-                       except EnvironmentError, e:
-                               if e.errno != errno.ENOENT:
-                                       raise
-                               del e
+                       # If necessary, discard old log so that we don't
+                       # append to it.
+                       for x in ('.logid', 'temp/build.log'):
+                               try:
+                                       os.unlink(os.path.join(self._build_dir.dir_path, x))
+                               except OSError:
+                                       pass
+                       # Initialze PORTAGE_LOG_FILE.
                        portage.prepare_build_dirs(self.settings["ROOT"], self.settings, 1)
                fetcher = BinpkgFetcher(background=self.background,
                        logfile=self.settings.get("PORTAGE_LOG_FILE"), pkg=self.pkg,