misc fixes to make binpkg installs work with Prefix again
authorFabian Groffen <grobian@gentoo.org>
Tue, 22 Dec 2009 22:01:53 +0000 (22:01 -0000)
committerFabian Groffen <grobian@gentoo.org>
Tue, 22 Dec 2009 22:01:53 +0000 (22:01 -0000)
svn path=/main/branches/prefix/; revision=15134

pym/_emerge/Binpkg.py
pym/_emerge/BinpkgChpathtoolAsync.py

index 12055ab8ec63bf8d31f0d34e911fc03439daf4f6..c0d0b88c56c08130bb0ef74182acd69baf9125a5 100644 (file)
@@ -212,7 +212,7 @@ class Binpkg(CompositeTask):
                pkg_path = self._pkg_path
 
                dir_mode = 0o755
-               for mydir in (dir_path, self._image_dir, infloc):
+               for mydir in (dir_path, self._image_dir, self._work_dir, infloc):
                        portage.util.ensure_dirs(mydir, uid=portage.data.portage_uid,
                                gid=portage.data.portage_gid, mode=dir_mode)
 
@@ -297,9 +297,9 @@ class Binpkg(CompositeTask):
                # if the prefix differs, we copy it to the image after
                # extraction using chpathtool
                if (self._buildprefix != EPREFIX):
-                       pkgloc = self._image_dir
-               else:
                        pkgloc = self._work_dir
+               else:
+                       pkgloc = self._image_dir
 
                extractor = BinpkgExtractorAsync(background=self.background,
                        image_dir=pkgloc,
@@ -319,7 +319,7 @@ class Binpkg(CompositeTask):
                        chpathtool = BinpkgChpathtoolAsync(background=self.background,
                                image_dir=self._image_dir, work_dir=self._work_dir,
                                buildprefix=self._buildprefix, eprefix=EPREFIX,
-                               scheduler=self.scheduler)
+                               pkg=self.pkg, scheduler=self.scheduler)
                        self._writemsg_level(">>> Adjusting Prefix to %s\n" % EPREFIX)
                        self._start_task(chpathtool, self._chpathtool_exit)
                else:
index 8fda5957fab35a2fccdfd0ca6c02e185b1c06e68..f1becddd8f2a43e4e17508e895c75ce7b298a151 100644 (file)
@@ -13,9 +13,11 @@ else:
 import portage
 class BinpkgChpathtoolAsync(SpawnProcess):
 
-       __slots__ = ("buildprefix", "eprefix", "image_dir", "work_dir")
+       __slots__ = ("buildprefix", "eprefix", "image_dir", "pkg", "work_dir")
 
        _shell_binary = portage.const.BASH_BINARY
+       _chpathtool_binary = \
+                       os.path.join(portage.const.PORTAGE_BIN_PATH, "chpathtool")
 
        def _start(self):
                b = os.path.join(self.work_dir, self.buildprefix.lstrip(os.path.sep))
@@ -26,8 +28,8 @@ class BinpkgChpathtoolAsync(SpawnProcess):
                portage.util.ensure_dirs(i)
                os.rmdir(i)
                self.args = [self._shell_binary, "-c",
-                       "chpathtool -q '%s' '%s' '%s' '%s'" % \
-                               (b, i, self.buildprefix, self.eprefix)]
+                       "%s -q '%s' '%s' '%s' '%s'" % \
+                               (self._chpathtool_binary, b, i, self.buildprefix, self.eprefix)]
 
                self.env = self.pkg.root_config.settings.environ()
                SpawnProcess._start(self)