From 1140886c80d5ef029bfd7b37b9ff8a24f07e6a69 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Tue, 17 Jan 2017 20:10:00 +0100 Subject: buildpackage: Don't set a compression level if unset and make this the default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows compressors to use the their default compression level. Only applies when not using pristine-tar. Thanks: Antoine Beaupré for investigating Closes: #820846 --- gbp/config.py | 2 +- gbp/scripts/buildpackage.py | 12 +++++++----- gbp/scripts/buildpackage_rpm.py | 16 ++++++++++------ gbp/scripts/common/buildpackage.py | 14 +++++++++++--- 4 files changed, 29 insertions(+), 15 deletions(-) (limited to 'gbp') diff --git a/gbp/config.py b/gbp/config.py index 557e12c4..433bd207 100644 --- a/gbp/config.py +++ b/gbp/config.py @@ -142,7 +142,7 @@ class GbpOptionParser(OptionParser): 'git-author': 'False', 'ignore-regex': '', 'compression': 'auto', - 'compression-level': '9', + 'compression-level': '', 'remote-url-pattern': 'ssh://git.debian.org/git/collab-maint/%(pkg)s.git', 'multimaint': 'True', 'multimaint-merge': 'False', diff --git a/gbp/scripts/buildpackage.py b/gbp/scripts/buildpackage.py index 04c5e938..8c5a8f94 100755 --- a/gbp/scripts/buildpackage.py +++ b/gbp/scripts/buildpackage.py @@ -1,6 +1,6 @@ # vim: set fileencoding=utf-8 : # -# (C) 2006-2016 Guido Günther +# (C) 2006-2017 Guido Günther # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or @@ -318,12 +318,14 @@ def git_archive_build_orig(repo, cp, output_dir, options): gbp.log.info("Creating %s from '%s'" % (du.orig_file(cp, options.comp_type), upstream_tree)) - gbp.log.debug("Building upstream tarball with compression '%s -%s'" % - (options.comp_type, options.comp_level)) + comp_level = int(options.comp_level) if options.comp_level != '' else None + gbp.log.debug("Building upstream tarball with compression '%s'%s" % + (options.comp_type, + "' -%s'" % comp_level if comp_level is not None else '')) main_tree = repo.tree_drop_dirs(upstream_tree, options.components) if not git_archive(repo, cp, output_dir, main_tree, options.comp_type, - options.comp_level, + comp_level, options.with_submodules): raise GbpError("Cannot create upstream tarball at '%s'" % output_dir) for component in options.components: @@ -336,7 +338,7 @@ def git_archive_build_orig(repo, cp, output_dir, options): subtree)) if not git_archive(repo, cp, output_dir, subtree, options.comp_type, - options.comp_level, + comp_level, options.with_submodules, component=component): raise GbpError("Cannot create additional tarball %s at '%s'" diff --git a/gbp/scripts/buildpackage_rpm.py b/gbp/scripts/buildpackage_rpm.py index b34617df..889a863e 100644 --- a/gbp/scripts/buildpackage_rpm.py +++ b/gbp/scripts/buildpackage_rpm.py @@ -1,6 +1,6 @@ # vim: set fileencoding=utf-8 : # -# (C) 2006-2011,2015,2016 Guido Günther +# (C) 2006-2011,2015-2017 Guido Günther # (C) 2012-2015 Intel Corporation # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -207,11 +207,13 @@ def git_archive_build_orig(repo, spec, output_dir, options): gbp.log.info("%s does not exist, creating from '%s'" % (spec.orig_src['filename'], upstream_tree)) if spec.orig_src['compression']: + comp_level = int(options.comp_level) if options.comp_level != '' else None + comp_level_msg = "' -%s'" % comp_level if comp_level is not None else '' gbp.log.debug("Building upstream source archive with compression " "'%s -%s'" % (spec.orig_src['compression'], - options.comp_level)) + comp_level_msg)) if not git_archive(repo, spec, output_dir, upstream_tree, - orig_prefix, options.comp_level, + orig_prefix, comp_level, options.with_submodules): raise GbpError("Cannot create upstream tarball at '%s'" % output_dir) @@ -546,14 +548,16 @@ def main(argv): # Just build source archive from the exported tree gbp.log.info("Creating (native) source archive %s from '%s'" % (spec.orig_src['filename'], tree)) + comp_level = int(options.comp_level) if options.comp_level != '' else None if spec.orig_src['compression']: + comp_level_msg = "' -%s'" % comp_level if comp_level is not None else '' gbp.log.debug("Building source archive with " - "compression '%s -%s'" % + "compression '%s%s'" % (spec.orig_src['compression'], - options.comp_level)) + comp_level_msg)) orig_prefix = spec.orig_src['prefix'] if not git_archive(repo, spec, source_dir, tree, - orig_prefix, options.comp_level, + orig_prefix, comp_level, options.with_submodules): raise GbpError("Cannot create source tarball at '%s'" % source_dir) diff --git a/gbp/scripts/common/buildpackage.py b/gbp/scripts/common/buildpackage.py index 72489e54..8fd7102c 100644 --- a/gbp/scripts/common/buildpackage.py +++ b/gbp/scripts/common/buildpackage.py @@ -87,8 +87,12 @@ def git_archive_submodules(repo, treeish, output, prefix, comp_type, comp_level, if comp_type: # Redirect through stdout directly to the correct output file in # order to avoid determining the output filename of the compressor - ret = os.system("%s --stdout -%s %s %s > %s" % - (comp_type, comp_level, comp_opts, main_archive, + try: + comp_level_opt = '-%d' % comp_level if comp_level is not None else '' + except TypeError as e: + raise GbpError("Invalid compression level '%s'" % comp_level) + ret = os.system("%s --stdout %s %s %s > %s" % + (comp_type, comp_level_opt, comp_opts, main_archive, output)) if ret: raise GbpError("Error creating %s: %d" % (output, ret)) @@ -107,8 +111,12 @@ def git_archive_single(treeish, output, prefix, comp_type, comp_level, comp_opts prefix = sanitize_prefix(prefix) pipe = pipes.Template() pipe.prepend("git archive --format=%s --prefix=%s %s" % (format, prefix, treeish), '.-') + try: + comp_level_opt = '-%d' % comp_level if comp_level is not None else '' + except TypeError as e: + raise GbpError("Invalid compression level '%s'" % comp_level) if comp_type: - pipe.append('%s -c -%s %s' % (comp_type, comp_level, comp_opts), '--') + pipe.append('%s -c %s %s' % (comp_type, comp_level_opt, comp_opts), '--') ret = pipe.copy('', output) if ret: raise GbpError("Error creating %s: %d" % (output, ret)) -- cgit v1.2.3