diff options
author | Zac Medico <zmedico@gentoo.org> | 2017-07-29 17:03:25 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2017-07-29 17:07:04 -0700 |
commit | fa1ba6318e114cd9f3bb5b4e61ed3dab7521bc19 (patch) | |
tree | ca612d3e97e8157db3b606527a8c93acfbe64b37 | |
parent | Support different compressors for binary packages (diff) | |
download | portage-fa1ba6318e114cd9f3bb5b4e61ed3dab7521bc19.tar.gz portage-fa1ba6318e114cd9f3bb5b4e61ed3dab7521bc19.tar.bz2 portage-fa1ba6318e114cd9f3bb5b4e61ed3dab7521bc19.zip |
config.validate: check for invalid BINPKG_COMPRESSION
-rw-r--r-- | pym/portage/package/ebuild/config.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index f8043dbf5..3d232e0be 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -25,6 +25,7 @@ portage.proxy.lazyimport.lazyimport(globals(), 'portage.dep.soname.SonameAtom:SonameAtom', 'portage.dbapi.vartree:vartree', 'portage.package.ebuild.doebuild:_phase_func_map', + 'portage.util.compression_probe:_compressors', 'portage.util.locale:check_locale,split_LC_ALL', ) from portage import bsd_chflags, \ @@ -1171,6 +1172,32 @@ class config(object): writemsg(_("!!! See https://bugs.pypy.org/issue833 for details.\n"), noiselevel=-1) + binpkg_compression = self.get("BINPKG_COMPRESSION") + if binpkg_compression: + try: + compression = _compressors[binpkg_compression] + except KeyError as e: + writemsg("!!! BINPKG_COMPRESSION contains invalid or " + "unsupported compression method: %s" % e.args[0], + noiselevel=-1) + else: + try: + compression_binary = shlex_split( + portage.util.varexpand(compression["compress"], + mydict=self))[0] + except IndexError as e: + writemsg("!!! BINPKG_COMPRESSION contains invalid or " + "unsupported compression method: %s" % e.args[0], + noiselevel=-1) + else: + if portage.process.find_binary( + compression_binary) is None: + missing_package = compression["package"] + writemsg("!!! BINPKG_COMPRESSION unsupported %s. " + "Missing package: %s" % + (binpkg_compression, missing_package), + noiselevel=-1) + def load_best_module(self,property_string): best_mod = best_from_dict(property_string,self.modules,self.module_priority) mod = None |