1 |
commit: fa1ba6318e114cd9f3bb5b4e61ed3dab7521bc19 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Jul 30 00:03:25 2017 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Jul 30 00:07:04 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=fa1ba631 |
7 |
|
8 |
config.validate: check for invalid BINPKG_COMPRESSION |
9 |
|
10 |
pym/portage/package/ebuild/config.py | 27 +++++++++++++++++++++++++++ |
11 |
1 file changed, 27 insertions(+) |
12 |
|
13 |
diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py |
14 |
index f8043dbf5..3d232e0be 100644 |
15 |
--- a/pym/portage/package/ebuild/config.py |
16 |
+++ b/pym/portage/package/ebuild/config.py |
17 |
@@ -25,6 +25,7 @@ portage.proxy.lazyimport.lazyimport(globals(), |
18 |
'portage.dep.soname.SonameAtom:SonameAtom', |
19 |
'portage.dbapi.vartree:vartree', |
20 |
'portage.package.ebuild.doebuild:_phase_func_map', |
21 |
+ 'portage.util.compression_probe:_compressors', |
22 |
'portage.util.locale:check_locale,split_LC_ALL', |
23 |
) |
24 |
from portage import bsd_chflags, \ |
25 |
@@ -1171,6 +1172,32 @@ class config(object): |
26 |
writemsg(_("!!! See https://bugs.pypy.org/issue833 for details.\n"), |
27 |
noiselevel=-1) |
28 |
|
29 |
+ binpkg_compression = self.get("BINPKG_COMPRESSION") |
30 |
+ if binpkg_compression: |
31 |
+ try: |
32 |
+ compression = _compressors[binpkg_compression] |
33 |
+ except KeyError as e: |
34 |
+ writemsg("!!! BINPKG_COMPRESSION contains invalid or " |
35 |
+ "unsupported compression method: %s" % e.args[0], |
36 |
+ noiselevel=-1) |
37 |
+ else: |
38 |
+ try: |
39 |
+ compression_binary = shlex_split( |
40 |
+ portage.util.varexpand(compression["compress"], |
41 |
+ mydict=self))[0] |
42 |
+ except IndexError as e: |
43 |
+ writemsg("!!! BINPKG_COMPRESSION contains invalid or " |
44 |
+ "unsupported compression method: %s" % e.args[0], |
45 |
+ noiselevel=-1) |
46 |
+ else: |
47 |
+ if portage.process.find_binary( |
48 |
+ compression_binary) is None: |
49 |
+ missing_package = compression["package"] |
50 |
+ writemsg("!!! BINPKG_COMPRESSION unsupported %s. " |
51 |
+ "Missing package: %s" % |
52 |
+ (binpkg_compression, missing_package), |
53 |
+ noiselevel=-1) |
54 |
+ |
55 |
def load_best_module(self,property_string): |
56 |
best_mod = best_from_dict(property_string,self.modules,self.module_priority) |
57 |
mod = None |