Source: git Version: 1:2.7.0-1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps fileordering X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org
Hi! While working on the "reproducible builds" effort [1], we have noticed that git could not be built reproducibly. Build timestamps are embedded into generated documentation files, gzip headers of manpages and other files. It also generates unsorted md5sums and tclIndex files. The attached patch fixes those issues. Regards, Reiner [1]: https://wiki.debian.org/ReproducibleBuilds
diff --git a/debian/diff/0014-remove-update-label-in-footer.diff b/debian/diff/0014-remove-update-label-in-footer.diff new file mode 100644 index 0000000..5fab8f1 --- /dev/null +++ b/debian/diff/0014-remove-update-label-in-footer.diff @@ -0,0 +1,11 @@ +--- a/Documentation/Makefile ++++ b/Documentation/Makefile +@@ -98,7 +98,7 @@ + # DESTDIR = + + ASCIIDOC = asciidoc +-ASCIIDOC_EXTRA = ++ASCIIDOC_EXTRA = --attribute footer-style=none + ASCIIDOC_HTML = xhtml11 + ASCIIDOC_DOCBOOK = docbook + ASCIIDOC_CONF = -f asciidoc.conf diff --git a/debian/diff/0015-sort-tcl-files.diff b/debian/diff/0015-sort-tcl-files.diff new file mode 100644 index 0000000..3bf3a20 --- /dev/null +++ b/debian/diff/0015-sort-tcl-files.diff @@ -0,0 +1,20 @@ +--- a/git-gui/Makefile ++++ b/git-gui/Makefile +@@ -18,7 +18,7 @@ + SCRIPT_SH = git-gui.sh + GITGUI_MAIN := git-gui + GITGUI_BUILT_INS = git-citool +-ALL_LIBFILES = $(wildcard lib/*.tcl) ++ALL_LIBFILES = $(sort $(wildcard lib/*.tcl)) + PRELOAD_FILES = lib/class.tcl + NONTCL_LIBFILES = \ + lib/git-gui.ico \ +@@ -252,7 +252,7 @@ + lib/tclIndex: $(ALL_LIBFILES) GIT-GUI-VARS + $(QUIET_INDEX)if echo \ + $(foreach p,$(PRELOAD_FILES),source $p\;) \ +- auto_mkindex lib '*.tcl' \ ++ auto_mkindex lib $(subst lib/,,$(ALL_LIBFILES)) \ + | $(TCL_PATH) $(QUIET_2DEVNULL); then : ok; \ + else \ + echo >&2 " * $(TCL_PATH) failed; using unoptimized loading"; \ diff --git a/debian/implicit b/debian/implicit index 269168f..6c27b60 100644 --- a/debian/implicit +++ b/debian/implicit @@ -33,7 +33,7 @@ deb-checkuid: debian/$*/usr/share/doc/$*/changelog' @test -s debian/$*/usr/share/doc/$*/changelog || \ sh -cx 'rm -f debian/$*/usr/share/doc/$*/changelog' - @gzip -9 debian/$*/usr/share/doc/$*/changelog* + @gzip -9n debian/$*/usr/share/doc/$*/changelog* %.deb-docs-docs: %.deb-docs-base @for i in `cat debian/$*.docs 2>/dev/null || :`; do \ if test -d $$i; then \ @@ -53,7 +53,7 @@ deb-checkuid: @if test -r debian/$*.NEWS.Debian; then \ sh -cx 'install -m0644 debian/$*.NEWS.Debian \ debian/$*/usr/share/doc/$*/NEWS.Debian && \ - gzip -9 debian/$*/usr/share/doc/$*/NEWS.Debian'; \ + gzip -9n debian/$*/usr/share/doc/$*/NEWS.Debian'; \ fi %.deb-docs-examples: %.deb-docs-docs @rm -rf debian/$*/usr/share/doc/$*/examples @@ -104,7 +104,7 @@ deb-checkuid: : debian/$*/DEBIAN/md5sums @rm -f debian/$*/DEBIAN/md5sums @cd debian/$* && find * -path 'DEBIAN' -prune -o \ - -type f -exec md5sum {} >>DEBIAN/md5sums \; + -type f -exec md5sum {} \; | LC_ALL=C sort >>DEBIAN/md5sums @chmod 0644 debian/$*/DEBIAN/md5sums @test -s debian/$*/DEBIAN/md5sums || \ rm -f debian/$*/DEBIAN/md5sums diff --git a/debian/rules b/debian/rules index 61c735b..9378878 100755 --- a/debian/rules +++ b/debian/rules @@ -203,7 +203,7 @@ install-indep: build-arch-stamp build-indep-stamp done rm -f '$(GIT)'-man/usr/share/man/man3/Git::SVN*.3pm chmod 0644 '$(GIT)'-man/usr/share/man/man?/*.[0-9]* - gzip -9 '$(GIT)'-man/usr/share/man/man?/*.[0-9]* + gzip -9n '$(GIT)'-man/usr/share/man/man?/*.[0-9]* # git-doc rm -rf '$(GIT)'-doc # don't include git-p4 man page @@ -219,7 +219,7 @@ install-indep: build-arch-stamp build-indep-stamp install -d -m0755 '$(GIT)'-$$i/usr/share/man/man1 && \ install -m0644 '$(TMP)'/usr/share/man/man1/git-$$i* \ '$(GIT)'-$$i/usr/share/man/man1/ && \ - gzip -9 '$(GIT)'-$$i/usr/share/man/man1/*.1 || exit 1; \ + gzip -9n '$(GIT)'-$$i/usr/share/man/man1/*.1 || exit 1; \ done install -d -m0755 '$(GIT)'-svn/usr/share/perl5/Git cp -R '$(TMP)'/usr/share/perl5/Git/SVN* \ @@ -229,7 +229,7 @@ install-indep: build-arch-stamp build-indep-stamp install -d -m0755 '$(GIT)'-svn/usr/share/man/man3 install -m 0644 '$(TMP)'/usr/share/man/man3/Git::SVN*.3pm \ '$(GIT)'-svn/usr/share/man/man3/ - gzip -9 '$(GIT)'-svn/usr/share/man/man3/*.3pm + gzip -9n '$(GIT)'-svn/usr/share/man/man3/*.3pm # git-cvs install -d -m0755 '$(GIT)'-cvs/usr/bin install -m0755 '$(TMP)'/usr/bin/git-cvsserver '$(GIT)'-cvs/usr/bin/ @@ -241,7 +241,7 @@ install-indep: build-arch-stamp build-indep-stamp install -d -m0755 '$(GIT)'-arch/usr/share/man/man1 install -m0644 '$(TMP)'/usr/share/man/man1/git-archimport.1 \ '$(GIT)'-arch/usr/share/man/man1/ - gzip -9 '$(GIT)'-arch/usr/share/man/man1/*.1 + gzip -9n '$(GIT)'-arch/usr/share/man/man1/*.1 # git-mediawiki rm -rf '$(GIT)'-mediawiki install -d -m0755 '$(GIT)'-mediawiki/usr/share/perl5/Git @@ -260,7 +260,7 @@ install-indep: build-arch-stamp build-indep-stamp install -d -m0755 '$(GIT)'-email/usr/share/man/man1 install -m0644 '$(TMP)'/usr/share/man/man1/git-send-email.1 \ '$(GIT)'-email/usr/share/man/man1/ - gzip -9 '$(GIT)'-email/usr/share/man/man1/*.1 + gzip -9n '$(GIT)'-email/usr/share/man/man1/*.1 # git-daemon-run rm -rf '$(GIT)'-daemon-run install -d -m0755 '$(GIT)'-daemon-run/etc/sv/git-daemon/log @@ -313,7 +313,7 @@ install-indep: build-arch-stamp build-indep-stamp install -m0644 '$(TMP)'/usr/share/man/man1/git-$$i* \ '$(GIT)'-gui/usr/share/man/man1/; \ done - gzip -9 '$(GIT)'-gui/usr/share/man/man1/*.1 + gzip -9n '$(GIT)'-gui/usr/share/man/man1/*.1 install -d -m0755 '$(GIT)'-gui/usr/share/git-gui cp -a '$(TMP)'/usr/share/git-gui/lib '$(GIT)'-gui/usr/share/git-gui/ # gitk @@ -324,7 +324,7 @@ install-indep: build-arch-stamp build-indep-stamp install -d -m0755 '$(GIT)'k/usr/share/man/man1 install -m0644 '$(TMP)'/usr/share/man/man1/gitk.1 \ '$(GIT)'k/usr/share/man/man1/ - gzip -9 '$(GIT)'k/usr/share/man/man1/*.1 + gzip -9n '$(GIT)'k/usr/share/man/man1/*.1 install -d -m0755 '$(GIT)'k/usr/share/gitk cp -a '$(TMP)'/usr/share/gitk/lib '$(GIT)'k/usr/share/gitk/ # gitweb
signature.asc
Description: PGP signature