Source: passwordsafe
Version: 0.98.1+dfsg-3
Severity: wishlist
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: locale timestamps
X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org

Hi!

While working on the "reproducible builds" effort [1], we have noticed
that passwordsafe could not be built reproducibly.
It embeds information from the build process into extra fields of help
zip files and writes C++ files in a locale-dependent way.

The attached patch fixes that by preventing extra fields be stored in
zip files and by using the default Perl-behavior for sorting keys.

Regards,
 Reiner

[1]: https://wiki.debian.org/ReproducibleBuilds
diff --git a/debian/patches/reproducible-build.patch b/debian/patches/reproducible-build.patch
new file mode 100644
index 0000000..d475f68
--- /dev/null
+++ b/debian/patches/reproducible-build.patch
@@ -0,0 +1,32 @@
+Author: Reiner Herrmann <rei...@reiner-h.de>
+Description: Make the build reproducible
+ - strip extra fields from zip file containg help files
+ - don't honour locale in rc2cpp.pl, or else keys written
+   into generated cpp source file will be sorted differently
+   under different locales.
+
+--- a/Misc/rc2cpp.pl
++++ b/Misc/rc2cpp.pl
+@@ -18,7 +18,6 @@
+ 
+ use strict;
+ use warnings;
+-use locale;
+ use File::Basename;
+ 
+ sub usage {
+--- a/help/Makefile.linux
++++ b/help/Makefile.linux
+@@ -6,10 +6,10 @@
+ all: default $(LANGS)
+ 
+ default:
+-	@cd default ; $(ZIP) -qr ../helpEN ./*
++	@cd default ; $(ZIP) -Xqr ../helpEN ./*
+ 
+ $(LANGS):
+-	@cd $(BASEDIRNAME)$@ ; $(ZIP) -qr ../help$@ ./*
++	@cd $(BASEDIRNAME)$@ ; $(ZIP) -Xqr ../help$@ ./*
+ 
+ clean:
+ 	$(RM) *.zip
diff --git a/debian/patches/series b/debian/patches/series
index 9e5563a..c8fc7a6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@ edit_paths
 version_fix
 gmtime_fix
 fix_link
+reproducible-build.patch

Attachment: signature.asc
Description: Digital signature

Reply via email to