Bug#820846: do not change the default compression level

Ximin Luo infinity0 at debian.org
Sun Jan 15 14:36:00 UTC 2017


Control: tags -1 + patch

This patch fixes things for *most* cases:

~~~~
--- /usr/lib/python2.7/dist-packages/gbp/scripts/buildpackage.py
+++ /usr/lib/python2.7/dist-packages/gbp/scripts/buildpackage.py
@@ -320,7 +320,7 @@
                                             upstream_tree))
     gbp.log.debug("Building upstream tarball with compression '%s -%s'" %
                   (options.comp_type, options.comp_level))
-    main_tree = repo.tree_drop_dirs(upstream_tree, options.components)
+    main_tree = repo.tree_drop_dirs(upstream_tree, options.components) if options.components else upstream_tree
     if not git_archive(repo, cp, output_dir, main_tree,
                        options.comp_type,
                        options.comp_level,
~~~~

The reason is because git-archive(1):

[..] behaves differently when given a tree ID versus when given a commit ID or 
tag ID. In the first case the current time is used as the modification time of 
each file in the archive. In the latter case the commit time as recorded in the 
referenced commit object is used instead. Additionally the commit ID is stored 
in a global extended pax header if the tar format is used; it can be extracted 
using git get-tar-commit-id. In ZIP files it is stored as a file comment.

and git-buildpackage passes a tree-ID instead of a commit-ID in order to deal with component (orig-xxx) tarballs. However in most cases we don't need to do this, so can generate tarballs reproducibly.

X

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git



More information about the Reproducible-builds mailing list