Source: cvm Version: 0.96-1.2 Severity: wishlist Tags: patch User: [email protected] Usertags: timestamps fileordering umask X-Debbugs-Cc: [email protected]
Hi! While working on the "reproducible builds" effort [1], we have noticed that cvm could not be built reproducibly. Build timestamps are embedded in gzip headers, the permissions of some directories are influenced by the umask and the order of the md5sums file can vary. The attached patch fixes those issues. Regards, Reiner [1]: https://wiki.debian.org/ReproducibleBuilds
diff --git a/debian/implicit b/debian/implicit
index 57a444a..b009aa1 100644
--- a/debian/implicit
+++ b/debian/implicit
@@ -35,7 +35,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:
@for i in `cat debian/$*.docs 2>/dev/null || :`; do \
sh -cx "install -m0644 $$i debian/$*/usr/share/doc/$*/" || exit 1; \
@@ -46,7 +46,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:
@rm -rf debian/$*/usr/share/doc/$*/examples
@@ -79,7 +79,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
%.deb-DEBIAN: %.deb-checkdir %.deb-DEBIAN-base %.deb-DEBIAN-scripts \
%.deb-DEBIAN-md5sums
: debian/$*/DEBIAN/ ok
diff --git a/debian/rules b/debian/rules
index db4c430..addac7d 100755
--- a/debian/rules
+++ b/debian/rules
@@ -90,24 +90,26 @@ install: deb-checkdir deb-checkuid build-stamp
cvm-qmail.8 cvm-testclient.8 cvm-unix.8 cvm-vmailmgr.8; do \
install -m0644 debian/$$i '$(DIR)'/usr/share/man/man8/ || exit 1; \
done
- gzip -9 '$(DIR)'/usr/share/man/man8/*.8
+ gzip -9n '$(DIR)'/usr/share/man/man8/*.8
install -d -m0755 '$(DIR)'/usr/share/man/man7
install -m0644 debian/cvm-sql.7 '$(DIR)'/usr/share/man/man7/
- gzip -9 '$(DIR)'/usr/share/man/man7/*.7
+ gzip -9n '$(DIR)'/usr/share/man/man7/*.7
# cvm-mysql
install -d -m0755 '$(DIR)'-mysql/usr/bin
mv '$(DIR)'/usr/bin/cvm-mysql* '$(DIR)'-mysql/usr/bin/
install -d -m0755 '$(DIR)'-mysql/usr/share/man/man8
install -m0644 debian/cvm-mysql.8 '$(DIR)'-mysql/usr/share/man/man8/
- gzip -9 '$(DIR)'-mysql/usr/share/man/man8/*.8
+ gzip -9n '$(DIR)'-mysql/usr/share/man/man8/*.8
# cvm-pgsql
install -d -m0755 '$(DIR)'-pgsql/usr/bin
mv '$(DIR)'/usr/bin/cvm-pgsql* '$(DIR)'-pgsql/usr/bin/
install -d -m0755 '$(DIR)'-pgsql/usr/share/man/man8
install -m0644 debian/cvm-pgsql.8 '$(DIR)'-pgsql/usr/share/man/man8/
- gzip -9 '$(DIR)'-pgsql/usr/share/man/man8/*.8
+ gzip -9n '$(DIR)'-pgsql/usr/share/man/man8/*.8
# changelog
rm -f changelog && ln -s ChangeLog changelog
+ # fix directory permissions
+ find '$(DIR)' '$(LDIR)'-dev -type d -print0 | xargs -0r chmod 0755
binary: binary-indep binary-arch
binary-indep:
signature.asc
Description: PGP signature
_______________________________________________ Reproducible-builds mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
