* [gentoo-commits] proj/portage:master commit in: bin/, pym/_emerge/, pym/portage/package/ebuild/
@ 2018-05-02 1:56 99% Zac Medico
0 siblings, 0 replies; 1+ results
From: Zac Medico @ 2018-05-02 1:56 UTC (permalink / raw
To: gentoo-commits
commit: 2b40f119d4334bd3d4bcd2824f575700963b40ef
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed May 2 01:27:30 2018 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Wed May 2 01:49:03 2018 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=2b40f119
BINPKG_COMPRESS: allow empty setting to disable compression (bug 654456)
In some cases it might make sense to disable compression, so
allow an empty setting to disable compression (consistent with
PORTAGE_COMPRESS).
Bug: https://bugs.gentoo.org/654456
bin/misc-functions.sh | 2 +-
bin/quickpkg | 11 +++++++++--
| 16 ++++++++++++----
pym/portage/package/ebuild/doebuild.py | 6 +++++-
4 files changed, 27 insertions(+), 8 deletions(-)
diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh
index a6330ee93..0648e6cfd 100755
--- a/bin/misc-functions.sh
+++ b/bin/misc-functions.sh
@@ -481,7 +481,7 @@ __dyn_package() {
[ -z "${PORTAGE_COMPRESSION_COMMAND}" ] && \
die "PORTAGE_COMPRESSION_COMMAND is unset"
tar $tar_options -cf - $PORTAGE_BINPKG_TAR_OPTS -C "${D}" . | \
- $PORTAGE_COMPRESSION_COMMAND -c > "$PORTAGE_BINPKG_TMPFILE"
+ $PORTAGE_COMPRESSION_COMMAND > "$PORTAGE_BINPKG_TMPFILE"
assert "failed to pack binary package: '$PORTAGE_BINPKG_TMPFILE'"
PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \
"${PORTAGE_PYTHON:-/usr/bin/python}" "$PORTAGE_BIN_PATH"/xpak-helper.py recompose \
diff --git a/bin/quickpkg b/bin/quickpkg
index ec6f50409..9765ec717 100755
--- a/bin/quickpkg
+++ b/bin/quickpkg
@@ -142,8 +142,15 @@ def quickpkg_atom(options, infos, arg, eout):
try:
compression = _compressors[binpkg_compression]
except KeyError as e:
- eout.eerror("Invalid or unsupported compression method: %s" % e.args[0])
- return 1
+ if binpkg_compression:
+ eout.eerror("Invalid or unsupported compression method: %s" % e.args[0])
+ return 1
+ # Empty BINPKG_COMPRESS disables compression.
+ binpkg_compression = 'none'
+ compression = {
+ 'compress': 'cat',
+ 'package': 'sys-apps/coreutils',
+ }
try:
compression_binary = shlex_split(varexpand(compression["compress"], mydict=settings))[0]
except IndexError as e:
--git a/pym/_emerge/BinpkgExtractorAsync.py b/pym/_emerge/BinpkgExtractorAsync.py
index 4468efde6..3733bdeb5 100644
--- a/pym/_emerge/BinpkgExtractorAsync.py
+++ b/pym/_emerge/BinpkgExtractorAsync.py
@@ -17,6 +17,8 @@ from portage.util import (
)
import signal
import subprocess
+import tarfile
+
class BinpkgExtractorAsync(SpawnProcess):
@@ -38,6 +40,13 @@ class BinpkgExtractorAsync(SpawnProcess):
decomp = _compressors.get(compression_probe(self.pkg_path))
if decomp is not None:
decomp_cmd = decomp.get("decompress")
+ elif tarfile.is_tarfile(portage._unicode_encode(self.pkg_path,
+ encoding=portage._encodings['fs'], errors='strict')):
+ decomp_cmd = 'cat'
+ decomp = {
+ 'compress': 'cat',
+ 'package': 'sys-apps/coreutils',
+ }
else:
decomp_cmd = None
if decomp_cmd is None:
@@ -56,16 +65,15 @@ class BinpkgExtractorAsync(SpawnProcess):
if find_binary(decompression_binary) is None:
# Try alternative command if it exists
- if _compressors.get(compression_probe(self.pkg_path)).get("decompress_alt"):
- decomp_cmd = _compressors.get(
- compression_probe(self.pkg_path)).get("decompress_alt")
+ if decomp.get("decompress_alt"):
+ decomp_cmd = decomp.get("decompress_alt")
try:
decompression_binary = shlex_split(varexpand(decomp_cmd, mydict=self.env))[0]
except IndexError:
decompression_binary = ""
if find_binary(decompression_binary) is None:
- missing_package = _compressors.get(compression_probe(self.pkg_path)).get("package")
+ missing_package = decomp.get("package")
self.scheduler.output("!!! %s\n" %
_("File compression unsupported %s.\n Command was: %s.\n Maybe missing package: %s") %
(self.pkg_path, varexpand(decomp_cmd, mydict=self.env), missing_package), log_path=self.logfile,
diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index 0dabafeb7..31b552ff3 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -534,7 +534,11 @@ def doebuild_environment(myebuild, mydo, myroot=None, settings=None,
try:
compression = _compressors[binpkg_compression]
except KeyError as e:
- writemsg("Warning: Invalid or unsupported compression method: %s" % e.args[0])
+ if binpkg_compression:
+ writemsg("Warning: Invalid or unsupported compression method: %s" % e.args[0])
+ else:
+ # Empty BINPKG_COMPRESS disables compression.
+ mysettings['PORTAGE_COMPRESSION_COMMAND'] = 'cat'
else:
try:
compression_binary = shlex_split(varexpand(compression["compress"], mydict=settings))[0]
^ permalink raw reply related [relevance 99%]
Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2018-05-02 1:56 99% [gentoo-commits] proj/portage:master commit in: bin/, pym/_emerge/, pym/portage/package/ebuild/ Zac Medico
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox