From e687b9872b3fc2454b9da79d3b108caa5c5f97a3 Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Tue, 22 Dec 2009 22:01:53 +0000 Subject: [PATCH] misc fixes to make binpkg installs work with Prefix again svn path=/main/branches/prefix/; revision=15134 --- pym/_emerge/Binpkg.py | 8 ++++---- pym/_emerge/BinpkgChpathtoolAsync.py | 8 +++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/pym/_emerge/Binpkg.py b/pym/_emerge/Binpkg.py index 12055ab8e..c0d0b88c5 100644 --- a/pym/_emerge/Binpkg.py +++ b/pym/_emerge/Binpkg.py @@ -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: diff --git a/pym/_emerge/BinpkgChpathtoolAsync.py b/pym/_emerge/BinpkgChpathtoolAsync.py index 8fda5957f..f1becddd8 100644 --- a/pym/_emerge/BinpkgChpathtoolAsync.py +++ b/pym/_emerge/BinpkgChpathtoolAsync.py @@ -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) -- 2.26.2