summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-30 20:55:11 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-30 20:55:11 -0700
commit50daef1ab961c42a3352281e915da5a89297e3a9 (patch)
tree8396db45ae2ec7ba70067f9b20c2ffedf92a9939 /pym/_emerge
parent74c61b80af137fea93e5cbe7b59567812bb92d5c (diff)
downloadportage-50daef1ab961c42a3352281e915da5a89297e3a9.tar.gz
portage-50daef1ab961c42a3352281e915da5a89297e3a9.tar.bz2
portage-50daef1ab961c42a3352281e915da5a89297e3a9.zip
Bug #335340 - Add support for PORTAGE_BZIP2_COMMAND and
PORTAGE_BUNZIP2_COMMAND settings in make.conf. This only adds support for binary packages, since that's where pbzip2 can provide the most benefit in common cases.
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/Binpkg.py1
-rw-r--r--pym/_emerge/BinpkgEnvExtractor.py2
-rw-r--r--pym/_emerge/BinpkgExtractorAsync.py3
3 files changed, 3 insertions, 3 deletions
diff --git a/pym/_emerge/Binpkg.py b/pym/_emerge/Binpkg.py
index cfb32ad5d..ac9a68a0f 100644
--- a/pym/_emerge/Binpkg.py
+++ b/pym/_emerge/Binpkg.py
@@ -274,6 +274,7 @@ class Binpkg(CompositeTask):
return
extractor = BinpkgExtractorAsync(background=self.background,
+ env=self.settings.environ(),
image_dir=self._image_dir,
pkg=self.pkg, pkg_path=self._pkg_path,
logfile=self.settings.get("PORTAGE_LOG_FILE"),
diff --git a/pym/_emerge/BinpkgEnvExtractor.py b/pym/_emerge/BinpkgEnvExtractor.py
index 77060589a..f68971b35 100644
--- a/pym/_emerge/BinpkgEnvExtractor.py
+++ b/pym/_emerge/BinpkgEnvExtractor.py
@@ -30,7 +30,7 @@ class BinpkgEnvExtractor(CompositeTask):
def _start(self):
saved_env_path = self._get_saved_env_path()
dest_env_path = self._get_dest_env_path()
- shell_cmd = "bzip2 -dc %s > %s" % \
+ shell_cmd = "${PORTAGE_BUNZIP2_COMMAND:-${PORTAGE_BZIP2_COMMAND} -d} -c -- %s > %s" % \
(_shell_quote(saved_env_path),
_shell_quote(dest_env_path))
extractor_proc = SpawnProcess(
diff --git a/pym/_emerge/BinpkgExtractorAsync.py b/pym/_emerge/BinpkgExtractorAsync.py
index a2bbe7a45..004544e92 100644
--- a/pym/_emerge/BinpkgExtractorAsync.py
+++ b/pym/_emerge/BinpkgExtractorAsync.py
@@ -16,7 +16,7 @@ class BinpkgExtractorAsync(SpawnProcess):
# SIGPIPE handling (128 + SIGPIPE) should be compatible with
# assert_sigpipe_ok() that's used by the ebuild unpack() helper.
self.args = [self._shell_binary, "-c",
- ("bzip2 -dqc -- %s | tar -xp -C %s -f - ; " + \
+ ("${PORTAGE_BUNZIP2_COMMAND:-${PORTAGE_BZIP2_COMMAND} -d} -c -- %s | tar -xp -C %s -f - ; " + \
"p=(${PIPESTATUS[@]}) ; " + \
"if [[ ${p[0]} != 0 && ${p[0]} != %d ]] ; then " % (128 + signal.SIGPIPE) + \
"echo bzip2 failed with status ${p[0]} ; exit ${p[0]} ; fi ; " + \
@@ -26,5 +26,4 @@ class BinpkgExtractorAsync(SpawnProcess):
(portage._shell_quote(self.pkg_path),
portage._shell_quote(self.image_dir))]
- self.env = os.environ.copy()
SpawnProcess._start(self)