[Reproducible-builds] Bug#818430: ruby-coveralls: please make the build reproducible

2016-03-19 Thread Dhole
Source: ruby-coveralls 
Version: 0.7.0-2 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that
ruby-coveralls could not be built reproducibly.

When generating the manpages, ronn uses the local timezone in the
embedded timestamps.

The attached patch fixes this by setting the timezone to UTC before
calling ronn. Once applied, ruby-coveralls can be built reproducibly in
our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru ruby-coveralls-0.7.0/debian/changelog 
ruby-coveralls-0.7.0/debian/changelog
--- ruby-coveralls-0.7.0/debian/changelog   2015-12-15 18:17:57.0 
+0100
+++ ruby-coveralls-0.7.0/debian/changelog   2016-03-16 22:55:08.0 
+0100
@@ -1,3 +1,11 @@
+ruby-coveralls (0.7.0-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set a deterministic date in the manpages to make the package build
+reproducibly. 
+
+ -- Eduard Sanou   Wed, 16 Mar 2016 22:52:56 +0100
+
 ruby-coveralls (0.7.0-2) unstable; urgency=low
 
   * Add missing B-D on ruby-multi-json. (Closes: #802116).
diff -Nru ruby-coveralls-0.7.0/debian/rules ruby-coveralls-0.7.0/debian/rules
--- ruby-coveralls-0.7.0/debian/rules   2014-03-05 00:51:37.0 +0100
+++ ruby-coveralls-0.7.0/debian/rules   2016-03-17 00:15:04.0 +0100
@@ -16,7 +16,7 @@
 
 override_dh_auto_build:
dh_auto_build
-   ronn --roff debian/coveralls.mkd
+   TZ=UTC ronn --roff debian/coveralls.mkd
 
 override_dh_auto_clean:
dh_auto_clean


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#818431: seqprep: please make the build reproducible

2016-03-19 Thread Dhole
Source: seqprep 
Version: 1.1-4 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that seqprep could not be built reproducibly.

When generating the manpages, ronn uses the local timezone in the
embedded timestamps.

The attached patch fixes this by setting the timezone to UTC before
calling ronn. Once applied, seqprep can be built reproducibly in our
current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru seqprep-1.1/debian/changelog seqprep-1.1/debian/changelog
--- seqprep-1.1/debian/changelog2015-09-28 13:46:56.0 +0200
+++ seqprep-1.1/debian/changelog2016-03-17 00:06:55.0 +0100
@@ -1,3 +1,11 @@
+seqprep (1.1-4.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix timezone to UTC when building manpages to get reproducible embedded
+dates. 
+
+ -- Eduard Sanou   Thu, 17 Mar 2016 00:06:36 +0100
+
 seqprep (1.1-4) unstable; urgency=medium
 
   * Really apply patch created by Graham Inggs
diff -Nru seqprep-1.1/debian/rules seqprep-1.1/debian/rules
--- seqprep-1.1/debian/rules2015-09-28 08:12:13.0 +0200
+++ seqprep-1.1/debian/rules2016-03-17 00:06:19.0 +0100
@@ -9,7 +9,7 @@
 override_dh_auto_build:
dh_auto_build
cp SeqPrep seqprep
-   ronn -r --manual=seqprep --organization='Cancer Therapeutics Innovation 
Group' debian/seqprep.1.ronn
+   TZ=UTC ronn -r --manual=seqprep --organization='Cancer Therapeutics 
Innovation Group' debian/seqprep.1.ronn
markdown_py -f README.html README.md
 
 override_dh_clean:


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#819325: angular.js: please make the build reproducible

2016-03-26 Thread Dhole
Source: angular.js 
Version: 1.3.20-2 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that angular.js could not be built reproducibly.

When processing translation files and using a non-UTF8 locale, grep
misdetects them as binary files and embeds the line: "Binary file
(standard input) matches"

The attached patch fixes this by telling grep to treat the input as
text. Once applied, angular.js can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru angular.js-1.3.20/debian/changelog angular.js-1.3.20/debian/changelog
--- angular.js-1.3.20/debian/changelog  2016-03-14 16:57:49.0 +0100
+++ angular.js-1.3.20/debian/changelog  2016-03-25 23:51:20.0 +0100
@@ -1,3 +1,10 @@
+angular.js (1.3.20-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix misdetection as binary input in grep when LC_ALL=C 
+
+ -- Eduard Sanou   Fri, 25 Mar 2016 23:50:43 +0100
+
 angular.js (1.3.20-2) unstable; urgency=low
 
   * Don't ship minified files until uglifyjs is updated (closes: #815865).
diff -Nru angular.js-1.3.20/debian/rules angular.js-1.3.20/debian/rules
--- angular.js-1.3.20/debian/rules  2016-03-14 16:54:56.0 +0100
+++ angular.js-1.3.20/debian/rules  2016-03-25 23:50:34.0 +0100
@@ -33,7 +33,7 @@
echo \'use strict\'\;) \
>$(CURDIR)/debian/build/angular.js-head
ln -s $(CURDIR)/debian/smash-angularSrc.js $(CURDIR)
-   smash $(CURDIR)/smash-angularSrc.js | egrep -v 'use strict' \
+   smash $(CURDIR)/smash-angularSrc.js | egrep -a -v 'use strict' \
>$(CURDIR)/debian/build/angular.js-body
cat $(CURDIR)/debian/build/angular.js-head \
$(CURDIR)/debian/build/angular.js-body \
@@ -108,7 +108,7 @@
(cat $(CURDIR)/src/module.prefix && \
echo \'use strict\'\;) \
>$(CURDIR)/debian/build/angular.js-module_head
-   smash $(CURDIR)/smash-ngRoute.js | egrep -v 'use strict' \
+   smash $(CURDIR)/smash-ngRoute.js | egrep -a -v 'use strict' \
>$(CURDIR)/debian/build/angular.js-route_body
cat $(CURDIR)/debian/build/angular.js-module_head \
$(CURDIR)/debian/build/angular.js-route_body | \
@@ -120,7 +120,7 @@
 
# angular-sanitize.js
ln -s $(CURDIR)/debian/smash-ngSanitize.js $(CURDIR)
-   smash $(CURDIR)/smash-ngSanitize.js | egrep -v 'use strict' \
+   smash $(CURDIR)/smash-ngSanitize.js | egrep -a -v 'use strict' \
>$(CURDIR)/debian/build/angular.js-sanitize_body
cat $(CURDIR)/debian/build/angular.js-module_head \
$(CURDIR)/debian/build/angular.js-sanitize_body | \
@@ -132,7 +132,7 @@
 
# angular-touch.js
ln -s $(CURDIR)/debian/smash-ngTouch.js $(CURDIR)
-   smash $(CURDIR)/smash-ngTouch.js | egrep -v 'use strict' \
+   smash $(CURDIR)/smash-ngTouch.js | egrep -a -v 'use strict' \
>$(CURDIR)/debian/build/angular.js-touch_body
cat $(CURDIR)/debian/build/angular.js-module_head \
$(CURDIR)/debian/build/angular.js-touch_body | \
@@ -147,7 +147,7 @@
((cat $(CURDIR)/src/loader.prefix | egrep -v  'use strict') && \
echo \'use strict\'\;) \
>$(CURDIR)/debian/build/angular.js-loader_head
-   smash $(CURDIR)/smash-angularLoader.js | egrep -v 'use strict' \
+   smash $(CURDIR)/smash-angularLoader.js | egrep -a -v 'use strict' \
>$(CURDIR)/debian/build/angular.js-loader_body
cat $(CURDIR)/debian/build/angular.js-loader_head \
$(CURDIR)/debian/build/angular.js-loader_body | \


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#820745: gap: please make the build reproducible

2016-04-11 Thread Dhole
Source: gap 
Version: 4r7p9-1 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed that
gap embeds timestamps of the current time in htm files generated by
etc/convert.pl.

This makes packages that use etc/convert.pl generate unreproducible
documentation files.

The attached patch fixes this by making convert.pl embed the date taken
from the SOURCE_DATE_EPOCH env var if this env var is set, or the
localtime otherwise. Once applied, convert.pl can generate reproducible
htm files in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru gap-4r7p9/debian/changelog gap-4r7p9/debian/changelog
--- gap-4r7p9/debian/changelog  2015-12-07 20:06:14.0 +0100
+++ gap-4r7p9/debian/changelog  2016-04-10 18:36:58.0 +0200
@@ -1,3 +1,10 @@
+gap (4r7p9-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Honour SOURCE_DATE_EPOCH when embedding timestamps in convert.pl 
+
+ -- Eduard Sanou   Sun, 10 Apr 2016 18:36:37 +0200
+
 gap (4r7p9-1) unstable; urgency=low
 
   * New upstream release
diff -Nru gap-4r7p9/debian/patches/honour-SOURCE_DATE_EPOCH-in-convert.pl.patch 
gap-4r7p9/debian/patches/honour-SOURCE_DATE_EPOCH-in-convert.pl.patch
--- gap-4r7p9/debian/patches/honour-SOURCE_DATE_EPOCH-in-convert.pl.patch   
1970-01-01 01:00:00.0 +0100
+++ gap-4r7p9/debian/patches/honour-SOURCE_DATE_EPOCH-in-convert.pl.patch   
2016-04-11 23:19:31.0 +0200
@@ -0,0 +1,57 @@
+Description: Honour SOURCE_DATE_EPOCH in convert.pl
+ Honour SOURCE_DATE_EPOCH in convert.pl when embedding timestamps in the 
+ html files.
+Author: Eduard Sanou 
+
+Index: gap-4r7p9/etc/convert.pl
+===
+--- gap-4r7p9.orig/etc/convert.pl
 gap-4r7p9/etc/convert.pl
+@@ -140,6 +140,7 @@
+ $] > 5 or die "Needs perl 5";
+ 
+ use Getopt::Std;
++use POSIX qw(strftime setlocale LC_TIME);
+ 
+ $gaproot="/usr/share/gap/";
+ #Added by Bill Allombert to absorb ../../.. from caller. Any pkg/*/* would do.
+@@ -410,8 +411,26 @@ sub printchaps {
+   }
+ }
+ 
+-# Printed at the bottom of every page.
+-$footer = "\n" . sansserif( "GAP 4 manual" . `date +"%B %Y"` ) .
++#
++# Get the local date or a reproducible date from the environment variable
++# SOURCE_DATE_EPOCH if set.
++#
++sub get_date {
++   my $date = "";
++
++   if (defined $ENV{SOURCE_DATE_EPOCH}) {
++  my $locale = setlocale(LC_TIME);
++  setlocale(LC_TIME, "C");
++  $date = strftime("%B %Y", gmtime($ENV{SOURCE_DATE_EPOCH}));
++  setlocale(LC_TIME, $locale);
++   } else {
++  $date = strftime("%B %Y", gmtime(time));
++   }
++
++   return $date;
++}
++
++$footer = "\n" . sansserif( "GAP 4 manual" . get_date ) .
+   "";
+ 
+ # Section label ... this is the bit that goes after a # in an HREF link
+@@ -2091,8 +2110,8 @@ if ($opt_n) {
+   $booktitle = "$opt_n : a GAP 4 package";
+   $booktitle_body = booktitle_body($booktitle, ("GAP", $opt_n));
+   $mainman=0;
+-  $footer = "\n$opt_n manual" .
+-`date +"%B %Y"` . "";
++  $footer = "\n$opt_n manual" . get_date .
++"";
+ #print "c: $opt_c \n";
+ } else {
+   if ($opt_f) {
diff -Nru gap-4r7p9/debian/patches/series gap-4r7p9/debian/patches/series
--- gap-4r7p9/debian/patches/series 2015-06-17 18:27:52.0 +0200
+++ gap-4r7p9/debian/patches/series 2016-04-10 18:37:18.0 +0200
@@ -8,3 +8,4 @@
 upstream-env-tmpdir
 fix-basecc
 fix-testinstall.g
+honour-SOURCE_DATE_EPOCH-in-convert.pl.patch


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#822268: transdecoder: please make the build reproducible

2016-04-22 Thread Dhole
Source: transdecoder 
Version: 2.0.1+dfsg-2 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: randomness
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that transdecoder could not be built reproducibly.

When generating some sample files (sample_data/transcripts.fasta) a Perl
script is used (cufflinks_gtf_genome_to_cdna_fasta.pl) that loops
through a dictionary producing unreproducible output.

The attached patch fixes this by setting the env var PERL_HASH_SEED to 0
before calling this script to get a reproducible output when looping
through the hash keys. Once applied, transdecoder can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru transdecoder-2.0.1+dfsg/debian/changelog 
transdecoder-2.0.1+dfsg/debian/changelog
--- transdecoder-2.0.1+dfsg/debian/changelog2015-12-29 00:54:39.0 
+0100
+++ transdecoder-2.0.1+dfsg/debian/changelog2016-04-22 20:42:48.0 
+0200
@@ -1,3 +1,11 @@
+transdecoder (2.0.1+dfsg-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set a hash seed for Perl before generating sample_data/transcripts.fasta
+to get a reproducible output. 
+
+ -- Eduard Sanou   Fri, 22 Apr 2016 20:42:02 +0200
+
 transdecoder (2.0.1+dfsg-2) unstable; urgency=medium
 
   [ Andreas Tille ]
diff -Nru transdecoder-2.0.1+dfsg/debian/patches/reproducible-sample_data.patch 
transdecoder-2.0.1+dfsg/debian/patches/reproducible-sample_data.patch
--- transdecoder-2.0.1+dfsg/debian/patches/reproducible-sample_data.patch   
1970-01-01 01:00:00.0 +0100
+++ transdecoder-2.0.1+dfsg/debian/patches/reproducible-sample_data.patch   
2016-04-22 20:43:56.0 +0200
@@ -0,0 +1,16 @@
+Description: Make the sample data reproducible
+ Set a fixed hash seed for Perl before generating sample_data/transcripts.fasta
+ to get reproducible results
+Author: Eduard Sanou 
+
+--- transdecoder-2.0.1+dfsg.orig/sample_data/runMe.sh
 transdecoder-2.0.1+dfsg/sample_data/runMe.sh
+@@ -26,7 +26,7 @@ fi
+ ../util/cufflinks_gtf_to_alignment_gff3.pl transcripts.gtf > transcripts.gff3
+ 
+ ## generate transcripts fasta file
+-../util/cufflinks_gtf_genome_to_cdna_fasta.pl transcripts.gtf 
test.genome.fasta > transcripts.fasta 
++PERL_HASH_SEED=0 ../util/cufflinks_gtf_genome_to_cdna_fasta.pl 
transcripts.gtf test.genome.fasta > transcripts.fasta 
+ 
+ ## Extract the long ORFs
+ ../TransDecoder.LongOrfs -t transcripts.fasta
diff -Nru transdecoder-2.0.1+dfsg/debian/patches/series 
transdecoder-2.0.1+dfsg/debian/patches/series
--- transdecoder-2.0.1+dfsg/debian/patches/series   2015-12-29 
00:54:39.0 +0100
+++ transdecoder-2.0.1+dfsg/debian/patches/series   2016-04-22 
20:43:08.0 +0200
@@ -1,3 +1,4 @@
 cd-hit-est-rename
 fix-whatis
 reproducible-build
+reproducible-sample_data.patch


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#828680: debiandoc-sgml-doc-pt-br: please make the build reproducible

2016-06-26 Thread Dhole
Source: debiandoc-sgml-doc-pt-br 
Version: 1.1.12+nm 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed that
debiandoc-sgml-doc-pt-br could not be built reproducibly.

When generating the documentation files, a timestamp of the current month and
year is embedded.

The attached patch fixes this by setting the timestamp to a reproducible value.
Once applied, debiandoc-sgml-doc-pt-br can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,

-- 
Dhole
diff -Nru debiandoc-sgml-doc-pt-br-1.1.12/debian/changelog 
debiandoc-sgml-doc-pt-br-1.1.12+nmu1/debian/changelog
--- debiandoc-sgml-doc-pt-br-1.1.12/debian/changelog2016-02-03 
12:48:25.0 +0100
+++ debiandoc-sgml-doc-pt-br-1.1.12+nmu1/debian/changelog   2016-06-25 
20:47:02.0 +0200
@@ -1,3 +1,10 @@
+debiandoc-sgml-doc-pt-br (1.1.12+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace debiandoc timestamp by SOURCE_DATE_EPOCH.
+
+ -- Eduard Sanou   Sat, 25 Jun 2016 20:46:48 +0200
+
 debiandoc-sgml-doc-pt-br (1.1.12) unstable; urgency=medium
 
   * Use onsgml for the migration from sp to opensp. Closes: #812188
diff -Nru debiandoc-sgml-doc-pt-br-1.1.12/debian/rules 
debiandoc-sgml-doc-pt-br-1.1.12+nmu1/debian/rules
--- debiandoc-sgml-doc-pt-br-1.1.12/debian/rules2016-02-02 
10:21:32.0 +0100
+++ debiandoc-sgml-doc-pt-br-1.1.12+nmu1/debian/rules   2016-06-26 
00:15:08.0 +0200
@@ -7,6 +7,10 @@
 ## uncomment this to turn on verbose mode
 #export DH_VERBOSE=1
 
+ifdef SOURCE_DATE_EPOCH
+   export DEBIANDOC_DATE ?= $(shell LC_ALL=pt_BR date -u -d 
"@$(SOURCE_DATE_EPOCH)" +"%d %B %Y")
+endif
+
 ## --
 ## Targets
 


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#828790: debiandoc-sgml-doc: please make the build reproducible

2016-06-27 Thread Dhole
Source: debiandoc-sgml-doc 
Version: 1.1.24+nm 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed that
debiandoc-sgml-doc could not be built reproducibly.

When generating the documentation files, a timestamp of the last changelog entry
is embedded in the local timezone.

The attached patch fixes this setting the timestamp to UTC. Once applied,
debiandoc-sgml-doc can be built reproducibly in our current experimental
framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru debiandoc-sgml-doc-1.1.24/debian/changelog 
debiandoc-sgml-doc-1.1.24+nmu1/debian/changelog
--- debiandoc-sgml-doc-1.1.24/debian/changelog  2015-08-12 18:31:34.0 
+0200
+++ debiandoc-sgml-doc-1.1.24+nmu1/debian/changelog 2016-06-27 
21:34:23.0 +0200
@@ -1,3 +1,10 @@
+debiandoc-sgml-doc (1.1.24+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set the embedded date to UTC to make it reproducible. 
+
+ -- Eduard Sanou   Mon, 27 Jun 2016 21:34:14 +0200
+
 debiandoc-sgml-doc (1.1.24) unstable; urgency=medium
 
   * Reproducible build with the new debiandoc-sgml 1.2.31-1.
diff -Nru debiandoc-sgml-doc-1.1.24/debian/rules 
debiandoc-sgml-doc-1.1.24+nmu1/debian/rules
--- debiandoc-sgml-doc-1.1.24/debian/rules  2015-08-12 18:18:25.0 
+0200
+++ debiandoc-sgml-doc-1.1.24+nmu1/debian/rules 2016-06-27 21:34:09.0 
+0200
@@ -8,7 +8,7 @@
 #export DH_VERBOSE=1
 
 # Reproduceble build
-DEBIANDOC_DATE ?= $(shell date +'%Y-%m-%d' -d"`dpkg-parsechangelog -SDate`")
+DEBIANDOC_DATE ?= $(shell date --utc +'%Y-%m-%d' -d"`dpkg-parsechangelog 
-SDate`")
 export DEBIANDOC_DATE
 
 ## --


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#828994: syncthing: please make the build reproducible

2016-06-29 Thread Dhole
Source: syncthing 
Version: 0.13.4+dfsg1-1 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that syncthing could not be built reproducibly.

genassets.go embeds a timestamp of the localtime to a source code file
generated during the build.

The attached patch fixes this replacing the local timestamp by
SOURCE_DATE_EPOCH if defined. Once applied, syncthing can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru syncthing-0.13.4+dfsg1/debian/changelog 
syncthing-0.13.4+dfsg1/debian/changelog
--- syncthing-0.13.4+dfsg1/debian/changelog 2016-06-01 16:29:56.0 
+0200
+++ syncthing-0.13.4+dfsg1/debian/changelog 2016-06-29 15:50:58.0 
+0200
@@ -1,3 +1,10 @@
+syncthing (0.13.4+dfsg1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Use SOURCE_DATE_EPOCH as embedded timestamp by genassets.go if defined.
+
+ -- Eduard Sanou   Wed, 29 Jun 2016 15:49:38 +0200
+
 syncthing (0.13.4+dfsg1-1) unstable; urgency=medium
 
   * Added missing CC-BY-SA-4.0 section in d/copyright
diff -Nru syncthing-0.13.4+dfsg1/debian/patches/series 
syncthing-0.13.4+dfsg1/debian/patches/series
--- syncthing-0.13.4+dfsg1/debian/patches/series2016-06-01 
16:29:56.0 +0200
+++ syncthing-0.13.4+dfsg1/debian/patches/series2016-06-29 
15:51:12.0 +0200
@@ -1,2 +1,3 @@
 use-packaged-gateway.patch
 genxdr-command.patch
+use-SOURCE_DATE_EPOCH.patch
diff -Nru syncthing-0.13.4+dfsg1/debian/patches/use-SOURCE_DATE_EPOCH.patch 
syncthing-0.13.4+dfsg1/debian/patches/use-SOURCE_DATE_EPOCH.patch
--- syncthing-0.13.4+dfsg1/debian/patches/use-SOURCE_DATE_EPOCH.patch   
1970-01-01 01:00:00.0 +0100
+++ syncthing-0.13.4+dfsg1/debian/patches/use-SOURCE_DATE_EPOCH.patch   
2016-06-29 15:52:18.0 +0200
@@ -0,0 +1,46 @@
+Description: Use SOURCE_DATE_EPOCH in genassets.go
+ Use SOURCE_DATE_EPOCH if defined as the embedded timestamp by genassets.go to
+ make the generated file reproducible.
+Author: Eduard Sanou 
+
+--- syncthing-0.13.4+dfsg1.orig/script/genassets.go
 syncthing-0.13.4+dfsg1/script/genassets.go
+@@ -13,11 +13,13 @@ import (
+   "compress/gzip"
+   "encoding/base64"
+   "flag"
++  "fmt"
+   "go/format"
+   "io"
+   "net/http"
+   "os"
+   "path/filepath"
++  "strconv"
+   "strings"
+   "text/template"
+   "time"
+@@ -93,10 +95,23 @@ func main() {
+   flag.Parse()
+ 
+   filepath.Walk(flag.Arg(0), walkerFor(flag.Arg(0)))
++
++  source_date_epoch := os.Getenv("SOURCE_DATE_EPOCH")
++  var build_date string
++  if source_date_epoch == "" {
++  build_date = time.Now().UTC().Format(http.TimeFormat)
++  } else {
++  sde, err := strconv.ParseInt(source_date_epoch, 10, 64)
++  if err != nil {
++  panic(fmt.Sprintf("Invalid SOURCE_DATE_EPOCH: %s", err))
++  }
++  build_date = time.Unix(sde, 0).UTC().Format(http.TimeFormat)
++  }
++
+   var buf bytes.Buffer
+   tpl.Execute(&buf, templateVars{
+   Assets:assets,
+-  BuildDate: time.Now().UTC().Format(http.TimeFormat),
++  BuildDate: build_date,
+   })
+   bs, err := format.Source(buf.Bytes())
+   if err != nil {


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] Bug#828994: syncthing: please make the build reproducible

2016-06-29 Thread Dhole
I forgot to mention: please, consider sending this patch upstream as it
is not Debian specific.

Thanks,
-- 
Dhole


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#830075: golang-github-kr-binarydist: please make the build reproducible

2016-07-05 Thread Dhole
Source: golang-github-kr-binarydist
Version: 0.0~git20120828.0.9955b0a-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that golang-github-kr-binarydist could not be built reproducibly.

When building the package, some test functions are run that generate
random test files.  The randomness for those test files is provided by
the kernel (through the crypto/rand go package).

The attached patch fixes this by generating deterministic pseudorandom
test files instead (by means of the rand go package and setting a fixed
seed).  The function that creates this test files is only used for
testing purposes, and as such, I believe there's no security concern.
But I'm not familiar with the package, so please, double check it.
Also, consider sending this patch upstream :)

Once applied, golang-github-kr-binarydist can be built reproducibly in
our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru 
golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/changelog 
golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/changelog
--- golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/changelog  
2016-06-29 22:09:09.0 +0200
+++ golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/changelog  
2016-07-04 01:21:45.0 +0200
@@ -1,3 +1,10 @@
+golang-github-kr-binarydist (0.0~git20120828.0.9955b0a-1.1) UNRELEASED; 
urgency=medium
+
+  * Non-maintainer upload.
+  * Make test files deterministic to make the package build reproducible. 
+
+ -- Eduard Sanou   Mon, 04 Jul 2016 01:21:16 +0200
+
 golang-github-kr-binarydist (0.0~git20120828.0.9955b0a-1) unstable; 
urgency=medium
 
   * Initial release (Closes: 823342)
diff -Nru 
golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/patches/deterministic-test-files.patch
 
golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/patches/deterministic-test-files.patch
--- 
golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/patches/deterministic-test-files.patch
 1970-01-01 01:00:00.0 +0100
+++ 
golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/patches/deterministic-test-files.patch
 2016-07-04 01:23:15.0 +0200
@@ -0,0 +1,56 @@
+Description: Deterministic test files
+ Make the files written during tests deterministic to make this package build
+ reproducible.
+Author: Eduard Sanou 
+
+--- golang-github-kr-binarydist-0.0~git20120828.0.9955b0a.orig/common_test.go
 golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/common_test.go
+@@ -1,10 +1,10 @@
+ package binarydist
+ 
+ import (
+-  "crypto/rand"
+   "io"
+   "io/ioutil"
+   "os"
++  "rand"
+ )
+ 
+ func mustOpen(path string) *os.File {
+@@ -67,8 +67,9 @@ func fileCmp(a, b *os.File) int64 {
+   return -1
+ }
+ 
+-func mustWriteRandFile(path string, size int) *os.File {
++func mustWriteRandFile(path string, size int, seed int64) *os.File {
+   p := make([]byte, size)
++  rand.Seed(seed)
+   _, err := rand.Read(p)
+   if err != nil {
+   panic(err)
+--- golang-github-kr-binarydist-0.0~git20120828.0.9955b0a.orig/diff_test.go
 golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/diff_test.go
+@@ -13,8 +13,8 @@ var diffT = []struct {
+   new *os.File
+ }{
+   {
+-  old: mustWriteRandFile("test.old", 1e3),
+-  new: mustWriteRandFile("test.new", 1e3),
++  old: mustWriteRandFile("test.old", 1e3, 1),
++  new: mustWriteRandFile("test.new", 1e3, 2),
+   },
+   {
+   old: mustOpen("testdata/sample.old"),
+--- golang-github-kr-binarydist-0.0~git20120828.0.9955b0a.orig/patch_test.go
 golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/patch_test.go
+@@ -8,8 +8,8 @@ import (
+ )
+ 
+ func TestPatch(t *testing.T) {
+-  mustWriteRandFile("test.old", 1e3)
+-  mustWriteRandFile("test.new", 1e3)
++  mustWriteRandFile("test.old", 1e3, 1)
++  mustWriteRandFile("test.new", 1e3, 2)
+ 
+   got, err := ioutil.TempFile("/tmp", "bspatch.")
+   if err != nil {
diff -Nru 
golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/patches/series 
golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/patches/series
--- golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/patches/series 
1970-01-01 01:00:00.0 +0100
+++ golang-github-kr-binarydist-0.0~git20120828.0.9955b0a/debian/patches/series 
2016-07-04 01:22:10.0 +0200
@@ -0,0 +1 @@
+deterministic-test-files.patch


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#830922: kernel-handbook: please make the build reproducible

2016-07-12 Thread Dhole
Source: kernel-handbook
Version: 1.0.17+nm
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that kernel-handbook could not be built reproducibly.

A date and timestamp is embedded in the documentation using the local
timezone and locale.

The attached patch fixes this by fixing the timezone to UTC and the
locale to "C" in the timestamp. Once applied, kernel-handbook can be
built reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru kernel-handbook-1.0.17/debian/changelog 
kernel-handbook-1.0.17+nmu1/debian/changelog
--- kernel-handbook-1.0.17/debian/changelog 2016-03-07 03:08:15.0 
+0100
+++ kernel-handbook-1.0.17+nmu1/debian/changelog2016-07-13 
01:29:10.0 +0200
@@ -1,3 +1,10 @@
+kernel-handbook (1.0.17+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix locale and timezone in embedded timestamp to make it reproducible.
+
+ -- Eduard Sanou   Wed, 13 Jul 2016 01:28:52 +0200
+
 kernel-handbook (1.0.17) unstable; urgency=medium
 
   * debian/control: Change Vcs-Git and Vcs-Browser to canonical HTTP-S URLs
diff -Nru kernel-handbook-1.0.17/Makefile kernel-handbook-1.0.17+nmu1/Makefile
--- kernel-handbook-1.0.17/Makefile 2015-11-13 22:33:04.0 +0100
+++ kernel-handbook-1.0.17+nmu1/Makefile2016-07-13 01:37:47.0 
+0200
@@ -1,5 +1,5 @@
 version := $(shell dpkg-parsechangelog -SVersion)
-date:= $(shell date -d "$$(dpkg-parsechangelog -SDate)")
+date:= $(shell LC_ALL=C date --utc -d "$$(dpkg-parsechangelog -SDate)")
 
 LANG_PO := ja
 LANG_EN := en


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#832917: hyperscan: please make the build reproducible

2016-07-29 Thread Dhole
Source: hyperscan 
Version: 4.2.0-1 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that hyperscan could not be built reproducibly.

During the build a timestamp is embedded in the compiled binaries.

The attached patch fixes this by using SOURCE_DATE_EPOCH as the
timestamp. Once applied, hyperscan can be built reproducibly in our
current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru hyperscan-4.2.0/debian/changelog hyperscan-4.2.0/debian/changelog
--- hyperscan-4.2.0/debian/changelog2016-07-25 21:15:48.0 +0200
+++ hyperscan-4.2.0/debian/changelog2016-07-29 15:39:02.0 +0200
@@ -1,3 +1,11 @@
+hyperscan (4.2.0-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Use SOURCE_DATE_EPOCH as embedded timestamp to make the build
+reproducible.
+
+ -- Eduard Sanou   Fri, 29 Jul 2016 15:38:39 +0200
+
 hyperscan (4.2.0-1) unstable; urgency=medium
 
   * Initial release (Closes: #824838)
diff -Nru hyperscan-4.2.0/debian/patches/reproducible-timestamp.patch 
hyperscan-4.2.0/debian/patches/reproducible-timestamp.patch
--- hyperscan-4.2.0/debian/patches/reproducible-timestamp.patch 1970-01-01 
01:00:00.0 +0100
+++ hyperscan-4.2.0/debian/patches/reproducible-timestamp.patch 2016-07-29 
15:40:15.0 +0200
@@ -0,0 +1,27 @@
+Description: Reproducible timestamp
+ Use SOURCE_DATE_EPOCH as a timestamp to make the build reproducible.
+Author: Eduard Sanou 
+
+Index: hyperscan-4.2.0/CMakeLists.txt
+===
+--- hyperscan-4.2.0.orig/CMakeLists.txt
 hyperscan-4.2.0/CMakeLists.txt
+@@ -6,7 +6,17 @@ set (HS_MINOR_VERSION 2)
+ set (HS_PATCH_VERSION 0)
+ set (HS_VERSION ${HS_MAJOR_VERSION}.${HS_MINOR_VERSION}.${HS_PATCH_VERSION})
+ 
+-string (TIMESTAMP BUILD_DATE "%Y-%m-%d")
++if (DEFINED ENV{SOURCE_DATE_EPOCH})
++  execute_process(
++COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y-%m-%d"
++OUTPUT_VARIABLE BUILD_DATE 
++OUTPUT_STRIP_TRAILING_WHITESPACE)
++else ()
++  execute_process(
++COMMAND "date" "+%Y-%m-%d"
++OUTPUT_VARIABLE BUILD_DATE
++OUTPUT_STRIP_TRAILING_WHITESPACE)
++endif ()
+ 
+ set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+ include(CheckCCompilerFlag)
diff -Nru hyperscan-4.2.0/debian/patches/series 
hyperscan-4.2.0/debian/patches/series
--- hyperscan-4.2.0/debian/patches/series   1970-01-01 01:00:00.0 
+0100
+++ hyperscan-4.2.0/debian/patches/series   2016-07-29 15:39:15.0 
+0200
@@ -0,0 +1 @@
+reproducible-timestamp.patch


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Bug#848633: sugar-toolkit-gtk3: please make the build reproducible

2016-12-18 Thread Dhole
Source: sugar-toolkit-gtk3
Version: 0.110.0-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that sugar-toolkit-gtk3 generates unreproducible desktop files.

When generating desktop files, translation files are iterated in a
non-deterministic order.

The attached patch fixes this by sorting the translation files used to
generate the desktop file.  Once applied, packages using
sugar-toolkit-gtk3 can generate reproducible desktop files in our
current experimental framework.

Please, consider sending this patch upstream.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru sugar-toolkit-gtk3-0.110.0/debian/changelog 
sugar-toolkit-gtk3-0.110.0/debian/changelog
--- sugar-toolkit-gtk3-0.110.0/debian/changelog 2016-12-12 19:00:52.0 
+0100
+++ sugar-toolkit-gtk3-0.110.0/debian/changelog 2016-12-19 03:18:16.0 
+0100
@@ -1,3 +1,10 @@
+sugar-toolkit-gtk3 (0.110.0-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Sort translation files when generating desktop file. 
+
+ -- Eduard Sanou   Mon, 19 Dec 2016 03:18:16 +0100
+
 sugar-toolkit-gtk3 (0.110.0-2) unstable; urgency=medium
 
   * Modernize CDBS use:
diff -Nru sugar-toolkit-gtk3-0.110.0/debian/patches/series 
sugar-toolkit-gtk3-0.110.0/debian/patches/series
--- sugar-toolkit-gtk3-0.110.0/debian/patches/series2016-12-12 
04:01:17.0 +0100
+++ sugar-toolkit-gtk3-0.110.0/debian/patches/series2016-12-19 
03:18:16.0 +0100
@@ -1,3 +1,4 @@
 020161109~ee93ad3.patch
 2002_ignore_debian_and_quilt-patches.patch
 #2003_bundlebuilder_exit_nonzero_on_error.patch
+sort-translation-files.patch
diff -Nru 
sugar-toolkit-gtk3-0.110.0/debian/patches/sort-translation-files.patch 
sugar-toolkit-gtk3-0.110.0/debian/patches/sort-translation-files.patch
--- sugar-toolkit-gtk3-0.110.0/debian/patches/sort-translation-files.patch  
1970-01-01 01:00:00.0 +0100
+++ sugar-toolkit-gtk3-0.110.0/debian/patches/sort-translation-files.patch  
2016-12-19 03:18:16.0 +0100
@@ -0,0 +1,20 @@
+Description: Sort translation files
+ Sort translation files when generating the .desktop file to output 
reproducible results.
+Author: Eduard Sanou 
+
+
+Index: sugar-toolkit-gtk3-0.110.0/src/sugar3/activity/bundlebuilder.py
+===
+--- sugar-toolkit-gtk3-0.110.0.orig/src/sugar3/activity/bundlebuilder.py
 sugar-toolkit-gtk3-0.110.0/src/sugar3/activity/bundlebuilder.py
+@@ -387,8 +387,8 @@ class Installer(Packager):
+ if info.has_option('Activity', 'summary'):
+ cp.set(section, 'Comment', info.get('Activity', 'summary'))
+ 
+-for path in glob(os.path.join(activity_path, 'locale',
+-  '*', 'activity.linfo')):
++for path in sorted(glob(os.path.join(activity_path, 'locale',
++ '*', 'activity.linfo'))):
+ locale = path.split(os.path.sep)[-2]
+ info = ConfigParser()
+ info.read(path)


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#788747: 0xffff: please make the build reproducible

2015-06-14 Thread Dhole
Source: 0x
Version: 0.6.1-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that 0x could not be built reproducibly.

The attached patch removes extra timestamps from the build system.
Specifically, the patch avoids the the usage of the __DATE__ and
__TIME__ C macro which embed timestamps during the compilation and make
the package build unreproducibly.
Once applied, 0x can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -Nru 0x-0.6.1/debian/changelog 0x-0.6.1/debian/changelog
--- 0x-0.6.1/debian/changelog   2015-05-27 17:45:22.0 +0200
+++ 0x-0.6.1/debian/changelog   2015-06-13 18:34:10.0 +0200
@@ -1,3 +1,10 @@
+0x (0.6.1-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+- Remove timestamp from documentation to make package build reproducibly 
+
+ -- Dhole   Sat, 13 Jun 2015 18:33:37 +0200
+
 0x (0.6.1-2) unstable; urgency=medium
 
   * Upload to unstable
diff -Nru 0x-0.6.1/debian/patches/remove_timestamp 
0x-0.6.1/debian/patches/remove_timestamp
--- 0x-0.6.1/debian/patches/remove_timestamp1970-01-01 
01:00:00.0 +0100
+++ 0x-0.6.1/debian/patches/remove_timestamp2015-06-13 
18:35:34.0 +0200
@@ -0,0 +1,33 @@
+Description: remove timestamp
+ Remove __DATE__ macro to make package reproducibly
+ .
+ 0x (0.6.1-2.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+ - Remove timestamp from documentation to make package build reproducibly
+Author: Dhole 
+
+
+--- 0x-0.6.1.orig/src/mangen.c
 0x-0.6.1/src/mangen.c
+@@ -34,7 +34,7 @@ int main() {
+   if ( ! pipe )
+   return 1;
+ 
+-  puts(".TH " NAME " 1 \"" __DATE__ "\" \"" NAME " " VERSION "\"");
++  puts(".TH " NAME " 1 \"" NAME " " VERSION "\"");
+   puts("");
+ 
+   puts(".SH NAME");
diff -Nru 0x-0.6.1/debian/patches/series 0x-0.6.1/debian/patches/series
--- 0x-0.6.1/debian/patches/series  1970-01-01 01:00:00.0 +0100
+++ 0x-0.6.1/debian/patches/series  2015-06-13 18:34:53.0 +0200
@@ -0,0 +1 @@
+remove_timestamp


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#788748: abcm2ps: please make the build reproducible

2015-06-14 Thread Dhole
Source: abcm2ps
Version: 7.8.9-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that abcm2ps could not be built reproducibly.

The attached patch removes extra timestamps from the build system.
Specifically, the patch avoids the the usage of the __DATE__ and
__TIME__ C macro which embed timestamps during the compilation and make
the package build unreproducibly.
Once applied, abcm2ps can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -Nru abcm2ps-7.8.9/debian/changelog abcm2ps-7.8.9/debian/changelog
--- abcm2ps-7.8.9/debian/changelog  2014-10-18 23:38:31.0 +0200
+++ abcm2ps-7.8.9/debian/changelog  2015-06-13 18:51:51.0 +0200
@@ -1,3 +1,10 @@
+abcm2ps (7.8.9-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Remove compilation date to make package build reproducibly
+
+ -- Dhole   Sat, 13 Jun 2015 18:51:11 +0200
+
 abcm2ps (7.8.9-1) unstable; urgency=low
 
   * New upstream release (closes: #742296).
diff -Nru abcm2ps-7.8.9/debian/patches/remove_compile_time 
abcm2ps-7.8.9/debian/patches/remove_compile_time
--- abcm2ps-7.8.9/debian/patches/remove_compile_time1970-01-01 
01:00:00.0 +0100
+++ abcm2ps-7.8.9/debian/patches/remove_compile_time2015-06-13 
18:52:40.0 +0200
@@ -0,0 +1,22 @@
+Description: Remove compile time
+ .
+ abcm2ps (7.8.9-1.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Remove compilation date to make package build reproducibly
+Author: Dhole 
+
+---
+
+--- abcm2ps-7.8.9.orig/abc2ps.c
 abcm2ps-7.8.9/abc2ps.c
+@@ -321,8 +321,7 @@ static void display_version(int full)
+   fputs("abcm2ps-" VERSION " (" VDATE ")\n", stderr);
+   if (!full)
+   return;
+-  fputs("Compiled: " __DATE__ "\n"
+- "Options:"
++  fputs("Options:"
+ #ifdef A4_FORMAT
+   " A4_FORMAT"
+ #endif
diff -Nru abcm2ps-7.8.9/debian/patches/series 
abcm2ps-7.8.9/debian/patches/series
--- abcm2ps-7.8.9/debian/patches/series 2014-10-18 18:38:51.0 +0200
+++ abcm2ps-7.8.9/debian/patches/series 2015-06-13 18:52:22.0 +0200
@@ -2,3 +2,4 @@
 makefile-add-destdir
 makefile-install-ignore-docs
 non-resettable-pagenumber
+remove_compile_time


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#788750: amideco: please make the build reproducible

2015-06-14 Thread Dhole
Source: amideco
Version: 0.31e-3.1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that amideco could not be built reproducibly.

The attached patch removes extra timestamps from the build system.
Specifically, the patch avoids the the usage of the __DATE__ and
__TIME__ C macro which embed timestamps during the compilation and make
the package build unreproducible.
Once applied, amideco can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -u amideco-0.31e/debian/changelog amideco-0.31e/debian/changelog
--- amideco-0.31e/debian/changelog
+++ amideco-0.31e/debian/changelog
@@ -1,3 +1,10 @@
+amideco (0.31e-4) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Remove timestamp from help to make package build reproducibly
+
+ -- Dhole   Sat, 13 Jun 2015 19:23:31 +0200
+
 amideco (0.31e-3.1) unstable; urgency=low
 
   * Non-maintainer upload.
only in patch2:
unchanged:
--- amideco-0.31e.orig/src/amihelp.h
+++ amideco-0.31e/src/amihelp.h
@@ -29,7 +29,6 @@
"Compression schemes include: LZINT\n\n"
"Modules marked with "IDSign" sign are 
compressed modules\n\n"
"\tBug reports mailto: "SftEMail"\n"
-   "\t\tCompiled: %s, %s\n",__DATE__,__TIME__);
 #else
printf(
"\n"SftName" - Decompressor for AmiBIOSes 
only.\n"
@@ -39,8 +38,8 @@
"Compression schemes include: LZINT\n\n"
"Modules marked with "IDSign" sign are 
compressed modules\n\n"
"\tBug reports mailto: "SftEMail"\n"
-   "\t\tCompiled: %s, %s with 
\n\t\t%s",__DATE__,__TIME__,__VERSION__);
-#endif 
+   "\t\tCompiled with \n\t\t%s",__VERSION__);
+#endif
 
printf("\n");
return( 0x20 );


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#788751: amsynth: please make the build reproducible

2015-06-14 Thread Dhole
Source: amsynth
Version: 1.5.1-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that amsynth could not be built reproducibly.

The attached patch removes extra timestamps from the build system.
Specifically, the patch avoids the the usage of the __DATE__ and
__TIME__ C macro which embed timestamps during the compilation and make
the package build unreproducible.
Once applied, amsynth can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -Nru amsynth-1.5.1/debian/changelog amsynth-1.5.1/debian/changelog
--- amsynth-1.5.1/debian/changelog  2015-05-10 15:09:49.0 +0200
+++ amsynth-1.5.1/debian/changelog  2015-06-13 19:30:55.0 +0200
@@ -1,3 +1,10 @@
+amsynth (1.5.1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Remove timestamp from help to make package build reproducibly
+
+ -- Dhole   Sat, 13 Jun 2015 19:29:52 +0200
+
 amsynth (1.5.1-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru amsynth-1.5.1/debian/patches/remove_timestamp 
amsynth-1.5.1/debian/patches/remove_timestamp
--- amsynth-1.5.1/debian/patches/remove_timestamp   1970-01-01 
01:00:00.0 +0100
+++ amsynth-1.5.1/debian/patches/remove_timestamp   2015-06-13 
19:31:20.0 +0200
@@ -0,0 +1,21 @@
+Description: Remove timestamp
+ .
+ amsynth (1.5.1-1.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Remove timestamp from help to make package build reproducibly
+Author: Dhole 
+
+---
+
+--- amsynth-1.5.1.orig/src/main.cc
 amsynth-1.5.1/src/main.cc
+@@ -324,7 +324,7 @@ int main( int argc, char *argv[] )
+   while ((opt = getopt_long(argc, argv, "vhstdzxm:c:a:r:p:b:U:P:n:", 
longopts, &longindex)) != -1) {
+   switch (opt) {
+   case 'v':
+-  cout << PACKAGE_STRING << " -- compiled " << 
__DATE__ << " " << __TIME__ << endl;
++  cout << PACKAGE_STRING << endl;
+   return 0;
+   case 'h':
+   cout << help_text;
diff -Nru amsynth-1.5.1/debian/patches/series 
amsynth-1.5.1/debian/patches/series
--- amsynth-1.5.1/debian/patches/series 1970-01-01 01:00:00.0 +0100
+++ amsynth-1.5.1/debian/patches/series 2015-06-13 19:31:05.0 +0200
@@ -0,0 +1 @@
+remove_timestamp


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#788752: analog: please make the build reproducible

2015-06-14 Thread Dhole
Source: analog
Version: 2:6.0-20
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that analog could not be built reproducibly.

The attached patch removes extra timestamps from the build system.
Specifically, the patch avoids the the usage of the __DATE__ and
__TIME__ C macro which embed timestamps during the compilation and make
the package build unreproducible.
Once applied, analog can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -u analog-6.0/debian/changelog analog-6.0/debian/changelog
--- analog-6.0/debian/changelog
+++ analog-6.0/debian/changelog
@@ -1,3 +1,10 @@
+analog (2:6.0-22) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Remove timestamp from outxml.c to make package build reproducibly
+
+ -- Dhole   Sat, 13 Jun 2015 21:05:32 +0200
+
 analog (2:6.0-20) unstable; urgency=low
 
   * QA upload.
only in patch2:
unchanged:
--- analog-6.0.orig/src/outxml.c
+++ analog-6.0/src/outxml.c
@@ -54,7 +54,6 @@
extern timecode_t starttimec;
 
 unsigned int year, month, day, i;
-   struct tm temptime;
 
 char *xmlversion = "1.0";
 char *encoding = "UTF-8";
@@ -85,15 +84,10 @@
xml_defaults( opts );
 
// extract a build timestamp from __DATE__ and __TIME__ -- locale 
dependent?! need to force "C" locale ?
-   strptime( __DATE__" "__TIME__, "%b%n%d%n%Y%n%T", &temptime );
-
-   sprintf( buffer, "%04d%02d%02d%02d%02d",
-   temptime.tm_year+1900, temptime.tm_mon+1, temptime.tm_mday, 
temptime.tm_hour, temptime.tm_min );
 
 code2date( starttimec/1440, &day, &month, &year);
-   
+
XML_OUT( XMLDBG "", VERSION 
);
-   XML_OUT( XMLDBG "", buffer );
XML_OUT( XMLDBG " ",
 year, month+1, day, (int)((starttimec%1440)/60), 
(int)(starttimec%60) );
 


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#788753: aolserver4-nsmysql: please make the build reproducible

2015-06-14 Thread Dhole
Source: aolserver4-nsmysql
Version: 0.6-9
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that aolserver4-nsmysql could not be built reproducibly.

The attached patch removes extra timestamps from the build system.
Specifically, the patch avoids the the usage of the __DATE__ and
__TIME__ C macro which embed timestamps during the compilation and make
the package build unreproducible.
Once applied, aolserver4-nsmysql can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -u aolserver4-nsmysql-0.6/debian/changelog 
aolserver4-nsmysql-0.6/debian/changelog
--- aolserver4-nsmysql-0.6/debian/changelog
+++ aolserver4-nsmysql-0.6/debian/changelog
@@ -1,3 +1,11 @@
+aolserver4-nsmysql (0.6-9.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Removed timestamp macro from source code to make package build
+reproducibly 
+
+ -- Dhole   Sat, 13 Jun 2015 22:45:06 +0200
+
 aolserver4-nsmysql (0.6-9) unstable; urgency=low
 
   [ Stefan Sobernig ]
only in patch2:
unchanged:
--- aolserver4-nsmysql-0.6.orig/mysql.c
+++ aolserver4-nsmysql-0.6/mysql.c
@@ -87,8 +87,8 @@
 return NS_ERROR;
 }
 
-Ns_Log (Notice, "Ns_MySQL_DriverInit(%s):  Loaded %s, built on %s at %s.",
-   hDriver, mysql_driver_version, __DATE__, __TIME__);
+Ns_Log (Notice, "Ns_MySQL_DriverInit(%s):  Loaded %s.",
+   hDriver, mysql_driver_version);
 
 return NS_OK;
 }


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#788756: aolserver4-nssqlite3: please make the build reproducible

2015-06-14 Thread Dhole
Source: aolserver4-nssqlite3
Version: 0.9-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that aolserver4-nssqlite3 could not be built reproducibly.

The attached patch removes extra timestamps from the build system.
Specifically, the patch avoids the the usage of the __DATE__ and
__TIME__ C macro which embed timestamps during the compilation and make
the package build unreproducible.
Once applied, aolserver4-nssqlite3 can be built reproducibly in our
current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -u aolserver4-nssqlite3-0.9/debian/changelog 
aolserver4-nssqlite3-0.9/debian/changelog
--- aolserver4-nssqlite3-0.9/debian/changelog
+++ aolserver4-nssqlite3-0.9/debian/changelog
@@ -1,3 +1,10 @@
+aolserver4-nssqlite3 (0.9-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Remove timestamp macro from source code to make package build reproducibly
+
+ -- Dhole   Sun, 14 Jun 2015 14:35:39 +0200
+
 aolserver4-nssqlite3 (0.9-2) unstable; urgency=low
 
   [ Stefan Sobernig ]
only in patch2:
unchanged:
--- aolserver4-nssqlite3-0.9.orig/nssqlite3.c
+++ aolserver4-nssqlite3-0.9/nssqlite3.c
@@ -28,13 +28,13 @@
  */
 
 
-/* 
+/*
  * nssqlite3.c --
  *
  * This file implements the SQLite 3 database driver.
  */
 
-static const char *RCSID = "@(#) $Header: 
/cvsroot/aolserver/nssqlite3/nssqlite3.c,v 1.1.1.1 2005/03/07 04:36:22 dossy 
Exp $, compiled: " __DATE__ " " __TIME__;
+static const char *RCSID = "@(#) $Header: 
/cvsroot/aolserver/nssqlite3/nssqlite3.c,v 1.1.1.1 2005/03/07 04:36:22 dossy 
Exp $";
 
 #include "ns.h"
 #if NS_MAJOR_VERSION >= 4
@@ -130,8 +130,8 @@
 driver);
 return NS_ERROR;
 }
-Ns_Log(Notice, "nssqlite3: Loaded %s, version %s built on %s at %s.",
-driver, DRIVER_VERSION, __DATE__, __TIME__);
+Ns_Log(Notice, "nssqlite3: Loaded %s, version %s.",
+driver, DRIVER_VERSION);
 return NS_OK;
 }
 


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#788754: antpm: please make the build reproducible

2015-06-14 Thread Dhole
Source: antpm
Version: 1.16-8
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that antpm could not be built reproducibly.

The attached patch removes extra timestamps from the build system.
Specifically, the patch avoids the the usage of the __DATE__ and
__TIME__ C macro which embed timestamps during the compilation and make
the package build unreproducible.
Once applied, antpm can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -Nru antpm-1.16/debian/changelog antpm-1.16/debian/changelog
--- antpm-1.16/debian/changelog 2014-08-17 08:38:28.0 +0200
+++ antpm-1.16/debian/changelog 2015-06-14 13:25:38.0 +0200
@@ -1,3 +1,10 @@
+antpm (1.16-8.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Remove timestamp macro from source code to make package build reproducibly 
+
+ -- Dhole   Sun, 14 Jun 2015 13:19:46 +0200
+
 antpm (1.16-8) unstable; urgency=low
 
   * Team upload
diff -Nru antpm-1.16/debian/patches/remove_timestamp 
antpm-1.16/debian/patches/remove_timestamp
--- antpm-1.16/debian/patches/remove_timestamp  1970-01-01 01:00:00.0 
+0100
+++ antpm-1.16/debian/patches/remove_timestamp  2015-06-14 13:26:42.0 
+0200
@@ -0,0 +1,31 @@
+Description: Remove timestamp
+ .
+ antpm (1.16-8.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Remove timestamp macro from source code to make package build reproducibly
+Author: Dhole 
+
+---
+
+--- antpm-1.16.orig/src/common.cpp
 antpm-1.16/src/common.cpp
+@@ -296,8 +296,7 @@ getVersionString()
+ {
+   return std::string("") + APP_NAME
+   + " v" + std::string(BOOST_STRINGIZE(ANTPM_VERSION))
+-  + " built " __DATE__ " " + __TIME__ + "" //+#ANTPM_SERIAL_IMPL
+-  + " under "
++  + " built under "
+ #ifdef __linux__
+ # ifdef __LP64__
+   "linux64"
diff -Nru antpm-1.16/debian/patches/series antpm-1.16/debian/patches/series
--- antpm-1.16/debian/patches/series2014-08-17 08:38:28.0 +0200
+++ antpm-1.16/debian/patches/series2015-06-14 13:25:55.0 +0200
@@ -5,3 +5,4 @@
 02-try-fixing-FTBFS-under-hurd-i386-kfreebsd-amd64-kfre
 03-gant-try-fixing-FTBFS-under-hurd-i386
 link-boost-atomic2.patch
+remove_timestamp


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] GSoC 2015 Week 3: Move forward reproducible builds

2015-06-14 Thread Dhole
Hi,

During this third week I continued working on fixing timestamp related
issues.

Regarding the issue of timestamps captured by dpkg (packages not using
dh_debbuild), Lunar has suggested a better approach for it. The current
approach was add the following line in the build script (debian/rules),
just before calling `dpkg --build`  so that files created at build time
get a fixed and known date:

`find debian/tmp -newermt '$(BUILD_DATE)' -print0 | \
xargs -0r touch --no-dereference --date='$(BUILD_DATE)'`

With the previous declaration of the `BUILD_DATE` variable:

`BUILD_DATE := $(shell dpkg-parsechangelog --show-field Date)`

Lunar's suggestion is to add a functionality as an option to the tar
package (--clamp-mtime) which will change the stored timestamps in the
metadata of the tar file, only of files which were newer than a given
time. This approach gives the same result without being intrusive on the
build script and without touching the filesystem (files mtimes are not
touched, only the tar metadata is modified). With this, dpkg could call
tar with this option and solve the reproducibility issue. Lunar sent
this patch to tar upstream and is positive that they will accept it
(eventhough right now they don't seem to be convinced).

This week I have patched packages witch had these issues:
- Timestamps embedded into compiled binaries from C/C++ source code due
to the usage of the __DATE__ and __TIME__ macros [1]

The packages I patched are the following:

## 14/06
- https://reproducible.debian.net/rb-pkg/unstable/amd64/0x.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788747

- https://reproducible.debian.net/rb-pkg/unstable/amd64/abcm2ps.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788748

- https://reproducible.debian.net/rb-pkg/unstable/amd64/amideco.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788750

- https://reproducible.debian.net/rb-pkg/unstable/amd64/amsynth.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788751

- https://reproducible.debian.net/rb-pkg/unstable/amd64/analog.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788752

-
https://reproducible.debian.net/rb-pkg/unstable/amd64/aolserver4-nsmysql.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788753

- https://reproducible.debian.net/rb-pkg/unstable/amd64/antpm.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788754

-
https://reproducible.debian.net/rb-pkg/unstable/amd64/aolserver4-nssqlite3.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788756

[1] https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros
-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] Bug#788747: 0xffff: please make the build reproducible

2015-06-15 Thread Dhole
Hi!

The patch I submitted earlier removed the timestamp from the build
system. After checking the new build I noticed that the man pages where
not correct (the package version appeared where the date was supposed to
appear). I've made an improvement on the patch. In this case no
timestamp is removed: the build date in the man page can now be set
externally, and specifically it is set to the last debian/changelog entry.

-- 
Dhole
diff -Nru 0x-0.6.1/debian/changelog 0x-0.6.1/debian/changelog
--- 0x-0.6.1/debian/changelog   2015-05-27 17:45:22.0 +0200
+++ 0x-0.6.1/debian/changelog   2015-06-15 12:56:24.0 +0200
@@ -1,3 +1,12 @@
+0x (0.6.1-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Patch build system to allow the build date in the man entry to be set 
+externally, and set it to the latest debian/changelog entry for
+reproducibility.
+
+ -- Dhole   Mon, 15 Jun 2015 12:56:06 +0200
+
 0x (0.6.1-2) unstable; urgency=medium
 
   * Upload to unstable
diff -Nru 0x-0.6.1/debian/patches/fix_build_date 
0x-0.6.1/debian/patches/fix_build_date
--- 0x-0.6.1/debian/patches/fix_build_date  1970-01-01 01:00:00.0 
+0100
+++ 0x-0.6.1/debian/patches/fix_build_date  2015-06-15 12:56:56.0 
+0200
@@ -0,0 +1,51 @@
+Description: Set build date externally
+ .
+ 0x (0.6.1-2.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Patch build system to allow the build date in the man entry to be set
+ externally, and set it to the latest debian/changelog entry for
+ reproducibility.
+Author: Dhole 
+
+---
+
+--- 0x-0.6.1.orig/src/Makefile
 0x-0.6.1/src/Makefile
+@@ -3,11 +3,13 @@ include ../config.mk
+ PREFIX ?= /usr/local
+ INSTALL ?= install
+ 
++BUILD_DATE ?= $(shell date '+%b %e %Y')
++
+ CC = gcc
+ CROSS_CC = $(CROSS_COMPILE)$(CC)
+ HOST_CC = $(HOST_COMPILE)$(CC)
+ 
+-CPPFLAGS += -DVERSION=\"$(VERSION)\" -D_GNU_SOURCE
++CPPFLAGS += -DVERSION=\"$(VERSION)\" -DBUILD_DATE="\"$(BUILD_DATE)\"" 
-D_GNU_SOURCE
+ CFLAGS += -W -Wall -O2 -pedantic -std=c99
+ LIBS += -lusb
+ 
+--- 0x-0.6.1.orig/src/mangen.c
 0x-0.6.1/src/mangen.c
+@@ -25,6 +25,10 @@
+ #define INFO NAME " \\- Open Free Fiasco Firmware Flasher, version " VERSION
+ #define DESCRIPTION "0x is Open Free Fiasco Firmware Flasher for Maemo 
devices. It support generating and unpacking FIASCO images on local computer. 
Useful for editing Maemo firmware package for future flash. It support via USB 
flashing any image type to Maemo device and also \"cold\" flashing which means 
flashing dead device with erased bootloader. There is support for booting 
kernel via USB without flashing to NAND and also changing configuration of 
Maemo device (enable/disable R&D mode, changing HW revision strings, 
...).\n\n0x is alternative tool to proprietary Nokia flasher-3.5 and 
fiasco-gen. 0x generate compatible FIASCO images and also accept FIASCO 
images generated by Nokia fiasco-gen."
+ 
++#ifndef BUILD_DATE
++#define BUILD_DATE __DATE__
++#endif
++
+ int main() {
+ 
+   FILE * pipe;
+@@ -34,7 +38,7 @@ int main() {
+   if ( ! pipe )
+   return 1;
+ 
+-  puts(".TH " NAME " 1 \"" __DATE__ "\" \"" NAME " " VERSION "\"");
++  puts(".TH " NAME " 1 \"" BUILD_DATE "\" \"" NAME " " VERSION "\"");
+   puts("");
+ 
+   puts(".SH NAME");
diff -Nru 0x-0.6.1/debian/patches/series 0x-0.6.1/debian/patches/series
--- 0x-0.6.1/debian/patches/series  1970-01-01 01:00:00.0 +0100
+++ 0x-0.6.1/debian/patches/series  2015-06-15 12:56:39.0 +0200
@@ -0,0 +1 @@
+fix_build_date
diff -Nru 0x-0.6.1/debian/rules 0x-0.6.1/debian/rules
--- 0x-0.6.1/debian/rules   2015-05-27 17:45:22.0 +0200
+++ 0x-0.6.1/debian/rules   2015-06-15 12:55:33.0 +0200
@@ -1,5 +1,7 @@
 #!/usr/bin/make -f
 
+export BUILD_DATE = $(shell LC_ALL=C date -u --date="`dpkg-parsechangelog 
-SDate`" +'%b %e %Y')
+
 %:
dh $@
 


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] Bug#788752: analog: please make the build reproducible

2015-06-15 Thread Dhole
Hi!

The patch I submitted earlier removed the timestamp from the build
system. Probably removing the ``
field in the generated xml by outxml.c was not desirable, so I've
improved the patch.
In this case no timestamp is removed: the build date can now be set
externally, and specifically it is set to the last debian/changelog entry.

-- 
Dhole
diff -u analog-6.0/debian/changelog analog-6.0/debian/changelog
--- analog-6.0/debian/changelog
+++ analog-6.0/debian/changelog
@@ -1,3 +1,11 @@
+analog (2:6.0-21) UNRELEASED; urgency=medium
+
+  * Patch build system to allow the build date to be set externally,
+and set it to the latest debian/changelog entry for reproducibility.
+
+
+ -- Dhole   Mon, 15 Jun 2015 13:08:11 +0200
+
 analog (2:6.0-20) unstable; urgency=low
 
   * QA upload.
diff -u analog-6.0/debian/rules analog-6.0/debian/rules
--- analog-6.0/debian/rules
+++ analog-6.0/debian/rules
@@ -2,6 +2,8 @@
 
 include /usr/share/quilt/quilt.make
 
+export BUILD_DATE = $(shell LC_ALL=C date -u --date="`dpkg-parsechangelog 
-SDate`" +'%b %e %Y %H:%M:%S')
+
 clean: unpatch
dh clean
 
only in patch2:
unchanged:
--- analog-6.0.orig/src/Makefile
+++ analog-6.0/src/Makefile
@@ -47,6 +47,7 @@
 # MPE/iX needs LIBS = -lsocket -lm
 # SVR4 needs LIBS = -lsocket -lnsl -lm
 # DYNIX/ptx needs LIBS = -L/usr/lib/bsd-socket -lsocket -lnsl -lm
+BUILD_DATE ?= $(shell date '+%b %e %Y') # define in case it is not exported
 
 PROGRAM = analog
 TARGET = ../analog
@@ -69,7 +70,7 @@
 HEADERS = anlghead.h anlghea2.h anlghea3.h anlghea4.h macdir.h \
pcre/pcre.h libgd/gd.h libgd/gdfontf.h libgd/gdfonts.h unzip/unzip.h \
zlib/zlib.h bzip2/bzlib.h
-ALLCFLAGS = $(CFLAGS) $(DEFS) -D$(OS)
+ALLCFLAGS = $(CFLAGS) $(DEFS) -D$(OS) -DBUILD_DATE="\"$(BUILD_DATE)\""
 ALLOBJS = $(OBJS) $(SUBDIROBJS)
 
 $(PROGRAM): $(OBJS) $(SUBDIRS) $(HEADERS) Makefile
only in patch2:
unchanged:
--- analog-6.0.orig/src/outxml.c
+++ analog-6.0/src/outxml.c
@@ -16,6 +16,10 @@
 
 #define NDEBUG
 
+#ifndef BUILD_DATE
+#define BUILD_DATE __DATE__ " " __TIME__
+#endif
+
 #include 
 #include 
 #include 
@@ -85,7 +89,7 @@
xml_defaults( opts );
 
// extract a build timestamp from __DATE__ and __TIME__ -- locale 
dependent?! need to force "C" locale ?
-   strptime( __DATE__" "__TIME__, "%b%n%d%n%Y%n%T", &temptime );
+   strptime( BUILD_DATE, "%b%n%d%n%Y%n%T", &temptime );
 
sprintf( buffer, "%04d%02d%02d%02d%02d",
temptime.tm_year+1900, temptime.tm_mon+1, temptime.tm_mday, 
temptime.tm_hour, temptime.tm_min );


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] GSoC 2015 Week 4: Move forward reproducible builds

2015-06-21 Thread Dhole
Hi,

On the beginning of the week I improved two patches I had sent on the
previous week upon Lunar's suggestion. They are the following:
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788747
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788752

On both cases the inital patch removed the usage of C __DATE__ and
__TIME__ timestamps from the build. On one package this caused the
manpages to be malformed. On the other one, it removed a field in a
generated xml. The improved patches maintain the timestamps in the
source code and allows them to be set to a fixed date, which in the case
of the debian build is set to the last changelog date, making the
packages build reproducibly.

On Tuesday I attended the second bi-weekly irc meeting about
reproducible builds in Debian. (I also attended the first one, but
forgot to mention in my weekly report). The purpose of these meetings is
to discuss the current state of the project, bring up issues and share
what other members are working on. The result of the first meeting can
be found here:
-
http://meetbot.debian.net/debian-reproducible/2015/debian-reproducible.2015-06-03-19.03.html

The result of the second meeting can be found here:
-
http://meetbot.debian.net/debian-reproducible/2015/debian-reproducible.2015-06-16-17.01.html


This week I had two final exams and I will have two presentations and
one deliverable on Monday from my university course. Because of this I
wasn't able to do much work this week. I'll be finished on Monday, so
I'll be able to dedicate much more time to GSoC.

For next week my plan is the following:
- Add some information in the wiki regarding the 'C macro timestamp'
issue (and maybe on the page regarding the issue 'packages not using
dh_build')
- Continue working on fixing packages with the 'C macro timestamp' issue
- Start to discuss with my mentor and other members of the project on
what can I focus now that I'll have more time to work on harder issues.

Regards,
-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#789648: apt-dater: please make the build reproducible

2015-06-22 Thread Dhole
Source: apt-dater
Version: 1.0.1+git20150119-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that apt-dater could not be built reproducibly.

The attached patch allows the build date embedded in apt-dater.c (coming
from the C macros __DATE__ and __TIME__) to be set externally with the
BUILD_DATE define, and specifically it is set to the last
debian/changelog entry. In case the BUILD_DATE define is not exported,
the package can be built embedding a timestamp of the compilation time.
Once applied, apt-dater can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -Nru apt-dater-1.0.1+git20150119/debian/changelog 
apt-dater-1.0.1+git20150119/debian/changelog
--- apt-dater-1.0.1+git20150119/debian/changelog2015-01-19 
19:14:38.0 +0100
+++ apt-dater-1.0.1+git20150119/debian/changelog2015-06-23 
03:13:51.0 +0200
@@ -1,3 +1,11 @@
+apt-dater (1.0.1+git20150119-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Patch build system to allow the build date to be set externally,
+and set it to the latest debian/changelog entry for reproducibility.
+
+ -- Dhole   Tue, 23 Jun 2015 03:13:30 +0200
+
 apt-dater (1.0.1+git20150119-1) unstable; urgency=low
 
   * New upstream git snapshot.
diff -Nru apt-dater-1.0.1+git20150119/debian/patches/fix_build_date 
apt-dater-1.0.1+git20150119/debian/patches/fix_build_date
--- apt-dater-1.0.1+git20150119/debian/patches/fix_build_date   1970-01-01 
01:00:00.0 +0100
+++ apt-dater-1.0.1+git20150119/debian/patches/fix_build_date   2015-06-23 
03:14:33.0 +0200
@@ -0,0 +1,45 @@
+Description: Set build date externally
+ .
+ apt-dater (1.0.1+git20150119-1.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Patch build system to allow the build date to be set externally,
+ and set it to the latest debian/changelog entry for reproducibility.
+Author: Dhole 
+
+---
+
+--- apt-dater-1.0.1+git20150119.orig/src/Makefile.am
 apt-dater-1.0.1+git20150119/src/Makefile.am
+@@ -1,5 +1,7 @@
+ bin_PROGRAMS = apt-dater
+ 
++# define in case BUILD_DATE is not exported
++BUILD_DATE ?= $(shell date '%b %e %Y %H:%M:%S')
++
+ apt_dater_SOURCES =   \
+   adproto.h   \
+   apt-dater.c \
+@@ -38,7 +40,7 @@ apt_dater_SOURCES =  \
+ 
+ apt_dater_LDADD = $(GLIB_LIBS) $(TCL_LIBS) $(LIBXML2_LIBS) $(LIBCONFIG_LIBS)
+ 
+-AM_CFLAGS = -Wall -DPKGLIBDIR='"'$(pkglibdir)'"'
++AM_CFLAGS = -Wall -DPKGLIBDIR='"'$(pkglibdir)'"' 
-DBUILD_DATE="\"$(BUILD_DATE)\""
+ if LINUX
+ AM_LDFLAGS = -Wl,--as-needed
+ else
+--- apt-dater-1.0.1+git20150119.orig/src/apt-dater.c
 apt-dater-1.0.1+git20150119/src/apt-dater.c
+@@ -45,7 +45,11 @@
+ #include "report.h"
+ #endif
+ 
+-#define VERSTEXT PACKAGE_STRING " - " __DATE__ " " __TIME__ "\n\n" \
++#ifndef BUILD_DATE
++#define BUILD_DATE __DATE__ " " __TIME__
++#endif
++
++#define VERSTEXT PACKAGE_STRING " - " BUILD_DATE "\n\n" \
+   "Copyright Holder: IBH IT-Service GmbH [https://www.ibh.net/]\n\n"; \
+   "This program is free software; you can redistribute it and/or modify\n" \
+   "it under the terms of the GNU General Public License as published by\n" \
diff -Nru apt-dater-1.0.1+git20150119/debian/patches/series 
apt-dater-1.0.1+git20150119/debian/patches/series
--- apt-dater-1.0.1+git20150119/debian/patches/series   1970-01-01 
01:00:00.0 +0100
+++ apt-dater-1.0.1+git20150119/debian/patches/series   2015-06-23 
03:14:15.0 +0200
@@ -0,0 +1 @@
+fix_build_date
diff -Nru apt-dater-1.0.1+git20150119/debian/rules 
apt-dater-1.0.1+git20150119/debian/rules
--- apt-dater-1.0.1+git20150119/debian/rules2015-01-19 19:14:38.0 
+0100
+++ apt-dater-1.0.1+git20150119/debian/rules2015-06-23 03:08:26.0 
+0200
@@ -8,6 +8,10 @@
--enable-clusters \
--enable-debug
 
+# Store a the last changelog date in the form of __DATE__ " " __DATE__ C macro
+export BUILD_DATE = $(shell LC_ALL=C date -u \
+   --date="`dpkg-parsechangelog -SDate`" +'%b %e %Y %H:%M:%S')
+
 %:
dh $@
 


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#789963: qrfcview: please make the build reproducible

2015-06-25 Thread Dhole
Source: qrfcview
Version: 0.62-5.2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that qrfcview could not be built reproducibly.

The attached patch removes the timestamps from the the generated png icon.
Once applied, qrfcview can be built reproducibly in our
current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -u qrfcview-0.62/debian/rules qrfcview-0.62/debian/rules
--- qrfcview-0.62/debian/rules
+++ qrfcview-0.62/debian/rules
@@ -42,7 +42,7 @@
 
# Installation of icon and pixmap (hence imagemagick dependency).
install -d -m 755 debian/qrfcview/usr/share/icons
-   convert -thumbnail 32x32 images/rfcview.png 
debian/qrfcview/usr/share/icons/qrfcview.png
+   convert -thumbnail 32x32 images/rfcview.png +set date:create +set 
date:modify -define png:exclude-chunk=time 
debian/qrfcview/usr/share/icons/qrfcview.png
install -d -m 755 debian/qrfcview/usr/share/pixmaps
convert -thumbnail 32x32 images/rfcview.png 
debian/qrfcview/usr/share/pixmaps/qrfcview.xpm
 
diff -u qrfcview-0.62/debian/changelog qrfcview-0.62/debian/changelog
--- qrfcview-0.62/debian/changelog
+++ qrfcview-0.62/debian/changelog
@@ -1,3 +1,10 @@
+qrfcview (0.62-6) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Remove timestamp from png to make package build reproducibly
+
+ -- Dhole   Thu, 25 Jun 2015 16:53:17 +0200
+
 qrfcview (0.62-5.2) unstable; urgency=low
 
   * Non-maintainer upload.


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#789964: xutils-dev: please make the build reproducible

2015-06-25 Thread Dhole
Source: xutils-dev
Version: 1:7.7+3
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that xutils-dev makes some packages not build reproducibly.

The attached patch modifies the default GzipCmd used in Imake from
'gzip' to 'gzip -n' so that timestamps are not stored in packages that
use functions depending on GzipCmd.
Once applied, xtel (and maybe others) can be built reproducibly in our
current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -Nru xutils-dev-7.7+3/debian/changelog xutils-dev-7.7+3.1/debian/changelog
--- xutils-dev-7.7+3/debian/changelog   2014-05-21 21:46:36.0 +0200
+++ xutils-dev-7.7+3.1/debian/changelog 2015-06-25 18:12:12.0 +0200
@@ -1,3 +1,11 @@
+xutils-dev (1:7.7+3.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Change default GzipCmd to `gzip -n` so that packages depending on
+xutils-dev can be built reproducibly
+
+ -- Dhole   Thu, 25 Jun 2015 18:11:15 +0200
+
 xutils-dev (1:7.7+3) unstable; urgency=medium
 
   * gccmakedep 1.0.3.
diff -Nru xutils-dev-7.7+3/xorg-cf-files/Imake.tmpl 
xutils-dev-7.7+3.1/xorg-cf-files/Imake.tmpl
--- xutils-dev-7.7+3/xorg-cf-files/Imake.tmpl   2014-05-21 21:01:41.0 
+0200
+++ xutils-dev-7.7+3.1/xorg-cf-files/Imake.tmpl 2015-06-25 18:09:25.0 
+0200
@@ -1190,7 +1190,7 @@
 #define CompressCmd compress
 #endif
 #ifndef GzipCmd
-#define GzipCmd gzip
+#define GzipCmd gzip -n
 #endif
 #ifndef CppCmd
 #define CppCmd /LibDirName/cpp


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#789965: xtel: please make the build reproducible

2015-06-25 Thread Dhole
Source: xtel
Version: 3.3.0-17.1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that xtel could not be built reproducibly.

The attached patch removes extra timestamps from compressed files by
gzip and from the png icon.
Once applied, and with a patched version of the dependency xutils-dev,
xtel can be built reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -u xtel-3.3.0/debian/changelog xtel-3.3.0/debian/changelog
--- xtel-3.3.0/debian/changelog
+++ xtel-3.3.0/debian/changelog
@@ -1,3 +1,11 @@
+xtel (3.3.0-17.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Don't store timestamps when calling gzip and remove timestamps from png
+to make package build reproducibly
+
+ -- Dhole   Thu, 25 Jun 2015 16:30:25 +0200
+
 xtel (3.3.0-17.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -u xtel-3.3.0/debian/rules xtel-3.3.0/debian/rules
--- xtel-3.3.0/debian/rules
+++ xtel-3.3.0/debian/rules
@@ -20,7 +20,7 @@
xmkmf
make Xtel
# convert the mean gif file into a png file
-   convert xtel.gif xtel.png
+   convert xtel.gif +set date:create +set date:modify -define 
png:exclude-chunk=time xtel.png
touch build-stamp
 
 clean:
@@ -62,7 +62,7 @@
install -m 644 LISEZMOI.txt debian/xtel/usr/share/doc/LANG/fr/xtel/
install -m 644 FAQ.txt debian/xtel/usr/share/doc/LANG/fr/xtel/
install -m 644 README_IMINITEL.txt 
debian/xtel/usr/share/doc/LANG/fr/xtel/
-   gzip -9v debian/xtel/usr/share/doc/LANG/fr/xtel/*.txt
+   gzip -9vn debian/xtel/usr/share/doc/LANG/fr/xtel/*.txt
# Install png image example
install -m 644 xtel.png debian/xtel/usr/share/doc/xtel/
# Create a symlink in /usr/share/doc/xtel to the french doc directory


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#790371: djvulibre: please make the build reproducible

2015-06-28 Thread Dhole
Source: djvulibre
Version: 3.5.27.1-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that djvulibre could not be built reproducibly.

The attached patch removes extra timestamps from the gzip files. Once
applied, djvulibre can be built reproducibly in our current experimental
framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -Nru djvulibre-3.5.27.1/debian/changelog 
djvulibre-3.5.27.1/debian/changelog
--- djvulibre-3.5.27.1/debian/changelog 2015-05-05 10:30:15.0 +0200
+++ djvulibre-3.5.27.1/debian/changelog 2015-06-25 19:40:13.0 +0200
@@ -1,3 +1,10 @@
+djvulibre (3.5.27.1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Remove timestamp when calling gzip to make package build reproducibly 
+
+ -- Dhole   Thu, 25 Jun 2015 19:39:52 +0200
+
 djvulibre (3.5.27.1-1) unstable; urgency=medium
 
   * freeze is over, can target to unstable once more
diff -Nru djvulibre-3.5.27.1/debian/patches/remove_gzip_timestamp 
djvulibre-3.5.27.1/debian/patches/remove_gzip_timestamp
--- djvulibre-3.5.27.1/debian/patches/remove_gzip_timestamp 1970-01-01 
01:00:00.0 +0100
+++ djvulibre-3.5.27.1/debian/patches/remove_gzip_timestamp 2015-06-25 
19:40:46.0 +0200
@@ -0,0 +1,21 @@
+Description: Remove gzip timestamp
+ .
+ djvulibre (3.5.27.1-1.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Remove timestamp when calling gzip to make package build reproducibly
+Author: Dhole 
+
+---
+
+--- djvulibre-3.5.27.1.orig/desktopfiles/Makefile.am
 djvulibre-3.5.27.1/desktopfiles/Makefile.am
+@@ -61,7 +61,7 @@ else
+ endif
+ 
+ svg_process =\
+-cat $< | gzip >$@
++cat $< | gzip -n >$@
+ 
+ svg_verbose = $(svg_verbose_@AM_V@)
+ svg_verbose_ = $(svg_verbose_@AM_DEFAULT_V@)
diff -Nru djvulibre-3.5.27.1/debian/patches/series 
djvulibre-3.5.27.1/debian/patches/series
--- djvulibre-3.5.27.1/debian/patches/series2015-05-05 10:31:09.0 
+0200
+++ djvulibre-3.5.27.1/debian/patches/series2015-06-25 19:40:30.0 
+0200
@@ -1 +1,2 @@
 debian-changes
+remove_gzip_timestamp


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#790374: oxygen-icons: please make the build reproducible

2015-06-28 Thread Dhole
Source: oxygen-icons
Version: 4:14.12.2-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps fileordering

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that oxygen-icons could not be built reproducibly.

The attached patch removes the timestamps from the the generated png icons.
oxygen-icons uses the script symlink_duplicates.sh to find duplicate
files (with fdupes) and create symlinks before packing the files. The
order in which duplicates are found can differ between runs making the
symlinks undeterministic. The provided patch parses the output of fdupes
to sort the groups of duplicated files, making the output deterministic.

Once applied, oxygen-icons can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

-- 
Dhole
diff -Nru oxygen-icons-14.12.2/debian/changelog 
oxygen-icons-14.12.2/debian/changelog
--- oxygen-icons-14.12.2/debian/changelog   2015-02-16 12:01:41.0 
+0100
+++ oxygen-icons-14.12.2/debian/changelog   2015-06-26 13:22:21.0 
+0200
@@ -1,3 +1,12 @@
+oxygen-icons (4:14.12.2-2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Remove timestamps from png to make package build reproducibly 
+  * symlink_duplicates.sh now symlinks files in a reproducible way (by sorting
+the results of fdupes)
+
+ -- Dhole   Fri, 26 Jun 2015 13:21:16 +0200
+
 oxygen-icons (4:14.12.2-1) experimental; urgency=medium
 
   * Prepare Debian release.
diff -Nru oxygen-icons-14.12.2/debian/patches/remove_png_timestamps 
oxygen-icons-14.12.2/debian/patches/remove_png_timestamps
--- oxygen-icons-14.12.2/debian/patches/remove_png_timestamps   1970-01-01 
01:00:00.0 +0100
+++ oxygen-icons-14.12.2/debian/patches/remove_png_timestamps   2015-06-25 
18:22:02.0 +0200
@@ -0,0 +1,25 @@
+Description: Remove png timestamps
+ .
+ oxygen-icons (4:14.12.2-1.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Remove timestamps from png to make package build reproducibly
+Author: Dhole 
+
+---
+
+--- oxygen-icons-14.12.2.orig/scalable/export_pngs.sh
 oxygen-icons-14.12.2/scalable/export_pngs.sh
+@@ -31,10 +31,10 @@ for size in $sizes; do
+ inkscape --without-gui 
--export-png="../"${size}x${size}"/"$iconDir"/"$iconPngName --export-dpi=72 
--export-background-opacity=0 --export-width=$size --export-height=$size 
$smallicon > /dev/null
+  
+  else
+-convert -filter Sinc -resize ${size}x${size} $iconPngName 
"../"${size}x${size}"/"$iconDir"/"$iconPngName
++convert -filter Sinc -resize ${size}x${size} $iconPngName +set 
date:create +set date:modify -define png:exclude-chunk=time 
"../"${size}x${size}"/"$iconDir"/"$iconPngName
+  fi
+   else
+- convert -filter Sinc -resize ${size}x${size} $iconPngName 
"../"${size}x${size}"/"$iconDir"/"$iconPngName
++ convert -filter Sinc -resize ${size}x${size} $iconPngName +set 
date:create +set date:modify -define png:exclude-chunk=time 
"../"${size}x${size}"/"$iconDir"/"$iconPngName
+   fi
+   echo "Converted the icon named "$( echo $iconName | cut -d . -f -1 )" to 
size: " $size
+ done
diff -Nru oxygen-icons-14.12.2/debian/patches/series 
oxygen-icons-14.12.2/debian/patches/series
--- oxygen-icons-14.12.2/debian/patches/series  1970-01-01 01:00:00.0 
+0100
+++ oxygen-icons-14.12.2/debian/patches/series  2015-06-25 18:21:42.0 
+0200
@@ -0,0 +1 @@
+remove_png_timestamps
diff -Nru oxygen-icons-14.12.2/debian/rules oxygen-icons-14.12.2/debian/rules
--- oxygen-icons-14.12.2/debian/rules   2015-02-16 12:01:41.0 +0100
+++ oxygen-icons-14.12.2/debian/rules   2015-06-25 18:15:39.0 +0200
@@ -7,7 +7,8 @@
 
 override_dh_auto_build:
convert 64x64/mimetypes/x-office-document.png \
-   -scale "22x22" 22x22/mimetypes/x-office-document.png
+   -scale "22x22" +set date:create +set date:modify -define 
png:exclude-chunk=time \
+   22x22/mimetypes/x-office-document.png
$(overridden_command)
 
 override_dh_install:
diff -Nru oxygen-icons-14.12.2/debian/symlink_duplicates.sh 
oxygen-icons-14.12.2/debian/symlink_duplicates.sh
--- oxygen-icons-14.12.2/debian/symlink_duplicates.sh   2015-02-16 
12:01:41.0 +0100
+++ oxygen-icons-14.12.2/debian/symlink_duplicates.sh   2015-06-26 
13:20:30.0 +0200
@@ -5,13 +5,27 @@
 # $1 Root directory for absolute path calculation
 # $2 Directory for searching duplicate files
 
+# Call fdupes and sort the filenames in the groups of duplicates in the output
+function fdupes_sorted {
+   duplicates=""
+   fdupes ${*:2} | while read line; do
+   if [ -z "$line" ]; then
+   echo -n "$dup

[Reproducible-builds] GSoC 2015 Week 5: Move forward reproducible builds

2015-06-28 Thread Dhole
Hi,

This week I have continued working on some issues related to packages
using C timestamp macros. I have sent one patch:

- https://reproducible.debian.net/rb-pkg/unstable/amd64/apt-dater.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789648

I have also written a patch for apache2 but it's on hold:

- https://reproducible.debian.net/rb-pkg/unstable/amd64/apache2.html

The reason I haven't submitted it is because of a discussion in irc.
Currently there are 490 packages affected by timestamps from C macro.
Patching them all one by one is a tedious and slow task, so we discussed
on irc possible solutions.
In the reproducible builds project there has been an idea for
standardizing toolchain packages that deal with timestamps. The idea is
to export a variable called SOURCE_DATE_EPOCH with the latests
debian/changelog entry in Unix time. This variable can be seen by any
package to modify its behavior: instead of embedding the current
time/date, embed the exported date/time. A patch with this solution has
already been written and accepted in help2man. There are many candidate
packages that could benefit from this patch (for instances,
documentation generation tools).
So we talked about the idea of implementing this solution in GCC, so
that when the variable SOURCE_DATE_EPOCH, the macros __DATE__, __TIME__
and __TIMESTAMP__ use the exported timestamp rather than local
compilation time.

I have started working on such patch.

I have also worked on a package with the issue of timestamps in gzip
headers:
- https://reproducible.debian.net/rb-pkg/unstable/amd64/djvulibre.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790371

And on packages that create or modify png files and embed a timestamp in
them:

- https://reproducible.debian.net/rb-pkg/unstable/amd64/qrfcview.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789963

- https://reproducible.debian.net/rb-pkg/unstable/amd64/xtel.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789965 (depends on
fix in xutils-dev)

- https://reproducible.debian.net/rb-pkg/unstable/amd64/oxygen-icons.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790374

One of the previous packages embedded timestamps in gzip headers because
it was using a tool that defined such behavior, I patched the tool as well:

- https://reproducible.debian.net/rb-pkg/unstable/amd64/xutils-dev.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789964 (fixes xtel)

Finally, I have added some information in the reproducible builds wiki
regarding the issue timestamps_from_cpp_macros and a possible solution
that doesn't remove the timestamps macros:
- https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros

Regards,
-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Suggestion: sort packages in rb.d.n in single issue pages by bugs/no bugs

2015-06-30 Thread Dhole
Hi,

This afternoon I was commenting on the channel that I'd find it useful
if the list of packages in rb.d.n could be split into the ones that
already have a submitted patch and the ones that don't. I'd find this
useful when looking for new packages to patch, hopefully it can be
useful to others.

Mapreri offered himself to take a look at it, this mail is also a
reminder for him as well :)

Best regards,
-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] GSoC 2015 Week 6: Move forward reproducible builds

2015-07-05 Thread Dhole
Hi,

This week I have been working on patching toolchain packages in relation
to the proposed timestamp standardization.

I have patched gcc to read the SOURCE_DATE_EPOCH environment variable
and in case it is set, change the behavior of the macro __DATE__ and
__TIME__ substitution: instead of writing the local date/time, the one
provided by the env variable is used. I also wrote a patch to replace
the behavior of the __TIMESTAMP__ macro (which embeds the source file
mtime during the preprocessing step) to use the timestamp from
SOURCE_DATE_EPOCH only if it is older than the file mtime (that is,
clamping the timestamp). The later patch has not been sent yet as it
feels more intrusive.

I sent the patch for __DATE__ and __TIME__ to the gcc upstream mailing
list (gcc-patches):

https://gcc.gnu.org/ml/gcc-patches/2015-06/msg02210.html

There's been some discussion and some ideas from the gcc people, but no
maintainer has replied yet (only maintainers can decide if a patch gets
accepted or not).

Since other other people in the project are adopting the use of
SOURCE_DATE_EPOCH to normalize timestamps, I wrote a patch for debhelper
(a Debian package used during package builds) to export the
SOURCE_DATE_EPOCH with the latests debian/changelog entry timestamp. I
also added a change to debhelper to help reproducible builds which
consists on setting TZ=UTC (that is setting the exported variable
defining the timezone to UTC so that during bluilds a normalized
timezone is found).

The debhelper commit can be found here:
https://anonscm.debian.org/cgit/reproducible/debhelper.git/commit/?h=pu/reproducible_builds&id=005841b88b715a29a2279265f2fc2b31d3389344

After committing the change, I built the package and uploaded it to the
reproducible repository so that it can be used in our custom toolchain
and test it on jenkins.

I updated two wiki entries:
- info about gcc patch regarding the C timestamp macro issue:
https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros
- info about debhelp update
https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain

For next week I plan on continue looking at toolchain packages that
could implement the use of SOURCE_DATE_EPOCH (mostly documentation
generators such as docbook-xsl) and write patches for them

Best regards,
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#791815: libxslt: please support timestamps from environment

2015-07-08 Thread Dhole
Source: libxslt
Version: 1.1.28-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: toolchain timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that libxslt embeds timestamps when generating documentation.

We have a proposal for using a deterministic timestamp [2] (based on
the latest debian/changelog entry) which is contained in the environment
variable SOURCE_DATE_EPOCH (currently exported by debhelper in our
experimental framework).

The attached patch proposes a way to use this variable to get
reproducible timestamps when generating docs, if the variable has been
set (if not, it falls back to the old behavior).


 [1]: https://wiki.debian.org/ReproducibleBuilds
 [2]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal

Regards,
-- 
Dhole
diff -Nru libxslt-1.1.28/debian/changelog libxslt-1.1.28/debian/changelog
--- libxslt-1.1.28/debian/changelog 2015-07-01 12:00:21.0 +0200
+++ libxslt-1.1.28/debian/changelog 2015-07-08 15:19:03.0 +0200
@@ -1,9 +1,14 @@
-libxslt (1.1.28-2.0~reproducible3) UNRELEASED; urgency=low
+libxslt (1.1.28-2.0~reproducible4) UNRELEASED; urgency=low
 
+  [ Jérémy Bobbio ]
   * Add a patch from Daniel Veillard to make generate-id() provide stable IDs
 to make its output reproducible.
 
- -- Jérémy Bobbio   Wed, 01 Jul 2015 11:49:58 +0200
+  [ Eduard Sanou ]
+  * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the
+date when processing docs (when using the var $date).
+
+ -- Dhole   Wed, 08 Jul 2015 15:05:07 +0200
 
 libxslt (1.1.28-2) unstable; urgency=low
 
diff -Nru 
libxslt-1.1.28/debian/patches/0010-Replace-timestamp-with-SOURCE_DATE_EPOCH 
libxslt-1.1.28/debian/patches/0010-Replace-timestamp-with-SOURCE_DATE_EPOCH
--- libxslt-1.1.28/debian/patches/0010-Replace-timestamp-with-SOURCE_DATE_EPOCH 
1970-01-01 01:00:00.0 +0100
+++ libxslt-1.1.28/debian/patches/0010-Replace-timestamp-with-SOURCE_DATE_EPOCH 
2015-07-08 15:18:26.0 +0200
@@ -0,0 +1,65 @@
+Description: Replace date timestamp by SOURCE_DATE_EPOCH env var
+Author: Dhole 
+
+---
+
+--- libxslt-1.1.28.orig/libexslt/date.c
 libxslt-1.1.28/libexslt/date.c
+@@ -46,6 +46,7 @@
+ #include "exslt.h"
+ 
+ #include 
++#include 
+ 
+ #ifdef HAVE_MATH_H
+ #include 
+@@ -747,21 +748,46 @@ static exsltDateValPtr
+ exsltDateCurrent (void)
+ {
+ struct tm localTm, gmTm;
++struct tm *tb = NULL;
+ time_t secs;
+ int local_s, gm_s;
+ exsltDateValPtr ret;
++char *source_date_epoch;
+ 
+ ret = exsltDateCreateDate(XS_DATETIME);
+ if (ret == NULL)
+ return NULL;
+ 
+-/* get current time */
+ secs= time(NULL);
++/* 
++ * Allow the date and time to be set externally by an exported
++ * environment variable to enable reproducible builds. 
++ */
++source_date_epoch = getenv("SOURCE_DATE_EPOCH");
++if (source_date_epoch) {
++  errno = 0;
++  secs = (time_t) strtol (source_date_epoch, NULL, 10);
++  if (errno == 0) {
++  tb = gmtime(&secs);
++  if (tb == NULL) {
++  /* SOURCE_DATE_EPOCH is not a valid date */
++  return NULL;
++  } else {
++  localTm = *tb;
++  }
++  } else {
++  /* SOURCE_DATE_EPOCH is not a valid number */
++  return NULL;
++  } 
++} else {
++  /* get current time */
+ #if HAVE_LOCALTIME_R
+-localtime_r(&secs, &localTm);
++  localtime_r(&secs, &localTm);
+ #else
+-localTm = *localtime(&secs);
++  localTm = *localtime(&secs);
+ #endif
++}
++
+ 
+ /* get real year, not years since 1900 */
+ ret->value.date.year = localTm.tm_year + 1900;
diff -Nru libxslt-1.1.28/debian/patches/series 
libxslt-1.1.28/debian/patches/series
--- libxslt-1.1.28/debian/patches/series2015-07-01 12:00:21.0 
+0200
+++ libxslt-1.1.28/debian/patches/series2015-07-08 15:13:19.0 
+0200
@@ -7,3 +7,4 @@
 0007-EXSLT-function-str-replace-is-broken-as-is.patch
 0008-Fix-quoting-of-xlocale-test-program-in-configure.in.patch
 0009-Make-generate-id-deterministic.patch
+0010-Replace-timestamp-with-SOURCE_DATE_EPOCH


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] debhelper: set SOURCE_DATE_EPOCH env var for reproducible builds

2015-07-08 Thread Dhole
Source: debhelper
Version: 9.20150628
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: toolchain timestamps

Hi!

While working on the “reproducible builds” effort [1] we have a proposal
of using deterministic timestamps [2] (based on the latest
debian/changelog entry) which is to be set in the environment variable
SOURCE_DATE_EPOCH.

The attached patch makes debhelper export the SOURCE_DATE_EPOCH env
variable during the execution with the latest debian/changelog entry
timestamp, so that packages running during the build process can read it
and replace localtime date/times calls with the exported timestamp in
order to have reproducible builds.

Also, in order to help reproducible builds, a fixed timezone is exported
(TZ=UTC).

 [1]: https://wiki.debian.org/ReproducibleBuilds
 [2]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal

Regards,
-- 
Dhole
diff -Nru debhelper-9.20150628/debian/changelog 
debhelper-9.20150628+nmu1/debian/changelog
--- debhelper-9.20150628/debian/changelog   2015-06-28 13:56:15.0 
+0200
+++ debhelper-9.20150628+nmu1/debian/changelog  2015-07-08 19:35:19.0 
+0200
@@ -1,3 +1,12 @@
+debhelper (9.20150628+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * export the env var SOURCE_DATE_EPOCH with the last debian/changelog
+timestamp.
+  * set env TZ=UTC
+
+ -- Dhole   Wed, 08 Jul 2015 19:34:46 +0200
+
 debhelper (9.20150628) unstable; urgency=medium
 
   * Upload to unstable with ddebs support disabled by default.
diff -Nru debhelper-9.20150628/Debian/Debhelper/Dh_Lib.pm 
debhelper-9.20150628+nmu1/Debian/Debhelper/Dh_Lib.pm
--- debhelper-9.20150628/Debian/Debhelper/Dh_Lib.pm 2015-06-28 
13:24:32.0 +0200
+++ debhelper-9.20150628+nmu1/Debian/Debhelper/Dh_Lib.pm2015-07-08 
19:34:25.0 +0200
@@ -1144,12 +1144,44 @@
}
 }
 
+# Read latest debian/changelog timestamp and export the environment variable
+# SOURCE_DATE_EPOCH with its value, so that any package can read it and 
replace 
+# calls to localtime (or other undeterministic timestamps) with the exported 
+# timestamp to get reproducible builds.
+sub set_source_date_epoch {
+   eval "use Dpkg::Changelog::Debian";
+   if ($@) {
+   warning "unable to set SOURCE_DATE_EPOCH: $@";
+   return;
+   }
+   eval "use Time::Piece";
+   if ($@) {
+   warning "unable to set SOURCE_DATE_EPOCH: $@";
+   return;
+   }
+
+   my $changelog = Dpkg::Changelog::Debian->new();
+   $changelog->load("debian/changelog");
+
+   my $tt = @{$changelog}[0]->get_timestamp();
+   $tt =~ s/\s*\([^\)]+\)\s*$//; # Remove the optional timezone codename
+   my $timestamp = Time::Piece->strptime($tt, "%a, %d %b %Y %T %z");
+
+   $ENV{SOURCE_DATE_EPOCH} = $timestamp->epoch();
+}
+
 # Sets environment variables from dpkg-buildflags. Avoids changing
 # any existing environment variables.
 sub set_buildflags {
-   return if $ENV{DH_INTERNAL_BUILDFLAGS} || compat(8);
+   return if $ENV{DH_INTERNAL_BUILDFLAGS};
$ENV{DH_INTERNAL_BUILDFLAGS}=1;
 
+   set_source_date_epoch();
+   # Set env timezone to UTC to help packages build reproducibly
+   $ENV{TZ} = "UTC";
+
+   return if compat(8);
+
eval "use Dpkg::BuildFlags";
if ($@) {
warning "unable to load build flags: $@";


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] Bug#791815: libxslt: please support timestamps from environment

2015-07-08 Thread Dhole
On 07/08/2015 06:44 PM, Dhole wrote:
> Source: libxslt
> Version: 1.1.28-2
> Severity: wishlist
> Tags: patch
> User: reproducible-builds@lists.alioth.debian.org
> Usertags: toolchain timestamps
> 
> Hi!
> 
> While working on the “reproducible builds” effort [1], we have noticed
> that libxslt embeds timestamps when generating documentation.
> 
> We have a proposal for using a deterministic timestamp [2] (based on
> the latest debian/changelog entry) which is contained in the environment
> variable SOURCE_DATE_EPOCH (currently exported by debhelper in our
> experimental framework).
> 
> The attached patch proposes a way to use this variable to get
> reproducible timestamps when generating docs, if the variable has been
> set (if not, it falls back to the old behavior).
> 
> 
>  [1]: https://wiki.debian.org/ReproducibleBuilds
>  [2]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
> 

The submitted bug for the mentioned feature in debhelper can be found
at: https://bugs.debian.org/791823


Regards,
-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] GSoC 2015 Week 7: Move forward reproducible builds

2015-07-13 Thread Dhole
Hi,

This week I have continued working on the reproducible timestamp
approach through the exported variable SOURCE_DATE_EPOCH.

I submitted a bug for debhelper with last week's patch (I had already
commited a fix exporting SOURCE_DATE_EPOCH in our local git repo, and
uploaded the package in our local repo):
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791823

I submitted bug to Debian for libxslt to honour SOURCE_DATE_EPOCH:
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791815
I also commited the fix to our git repo and puloaded the package  our
repo to perform tests:

https://anonscm.debian.org/cgit/reproducible/libxslt.git/commit/?h=pu/reproducible_builds&id=571bb438df0b11288598c2b05010099d1861a8ed

After the upload, test were performed on the packages affected by issues:
  1- timestamps_generated_by_docbook_to_man (here some packages where
miss tagged)
- there where 79 unreproducible packages and 39 became reproducible
  2- timestamps_in_manpages_generated_by_docbook_xsl
- there where 89 unreproducible packages and 33 became reproducible.

NOTE: there are still packages generating docs with libslt not
reproducible. This is because the patch for dh to export
SOURCE_DATE_EPOCH only works for calls to doc generation under dh. Some
packages have the calls to generate docs directly in debian/rules so
SOURCE_DATE_EPOCH is not set there. A solution needs to be found for that.

I updated some info in the wiki/ExperimentalToolchain regarding packages
using the SOURCE_DATE_EPOCH proposal.

I tagged some packages affected by
locale_in_documentation_generated_by_javadoc.

I started working on the issue lc_messages_randomness:
https://reproducible.debian.net/issues/unstable/lc_messages_randomness_issue.html
I'll continue working on that next week.

Best regards,
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#792593: lives: please make the build reproducible

2015-07-16 Thread Dhole
Source: lives
Version: 2.4.0~ds0-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that lives could not be built reproducibly. During the building of the
plugins from script files, the onchange entires appear in random
ordering as they are stored in a hash and then iterated by the hash keys
(who's order can differ between runs).

The attached patch sorts the onchange entries when building plugins from
scripts to make the package build reproducible.

Once applied, lives can be built reproducibly in our
current experimental framework.

Please also consider forwarding this patch upstream.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru lives-2.4.0~ds0/debian/changelog lives-2.4.0~ds0/debian/changelog
--- lives-2.4.0~ds0/debian/changelog2015-07-11 17:49:51.0 +0200
+++ lives-2.4.0~ds0/debian/changelog2015-07-15 17:36:30.0 +0200
@@ -1,3 +1,11 @@
+lives (2.4.0~ds0-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Sort the onchange entries when building plugins from scripts to
+make the package build reproducible.
+
+ -- Dhole   Wed, 15 Jul 2015 17:36:10 +0200
+
 lives (2.4.0~ds0-1) unstable; urgency=medium
 
   [ Alessio Treglia ]
diff -Nru 
lives-2.4.0~ds0/debian/patches/06-sort-onchanges-entries-in-plugins.patch 
lives-2.4.0~ds0/debian/patches/06-sort-onchanges-entries-in-plugins.patch
--- lives-2.4.0~ds0/debian/patches/06-sort-onchanges-entries-in-plugins.patch   
1970-01-01 01:00:00.0 +0100
+++ lives-2.4.0~ds0/debian/patches/06-sort-onchanges-entries-in-plugins.patch   
2015-07-15 17:37:06.0 +0200
@@ -0,0 +1,22 @@
+Description: Sort onchange entries when generating plugins
+ .
+ lives (2.4.0~ds0-1.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Sort the onchange entries when building plugins from scripts to
+ make package build reproducible.
+Author: Dhole 
+
+---
+
+--- lives-2.4.0~ds0.orig/build-lives-rfx-plugin
 lives-2.4.0~ds0/build-lives-rfx-plugin
+@@ -655,7 +655,7 @@ sub gen_onchange {
+ }
+   
+ if ($pass==1) {
+-  foreach $which (keys %hash) {
++  foreach $which (sort keys %hash) {
+   print OUT "\nif (\$command eq \"onchange_$which\") {\n";
+ 
+   if (@requires&&$is_util&&$which eq "init") {
diff -Nru lives-2.4.0~ds0/debian/patches/series 
lives-2.4.0~ds0/debian/patches/series
--- lives-2.4.0~ds0/debian/patches/series   2015-07-05 16:27:05.0 
+0200
+++ lives-2.4.0~ds0/debian/patches/series   2015-07-15 17:36:44.0 
+0200
@@ -5,3 +5,4 @@
 05-gcc-5.patch
 parallel-build.patch
 9990-buildsystem.patch
+06-sort-onchanges-entries-in-plugins.patch


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#792598: libreoffice-canzeley-client: please make the build reproducible

2015-07-16 Thread Dhole
Source: libreoffice-canzeley-client
Version: 0.4.0-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that libreoffice-canzeley-client could not be built reproducibly.

The attached patch removes timezone-varying timestamps from the
files extracted with unzip. Once applied, libreoffice-canzeley-client
can be built reproducibly in our reproducible toolchain.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru libreoffice-canzeley-client-0.4.0/debian/changelog 
libreoffice-canzeley-client-0.4.0/debian/changelog
--- libreoffice-canzeley-client-0.4.0/debian/changelog  2014-10-25 
02:03:57.0 +0200
+++ libreoffice-canzeley-client-0.4.0/debian/changelog  2015-07-15 
19:22:27.0 +0200
@@ -1,3 +1,11 @@
+libreoffice-canzeley-client (0.4.0-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * add TZ=UTC before unzip in debian/rules to make the files mtime 
+invariant to timezone to make the package build reproducibly.
+
+ -- Dhole   Wed, 15 Jul 2015 19:22:19 +0200
+
 libreoffice-canzeley-client (0.4.0-2) unstable; urgency=low
 
   * Correct typo in control
diff -Nru libreoffice-canzeley-client-0.4.0/debian/rules 
libreoffice-canzeley-client-0.4.0/debian/rules
--- libreoffice-canzeley-client-0.4.0/debian/rules  2014-07-06 
12:23:51.0 +0200
+++ libreoffice-canzeley-client-0.4.0/debian/rules  2015-07-15 
19:22:12.0 +0200
@@ -26,7 +26,7 @@
dh_installdirs -A
 
cd 
$(CURDIR)/debian/libreoffice-canzeley-client/usr/lib/libreoffice/share/extensions/canzeley-client
 && \
-   unzip -o $(CURDIR)/Extension/canzeley_*.oxt
+   TZ=UTC unzip -o $(CURDIR)/Extension/canzeley_*.oxt
mv 
$(CURDIR)/debian/libreoffice-canzeley-client/usr/lib/libreoffice/share/extensions/canzeley-client/icons
 
$(CURDIR)/debian/libreoffice-canzeley-client/usr/share/libreoffice-canzeley-client/
 
dh_lintian


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#792599: openthesaurus: please make the build reproducible

2015-07-16 Thread Dhole
Source: openthesaurus
Version: 20120516-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that openthesaurus could not be built reproducibly.

The attached patch removes timezone-varying timestamps from the
files extracted with unzip. Once applied, openthesaurus can be
built reproducibly in our reproducible toolchain.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru openthesaurus-20120516/debian/changelog 
openthesaurus-20120516/debian/changelog
--- openthesaurus-20120516/debian/changelog 2012-12-18 17:25:04.0 
+0100
+++ openthesaurus-20120516/debian/changelog 2015-07-15 19:36:11.0 
+0200
@@ -1,3 +1,11 @@
+openthesaurus (20120516-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * add TZ=UTC before unzip in debian/rules to make the files mtime 
+invariant to timezone to make the package build reproducibly.
+
+ -- Dhole   Wed, 15 Jul 2015 19:34:49 +0200
+
 openthesaurus (20120516-2) unstable; urgency=low
 
   * fix sed in debian/rules for utf8-encoded dicts so that ß is correctly
diff -Nru openthesaurus-20120516/debian/rules 
openthesaurus-20120516/debian/rules
--- openthesaurus-20120516/debian/rules 2012-12-18 17:22:00.0 +0100
+++ openthesaurus-20120516/debian/rules 2015-07-15 19:34:30.0 +0200
@@ -51,7 +51,7 @@
 
mkdir -p 
$(CURDIR)/debian/openthesaurus-de-text/usr/share/openthesaurus-de/
cd $(CURDIR)/debian/openthesaurus-de-text/usr/share/openthesaurus-de && 
\
-   unzip $(CURDIR)/text/OpenThesaurus-Textversion.zip openthesaurus.txt && 
\
+   TZ=UTC unzip $(CURDIR)/text/OpenThesaurus-Textversion.zip 
openthesaurus.txt && \
ln -sf openthesaurus.txt thesaurus.txt
 
install -D -m644 th_de_DE_v2.dat \


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#792597: jsmath-fonts-sprite: please make the build reproducible

2015-07-16 Thread Dhole
Source: jsmath-fonts-sprite
Version: 1.0-3
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that jsmath-fonts-sprite could not be built reproducibly.

The attached patch removes timezone-varying timestamps from the
files extracted with unzip. Once applied, jsmath-fonts-sprite can be
built reproducibly in our reproducible toolchain.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru jsmath-fonts-sprite-1.0/debian/changelog 
jsmath-fonts-sprite-1.0/debian/changelog
--- jsmath-fonts-sprite-1.0/debian/changelog2014-03-23 21:25:14.0 
+0100
+++ jsmath-fonts-sprite-1.0/debian/changelog2015-07-15 19:11:45.0 
+0200
@@ -1,3 +1,11 @@
+jsmath-fonts-sprite (1.0-3.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * add TZ=UTC before unzip in debian/rules to make the files mtime 
+invariant to timezone to make the package build reproducibly.
+
+ -- Dhole   Wed, 15 Jul 2015 19:11:31 +0200
+
 jsmath-fonts-sprite (1.0-3) unstable; urgency=medium
 
   * Adopted the package. Closes: #621474
diff -Nru jsmath-fonts-sprite-1.0/debian/rules 
jsmath-fonts-sprite-1.0/debian/rules
--- jsmath-fonts-sprite-1.0/debian/rules2014-03-23 21:28:14.0 
+0100
+++ jsmath-fonts-sprite-1.0/debian/rules2015-07-15 19:09:56.0 
+0200
@@ -16,7 +16,7 @@
dh $@
 
 override_dh_auto_build:
-   unzip -q -d jsMath jsMath-*.zip
+   TZ=UTC unzip -q -d jsMath jsMath-*.zip
 
 override_dh_clean:
dh_clean


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#792687: gettext: please support timestamps from environment

2015-07-17 Thread Dhole
Source: gettext
Version: 0.19.4-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: toolchain timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that the xgettext tool from gettext embeds timestamps on the creation of
PO files.

For the Reproducible Builds effort we are proposing an environment
variable (SOURCE_DATE_EPOCH) [2] that will contain a deterministic epoch
timestamp (based on the latest debian/changelog entry) that could be
used, which should be automatically exported by debhelper in the future [3].

The attached patch proposes a way to use this variable to get
reproducible timestamps in the PO files generated by xgettext, if the
variable has been set (if not, it falls back to the old behavior).
With the attached patch packages using xgettext would then automatically
generate reproducible translation files.


[1]: https://wiki.debian.org/ReproducibleBuilds
[2]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
[3]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791815

Regards,
-- 
Dhole
diff -Nru gettext-0.19.4/debian/changelog gettext-0.19.4/debian/changelog
--- gettext-0.19.4/debian/changelog 2015-05-15 18:01:14.0 +0200
+++ gettext-0.19.4/debian/changelog 2015-07-17 15:47:54.0 +0200
@@ -1,3 +1,11 @@
+gettext (0.19.4-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the
+date on creation of PO files with xgettext.
+
+ -- Dhole   Fri, 17 Jul 2015 15:47:41 +0200
+
 gettext (0.19.4-1) unstable; urgency=low
 
   * New upstream release.
diff -Nru 
gettext-0.19.4/debian/patches/03-Replace-timestamp-with-SOURCE_DATE_EPOCH 
gettext-0.19.4/debian/patches/03-Replace-timestamp-with-SOURCE_DATE_EPOCH
--- gettext-0.19.4/debian/patches/03-Replace-timestamp-with-SOURCE_DATE_EPOCH   
1970-01-01 01:00:00.0 +0100
+++ gettext-0.19.4/debian/patches/03-Replace-timestamp-with-SOURCE_DATE_EPOCH   
2015-07-17 15:56:22.0 +0200
@@ -0,0 +1,47 @@
+Description: Replace date timestamp by SOURCE_DATE_EPOCH env var in xgettext
+ .
+ gettext (0.19.4-1.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the
+ date on creation of PO files with xgettext.
+Author: Dhole 
+
+---
+
+--- gettext-0.19.4.orig/gettext-tools/src/xgettext.c
 gettext-0.19.4/gettext-tools/src/xgettext.c
+@@ -3410,6 +3410,7 @@ construct_header ()
+   message_ty *mp;
+   char *msgstr;
+   char *comment;
++  char *source_date_epoch;
+   static lex_pos_ty pos = { __FILE__, __LINE__ };
+ 
+   if (package_name != NULL)
+@@ -3431,7 +3432,24 @@ the MSGID_BUGS_ADDRESS variable there; o
+ specify an --msgid-bugs-address command line option.\n\
+ ")));
+ 
+-  time (&now);
++  /* Allow the date and time to be set externally by an exported
++ environment variable to enable reproducible builds. */
++  source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
++  if (source_date_epoch)
++{
++  errno = 0;
++  now = (time_t) strtol (source_date_epoch, NULL, 10);
++  if (errno != 0)
++error (EXIT_FAILURE, errno, _("\
++SOURCE_DATE_EPOCH=\"%s\" is not a valid number"), source_date_epoch);
++
++  /* The function po_strftime uses localtime() to parse the timestamp, so 
++ we need to fix the environment timezone to get reproducible results 
*/
++  setenv("TZ", "UTC", 1);
++}
++  else
++time (&now);
++
+   timestring = po_strftime (&now);
+ 
+   msgstr = xasprintf ("\
diff -Nru gettext-0.19.4/debian/patches/series 
gettext-0.19.4/debian/patches/series
--- gettext-0.19.4/debian/patches/series2015-05-15 17:19:58.0 
+0200
+++ gettext-0.19.4/debian/patches/series2015-07-17 15:55:50.0 
+0200
@@ -1,2 +1,3 @@
 01-do-not-use-java-in-urlget
 02-msgfmt-default-little-endian
+03-Replace-timestamp-with-SOURCE_DATE_EPOCH


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#792709: dict-jargon: please support timestamps from environment

2015-07-17 Thread Dhole
Source: dict-jargon
Version: 4.4.7-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that dict-jargon could not be built reproducibly.

The attached patch removes timestamps from the build system. Once
applied, dict-jargon can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -u dict-jargon-4.4.7/debian/jargon2dict.sh 
dict-jargon-4.4.7/debian/jargon2dict.sh
--- dict-jargon-4.4.7/debian/jargon2dict.sh
+++ dict-jargon-4.4.7/debian/jargon2dict.sh
@@ -77,7 +77,8 @@
 echo " [+] formatting dictionary database"
-  dictfmt -j -s "The Jargon File (version 4.4.7, 29 Dec 2003)" \
+  dictfmt -j -s "The Jargon File (version 4.4.7, 29 Dec 2003)" --without-time \
-u "http://catb.org/~esr/jargon/jargsrc.tar.gz"; \
--utf8 --allchars --columns 79 'jargon' < 'extracted'
 
 echo " [+] compressing dictionary"
+  touch --date="$BUILD_DATE" jargon.dict
   dictzip 'jargon.dict'
diff -u dict-jargon-4.4.7/debian/rules dict-jargon-4.4.7/debian/rules
--- dict-jargon-4.4.7/debian/rules
+++ dict-jargon-4.4.7/debian/rules
@@ -1,5 +1,7 @@
 #!/usr/bin/make -f
 
+BUILD_DATE := $(shell dpkg-parsechangelog --show-field Date)
+export BUILD_DATE
 DICTDIR=$(CURDIR)/debian/dict-jargon/usr/share/dictd
 
 include /usr/share/quilt/quilt.make
diff -u dict-jargon-4.4.7/debian/changelog dict-jargon-4.4.7/debian/changelog
--- dict-jargon-4.4.7/debian/changelog
+++ dict-jargon-4.4.7/debian/changelog
@@ -1,3 +1,12 @@
+dict-jargon (4.4.7-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace timestamps with the last debian/changelog entry timestamp
+before calling dictzip and remove timestamps in call to dictfmt to 
+make the package build reproducibly.
+
+ -- Dhole   Fri, 17 Jul 2015 17:56:55 +0200
+
 dict-jargon (4.4.7-2) unstable; urgency=low
 
   * Add dict-server to Depends (Closes: #533717)


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] GSoC 2015 Week 8: Move forward reproducible builds

2015-07-20 Thread Dhole
# 8th week

Subject: GSoC 2015 Week 8: Move forward reproducible builds
To: soc-coordinat...@lists.alioth.debian.org
CC: reproducible-builds@lists.alioth.debian.org

Hi,

This week I have continued working on the reproducible timestamp
approach through the exported variable SOURCE_DATE_EPOCH.

I studied the issue lc_messages_randomness [1], which is caused by the
tool xgettext in the package gettext. The packages affected have a
timestamp embedde with the creation date of .po translation files, which
is later transferred to .mo translation files.
I wrote a patch for gettext so that xgettext replaces localtime
timestamps with the date found in SOURCE_DATE_EPOCH in case it is set.
The branch with the changes in the reproducible git repo can be found here:
https://anonscm.debian.org/cgit/reproducible/gettext.git/log/?h=pu/reproducible_builds

I also uploaded the gettext package with these changes and uploaded to
the reproducible builds APT repository, to test on jenkins, which gave
the following results:

There were 42 unreproducible packages affected by this issue, of which
27 became reproducible.
15 packages are still not reproducible because the call to xgettext
doesn't happen under dh.

I also opened a bug in Debian providing the patch and updated the wiki
about our experimental toolchain.
https://bugs.debian.org/792687

I have also worked on individual packages affected by the issue
timestamps_difference_by_unzip [2] where 11 packages are affected (9
unreproducible).

Out of those 9, I wrote patches for 7 to make them reproducible:

- fonts-stix
https://bugs.debian.org/792602
- jsmath
https://bugs.debian.org/792596
- jsmath-fonts-sprite
https://bugs.debian.org/792597
- libreoffice-canzeley-client
https://bugs.debian.org/792598
- openthesaurus
https://bugs.debian.org/792599

There are 2 packages missing: pdf.js and torbutton, which don't become
reproducible with the same procedure as the ohter ones. I'll study them.

I also sent patches to two other packages:
lives (process a Perl hash in stable order to make it reproducible)
https://bugs.debian.org/792593

dict-jargon (affected by timestamps_in_dictionaries)
https://bugs.debian.org/792709

For next week I plan to look further into pdf.js and torbutton, try to
patch the remaining packages affected by timestamps_in_dictionaries, and
work on the issue pdf_created_by_ghostscript [3].


[1]
https://reproducible.debian.net/issues/unstable/lc_messages_randomness_issue.html
[2]
https://reproducible.debian.net/issues/unstable/timestamps_difference_by_unzip_issue.html
[3]
https://reproducible.debian.net/issues/pdf_created_by_ghostscript_issue.html

Best regards,
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#793126: torbutton: please support timestamps from environment

2015-07-21 Thread Dhole
Source: torbutton
Version: 1.4.6.3-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that torbutton could not be built reproducibly.

The attached patch removes timezone-varying timestamps from the
files compressed with zip. Once applied, torbutton can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru torbutton-1.4.6.3/debian/changelog torbutton-1.4.6.3/debian/changelog
--- torbutton-1.4.6.3/debian/changelog  2012-10-16 21:22:39.0 +0200
+++ torbutton-1.4.6.3/debian/changelog  2015-07-21 00:35:00.0 +0200
@@ -1,3 +1,11 @@
+torbutton (1.4.6.3-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * add TZ=UTC before zip in makexpi.sh to make the files mtime 
+invariant to timezone to make the package build reproducibly.
+
+ -- Dhole   Tue, 21 Jul 2015 00:34:36 +0200
+
 torbutton (1.4.6.3-1) unstable; urgency=high
 
   * New upstream release:
diff -Nru torbutton-1.4.6.3/debian/patches/fix-timezone-in-zip 
torbutton-1.4.6.3/debian/patches/fix-timezone-in-zip
--- torbutton-1.4.6.3/debian/patches/fix-timezone-in-zip1970-01-01 
01:00:00.0 +0100
+++ torbutton-1.4.6.3/debian/patches/fix-timezone-in-zip2015-07-21 
00:36:48.0 +0200
@@ -0,0 +1,18 @@
+Description: Fix timezone before calling zip
+Author: Dhole 
+
+---
+
+--- torbutton-1.4.6.3.orig/makexpi.sh
 torbutton-1.4.6.3/makexpi.sh
+@@ -18,8 +18,8 @@ cd ../..
+ # create .xpi
+ echo -- create $APP_NAME.xpi --
+ cd src
+-echo zip -X -9r ../pkg/$XPI_NAME ./ -x "certDialogsOverride.js" -x "chrome/*" 
-x "*.diff" -x "*.svn/*"
+-zip -X -9r ../pkg/$XPI_NAME ./ -x "components/certDialogsOverride.js" -x 
"*.svn/*" -x "*.diff" -x "components/torRefSpoofer.js" #-x "chrome/*"
++echo TZ=UTC zip -X -9r ../pkg/$XPI_NAME ./ -x "certDialogsOverride.js" -x 
"chrome/*" -x "*.diff" -x "*.svn/*"
++TZ=UTC zip -X -9r ../pkg/$XPI_NAME ./ -x "components/certDialogsOverride.js" 
-x "*.svn/*" -x "*.diff" -x "components/torRefSpoofer.js" #-x "chrome/*"
+ #mv ../$APP_NAME.jar ./chrome
+ #zip -9m ../pkg/$XPI_NAME chrome/$APP_NAME.jar
+ cd ..
diff -Nru torbutton-1.4.6.3/debian/patches/series 
torbutton-1.4.6.3/debian/patches/series
--- torbutton-1.4.6.3/debian/patches/series 2012-10-16 21:22:39.0 
+0200
+++ torbutton-1.4.6.3/debian/patches/series 2015-07-21 00:36:30.0 
+0200
@@ -1,3 +1,4 @@
 localhost-proxy.patch
 restore-status-panel-on-ff4.patch
 disable-locked-mode.patch
+fix-timezone-in-zip


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#793127: pdf.js: please support timestamps from environment

2015-07-21 Thread Dhole
Source: pdf.js
Version: 1.1.215+dfsg-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that pdf.js could not be built reproducibly.

The attached patch removes timezone-varying timestamps from the
files compressed with zip. Once applied, pdf.js can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru pdf.js-1.1.215+dfsg/debian/changelog 
pdf.js-1.1.215+dfsg/debian/changelog
--- pdf.js-1.1.215+dfsg/debian/changelog2015-06-20 21:59:19.0 
+0200
+++ pdf.js-1.1.215+dfsg/debian/changelog2015-07-21 16:12:20.0 
+0200
@@ -1,3 +1,11 @@
+pdf.js (1.1.215+dfsg-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set TZ=UTC before calls to zip in make.js to make package build 
+reproducibly.
+
+ -- Dhole   Tue, 21 Jul 2015 16:11:47 +0200
+
 pdf.js (1.1.215+dfsg-1) unstable; urgency=medium
 
   * Update upstream changelog
diff -Nru pdf.js-1.1.215+dfsg/debian/patches/fix-timezone-in-zip 
pdf.js-1.1.215+dfsg/debian/patches/fix-timezone-in-zip
--- pdf.js-1.1.215+dfsg/debian/patches/fix-timezone-in-zip  1970-01-01 
01:00:00.0 +0100
+++ pdf.js-1.1.215+dfsg/debian/patches/fix-timezone-in-zip  2015-07-21 
16:13:08.0 +0200
@@ -0,0 +1,23 @@
+Description: Fix timezone in zip calls
+ .
+ pdf.js (1.1.215+dfsg-1.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Set TZ=UTC before calls to zip in make.js to make package build
+ reproducibly.
+Author: Dhole 
+
+---
+
+--- pdf.js-1.1.215+dfsg.orig/make.js
 pdf.js-1.1.215+dfsg/make.js
+@@ -831,6 +831,9 @@ target.firefox = function() {
+   sed('-i', /.*PDFJS_SUPPORTED_LOCALES.*\n/, chromeManifest,
+   FIREFOX_BUILD_DIR + '/chrome.manifest');
+ 
++  // Set timezone to UTC before calling zip to get reproducible results.
++  process.env.TZ = 'UTC';
++
+   // Create the xpi
+   cd(FIREFOX_BUILD_DIR);
+   exec('zip -r ' + FIREFOX_EXTENSION_NAME + ' ' +
diff -Nru pdf.js-1.1.215+dfsg/debian/patches/series 
pdf.js-1.1.215+dfsg/debian/patches/series
--- pdf.js-1.1.215+dfsg/debian/patches/series   2015-06-20 21:24:40.0 
+0200
+++ pdf.js-1.1.215+dfsg/debian/patches/series   2015-07-21 16:12:43.0 
+0200
@@ -2,3 +2,4 @@
 0002-Fix-build-versions-in-generated-file.patch
 0003-Add-adobe-CMaps.patch
 0012-Revert-Remove-ShellJS-copy-and-use-the-NPM-version.patch
+fix-timezone-in-zip


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] retitle my last two bugs

2015-07-21 Thread Dhole
retitle 793126 torbutton: please make the build reproducible
retitle 793127 pdf.js: please make the build reproducible
thanks

-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#793300: deejayd: please make the build reproducible

2015-07-22 Thread Dhole
Source: deejayd
Version: 0.10.0-6
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that deejayd could not be built reproducibly.

The attached patch removes timezone-varying timestamps from the
files compressed with zip. Once applied, deejayd can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru deejayd-0.10.0/debian/changelog deejayd-0.10.0/debian/changelog
--- deejayd-0.10.0/debian/changelog 2014-05-06 07:34:18.0 +0200
+++ deejayd-0.10.0/debian/changelog 2015-07-22 16:55:19.0 +0200
@@ -1,3 +1,10 @@
+deejayd (0.10.0-6.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix timezone before creating zip file to make package build reproducible.
+
+ -- Dhole   Wed, 22 Jul 2015 16:54:50 +0200
+
 deejayd (0.10.0-6) unstable; urgency=medium
 
   * Depend on libxine2-x (Closes: #747099).
diff -Nru deejayd-0.10.0/debian/patches/fix_timezone 
deejayd-0.10.0/debian/patches/fix_timezone
--- deejayd-0.10.0/debian/patches/fix_timezone  1970-01-01 01:00:00.0 
+0100
+++ deejayd-0.10.0/debian/patches/fix_timezone  2015-07-22 16:56:04.0 
+0200
@@ -0,0 +1,21 @@
+Description: Fix timezone before creating zip
+ .
+ deejayd (0.10.0-6.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Fix timezone before creating zip file to make package build reproducible.
+Author: Dhole 
+
+---
+
+--- deejayd-0.10.0.orig/setup.py
 deejayd-0.10.0/setup.py
+@@ -62,6 +62,8 @@ class build_extension(Command):
+ 
+ # first remove old zip file
+ self.clean()
++# Fix timezone to get reproducible results when adding files to zip
++os.environ['TZ'] = 'UTC'
+ ext_file = ZipFile(self.ext_path, 'w')
+ for root, dirs, files in os.walk(self.ext_dir):
+ for f in files:
diff -Nru deejayd-0.10.0/debian/patches/series 
deejayd-0.10.0/debian/patches/series
--- deejayd-0.10.0/debian/patches/series2014-05-06 07:27:53.0 
+0200
+++ deejayd-0.10.0/debian/patches/series2015-07-22 16:55:44.0 
+0200
@@ -7,3 +7,4 @@
 mobileuifix
 xul-webui-firefox-version
 inotifyfixes
+fix_timezone


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] GSoC 2015 Week 9: Move forward reproducible builds

2015-07-25 Thread Dhole
Hi,

This week I have patched the two remaining packages tagged by the issue
timestamps_difference_by_unzip [1], plus another one also affected by this
issue which wasn't tagged:

- torbutton
https://bugs.debian.org/793126
- pdf.js
https://bugs.debian.org/793127
- deejayd
https://bugs.debian.org/793300

I have been looking at a package affected by timestamps in zip (moin). I
managed to get rid of some of the unreproducibility issues: the timestamps in
the metadata shown by zipinfo, out of which some are files mtimes that differ
by timezone (solved by settings TZ=UTC before zip/unzip calls), and others are
localtime timestamps (solved by replacing timestamps with SOURCE_DATE_EPOCH).
After this, some differences still appear, now not seen by zipinfo but in the
file treated in binary form. This package adds files to zip through a python
script during the build. It requieres further study.

I have also studied the issue pdf_created_by_ghostscript [2] which has 18
unreproducible affected packages. There was a tentative patch for ghostcript in
our git repository from January, but it had never been submited. The patch
allowed the embedded timestamps to be replaced by an exported variable,
originally DEB_BUILD_TIMESTAMP, which I changed to SOURCE_DATE_EPOCH to follow
our current normalized timestamp proposal. I have also added code to normalize
the timezone to UTC in case SOURCE_DATE_EPOCH is used, so that the results are
timezone invariant. The commit with the patch can be found at:
https://anonscm.debian.org/cgit/reproducible/ghostscript.git/commit/?h=pu/reproducible_builds

I have also uploaded the package in our APT repository.

I have tested this patched ghostscript with some of the packages affected by
pdf_created_by_ghostscript. Unluckily none of them become reproducible without
any change. This is because the commands to generate the documentation that use
ghostscript don't happen under dh, which currently is the only place where
SOURCE_DATE_ECPOH is automatically exported. Upon exporting this variable
manually in debian/rules, I obtained the following results:

- glosstex (becomes reproducible)
- kimwitu++ (timestamp differences from ghostscript disappear. Remaining
  timestamps come from pdflatex due to timezone variation, akira is working on
  that)
- autoconf (timestamp differences from ghostscript disappear. Remaining
  timestamps come from other places, further inspection requiered)
- cvs (same results obtained, it seems this package was misstagged and actually
  uses latex to produce pdfs)
- proxy-suite (becomes reproducible)
- lprng-doc (becomes reproducible)
- gstreamer1.0 (timestamp differences from ghostscript disappear. Variable
  timestamps in .ps files remain, further inspection requiered)
- transfig (timestamp differences from ghostscript disappear. Remaining
  timestamps come from pdflatex due to timezone variation, akira is working on
  that)

For next week I plan to send the ghostscript patches to debian and probably
upstream. I'll look further at the remaining issues from the packages I studied
this week (the ones affected by pdf_created_by_ghostscript). I may continue
looking into moin.

[1]
https://reproducible.debian.net/issues/unstable/timestamps_difference_by_unzip_issue.html
[2] https://reproducible.debian.net/issues/pdf_created_by_ghostscript_issue.html

Best regards,
Dhole


pgpEZnyRJinWQ.pgp
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#794004: ghostscript: please support timestamps from environment

2015-07-29 Thread Dhole
Source: ghostscript
Version: 9.15~dfsg-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: toolchain timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that the ghostscript embeds timestamps on the creation of pdf files.

For the Reproducible Builds effort we are proposing an environment
variable (SOURCE_DATE_EPOCH) [2] that will contain a deterministic epoch
timestamp (based on the latest debian/changelog entry) that could be
used, which should be automatically exported by debhelper in the future [3].

The attached patch proposes a way to use this variable to get
reproducible timestamps in the pdf files generated by ghostscript, if
the variable has been set (if not, it falls back to the old behavior).
With the attached patch packages using ghostscript would then
automatically generate reproducible pdf files.


[1]: https://wiki.debian.org/ReproducibleBuilds
[2]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
[3]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791815

Regards,
-- 
Dhole
diff -Nru ghostscript-9.15~dfsg/debian/changelog 
ghostscript-9.15~dfsg/debian/changelog
--- ghostscript-9.15~dfsg/debian/changelog  2015-07-26 20:17:32.0 
+0200
+++ ghostscript-9.15~dfsg/debian/changelog  2015-07-28 18:48:03.0 
+0200
@@ -1,3 +1,12 @@
+ghostscript (9.15~dfsg-1.0~reproducible1) UNRELEASED; urgency=medium
+
+  [ Peter De Wachter, Eduard Sanou ]
+  * Add patch to allow the build timestamp to be set through the environment
+variable SOURCE_DATE_EPOCH, and set TZ=UTC in case the external timestamp
+is used. This is needed for reproducible builds.
+
+ -- Eduard Sanou   Tue, 28 Jul 2015 16:26:20 +0200
+
 ghostscript (9.15~dfsg-1) unstable; urgency=medium
 
   [ upstream ]
diff -Nru 
ghostscript-9.15~dfsg/debian/patches/2010_add_build_timestamp_setting.patch 
ghostscript-9.15~dfsg/debian/patches/2010_add_build_timestamp_setting.patch
--- ghostscript-9.15~dfsg/debian/patches/2010_add_build_timestamp_setting.patch 
1970-01-01 01:00:00.0 +0100
+++ ghostscript-9.15~dfsg/debian/patches/2010_add_build_timestamp_setting.patch 
2015-07-29 15:59:49.0 +0200
@@ -0,0 +1,122 @@
+Description: Allow the build timestamp to be externally set
+ In order to make Ghostscript output reproducible, we need a way to
+ set the build timestamp to other values than the current time.
+ We now consistently use gp_get_realtime() instead of directly calling
+ time() or gp_get_usertime() and make gp_get_realtime() use the value
+ found in the SOURCE_DATE_EPOCH environment variable if set. Also,
+ environment timezone is fixed to UTC if SOURCE_DATE_EPOCH is used to
+ avoid variations.
+Author: Peter De Wachter , Eduard Sanou 

+
+Index: ghostscript-9.15~dfsg-1.0~reproducible1/base/gp_unix.c
+===
+--- ghostscript-9.15~dfsg-1.0~reproducible1.orig/base/gp_unix.c
 ghostscript-9.15~dfsg-1.0~reproducible1/base/gp_unix.c
+@@ -16,6 +16,7 @@
+ 
+ /* Unix-specific routines for Ghostscript */
+ 
++#include "errno_.h"
+ #include "pipe_.h"
+ #include "string_.h"
+ #include "time_.h"
+@@ -145,6 +146,7 @@ void
+ gp_get_realtime(long *pdt)
+ {
+ struct timeval tp;
++const char *env;
+ 
+ #if gettimeofday_no_timezone/* older versions of SVR4 */
+ {
+@@ -164,6 +166,26 @@ gp_get_realtime(long *pdt)
+ }
+ #endif
+ 
++env = getenv("SOURCE_DATE_EPOCH");
++if (env) {
++char *end;
++long timestamp;
++
++errno = 0;
++timestamp = strtol(env, &end, 10);
++if (env == end || *end || errno != 0) {
++lprintf("Ghostscript: SOURCE_DATE_EPOCH is not a number!\n");
++timestamp = 0;
++}
++
++tp.tv_sec = timestamp;
++tp.tv_usec = 0;
++
++/* We need to fix the environment timezone to get reproducible */
++/* results when parsing the result of gp_get_realtime. */
++setenv("TZ", "UTC", 1);
++}
++
+ /* tp.tv_sec is #secs since Jan 1, 1970 */
+ pdt[0] = tp.tv_sec;
+ 
+Index: ghostscript-9.15~dfsg-1.0~reproducible1/devices/vector/gdevpdf.c
+===
+--- ghostscript-9.15~dfsg-1.0~reproducible1.orig/devices/vector/gdevpdf.c
 ghostscript-9.15~dfsg-1.0~reproducible1/devices/vector/gdevpdf.c
+@@ -389,12 +389,14 @@ pdf_initialize_ids(gx_device_pdf * pdev)
+  */
+ {
+ struct tm tms;
++long secs_ns[2];
+ time_t t;
+ char buf[1+2+4+2+2+2+2+2+1+2+1+2+1+1+1]; /* 
(D:mmddhhmmssZhh'mm')\0 */
+ int timeoffset;
+ char timesign;
+ 
+-time(&t);
++gp_get_realtime(secs_ns);
++t = secs_ns[0];
+ tms = *gmtime(&t);
+ tms

[Reproducible-builds] Bug#794014: moin: please make the build reproducible

2015-07-29 Thread Dhole
Source: moin
Version: 1.9.8-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that moin could not be built reproducibly.

The attached patch normalizes the timezone and fixes timestamps from the
files compressed with zip to a known value (timestamp from the last
debian/changelg entry). Once applied, moin can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru moin-1.9.8/debian/changelog moin-1.9.8/debian/changelog
--- moin-1.9.8/debian/changelog 2014-10-19 02:40:50.0 +0200
+++ moin-1.9.8/debian/changelog 2015-07-29 16:43:54.0 +0200
@@ -1,3 +1,10 @@
+moin (1.9.8-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix timestamps to make package build reproducibly. 
+
+ -- Eduard Sanou   Wed, 29 Jul 2015 16:43:35 +0200
+
 moin (1.9.8-1) unstable; urgency=medium
 
   * New upstream release, lots of bug fixes
diff -Nru moin-1.9.8/debian/process_language_pages 
moin-1.9.8/debian/process_language_pages
--- moin-1.9.8/debian/process_language_pages2014-10-19 01:09:03.0 
+0200
+++ moin-1.9.8/debian/process_language_pages2015-07-29 21:48:18.0 
+0200
@@ -24,7 +24,7 @@
echo "Cleaning comments in $f"
tmp=`mktemp -d --tmpdir=$BASE` || exit 2
cd $tmp
-   unzip -q $f
+   TZ=UTC unzip -q $f
chmod a+rw ./*
egrep -r -l -Z '^## ' * \
| xargs -r -0 -n 1 \
@@ -32,8 +32,11 @@
# ^^ search and drop notes in the 8 first lines.
chmod a-w ./*
chmod a+w MOIN_PACKAGE
+   # Fix files mtime before compressing to get reproducible results.
+   find . -newermt "$(date -u -d @$SOURCE_DATE_EPOCH)" -print0 | \
+   xargs -0r touch --no-dereference --date="$(date -u -d 
@$SOURCE_DATE_EPOCH)"
rm $f
-   zip -q $f *
+   TZ=UTC zip -X -q $f *
cd $BASE
rm -Rf $tmp
COUNT=$(($COUNT + 1))
diff -Nru moin-1.9.8/debian/rules moin-1.9.8/debian/rules
--- moin-1.9.8/debian/rules 2014-10-19 01:09:03.0 +0200
+++ moin-1.9.8/debian/rules 2015-07-29 19:00:17.0 +0200
@@ -8,6 +8,8 @@
 staticpath := $(shell sed -n -e 
"s|^\s*release_short\s*=\s*'\([^']*\)'.*|/moin_static\1|p" MoinMoin/version.py)
 $(if $(staticpath),,$(error Failed to resolve staticpath))
 
+export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 
-SDate)" +%s)
+
 build-arch build-indep: build-stamp
 build-stamp:
dh_testdir


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#794247: whizzytex: please make the build reproducible

2015-07-31 Thread Dhole
Source: whizzytex
Version: 1.3.2-1.3
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that whizzytex could not be built reproducibly.

The attached patch removes timestamps from the documentation. Once
applied, whizzytex can be built reproducibly in our current experimental
framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru whizzytex-1.3.2/debian/changelog whizzytex-1.3.2/debian/changelog
--- whizzytex-1.3.2/debian/changelog2014-09-15 04:44:18.0 +0200
+++ whizzytex-1.3.2/debian/changelog2015-07-31 16:10:39.0 +0200
@@ -1,3 +1,10 @@
+whizzytex (1.3.2-1.4) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Timestamp removed from docs to make package build reproducibly. 
+
+ -- Eduard Sanou   Fri, 31 Jul 2015 16:10:22 +0200
+
 whizzytex (1.3.2-1.3) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru whizzytex-1.3.2/debian/patches/remove_docs_timestamp.patch 
whizzytex-1.3.2/debian/patches/remove_docs_timestamp.patch
--- whizzytex-1.3.2/debian/patches/remove_docs_timestamp.patch  1970-01-01 
01:00:00.0 +0100
+++ whizzytex-1.3.2/debian/patches/remove_docs_timestamp.patch  2015-07-31 
16:11:06.0 +0200
@@ -0,0 +1,21 @@
+Description: Remove timestamp from docs
+ .
+ whizzytex (1.3.2-1.4) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Timestamp removed from docs to make package build reproducibly.
+Author: Eduard Sanou 
+
+---
+
+--- whizzytex-1.3.2.orig/doc/manual.tex
 whizzytex-1.3.2/doc/manual.tex
+@@ -43,7 +43,7 @@
+ \end{rawhtml}
+ \pagestyle {empty}
+ \author {\rightline {Didier R{\'e}my}}
+-\date {\hfill Version {\version}, \today}
++\date {\hfill Version {\version}}
+ \begingroup
+ \let \@\relax
+ \title {
diff -Nru whizzytex-1.3.2/debian/patches/series 
whizzytex-1.3.2/debian/patches/series
--- whizzytex-1.3.2/debian/patches/series   2013-10-06 09:16:11.0 
+0200
+++ whizzytex-1.3.2/debian/patches/series   2015-07-31 16:10:51.0 
+0200
@@ -1,3 +1,4 @@
 07_bash_makefile.patch
 09_compat_config.patch
 11_boxsep_boolean.patch
+remove_docs_timestamp.patch


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#794248: cortado: please make the build reproducible

2015-07-31 Thread Dhole
Source: cortado
Version: 0.6.0-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that cortado could not be built reproducibly.

The attached patch replaces the build date found in several .class files
(generated by ant) by the timestamp of the latest debian/changelog
entry. Once applied, cortado can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru cortado-0.6.0/debian/changelog cortado-0.6.0/debian/changelog
--- cortado-0.6.0/debian/changelog  2013-09-24 05:47:39.0 +0200
+++ cortado-0.6.0/debian/changelog  2015-07-31 17:12:51.0 +0200
@@ -1,3 +1,11 @@
+cortado (0.6.0-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace build date with last entry timestamp from debian/changelog
+to make the package build reproduciblu.
+
+ -- Eduard Sanou   Fri, 31 Jul 2015 17:12:28 +0200
+
 cortado (0.6.0-2) unstable; urgency=low
 
   * Team upload.
diff -Nru cortado-0.6.0/debian/patches/replace_timestamp.patch 
cortado-0.6.0/debian/patches/replace_timestamp.patch
--- cortado-0.6.0/debian/patches/replace_timestamp.patch1970-01-01 
01:00:00.0 +0100
+++ cortado-0.6.0/debian/patches/replace_timestamp.patch2015-07-31 
17:13:15.0 +0200
@@ -0,0 +1,53 @@
+Description: Replace timestamp
+ .
+ cortado (0.6.0-2.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Replace build date with last entry timestamp from debian/changelog
+ to make the package build reproduciblu.
+Author: Eduard Sanou 
+
+---
+
+--- cortado-0.6.0.orig/build.xml
 cortado-0.6.0/build.xml
+@@ -83,7 +83,7 @@ Cortado ANT build file
+ 
+   
+ 
+-  
++  
+ 
+
+  
+@@ -94,15 +94,18 @@ Cortado ANT build file
+
+ 
+
+-
++  
++  
++   
+ package com.fluendo.player;
+ 
+ class Configure
+ {
+-  public String buildInfo = "Built on ${DATE} GMT (version ${real_version}) 
in ${build.type} mode.";
++  public String buildInfo = "Built on ${env.BUILD_DATE} UTC (version 
${real_version}) in ${build.type} mode.";
+ 
+-  public String buildDate = "${DATE} GMT";
++  public String buildDate = "${env.BUILD_DATE} UTC";
+   public String buildVersion = "${real_version}";
+   public String buildType = "${build.type}";
+   public String revision = "${REVISION}";
+@@ -113,7 +116,7 @@ class Configure
+ }
+ 
+ Built on ${DATE} (version ${real_version}) in ${build.type} mode.
++>Built on ${env.BUILD_DATE} (version ${real_version}) in ${build.type} 
mode.
+ 
+   
+ 
diff -Nru cortado-0.6.0/debian/patches/series 
cortado-0.6.0/debian/patches/series
--- cortado-0.6.0/debian/patches/series 2013-09-24 05:47:39.0 +0200
+++ cortado-0.6.0/debian/patches/series 2015-07-31 17:13:01.0 +0200
@@ -1 +1,2 @@
 01_fix_build.diff
+replace_timestamp.patch
diff -Nru cortado-0.6.0/debian/rules cortado-0.6.0/debian/rules
--- cortado-0.6.0/debian/rules  2013-09-24 05:47:39.0 +0200
+++ cortado-0.6.0/debian/rules  2015-07-31 17:12:20.0 +0200
@@ -3,6 +3,9 @@
 include /usr/share/cdbs/1/class/ant.mk
 include /usr/share/cdbs/1/rules/debhelper.mk
 
+export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 
-SDate)" +%s)
+export BUILD_DATE = $(shell date -u -d @$(SOURCE_DATE_EPOCH) +"%Y-%m-%d 
%H:%M:%S")
+
 JAVA_HOME = /usr/lib/jvm/default-java
 
 DEB_ANT_INSTALL_TARGET = install_applet


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] GSoC 2015 Week 10: Move forward reproducible builds

2015-07-31 Thread Dhole
Hi,

This week I finished my work on ghostscript: I updated the ghostscript
patch I was working on last week to match newest version (9.15~dfsg-1).
In the version update, some patched files where moved and now the
Document ID generated by ghostscript uses localtime so I replaced the
function by gp_get_realtime which honours SOURCE_DATE_EPOCH in order to
get a reproducible ID.
I tested the new patch against some packages I tried last week (with the
old version) to check that everything worked properly.
I pushed the patch updated to our git repo:
https://anonscm.debian.org/cgit/reproducible/ghostscript.git/commit/?h=pu/reproducible_builds&id=d6adec96b93f3ed15474d0e967009c14cd21bb48

I also uploaded the package to our APT repository and sent a bug to Debian:
https://bugs.debian.org/794004

I have updated the experimental toolchain section in the wiki with the
ghostscript patch.

I patched moin to make it build reproducible, after a few headaches :P.
It turned out that zip was adding timestamp metadata not shown by
zipinfo. After normalizing the files mtime, there were still differences
in the zip file not shown by zipinfo: it was the last access time
metadata. Adding -X to zip solved the issue :D.
Patch submitted:
https://bugs.debian.org/794014

I started working on qhelpgenerator to honour SOURCE_DATE_EPOCH. The
patch is written, the build takes quite some time (5+ hours on the
machine I was working on initially, which run out of space, so I
prepared another machine with more space). I have it built and will
proceed with testing next week

I also tagged some packages without notes that were affected by several
issues I can recognize easily now that I've been looking at many
packages for the past two months.

From those packages I patched two:
- whizzytex (remove timestamp)
https://bugs.debian.org/794247
- cortado (replace timestamp with debian/changelog)
https://bugs.debian.org/794248

Best regards,
-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#794681: qt4-x11: please support timestamps from environment

2015-08-05 Thread Dhole
Source: qt4-x11
Version: 4:4.8.7+dfsg-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: toolchain timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that the qhelpgenerator tool from qt4-x11 embeds timestamps on the
creation of qch files.

For the Reproducible Builds effort we are proposing an environment
variable (SOURCE_DATE_EPOCH) [2] that will contain a deterministic epoch
timestamp (based on the latest debian/changelog entry) that could be
used, which should be automatically exported by debhelper in the future [3].

The attached patch proposes a way to use this variable to get
reproducible timestamps in the qch files generated by qhelpgenerator, if
the variable has been set (if not, it falls back to the old behavior).
With the attached patch packages using qhelpgenerator would then
automatically embed reproducible timestamps in qch files.


[1]: https://wiki.debian.org/ReproducibleBuilds
[2]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
[3]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791815

Regards,
-- 
Dhole
diff -Nru qt4-x11-4.8.7+dfsg/debian/changelog 
qt4-x11-4.8.7+dfsg/debian/changelog
--- qt4-x11-4.8.7+dfsg/debian/changelog 2015-08-02 22:01:18.0 +0200
+++ qt4-x11-4.8.7+dfsg/debian/changelog 2015-08-04 15:19:05.0 +0200
@@ -1,3 +1,11 @@
+qt4-x11 (4:4.8.7+dfsg-2.0~reproducible1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the
+embedded timestamps in qch files generated with qhelpgenerator.
+
+ -- Eduard Sanou   Tue, 04 Aug 2015 15:17:35 +0200
+
 qt4-x11 (4:4.8.7+dfsg-2) experimental; urgency=medium
 
   * Add Daniel Schepler's QtScript_x32_config.diff and x32.diff to let Qt4
diff -Nru 
qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch
 
qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch
--- 
qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch
  1970-01-01 01:00:00.0 +0100
+++ 
qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch
  2015-08-04 15:41:15.0 +0200
@@ -0,0 +1,102 @@
+Description: Allow the timestamps from qhelpgenerator to be externally set
+ In order to make qhelpgenerator output reproducible, we need a way to
+ set the embedded timestamps to other values than the current time.
+ We define a new method for QDateTime (reproducibleDateTime) that returns
+ a deterministic datetime object when the SOURCE_DATE_EPOCH environment 
+ variable is set with a unix epoch timestamp, containing the datetime 
+ defined by SOURCE_DATE_EPOCH in UTC. We replace some instances of
+ QDateTime::currentDateTime() by QDateTime::reproducibleDateTime() in the
+ sources of qhelpgenerator to make the output reproducible.
+Author: Eduard Sanou 
+
+--- qt4-x11-4.8.7+dfsg.orig/src/corelib/tools/qdatetime.cpp
 qt4-x11-4.8.7+dfsg/src/corelib/tools/qdatetime.cpp
+@@ -2892,6 +2892,15 @@ bool QDateTime::operator<(const QDateTim
+ */
+ 
+ /*!
++\fn QDateTime QDateTime::reproducibleDateTime()
++If the environment variable SOURCE_DATE_EPOCH containing a unix epoch date
++is set, returns the datetime in SOURCE_DATE_EPOCH, in UTC.
++If SOURCE_DATE_EPOCH is not set, behaves as QDateTime::currentDateTime().
++
++\sa currentDateTimeUtc(), QDate::currentDate(), QTime::currentTime(), 
toTimeSpec()
++*/
++
++/*!
+ \fn QDateTime QDateTime::currentDateTimeUtc()
+ \since 4.7
+ Returns the current datetime, as reported by the system clock, in
+@@ -3120,6 +3129,29 @@ QDateTime QDateTime::currentDateTime()
+ return dt;
+ }
+ 
++QDateTime QDateTime::reproducibleDateTime()
++{
++QByteArray env_date;
++QDateTime date;
++bool env_date_ok;
++long timestamp;
++
++env_date = qgetenv("SOURCE_DATE_EPOCH");
++if (env_date.length() != 0) {
++timestamp = env_date.toLong(&env_date_ok, 10);
++if (!env_date_ok) {
++// "SOURCE_DATE_EPOCH is not a number!
++timestamp = 0;
++}
++date = QDateTime::fromTime_t(timestamp).toUTC();
++} else {
++date = QDateTime::currentDateTime();
++}
++
++return date;
++}
++
++
+ QDateTime QDateTime::currentDateTimeUtc()
+ {
+ // posix compliant system
+--- qt4-x11-4.8.7+dfsg.orig/src/corelib/tools/qdatetime.h
 qt4-x11-4.8.7+dfsg/src/corelib/tools/qdatetime.h
+@@ -264,6 +264,7 @@ public:
+ int utcOffset() const;
+ 
+ static QDateTime currentDateTime();
++static QDateTime reproducibleDateTime();
+ static QDateTime currentDateTimeUtc();
+ #ifndef QT_NO_DATESTRING
+ static QDateTime fromString(const QString &s, Qt::DateFormat f = 
Qt::TextDate);
+--- qt

Re: [Reproducible-builds] Bug#792687: gettext: please support timestamps from environment

2015-08-05 Thread Dhole
On 07/17/2015 04:08 PM, Dhole wrote:
> Source: gettext
> Version: 0.19.4-1
> Severity: wishlist
> Tags: patch
> User: reproducible-builds@lists.alioth.debian.org
> Usertags: toolchain timestamps
> X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org
> 
> Hi,
> 
> While working on the "reproducible builds" effort [1], we have noticed
> that the xgettext tool from gettext embeds timestamps on the creation of
> PO files.
> 
> For the Reproducible Builds effort we are proposing an environment
> variable (SOURCE_DATE_EPOCH) [2] that will contain a deterministic epoch
> timestamp (based on the latest debian/changelog entry) that could be
> used, which should be automatically exported by debhelper in the future [3].
> 
> The attached patch proposes a way to use this variable to get
> reproducible timestamps in the PO files generated by xgettext, if the
> variable has been set (if not, it falls back to the old behavior).
> With the attached patch packages using xgettext would then automatically
> generate reproducible translation files.
> 
> 
> [1]: https://wiki.debian.org/ReproducibleBuilds
> [2]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
> [3]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791815
> 
> Regards,
> 
> 
> 
> ___
> Reproducible-builds mailing list
> Reproducible-builds@lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
> 

Hi

I'm attaching an update of the submitted patch targeting the latest
gettext version from Debian: 0.19.5.1-1

Regards,
-- 
Dhole
diff -Nru gettext-0.19.5.1/debian/changelog gettext-0.19.5.1/debian/changelog
--- gettext-0.19.5.1/debian/changelog   2015-08-02 21:41:33.0 +0200
+++ gettext-0.19.5.1/debian/changelog   2015-08-04 18:44:31.0 +0200
@@ -1,3 +1,11 @@
+gettext (0.19.5.1-1.0~reproducible1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the
+date on creation of PO files with xgettext.
+
+ -- Eduard Sanou   Tue, 04 Aug 2015 18:43:52 +0200
+
 gettext (0.19.5.1-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru 
gettext-0.19.5.1/debian/patches/04-Replace-timestamp-with-SOURCE_DATE_EPOCH 
gettext-0.19.5.1/debian/patches/04-Replace-timestamp-with-SOURCE_DATE_EPOCH
--- gettext-0.19.5.1/debian/patches/04-Replace-timestamp-with-SOURCE_DATE_EPOCH 
1970-01-01 01:00:00.0 +0100
+++ gettext-0.19.5.1/debian/patches/04-Replace-timestamp-with-SOURCE_DATE_EPOCH 
2015-08-04 18:46:17.0 +0200
@@ -0,0 +1,45 @@
+Description: Replace date timestamp by SOURCE_DATE_EPOCH env var in xgettext
+ .
+ gettext (0.19.5.1-1.0~reproducible1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the
+ date on creation of PO files with xgettext.
+Author: Eduard Sanou 
+
+--- gettext-0.19.5.1.orig/gettext-tools/src/xgettext.c
 gettext-0.19.5.1/gettext-tools/src/xgettext.c
+@@ -3516,6 +3516,7 @@ construct_header ()
+   message_ty *mp;
+   char *msgstr;
+   char *comment;
++  char *source_date_epoch;
+   static lex_pos_ty pos = { __FILE__, __LINE__ };
+ 
+   if (package_name != NULL)
+@@ -3537,7 +3538,24 @@ the MSGID_BUGS_ADDRESS variable there; o
+ specify an --msgid-bugs-address command line option.\n\
+ ")));
+ 
+-  time (&now);
++  /* Allow the date and time to be set externally by an exported
++ environment variable to enable reproducible builds. */
++  source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
++  if (source_date_epoch)
++{
++  errno = 0;
++  now = (time_t) strtol (source_date_epoch, NULL, 10);
++  if (errno != 0)
++error (EXIT_FAILURE, errno, _("\
++SOURCE_DATE_EPOCH=\"%s\" is not a valid number"), source_date_epoch);
++
++  /* The function po_strftime uses localtime() to parse the timestamp, so 
++ we need to fix the environment timezone to get reproducible results 
*/
++  setenv("TZ", "UTC", 1);
++}
++  else
++time (&now);
++
+   timestring = po_strftime (&now);
+ 
+   msgstr = xasprintf ("\
diff -Nru gettext-0.19.5.1/debian/patches/series 
gettext-0.19.5.1/debian/patches/series
--- gettext-0.19.5.1/debian/patches/series  2015-08-02 20:37:20.0 
+0200
+++ gettext-0.19.5.1/debian/patches/series  2015-08-04 18:45:51.0 
+0200
@@ -1,3 +1,4 @@
 01-do-not-use-java-in-urlget
 02-msgfmt-default-little-endian
 03-fix-gettextize-version
+04-Replace-timestamp-with-SOURCE_DATE_EPOCH


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#794779: foxyproxy: please make the build reproducible

2015-08-06 Thread Dhole
Source: foxyproxy
Version: 3.4-1.1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that foxyproxy could not be built reproducibly.

The attached patch removes timezone-varying timestamps from the
files compressed with zip. Once applied, foxyproxy can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -u foxyproxy-3.4/debian/rules foxyproxy-3.4/debian/rules
--- foxyproxy-3.4/debian/rules
+++ foxyproxy-3.4/debian/rules
@@ -18,7 +18,7 @@
rm -rf get-orig-source
 
 override_dh_auto_build:
-   cd src; ant build-foxyproxy-standard 
+   cd src; TZ=UTC ant build-foxyproxy-standard 
mv targets/foxyproxy-standard*.xpi .
rmdir targets/
 
diff -u foxyproxy-3.4/debian/changelog foxyproxy-3.4/debian/changelog
--- foxyproxy-3.4/debian/changelog
+++ foxyproxy-3.4/debian/changelog
@@ -1,3 +1,11 @@
+foxyproxy (3.4-1.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set TZ=UTC before calling ant to normalize timezones and make the package
+build reproducibly.
+
+ -- Eduard Sanou   Wed, 05 Aug 2015 18:54:11 +0200
+
 foxyproxy (3.4-1.1) unstable; urgency=low
 
   * Non-maintainer upload.


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#794781: xul-ext-monkeysphere: please make the build reproducible

2015-08-06 Thread Dhole
Source: xul-ext-monkeysphere
Version: 0.8-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that xul-ext-monkeysphere could not be built reproducibly.

The attached patch removes timezone-varying timestamps from the
files compressed with zip. Once applied, xul-ext-monkeysphere can be
built reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru xul-ext-monkeysphere-0.8/debian/changelog 
xul-ext-monkeysphere-0.8/debian/changelog
--- xul-ext-monkeysphere-0.8/debian/changelog   2013-09-20 07:34:11.0 
+0200
+++ xul-ext-monkeysphere-0.8/debian/changelog   2015-08-05 19:22:42.0 
+0200
@@ -1,3 +1,11 @@
+xul-ext-monkeysphere (0.8-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * add TZ=UTC before zip in Makefile to make the files mtime 
+invariant to timezone to make the package build reproducibly.
+
+ -- Eduard Sanou   Wed, 05 Aug 2015 19:21:53 +0200
+
 xul-ext-monkeysphere (0.8-1) unstable; urgency=low
 
   * New Upstream Release (Closes: #720600) thanks Kristian Fiskerstrand!
diff -Nru xul-ext-monkeysphere-0.8/debian/patches/fix_timezone.patch 
xul-ext-monkeysphere-0.8/debian/patches/fix_timezone.patch
--- xul-ext-monkeysphere-0.8/debian/patches/fix_timezone.patch  1970-01-01 
01:00:00.0 +0100
+++ xul-ext-monkeysphere-0.8/debian/patches/fix_timezone.patch  2015-08-05 
19:23:23.0 +0200
@@ -0,0 +1,22 @@
+Description: Fix timezone in zip
+ .
+ xul-ext-monkeysphere (0.8-1.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * add TZ=UTC before zip in Makefile to make the files mtime
+ invariant to timezone to make the package build reproducibly.
+Author: Eduard Sanou 
+
+---
+
+--- xul-ext-monkeysphere-0.8.orig/Makefile
 xul-ext-monkeysphere-0.8/Makefile
+@@ -12,7 +12,7 @@ ICONS = $(addprefix chrome/content/, bro
+ VERSION = $(shell head -n1 Changelog | sed -e 's/^.*(//' -e 's/).*$$//')
+ 
+ monkeysphere.xpi: $(XPI_CONTENTS) $(ICONS)
+-  zip $@ $(XPI_CONTENTS) $(ICONS)
++  TZ=UTC zip $@ $(XPI_CONTENTS) $(ICONS)
+ 
+ install.rdf: install.rdf.template Changelog
+   sed 's/__VERSION__/$(VERSION)/' < $< > $@
diff -Nru xul-ext-monkeysphere-0.8/debian/patches/series 
xul-ext-monkeysphere-0.8/debian/patches/series
--- xul-ext-monkeysphere-0.8/debian/patches/series  1970-01-01 
01:00:00.0 +0100
+++ xul-ext-monkeysphere-0.8/debian/patches/series  2015-08-05 
19:22:56.0 +0200
@@ -0,0 +1 @@
+fix_timezone.patch


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#794792: freeipmi: please make the build reproducible

2015-08-06 Thread Dhole
Source: freeipmi
Version: 1.4.9-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that freeipmi could not be built reproducibly.

The attached patch replaces the timestamp in the docs with the latest
debian/changelog entry timestamp. Once applied, freeipmi can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru freeipmi-1.4.9/debian/changelog freeipmi-1.4.9/debian/changelog
--- freeipmi-1.4.9/debian/changelog 2015-07-01 16:09:12.0 +0200
+++ freeipmi-1.4.9/debian/changelog 2015-08-06 17:17:47.0 +0200
@@ -1,3 +1,12 @@
+freeipmi (1.4.9-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace man pages dates with the timestamp from the latest
+debian/changelog entry using the variable SOURCE_DATE_EPOCH to make the
+package build reproducibly. 
+
+ -- Eduard Sanou   Thu, 06 Aug 2015 17:16:40 +0200
+
 freeipmi (1.4.9-1) unstable; urgency=medium
 
   * Fresh upstream release
diff -Nru freeipmi-1.4.9/debian/patches/honour-SOURCE_DATE_EPOCH.patch 
freeipmi-1.4.9/debian/patches/honour-SOURCE_DATE_EPOCH.patch
--- freeipmi-1.4.9/debian/patches/honour-SOURCE_DATE_EPOCH.patch
1970-01-01 01:00:00.0 +0100
+++ freeipmi-1.4.9/debian/patches/honour-SOURCE_DATE_EPOCH.patch
2015-08-06 17:18:43.0 +0200
@@ -0,0 +1,21 @@
+Description: Honour SOURCE_DATE_EPOCH in manpages
+ .
+ freeipmi (1.4.9-1.1) UNRELEASED; urgency=medium
+ .
+   * Non-maintainer upload.
+   * Replace man pages dates with the timestamp from the latest
+ debian/changelog entry using the variable SOURCE_DATE_EPOCH to make the
+ package build reproducibly.
+Author: Eduard Sanou 
+
+--- freeipmi-1.4.9.orig/configure
 freeipmi-1.4.9/configure
+@@ -2723,7 +2723,7 @@ ac_config_headers="$ac_config_headers co
+ ac_config_files="$ac_config_files freeipmi.spec Makefile bmc-device/Makefile 
bmc-info/Makefile bmc-watchdog/Makefile common/Makefile 
common/debugutil/Makefile common/miscutil/Makefile common/parsecommon/Makefile 
common/pingtool/Makefile common/portability/Makefile common/toolcommon/Makefile 
contrib/Makefile doc/Makefile etc/Makefile ipmi-chassis/Makefile 
ipmi-config/Makefile ipmi-dcmi/Makefile ipmi-fru/Makefile ipmi-locate/Makefile 
ipmi-oem/Makefile ipmi-pet/Makefile ipmi-raw/Makefile ipmi-sel/Makefile 
ipmi-sensors/Makefile ipmiconsole/Makefile ipmidetect/Makefile 
ipmidetectd/Makefile ipmiping/Makefile ipmipower/Makefile ipmiseld/Makefile 
libfreeipmi/Makefile libfreeipmi/libfreeipmi.pc libfreeipmi/include/Makefile 
libfreeipmi/include/freeipmi/freeipmi.h libipmiconsole/Makefile 
libipmiconsole/ipmiconsole.h libipmiconsole/libipmiconsole.pc 
libipmidetect/Makefile libipmidetect/ipmidetect.h 
libipmidetect/libipmidetect.pc libipmimonitoring/Makefile 
libipmimonitoring/ipmi_monitoring.h libipmimonitoring/libipmimonitoring.pc 
man/Makefile man/bmc-device.8.pre man/bmc-info.8.pre man/bmc-watchdog.8.pre 
man/freeipmi.conf.5.pre man/freeipmi.7.pre man/ipmi-chassis.8.pre 
man/ipmi-config.8.pre man/ipmi-config.conf.5.pre man/ipmi-dcmi.8.pre 
man/ipmi-fru.8.pre man/ipmi-locate.8.pre man/ipmi-oem.8.pre man/ipmi-pet.8.pre 
man/ipmi-raw.8.pre man/ipmi-sel.8.pre man/ipmi-sensors.8.pre 
man/ipmiconsole.8.pre man/ipmidetect.8.pre man/ipmidetect.conf.5.pre 
man/ipmidetectd.8.pre man/ipmidetectd.conf.5.pre man/ipmiping.8.pre 
man/ipmipower.8.pre man/ipmiseld.8.pre man/ipmiseld.conf.5.pre 
man/libfreeipmi.3.pre man/freeipmi_interpret_sensor.conf.5.pre 
man/freeipmi_interpret_sel.conf.5.pre man/libipmiconsole.3.pre 
man/libipmiconsole.conf.5.pre man/libipmidetect.3.pre 
man/libipmimonitoring.3.pre man/rmcpping.8.pre rmcpping/Makefile"
+ 
+ 
+-ISODATE=`date +%Y-%m-%d`
++ISODATE=`date -u -d @$SOURCE_DATE_EPOCH +%Y-%m-%d`
+ 
+ 
+ # libfreeipmi libtool versioning
diff -Nru freeipmi-1.4.9/debian/patches/series 
freeipmi-1.4.9/debian/patches/series
--- freeipmi-1.4.9/debian/patches/series2015-07-01 16:09:12.0 
+0200
+++ freeipmi-1.4.9/debian/patches/series2015-08-06 17:18:17.0 
+0200
@@ -1 +1,2 @@
 deb_bmc-watchdog_noRUN
+honour-SOURCE_DATE_EPOCH.patch
diff -Nru freeipmi-1.4.9/debian/rules freeipmi-1.4.9/debian/rules
--- freeipmi-1.4.9/debian/rules 2015-07-01 16:09:12.0 +0200
+++ freeipmi-1.4.9/debian/rules 2015-08-06 17:12:52.0 +0200
@@ -1,6 +1,8 @@
 #!/usr/bin/make -f
 # -*- makefile -*-
 
+export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 
-SDate)" +%s)
+
 # --fail-missing for dh_install
 # --link-doc for dh_installdocs
 %:


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org

[Reproducible-builds] Bug#794793: doc-base: please make the build reproducible

2015-08-06 Thread Dhole
Source: doc-base
Version: 0.10.6
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that doc-base could not be built reproducibly.

The attached patch sets the timeznoe to UTC for the timestamps in the
docs. Once applied, doc-base can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru doc-base-0.10.6/common.mk doc-base-0.10.6+nmu1/common.mk
--- doc-base-0.10.6/common.mk   2014-08-24 22:15:11.0 +0200
+++ doc-base-0.10.6+nmu1/common.mk  2015-08-06 17:50:25.0 +0200
@@ -35,7 +35,7 @@
   DATE  := $(shell LC_ALL=C dpkg-parsechangelog -l$(CHANGELOGFILE) 
\
 | sed -n 's/^Date: *//p')
   # pretty-print the date; I wish this was dynamic like the top-level makefile 
but oh well
-  DATE_EN   := $(shell LC_ALL=C date --date="$(DATE)" '+%d %B, %Y')
+  DATE_EN   := $(shell LC_ALL=C date -u --date="$(DATE)" '+%d %B, %Y')
 
   export VERSION DATE DATE_EN
   unexport CDPATH
diff -Nru doc-base-0.10.6/debian/changelog doc-base-0.10.6+nmu1/debian/changelog
--- doc-base-0.10.6/debian/changelog2014-08-24 22:15:11.0 +0200
+++ doc-base-0.10.6+nmu1/debian/changelog   2015-08-06 17:00:50.0 
+0200
@@ -1,3 +1,10 @@
+doc-base (0.10.6+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set UTC date when generating docs to get reproducible results. 
+
+ -- Eduard Sanou   Thu, 06 Aug 2015 17:00:34 +0200
+
 doc-base (0.10.6) unstable; urgency=medium
 
   * Fix `Possible precedence issue with control flow operator'

signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#794795: debiandoc-sgml-doc: please make the build reproducible

2015-08-06 Thread Dhole
Source: debiandoc-sgml-doc
Version: 1.1.23
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that debiandoc-sgml-doc could not be built reproducibly.

The attached patch removes timestamps from the documentation (I didn't
find a way to pass an external variable/date to the debiandoc tools to
replace the  tag). Once applied, debiandoc-sgml-doc can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru debiandoc-sgml-doc-1.1.23/debian/changelog 
debiandoc-sgml-doc-1.1.23+nmu1/debian/changelog
--- debiandoc-sgml-doc-1.1.23/debian/changelog  2014-10-19 10:25:41.0 
+0200
+++ debiandoc-sgml-doc-1.1.23+nmu1/debian/changelog 2015-08-06 
18:16:10.0 +0200
@@ -1,3 +1,11 @@
+debiandoc-sgml-doc (1.1.23+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Remove timestamp from the documentation to make the package build
+reproducibly.
+
+ -- Eduard Sanou   Thu, 06 Aug 2015 18:15:47 +0200
+
 debiandoc-sgml-doc (1.1.23) unstable; urgency=medium
 
   * Update git URL and policy. 
diff -Nru debiandoc-sgml-doc-1.1.23/en/titletoc.sgml 
debiandoc-sgml-doc-1.1.23+nmu1/en/titletoc.sgml
--- debiandoc-sgml-doc-1.1.23/en/titletoc.sgml  2011-11-07 12:34:50.0 
+0100
+++ debiandoc-sgml-doc-1.1.23+nmu1/en/titletoc.sgml 2015-08-06 
18:15:33.0 +0200
@@ -16,8 +16,6 @@
I consider them to be trivial and donated my work to the public.  
This is the reason why I do not put my name here.  -->
 
-  
-
   
 This is the manual of the DebianDoc-SGML DTD and tools.
   


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] Bug#794795: debiandoc-sgml-doc: please make the build reproducible

2015-08-07 Thread Dhole
On 08/07/2015 03:39 PM, Osamu Aoki wrote:
> I noticed many people are fixing this issue in this way.  That may fix
> some itch for small group of highly technically minded people but does
> disservice to many end-users.
> 
> We should better as DD than the one proposed.
>> -  
> 
> That's very rough approach.
> 
> Let's promote to use the last changelog entry date for this kind of
> BUILD_DATE for reproducible build.
> 
> I think something like the following to set it:
> 
> # short date of this Debian package (debian/changelog)
> BUILD_DATE ?= $(shell { date +'%Y-%m-%d' -d"`dpkg-parsechangelog -SDate`" || 
> date +'(No changelog) %Y-%m-%d' ; })
> 
> Patch should be more like
> 
>> -  
>> +  &builddate;
> 
> Then set the date via entity.
> 
> Osamu
> 

Hi Osamu,

I understand your concern about keeping the date on the generated docs.
As per your suggested solution: replacing the timestamp with the date
from latests debian/changelog entry is something we are usually doing in
the reproducible builds team to fix issues like this one.

In this case, I didn't find a nice way to pass an external variable to
the sgml files. That's why my first approach was to plainly remove the
timestamp (It happens in many packages that the timestamp is not really
needed). But I understand that in debiandoc-sgml-doc the date should be
kept. I've searched through the documentation of debiandoc, but I didn't
find how to pass external values. How do you define an entity
(&builddate in your example) so that it can be filled externally?

I can provide a patch like that once I learn how to pass external
variables to the docs :)

Thanks!
-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] Bug#794792: freeipmi: please make the build reproducible

2015-08-07 Thread Dhole
On 08/07/2015 06:45 AM, Johannes Schauer wrote:
> Hi,
> 
> just some (hopefully helpful) comments about your freeipmi patch. Not CC-ing
> the bug so that it's completely up to you whether you want to address my
> comments or not.
> 
> Quoting Dhole (2015-08-06 19:13:22)
>> The attached patch replaces the timestamp in the docs with the latest
>> debian/changelog entry timestamp. Once applied, freeipmi can be built
>> reproducibly in our current experimental framework.
>>
>> [...]
>>
>> --- freeipmi-1.4.9/debian/patches/honour-SOURCE_DATE_EPOCH.patch
>> 1970-01-01 01:00:00.0 +0100
>> +++ freeipmi-1.4.9/debian/patches/honour-SOURCE_DATE_EPOCH.patch
>> 2015-08-06 17:18:43.0 +0200
>> @@ -0,0 +1,21 @@
>> +Description: Honour SOURCE_DATE_EPOCH in manpages
>> + .
>> + freeipmi (1.4.9-1.1) UNRELEASED; urgency=medium
>> + .
>> +   * Non-maintainer upload.
>> +   * Replace man pages dates with the timestamp from the latest
>> + debian/changelog entry using the variable SOURCE_DATE_EPOCH to make the
>> + package build reproducibly.
>> +Author: Eduard Sanou 
> 
> Usually, you would not put the debian/changelog entry as a patch Description.
> See here for samples of how to describe patches best and which headers you can
> and/or should use: http://dep.debian.net/deps/dep3/
> 

I just took the lazy approach to leave the template message generated by
`dpkg-source --commit`. I've written a properly formatted description now.

>> +--- freeipmi-1.4.9.orig/configure
>>  freeipmi-1.4.9/configure
>> +@@ -2723,7 +2723,7 @@ ac_config_headers="$ac_config_headers co
>> + ac_config_files="$ac_config_files freeipmi.spec Makefile 
>> bmc-device/Makefile bmc-info/Makefile bmc-watchdog/Makefile common/Makefile 
>> common/debugutil/Makefile common/miscutil/Makefile 
>> common/parsecommon/Makefile common/pingtool/Makefile 
>> common/portability/Makefile common/toolcommon/Makefile contrib/Makefile 
>> doc/Makefile etc/Makefile ipmi-chassis/Makefile ipmi-config/Makefile 
>> ipmi-dcmi/Makefile ipmi-fru/Makefile ipmi-locate/Makefile ipmi-oem/Makefile 
>> ipmi-pet/Makefile ipmi-raw/Makefile ipmi-sel/Makefile ipmi-sensors/Makefile 
>> ipmiconsole/Makefile ipmidetect/Makefile ipmidetectd/Makefile 
>> ipmiping/Makefile ipmipower/Makefile ipmiseld/Makefile libfreeipmi/Makefile 
>> libfreeipmi/libfreeipmi.pc libfreeipmi/include/Makefile 
>> libfreeipmi/include/freeipmi/freeipmi.h libipmiconsole/Makefile 
>> libipmiconsole/ipmiconsole.h libipmiconsole/libipmiconsole.pc 
>> libipmidetect/Makefile libipmidetect/ipmidetect.h 
>> libipmidetect/libipmidetect.pc libipmimonitoring/Makefile 
>> libipmimonitoring/ipmi_monitoring.h 
libipmimonitoring/libipmimonitoring.pc man/Makefile man/bmc-device.8.pre 
man/bmc-info.8.pre man/bmc-watchdog.8.pre man/freeipmi.conf.5.pre 
man/freeipmi.7.pre man/ipmi-chassis.8.pre man/ipmi-config.8.pre 
man/ipmi-config.conf.5.pre man/ipmi-dcmi.8.pre man/ipmi-fru.8.pre 
man/ipmi-locate.8.pre man/ipmi-oem.8.pre man/ipmi-pet.8.pre man/ipmi-raw.8.pre 
man/ipmi-sel.8.pre man/ipmi-sensors.8.pre man/ipmiconsole.8.pre 
man/ipmidetect.8.pre man/ipmidetect.conf.5.pre man/ipmidetectd.8.pre 
man/ipmidetectd.conf.5.pre man/ipmiping.8.pre man/ipmipower.8.pre 
man/ipmiseld.8.pre man/ipmiseld.conf.5.pre man/libfreeipmi.3.pre 
man/freeipmi_interpret_sensor.conf.5.pre man/freeipmi_interpret_sel.conf.5.pre 
man/libipmiconsole.3.pre man/libipmiconsole.conf.5.pre man/libipmidetect.3.pre 
man/libipmimonitoring.3.pre man/rmcpping.8.pre rmcpping/Makefile"
>> + 
>> + 
>> +-ISODATE=`date +%Y-%m-%d`
>> ++ISODATE=`date -u -d @$SOURCE_DATE_EPOCH +%Y-%m-%d`
>> + 
>> + 
>> + # libfreeipmi libtool versioning
> 
> The file you are patching here, ./configure, is autogenerated from another 
> file
> called ./configure.ac in the freeimpi sources. Maintainers are encouraged to
> rebuild their ./configure file from ./configure.ac at build time for various
> reasons but even if the freeimpi maintainer does not decide to do that in the
> near future, your changes will probably be overwritten by the next upstream
> release which changes the ./configure.ac and thus regenerates ./configure. It
> is thus better to patch the source of ./configure in ./configure.ac about 
> here:
> http://sources.debian.net/src/freeipmi/1.4.9-1/configure.ac/#L109 and suggest
> to upstream to call dh with `--with --autoreconf` instead of their current
> `--with autotools_dev` in debian/rules.
> 

I actually missed the configure.ac! Thanks for noticing. I've written
the patch targeting configure.ac now, and changed the dh from autotools
to autoreconf (Otherwise only aut

[Reproducible-builds] GSoC 2015 Week 11: Move forward reproducible builds

2015-08-07 Thread Dhole
Hi,

This week I have updated my patch for gettext to target the new version
uploaded to Debian unstable (0.19.5.1-1).
I pushed the updated patch to our git repo:
https://anonscm.debian.org/cgit/reproducible/gettext.git/commit/?h=pu/reproducible_builds&id=b6e972eab1f04f3fbd368433b496f1f4a6b372a3

I have also uploaded the new build to our custom APT repository, and
attached the patch to the open bug:
https://bugs.debian.org/792687

I have written a patch for the qthelpgenerator tool from qt4-x11 to
honour SOURCE_DATE_EPOCH when embedding timestamps in the generated qch
files (see issue timestamps_in_qch [1]). The tool qthelpgenerator embeds
timestamps in different places, so in order to find a general solution I
added the method reproducibleDateTime in the class QDateTime which
returns a deterministic date honouring SOURCE_DATE_EPOCH in case the
variable is set. Then I replaced the instances of
QDateTime::currentDateTime() with QDateTime::reproducibleDateTime()
where needed.
I have pushed the patch to our git repo:
https://anonscm.debian.org/cgit/reproducible/qt4-x11.git/commit/?h=pu/reproducible_builds&id=ee300f6185ce82eb932dbe1b2dca2113b88afb56

I have also uploaded the build to our custom APT repository, and opened
a bug with the patch in Debian:
https://bugs.debian.org/794681

And I have also updated the wiki accordingly.

After patching qt4-x11, 3 packages became reproducible in my machine:
- ktikz
- qmf
- linkchecker

qmf didn't become reproducible in Jenkins: there is a weird issue with
having different files in build 1 and 2 (apparently files are missing in
both builds). This may be caused by parallelism issues and needs further
investigation.

There are still 12 packages that where tagged with timestamps_in_qch
that didn't become reproducible. They are affected by randomness_in_qdoc
[2]. Also some of them show variations in qch files (it seems to be a
history of SQL commands that differ between builds).

I have fixed some individual packages without notes:

Affected by timestamps in zip metadata (timestamps_in_zip issue)
- foxyproxy
https://bugs.debian.org/794779
- xul-ext-monkeysphere
https://bugs.debian.org/794781

Embedding of dates:
- freeipmi
https://bugs.debian.org/794792
- doc-base
https://bugs.debian.org/794793
- debiandoc-sgml-doc
https://bugs.debian.org/794795

For next week I'll probably look at the randomness_in_qdoc [2] issue.


 [1]
https://reproducible.debian.net/issues/unstable/timestamps_in_qch_issue.html
 [2]
https://reproducible.debian.net/issues/unstable/randomness_in_qdoc_issue.html

Best regards,
-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] [Soc-coordination] GSoC 2015 Week 11: Move forward reproducible builds

2015-08-09 Thread Dhole
I forgot to add that I wrote a second blog post at

https://dhole.github.io/post/reproducible_builds_debian_gsoc2015_update_1/

describing my experiences of these two months of work in the
reproducible builds project. I also wrote about my impressions on the
project and in working on a free software project.

Thanks h01ger for reminding me about this!

-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] Bug#794681: qt4-x11: please support timestamps from environment

2015-08-11 Thread Dhole
On 08/05/2015 06:03 PM, Dhole wrote:
> Source: qt4-x11
> Version: 4:4.8.7+dfsg-2
> Severity: wishlist
> Tags: patch
> User: reproducible-builds@lists.alioth.debian.org
> Usertags: toolchain timestamps
> X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org
> 
> Hi,
> 
> While working on the "reproducible builds" effort [1], we have noticed
> that the qhelpgenerator tool from qt4-x11 embeds timestamps on the
> creation of qch files.
> 
> For the Reproducible Builds effort we are proposing an environment
> variable (SOURCE_DATE_EPOCH) [2] that will contain a deterministic epoch
> timestamp (based on the latest debian/changelog entry) that could be
> used, which should be automatically exported by debhelper in the future [3].
> 
> The attached patch proposes a way to use this variable to get
> reproducible timestamps in the qch files generated by qhelpgenerator, if
> the variable has been set (if not, it falls back to the old behavior).
> With the attached patch packages using qhelpgenerator would then
> automatically embed reproducible timestamps in qch files.
> 
> 
> [1]: https://wiki.debian.org/ReproducibleBuilds
> [2]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
> [3]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791815
> 
> Regards,
> 
> 
> 
> ___
> Reproducible-builds mailing list
> Reproducible-builds@lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
> 

Hi

I'm attaching an update of the submitted patch targeting the latest
qt4-x11 version from Debian: 4:4.8.7+dfsg-3

Regards,
-- 
Dhole
diff -Nru qt4-x11-4.8.7+dfsg/debian/changelog 
qt4-x11-4.8.7+dfsg/debian/changelog
--- qt4-x11-4.8.7+dfsg/debian/changelog 2015-08-04 23:13:58.0 +0200
+++ qt4-x11-4.8.7+dfsg/debian/changelog 2015-08-10 19:35:51.0 +0200
@@ -1,3 +1,11 @@
+qt4-x11 (4:4.8.7+dfsg-3.0~reproducible1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the
+embedded timestamps in qch files generated with qhelpgenerator.
+
+ -- Eduard Sanou   Mon, 10 Aug 2015 19:35:09 +0200
+
 qt4-x11 (4:4.8.7+dfsg-3) unstable; urgency=medium
 
   * Update symbols files with buildds' logs.
diff -Nru 
qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch
 
qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch
--- 
qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch
  1970-01-01 01:00:00.0 +0100
+++ 
qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch
  2015-08-10 19:39:59.0 +0200
@@ -0,0 +1,102 @@
+Description: Allow the timestamps from qhelpgenerator to be externally set
+ In order to make qhelpgenerator output reproducible, we need a way to
+ set the embedded timestamps to other values than the current time.
+ We define a new method for QDateTime (reproducibleDateTime) that returns
+ a deterministic datetime object when the SOURCE_DATE_EPOCH environment 
+ variable is set with a unix epoch timestamp, containing the datetime 
+ defined by SOURCE_DATE_EPOCH in UTC. We replace some instances of
+ QDateTime::currentDateTime() by QDateTime::reproducibleDateTime() in the
+ sources of qhelpgenerator to make the output reproducible.
+Author: Eduard Sanou 
+
+--- qt4-x11-4.8.7+dfsg.orig/src/corelib/tools/qdatetime.cpp
 qt4-x11-4.8.7+dfsg/src/corelib/tools/qdatetime.cpp
+@@ -2892,6 +2892,15 @@ bool QDateTime::operator<(const QDateTim
+ */
+ 
+ /*!
++\fn QDateTime QDateTime::reproducibleDateTime()
++If the environment variable SOURCE_DATE_EPOCH containing a unix epoch date
++is set, returns the datetime in SOURCE_DATE_EPOCH, in UTC.
++If SOURCE_DATE_EPOCH is not set, behaves as QDateTime::currentDateTime().
++
++\sa currentDateTimeUtc(), QDate::currentDate(), QTime::currentTime(), 
toTimeSpec()
++*/
++
++/*!
+ \fn QDateTime QDateTime::currentDateTimeUtc()
+ \since 4.7
+ Returns the current datetime, as reported by the system clock, in
+@@ -3120,6 +3129,29 @@ QDateTime QDateTime::currentDateTime()
+ return dt;
+ }
+ 
++QDateTime QDateTime::reproducibleDateTime()
++{
++QByteArray env_date;
++QDateTime date;
++bool env_date_ok;
++long timestamp;
++
++env_date = qgetenv("SOURCE_DATE_EPOCH");
++if (env_date.length() != 0) {
++timestamp = env_date.toLong(&env_date_ok, 10);
++if (!env_date_ok) {
++// "SOURCE_DATE_EPOCH is not a number!
++timestamp = 0;
++}
++date = QDateTime::fromTime_t(timestamp).toUTC();
++} else {
++date = QDateTime::currentDateTime();
++}
++
++re

[Reproducible-builds] Bug#795203: xlsx2csv: please make the build reproducible

2015-08-11 Thread Dhole
Source: xlsx2csv
Version: 0.20+20121013+gitfa44ba6-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that xlsx2csv could not be built reproducibly.

The attached patch replaces the timestamp in the docs with the latest
debian/changelog entry timestamp. Once applied, xlsx2csv can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru xlsx2csv-0.20+20121013+gitfa44ba6/debian/changelog 
xlsx2csv-0.20+20121013+gitfa44ba6/debian/changelog
--- xlsx2csv-0.20+20121013+gitfa44ba6/debian/changelog  2013-06-06 
06:43:15.0 +0200
+++ xlsx2csv-0.20+20121013+gitfa44ba6/debian/changelog  2015-08-10 
23:39:03.0 +0200
@@ -1,3 +1,11 @@
+xlsx2csv (0.20+20121013+gitfa44ba6-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace man timestamp by the latest debian/changelog entry timestamp
+to make the package build reproducible.
+
+ -- Eduard Sanou   Mon, 10 Aug 2015 23:38:31 +0200
+
 xlsx2csv (0.20+20121013+gitfa44ba6-1) unstable; urgency=low
 
   * Initial release (Closes: #690354).
diff -Nru 
xlsx2csv-0.20+20121013+gitfa44ba6/debian/patches/honour-SOURCE_DATE_EPOCH.patch 
xlsx2csv-0.20+20121013+gitfa44ba6/debian/patches/honour-SOURCE_DATE_EPOCH.patch
--- 
xlsx2csv-0.20+20121013+gitfa44ba6/debian/patches/honour-SOURCE_DATE_EPOCH.patch 
1970-01-01 01:00:00.0 +0100
+++ 
xlsx2csv-0.20+20121013+gitfa44ba6/debian/patches/honour-SOURCE_DATE_EPOCH.patch 
2015-08-10 23:40:17.0 +0200
@@ -0,0 +1,20 @@
+Description: Fix man timestamp
+ Replace man timestamp with the latest debian/changelog timestamp entry to
+ make the man pages reproducible.
+Author: Eduard Sanou 
+
+--- xlsx2csv-0.20+20121013+gitfa44ba6.orig/man/pod2man.mk
 xlsx2csv-0.20+20121013+gitfa44ba6/man/pod2man.mk
+@@ -40,7 +40,11 @@ PACKAGE ?= package
+ # Optional variables to set
+ MANSECT   ?= 1
+ PODCENTER ?= User Commands
+-PODDATE   ?= $$(date "+%Y-%m-%d")
++ifdef SOURCE_DATE_EPOCH
++PODDATE   ?= $$(date -u -d @${SOURCE_DATE_EPOCH} "+%Y-%m-%d")
++else
++PODDATE   ?= $$(date "+%Y-%m-%d")
++endif
+ 
+ # Directories
+ MANSRC?=
diff -Nru xlsx2csv-0.20+20121013+gitfa44ba6/debian/patches/series 
xlsx2csv-0.20+20121013+gitfa44ba6/debian/patches/series
--- xlsx2csv-0.20+20121013+gitfa44ba6/debian/patches/series 2013-06-06 
06:43:15.0 +0200
+++ xlsx2csv-0.20+20121013+gitfa44ba6/debian/patches/series 2015-08-10 
23:39:23.0 +0200
@@ -1 +1,2 @@
 10-eol-handler.patch
+honour-SOURCE_DATE_EPOCH.patch
diff -Nru xlsx2csv-0.20+20121013+gitfa44ba6/debian/rules 
xlsx2csv-0.20+20121013+gitfa44ba6/debian/rules
--- xlsx2csv-0.20+20121013+gitfa44ba6/debian/rules  2013-06-06 
06:43:15.0 +0200
+++ xlsx2csv-0.20+20121013+gitfa44ba6/debian/rules  2015-08-10 
23:34:29.0 +0200
@@ -4,6 +4,8 @@
 URL= git://github.com/dilshod/xlsx2csv.git
 UPSTREAMDIR= ../upstream.git
 
+export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 
-SDate)" +%s)
+
 man:
$(MAKE) -C man -f pod2man.mk PACKAGE=$(PACKAGE) makeman
 


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] Bug#794792: freeipmi: please make the build reproducible

2015-08-11 Thread Dhole
On 08/06/2015 07:13 PM, Dhole wrote:
> Source: freeipmi
> Version: 1.4.9-1
> Severity: wishlist
> Tags: patch
> User: reproducible-builds@lists.alioth.debian.org
> Usertags: timestamps
> X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org
> 
> Hi,
> 
> While working on the "reproducible builds" effort [1], we have noticed
> that freeipmi could not be built reproducibly.
> 
> The attached patch replaces the timestamp in the docs with the latest
> debian/changelog entry timestamp. Once applied, freeipmi can be built
> reproducibly in our current experimental framework.
> 
>  [1]: https://wiki.debian.org/ReproducibleBuilds
> 
> 
> Regards,
> 
> 
> 
> ___
> Reproducible-builds mailing list
> Reproducible-builds@lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
> 

Hi,

A member of the reproducible builds team (Josh) noticed that the patch I
sent could be improved and gave me some suggestions. I'm attaching an
updated patch with the suggestions addressed, making the patch better.

The modifications are the following:

- In my original patch I was patching `configure` to set a different
ISODATE, but the package freeipmi uses `configure.ac` to generate the
`configure` file. My improved patch now modifies `configure.ac`. For it
to take effect, I have modified how dh is called in debian/rules, to use
autoreconf instead of autotools_dev, so that the `configure` file is
generated during the build from the `configure.ac` file. I suggest you
accept this change as well.

- I have now set the declaration of ISODATE using SOURCE_DATE_EPOCH
conditional, falling back to the old behavior if SOURDE_DATE_EPOCH is
not defined. This way the patch can be sent upstream without breaking
anything.

- Finally, I removed the line to export SOURCE_DATE_EPOCH in
debian/rules since debhelper already exports this variable in our
current experimental framework.

Regards,
-- 
Dhole
diff -Nru freeipmi-1.4.9/debian/changelog freeipmi-1.4.9/debian/changelog
--- freeipmi-1.4.9/debian/changelog 2015-07-01 16:09:12.0 +0200
+++ freeipmi-1.4.9/debian/changelog 2015-08-07 17:06:34.0 +0200
@@ -1,3 +1,12 @@
+freeipmi (1.4.9-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace man pages dates with the timestamp from the latest
+debian/changelog entry using the variable SOURCE_DATE_EPOCH to make the
+package build reproducibly.
+
+ -- Eduard Sanou   Fri, 07 Aug 2015 17:06:03 +0200
+
 freeipmi (1.4.9-1) unstable; urgency=medium
 
   * Fresh upstream release
diff -Nru freeipmi-1.4.9/debian/control freeipmi-1.4.9/debian/control
--- freeipmi-1.4.9/debian/control   2015-07-01 16:09:12.0 +0200
+++ freeipmi-1.4.9/debian/control   2015-08-07 17:32:01.0 +0200
@@ -4,7 +4,7 @@
 Maintainer: Debian FreeIPMI Maintainers 

 Uploaders: Yaroslav Halchenko , Ferenc Wágner 
, Bernd Zeimetz 
 Build-Depends: debhelper (>= 9),
- autotools-dev (>= 20100122.1~),
+ dh-autoreconf,
  libgcrypt11-dev,
  chrpath
 Standards-Version: 3.9.3
diff -Nru freeipmi-1.4.9/debian/patches/0002-Honour-SOURCE_DATE_EPOCH.patch 
freeipmi-1.4.9/debian/patches/0002-Honour-SOURCE_DATE_EPOCH.patch
--- freeipmi-1.4.9/debian/patches/0002-Honour-SOURCE_DATE_EPOCH.patch   
1970-01-01 01:00:00.0 +0100
+++ freeipmi-1.4.9/debian/patches/0002-Honour-SOURCE_DATE_EPOCH.patch   
2015-08-07 18:07:12.0 +0200
@@ -0,0 +1,23 @@
+Description: Honour SOURCE_DATE_EPOCH in manpages
+ Replace man pages dates with the timestamp from the latest
+ debian/changelog entry using the variable SOURCE_DATE_EPOCH to make the
+ package build reproducibly.
+Author: Eduard Sanou 
+
+Index: freeipmi-1.4.9/configure.ac
+===
+--- freeipmi-1.4.9.orig/configure.ac
 freeipmi-1.4.9/configure.ac
+@@ -106,7 +106,11 @@ AC_CONFIG_FILES([
+   man/rmcpping.8.pre
+ rmcpping/Makefile])
+ 
+-ISODATE=`date +%Y-%m-%d`
++if test -z "${SOURCE_DATE_EPOCH}"; then
++  ISODATE=`date +%Y-%m-%d`
++else
++  ISODATE=`date -u -d @$SOURCE_DATE_EPOCH +%Y-%m-%d`
++fi
+ AC_SUBST([ISODATE])
+ 
+ # libfreeipmi libtool versioning
diff -Nru freeipmi-1.4.9/debian/patches/series 
freeipmi-1.4.9/debian/patches/series
--- freeipmi-1.4.9/debian/patches/series2015-07-01 16:09:12.0 
+0200
+++ freeipmi-1.4.9/debian/patches/series2015-08-07 17:08:36.0 
+0200
@@ -1 +1,2 @@
 deb_bmc-watchdog_noRUN
+0002-Honour-SOURCE_DATE_EPOCH.patch
diff -Nru freeipmi-1.4.9/debian/rules freeipmi-1.4.9/debian/rules
--- freeipmi-1.4.9/debian/rules 2015-07-01 16:09:12.0 +0200
+++ freeipmi-1.4.9/debian/rules 2015-08-07 17:27:03.0 +0200
@@ -4,7 +4,7 @@
 # --fail-missing for dh_install
 # --link-doc for dh_installdocs
 %:
-   dh $@ --with autotools_d

[Reproducible-builds] Bug#795394: libitpp: please make the build reproducible

2015-08-13 Thread Dhole
Source: libitpp
Version: 4.3.1-4
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that libitpp could not be built reproducibly.

The attached patch replaces the timestamp in the docs with the latest
debian/changelog entry timestamp. Once applied, libitpp can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru libitpp-4.3.1/debian/changelog libitpp-4.3.1/debian/changelog
--- libitpp-4.3.1/debian/changelog  2015-03-01 02:59:24.0 +0100
+++ libitpp-4.3.1/debian/changelog  2015-08-12 23:45:14.0 +0200
@@ -1,3 +1,11 @@
+libitpp (4.3.1-4.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace man timestamp by SOURCE_DATE_EPOCH to make the package build
+reproducibly.
+
+ -- Eduard Sanou   Wed, 12 Aug 2015 23:44:45 +0200
+
 libitpp (4.3.1-4) experimental; urgency=medium
 
   * debian/patches:
diff -Nru libitpp-4.3.1/debian/patches/honour-SOURCE_DATE_EPOCH.diff 
libitpp-4.3.1/debian/patches/honour-SOURCE_DATE_EPOCH.diff
--- libitpp-4.3.1/debian/patches/honour-SOURCE_DATE_EPOCH.diff  1970-01-01 
01:00:00.0 +0100
+++ libitpp-4.3.1/debian/patches/honour-SOURCE_DATE_EPOCH.diff  2015-08-12 
23:46:53.0 +0200
@@ -0,0 +1,20 @@
+Description: Honour SOURCE_DATE_EPOCH in man pages
+ Replace manpage timestamp with SOURCE_DATE_EPOCH only if the variable is 
+ defined, to make the man pages reproducible.
+Author: Eduard Sanou 
+
+--- libitpp-4.3.1.orig/CMakeLists.txt
 libitpp-4.3.1/CMakeLists.txt
+@@ -155,7 +155,11 @@ set (PACKAGE_STRING "${PACKAGE_NAME} ${P
+ set (PACKAGE_TARNAME ${PACKAGE})
+ set (PACKAGE_URL "")
+ if (UNIX)
+-  EXECUTE_PROCESS(COMMAND "date" "+%d/%m/%Y" OUTPUT_VARIABLE PACKAGE_DATE)
++  if (DEFINED ENV{SOURCE_DATE_EPOCH})
++EXECUTE_PROCESS(COMMAND "date" "-u" "-d @${SOURCE_DATE_EPOCH}" 
"+%d/%m/%Y" OUTPUT_VARIABLE PACKAGE_DATE)
++  else()
++EXECUTE_PROCESS(COMMAND "date" "+%d/%m/%Y" OUTPUT_VARIABLE PACKAGE_DATE)
++  endif()
+   string(REGEX REPLACE "(..)/(..)/..(..).*" "\\1/\\2/\\3" PACKAGE_DATE 
"${PACKAGE_DATE}")
+ else()
+   set(PACKAGE_DATE "")
diff -Nru libitpp-4.3.1/debian/patches/series 
libitpp-4.3.1/debian/patches/series
--- libitpp-4.3.1/debian/patches/series 2015-02-28 02:31:01.0 +0100
+++ libitpp-4.3.1/debian/patches/series 2015-08-12 23:46:00.0 +0200
@@ -1,3 +1,4 @@
 741814-FTBFS-fix.diff
 itpp-pc-fix.diff
 delete-sflogo.diff
+honour-SOURCE_DATE_EPOCH.diff


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#795395: adblock-plus: please make the build reproducible

2015-08-13 Thread Dhole
Source: adblock-plus
Version: 2.6.9.1+dfsg+4real-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that adblock-plus could not be built reproducibly.

The attached patch sets the timezone to UTC before calling the build.py
script to avoid timezone differences in zip metadata. Once applied,
adblock-plus can be builtreproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru adblock-plus-2.6.9.1+dfsg+4real/debian/changelog 
adblock-plus-2.6.9.1+dfsg+4real/debian/changelog
--- adblock-plus-2.6.9.1+dfsg+4real/debian/changelog2015-06-09 
20:00:48.0 +0200
+++ adblock-plus-2.6.9.1+dfsg+4real/debian/changelog2015-08-12 
21:00:42.0 +0200
@@ -1,3 +1,10 @@
+adblock-plus (2.6.9.1+dfsg+4real-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix timezone when running build.py to make the package build reproducibly. 
+
+ -- Eduard Sanou   Wed, 12 Aug 2015 21:00:15 +0200
+
 adblock-plus (2.6.9.1+dfsg+4real-1) unstable; urgency=medium
 
   * Restore buildtools as of 2.6.9 (Closes: #788225)
diff -Nru adblock-plus-2.6.9.1+dfsg+4real/debian/rules 
adblock-plus-2.6.9.1+dfsg+4real/debian/rules
--- adblock-plus-2.6.9.1+dfsg+4real/debian/rules2015-06-08 
22:17:58.0 +0200
+++ adblock-plus-2.6.9.1+dfsg+4real/debian/rules2015-08-12 
20:59:43.0 +0200
@@ -4,7 +4,7 @@
dh $@ --with xul-ext
 
 override_dh_auto_build:
-   python build.py build --release
+   TZ=UTC python build.py build --release
 
 override_dh_auto_install:
install-xpi adblockplus*.xpi


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#795392: blkreplay: please make the build reproducible

2015-08-13 Thread Dhole
Source: blkreplay
Version: 1.0-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that blkreplay could not be built reproducibly.

The attached patch fixes the timezone in the date from the man pages to
UTC. Once applied, blkreplay can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru blkreplay-1.0/debian/changelog blkreplay-1.0/debian/changelog
--- blkreplay-1.0/debian/changelog  2015-06-29 18:54:10.0 +0200
+++ blkreplay-1.0/debian/changelog  2015-08-12 21:18:44.0 +0200
@@ -1,3 +1,10 @@
+blkreplay (1.0-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set date timezone in man pages to UTC to make package build reproducibly.
+
+ -- Eduard Sanou   Wed, 12 Aug 2015 21:18:21 +0200
+
 blkreplay (1.0-2) unstable; urgency=medium
 
   * Fix lib.sh so it doesn't try to create downloads directory.
diff -Nru blkreplay-1.0/debian/rules blkreplay-1.0/debian/rules
--- blkreplay-1.0/debian/rules  2015-06-22 11:00:38.0 +0200
+++ blkreplay-1.0/debian/rules  2015-08-12 21:18:16.0 +0200
@@ -4,7 +4,7 @@
dh $@ --with autoreconf
 
 %.1: %.pod
-   pod2man -c "" -d $$(date -d "$$(dpkg-parsechangelog -S Date)" +%F) -r 
"" $< > $@
+   pod2man -c "" -d $$(date -u -d "$$(dpkg-parsechangelog -S Date)" +%F) 
-r "" $< > $@
 
 override_dh_auto_build: debian/blkreplay.1
dh_auto_build


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] GSoC 2015 Week 12: Move forward reproducible builds

2015-08-16 Thread Dhole

-- Hi,

This week I have updated the patch for qt4-x11 that honours
SOURCE_DATE_EPOCH when embedding dates with the qthelpgenerator tool to
target the newest version in Debian (the patched files didn't change in
the update though). I have pushed the changes in our git repository, I
have uploaded the updated patched package to our custom APT, and I have
attached the updated patch to the bug entry.(git, APT, bug).

I have also improved the freeipmi patch I sent last week applying all
the suggestions Josch made on the mailing list. I sent the patch to the
already opened bug entry:
https://bugs.debian.org/794792

I have fixed some individual packages that were affected by different
issues that didn't have notes yet. I have also added them in the notes
with the bugs and related issues.

timestamps_in_documentation_generated_by_podman
- xlsx2csv
https://bugs.debian.org/795203

timezone difference in metadata timestamps in zip files
- adblock-plus
https://bugs.debian.org/795395

embedded dates (build time) in man pages
- blkreplay
https://bugs.debian.org/795392
- libitpp
https://bugs.debian.org/795394

This Friday I flew to Germany to attend the DebConf15 in Heidelberg,
where I'll meet some of the reproducible builds folks :) (I've already
met 3 of them!). I'll attend the conference until it finishes (22nd of
August).

Best regards,
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#795975: unoconv: please make the build reproducible

2015-08-18 Thread Dhole
Source: unoconv
Version: 0.6-6
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that unoconv could not be built reproducibly.

The attached patch sets the timezone to UTC before calling asciidoc to
avoid timezone differences in the generated docs. Once applied, unoconv
can be builtreproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru unoconv-0.6/debian/changelog unoconv-0.6/debian/changelog
--- unoconv-0.6/debian/changelog2014-01-11 20:02:32.0 +0100
+++ unoconv-0.6/debian/changelog2015-08-17 12:22:44.0 +0200
@@ -1,3 +1,11 @@
+unoconv (0.6-6.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set TZ=UTC in asciidoc to make the embedded dates invariant to timezones
+in order to make the package build reproducibly.
+
+ -- Eduard Sanou   Mon, 17 Aug 2015 12:22:05 +0200
+
 unoconv (0.6-6) unstable; urgency=low
 
   * Add support for Microsoft Works and Microsoft Excel 2007 XML.
diff -Nru unoconv-0.6/debian/patches/fix-timezone-asciidoc.patch 
unoconv-0.6/debian/patches/fix-timezone-asciidoc.patch
--- unoconv-0.6/debian/patches/fix-timezone-asciidoc.patch  1970-01-01 
01:00:00.0 +0100
+++ unoconv-0.6/debian/patches/fix-timezone-asciidoc.patch  2015-08-17 
12:24:30.0 +0200
@@ -0,0 +1,16 @@
+Description: Fix timezone in asciidoc
+ Set TZ=UTC before calling asciidoc to make the embedded dates invariant
+ to timezone so that the package can be build reproducibly.
+Author: Eduard Sanou 
+
+--- unoconv-0.6.orig/doc/Makefile
 unoconv-0.6/doc/Makefile
+@@ -20,7 +20,7 @@ clean:
+   rm -f unconv.1 *.html *.xml
+ 
+ %.1.html: %.1.txt
+-  asciidoc -d manpage $<
++  TZ=UTC asciidoc -d manpage $<
+ 
+ %.1: %.1.xml
+   xmlto man $<
diff -Nru unoconv-0.6/debian/patches/series unoconv-0.6/debian/patches/series
--- unoconv-0.6/debian/patches/series   2014-01-11 20:02:32.0 +0100
+++ unoconv-0.6/debian/patches/series   2015-08-17 12:23:40.0 +0200
@@ -4,3 +4,4 @@
 python3-stdout-fix.patch
 support-for-wps.patch
 support-for-xlsx.patch
+fix-timezone-asciidoc.patch


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#795977: dahdi-tools: please make the build reproducible

2015-08-18 Thread Dhole
Source: dahdi-tools
Version: 1:2.10.2-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that dahdi-tools could not be built reproducibly.

The attached patch sets the timezone to UTC before calling asciidoc to
avoid timezone differences in the generated docs. Once applied,
dahdi-tools can be built reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru dahdi-tools-2.10.2/debian/changelog 
dahdi-tools-2.10.2/debian/changelog
--- dahdi-tools-2.10.2/debian/changelog 2015-06-28 22:08:29.0 +0200
+++ dahdi-tools-2.10.2/debian/changelog 2015-08-17 12:46:16.0 +0200
@@ -1,3 +1,11 @@
+dahdi-tools (1:2.10.2-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set TZ=UTC before calling asciidoc to make the embedded dates invariant to 
+timezones in order to make the package build reproducibly.
+
+ -- Eduard Sanou   Mon, 17 Aug 2015 12:44:19 +0200
+
 dahdi-tools (1:2.10.2-2) unstable; urgency=medium
 
   * gcc5.patch (Closes: #777829).
diff -Nru dahdi-tools-2.10.2/debian/patches/fix-timezone-asciidoc.patch 
dahdi-tools-2.10.2/debian/patches/fix-timezone-asciidoc.patch
--- dahdi-tools-2.10.2/debian/patches/fix-timezone-asciidoc.patch   
1970-01-01 01:00:00.0 +0100
+++ dahdi-tools-2.10.2/debian/patches/fix-timezone-asciidoc.patch   
2015-08-17 12:47:13.0 +0200
@@ -0,0 +1,20 @@
+Description: Fix timezone in asciidoc
+ Set TZ=UTC before calling asciidoc to make the embedded dates invariant
+ to timezone so that the package can be build reproducibly.
+Author: Eduard Sanou 
+
+--- dahdi-tools-2.10.2.orig/Makefile
 dahdi-tools-2.10.2/Makefile
+@@ -209,10 +209,10 @@ genconf_parameters.sample: xpp/genconf_p
+ README.html: README system.conf.asciidoc init.conf.asciidoc tonezones.txt \
+   UPGRADE.txt genconf_parameters.asciidoc assigned-spans.conf.asciidoc \
+   span-types.conf.asciidoc
+-  $(ASCIIDOC) -n -a toc -a toclevels=4 $<
++  TZ=UTC $(ASCIIDOC) -n -a toc -a toclevels=4 $<
+ 
+ README.Astribank.html: xpp/README.Astribank
+-  $(ASCIIDOC) -o $@ -n -a toc -a toclevels=4 $<
++  TZ=UTC $(ASCIIDOC) -o $@ -n -a toc -a toclevels=4 $<
+ 
+ # on Debian: this requires the full groff, not just groff-base.
+ %.8.html: %.8
diff -Nru dahdi-tools-2.10.2/debian/patches/series 
dahdi-tools-2.10.2/debian/patches/series
--- dahdi-tools-2.10.2/debian/patches/series2015-06-28 07:16:50.0 
+0200
+++ dahdi-tools-2.10.2/debian/patches/series2015-08-17 12:46:44.0 
+0200
@@ -4,3 +4,4 @@
 remove_dahdi_speed
 debian-cflags.patch
 gcc5.patch
+fix-timezone-asciidoc.patch


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#795981: x11proto-input: please make the build reproducible

2015-08-18 Thread Dhole
Source: x11proto-input
Version: 2.3.1-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that x11proto-input could not be built reproducibly.

The attached patch sets the timezone to UTC before calling asciidoc to
avoid timezone differences in the generated docs. Once applied,
x11proto-input can be built reproducibly in our current experimental
framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -u x11proto-input-2.3.1/debian/changelog 
x11proto-input-2.3.1/debian/changelog
--- x11proto-input-2.3.1/debian/changelog
+++ x11proto-input-2.3.1/debian/changelog
@@ -1,3 +1,11 @@
+x11proto-input (2.3.1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set TZ=UTC before calling asciidoc to make the embedded dates invariant to 
+timezones in order to make the package build reproducibly.
+
+ -- Eduard Sanou   Mon, 17 Aug 2015 16:22:00 +0200
+
 x11proto-input (2.3.1-1) unstable; urgency=medium
 
   * New upstream release.
only in patch2:
unchanged:
--- x11proto-input-2.3.1.orig/specs/Makefile.am
+++ x11proto-input-2.3.1/specs/Makefile.am
@@ -6,7 +6,7 @@
 dist_doc_DATA = XI2proto.txt XIproto.txt
 
 %.html: %.txt
-   $(AM_V_GEN)$(ASCIIDOC) -o $@ $<
+   TZ=UTC $(AM_V_GEN)$(ASCIIDOC) -o $@ $<
 
 CLEANFILES = $(doc_DATA)
 


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#795984: postgresql-plproxy: please make the build reproducible

2015-08-18 Thread Dhole
Source: postgresql-plproxy
Version: 2.5-5
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that postgresql-plproxy could not be built reproducibly.

The attached patch sets the timezone to UTC before calling asciidoc to
avoid timezone differences in the generated docs. Once applied,
postgresql-plproxy can be built reproducibly in our current experimental
framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru postgresql-plproxy-2.5/debian/changelog 
postgresql-plproxy-2.5/debian/changelog
--- postgresql-plproxy-2.5/debian/changelog 2014-07-27 11:44:25.0 
+0200
+++ postgresql-plproxy-2.5/debian/changelog 2015-08-17 16:29:06.0 
+0200
@@ -1,3 +1,11 @@
+postgresql-plproxy (2.5-5.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set TZ=UTC before calling asciidoc to make the embedded dates invariant to 
+timezones in order to make the package build reproducibly.
+
+ -- Eduard Sanou   Mon, 17 Aug 2015 16:28:54 +0200
+
 postgresql-plproxy (2.5-5) unstable; urgency=medium
 
   * Rebuild against PostgreSQL 9.4.
diff -Nru postgresql-plproxy-2.5/debian/patches/fix-timezone-asciidoc.patch 
postgresql-plproxy-2.5/debian/patches/fix-timezone-asciidoc.patch
--- postgresql-plproxy-2.5/debian/patches/fix-timezone-asciidoc.patch   
1970-01-01 01:00:00.0 +0100
+++ postgresql-plproxy-2.5/debian/patches/fix-timezone-asciidoc.patch   
2015-08-17 16:31:06.0 +0200
@@ -0,0 +1,14 @@
+Description: Fix timezone in asciidoc
+ Set TZ=UTC before calling asciidoc to make the embedded dates invariant
+ to timezone so that the package can be build reproducibly.
+Author: Eduard Sanou 
+
+--- postgresql-plproxy-2.5.orig/doc/Makefile
 postgresql-plproxy-2.5/doc/Makefile
+@@ -16,5 +16,5 @@ web: $(HTML)
+   rsync -avz $(HTML) $(web)/doc/
+ 
+ %.html: %.txt
+-  $(ASCIIDOC) -a toc $<
++  TZ=UTC $(ASCIIDOC) -a toc $<
+ 
diff -Nru postgresql-plproxy-2.5/debian/patches/series 
postgresql-plproxy-2.5/debian/patches/series
--- postgresql-plproxy-2.5/debian/patches/series2013-08-16 
22:33:28.0 +0200
+++ postgresql-plproxy-2.5/debian/patches/series2015-08-17 
16:30:54.0 +0200
@@ -1,2 +1,3 @@
 makefile
 plproxy.h
+fix-timezone-asciidoc.patch


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#795985: xorg: please make the build reproducible

2015-08-18 Thread Dhole
Source: xorg
Version: 1:7.7+9
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that xorg could not be built reproducibly.

The attached patch sets the timezone to UTC before calling asciidoc to
avoid timezone differences in the generated docs. Once applied, xorg can
be built reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru xorg-7.7+9/debian/changelog xorg-7.7+9.1/debian/changelog
--- xorg-7.7+9/debian/changelog 2015-05-11 14:53:51.0 +0200
+++ xorg-7.7+9.1/debian/changelog   2015-08-17 16:38:13.0 +0200
@@ -1,3 +1,11 @@
+xorg (1:7.7+9.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set TZ=UTC before calling asciidoc to make the embedded dates invariant to 
+timezones in order to make the package build reproducibly.
+
+ -- Eduard Sanou   Mon, 17 Aug 2015 16:37:50 +0200
+
 xorg (1:7.7+9) unstable; urgency=medium
 
   * Remove the siliconmotion driver from xserver-xorg-video-all.
diff -Nru xorg-7.7+9/xsf-docs/Makefile xorg-7.7+9.1/xsf-docs/Makefile
--- xorg-7.7+9/xsf-docs/Makefile2013-09-26 01:24:29.0 +0200
+++ xorg-7.7+9.1/xsf-docs/Makefile  2015-08-17 16:44:17.0 +0200
@@ -6,7 +6,7 @@
 
 pdf_files = $(patsubst %.txt,%.pdf,$(txt_files))
 
-TXT_TO_HTML  = asciidoc -a linkcss
+TXT_TO_HTML  = TZ=UTC asciidoc -a linkcss
 HTML_TO_PDF  = wkhtmltopdf
 CSS_FILE = xsf.css
 ADOC_CSS_FILE= asciidoc-xhtml11.css


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#795983: dbusada: please make the build reproducible

2015-08-18 Thread Dhole
Source: dbusada
Version: 0.3-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that dbusada could not be built reproducibly.

The attached patch sets the timezone to UTC before calling asciidoc to
avoid timezone differences in the generated docs. Once applied, dbusada
can be built reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru dbusada-0.3/debian/changelog dbusada-0.3/debian/changelog
--- dbusada-0.3/debian/changelog2014-08-14 16:39:43.0 +0200
+++ dbusada-0.3/debian/changelog2015-08-17 13:25:10.0 +0200
@@ -1,3 +1,13 @@
+dbusada (0.3-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set TZ=UTC before calling asciidoc to make the embedded dates invariant to 
+timezones in order to make the package build reproducibly.
+
+
+
+ -- Eduard Sanou   Mon, 17 Aug 2015 13:24:33 +0200
+
 dbusada (0.3-1) unstable; urgency=medium
 
   * Update gbp.conf settings
diff -Nru dbusada-0.3/debian/patches/fix-timezone-asciidoc.patch 
dbusada-0.3/debian/patches/fix-timezone-asciidoc.patch
--- dbusada-0.3/debian/patches/fix-timezone-asciidoc.patch  1970-01-01 
01:00:00.0 +0100
+++ dbusada-0.3/debian/patches/fix-timezone-asciidoc.patch  2015-08-17 
13:26:01.0 +0200
@@ -0,0 +1,16 @@
+Description: Fix timezone in asciidoc
+ Set TZ=UTC before calling asciidoc to make the embedded dates invariant
+ to timezone so that the package can be build reproducibly.
+Author: Eduard Sanou 
+
+--- dbusada-0.3.orig/doc/Makefile
 dbusada-0.3/doc/Makefile
+@@ -16,7 +16,7 @@ $(DESTDIR)/asciidoc.css: asciidoc.css
+   cp $< $@
+ 
+ $(DESTDIR)/index.html: index page.conf ../README
+-  asciidoc $(ASCIIDOC_OPTS) $< > $@
++  TZ=UTC asciidoc $(ASCIIDOC_OPTS) $< > $@
+ 
+ clean:
+   rm -f $(DESTDIR)/*
diff -Nru dbusada-0.3/debian/patches/series dbusada-0.3/debian/patches/series
--- dbusada-0.3/debian/patches/series   1970-01-01 01:00:00.0 +0100
+++ dbusada-0.3/debian/patches/series   2015-08-17 13:25:39.0 +0200
@@ -0,0 +1 @@
+fix-timezone-asciidoc.patch


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#795987: pngcheck: please make the build reproducible

2015-08-18 Thread Dhole
Source: pngcheck
Version: 2.3.0-7
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that pngcheck could not be built reproducibly.

The attached patch sets the embedded date in the man pages generated by
podman to the latest debian/changelog entry timestamp instead of local
date. Once applied, pngcheck can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru pngcheck-2.3.0/debian/changelog pngcheck-2.3.0/debian/changelog
--- pngcheck-2.3.0/debian/changelog 2013-06-26 11:28:27.0 +0200
+++ pngcheck-2.3.0/debian/changelog 2015-08-17 11:59:26.0 +0200
@@ -1,3 +1,11 @@
+pngcheck (2.3.0-7.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace man timestamp by SOURCE_DATE_EPOCH to make the package build
+reproducibly.
+
+ -- Eduard Sanou   Mon, 17 Aug 2015 11:59:03 +0200
+
 pngcheck (2.3.0-7) unstable; urgency=low
 
   * debian/control
diff -Nru pngcheck-2.3.0/debian/pod2man.mk pngcheck-2.3.0/debian/pod2man.mk
--- pngcheck-2.3.0/debian/pod2man.mk2013-06-26 11:28:27.0 +0200
+++ pngcheck-2.3.0/debian/pod2man.mk2015-08-17 12:07:46.0 +0200
@@ -36,7 +36,11 @@
 
 # Optional variables to set
 MANSECT?= 1
-PODCENTER  ?= $$(date "+%Y-%m-%d")
+ifdef SOURCE_DATE_EPOCH
+PODCENTER  ?= $$(date -u -d @${SOURCE_DATE_EPOCH} "+%Y-%m-%d")
+else
+PODCENTER  ?= $$(date "+%Y-%m-%d")
+endif
 
 # Directories
 MANSRC =
diff -Nru pngcheck-2.3.0/debian/rules pngcheck-2.3.0/debian/rules
--- pngcheck-2.3.0/debian/rules 2013-06-26 11:28:27.0 +0200
+++ pngcheck-2.3.0/debian/rules 2015-08-17 11:56:05.0 +0200
@@ -6,6 +6,7 @@
 export DEB_BUILD_MAINT_OPTIONS  = hardening=+all
 export DEB_CXXFLAGS_MAINT_APPEND = -Wall -pedantic -DUSE_ZLIB
 export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
+export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 
-SDate)" +%s)
 
 LIBS = -lz
 


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#796375: wcd: please make the build reproducible

2015-08-21 Thread Dhole
Source: wcd
Version: 5.2.5-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that wcd could not be built reproducibly.

The attached patch sets the embedded date in the man pages generated by
podman to the latest debian/changelog entry timestamp instead of local
date. Once applied, wcd can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru wcd-5.2.5/debian/changelog wcd-5.2.5/debian/changelog
--- wcd-5.2.5/debian/changelog  2014-06-13 04:35:22.0 +0200
+++ wcd-5.2.5/debian/changelog  2015-08-21 17:13:05.0 +0200
@@ -1,3 +1,11 @@
+wcd (5.2.5-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace date embedded in man page by the latest debian/changelog entry
+timestamp to make the package build reproducibly.
+
+ -- Eduard Sanou   Fri, 21 Aug 2015 16:58:37 +0200
+
 wcd (5.2.5-1) unstable; urgency=low
 
   * New upstream release.
diff -Nru wcd-5.2.5/debian/patches/fix-timestamp-man.patch 
wcd-5.2.5/debian/patches/fix-timestamp-man.patch
--- wcd-5.2.5/debian/patches/fix-timestamp-man.patch1970-01-01 
01:00:00.0 +0100
+++ wcd-5.2.5/debian/patches/fix-timestamp-man.patch2015-08-21 
17:14:29.0 +0200
@@ -0,0 +1,20 @@
+Description: Fix timestamp in man pages
+ Replace the embedded timestamp in man pages by the latest debian/changelog
+ entry timestamp to make the man pages reproducible.
+Author: Eduard Sanou 
+
+--- wcd-5.2.5.orig/src/man/man1/Makefile
 wcd-5.2.5/src/man/man1/Makefile
+@@ -33,7 +33,11 @@ PACKAGE ?= wcd
+ 
+ # Optional variables to set
+ MANSECT   ?= 1
+-PODCENTER ?= $$(date "+%Y-%m-%d")
++ifdef SOURCE_DATE_EPOCH
++PODCENTER  ?= $$(date -u -d @${SOURCE_DATE_EPOCH} "+%Y-%m-%d")
++else
++PODCENTER  ?= $$(date "+%Y-%m-%d")
++endif
+ 
+ # Directories
+ MANSRC=
diff -Nru wcd-5.2.5/debian/patches/series wcd-5.2.5/debian/patches/series
--- wcd-5.2.5/debian/patches/series 1970-01-01 01:00:00.0 +0100
+++ wcd-5.2.5/debian/patches/series 2015-08-21 17:13:34.0 +0200
@@ -0,0 +1 @@
+fix-timestamp-man.patch


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#796376: mapivi: please make the build reproducible

2015-08-21 Thread Dhole
Source: mapivi
Version: 0.9.7-1.1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that mapivi could not be built reproducibly.

The attached patch sets the embedded date in the man pages generated by
podman to the latest debian/changelog entry timestamp instead of local
date. Once applied, mapivi can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -u mapivi-0.9.7/debian/changelog mapivi-0.9.7/debian/changelog
--- mapivi-0.9.7/debian/changelog
+++ mapivi-0.9.7/debian/changelog
@@ -1,3 +1,12 @@
+mapivi (0.9.7-1.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Export POD_MAN_DATE with the latest debian/changelog entry timestamp
+so that the man pages get a deterministic date to make the package build
+reproducibly.
+
+ -- Eduard Sanou   Fri, 21 Aug 2015 17:06:06 +0200
+
 mapivi (0.9.7-1.1) unstable; urgency=low
 
   * Non-maintainer upload.
diff -u mapivi-0.9.7/debian/rules mapivi-0.9.7/debian/rules
--- mapivi-0.9.7/debian/rules
+++ mapivi-0.9.7/debian/rules
@@ -9,7 +9,8 @@
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
-
+export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 
-SDate)" +%s)
+export POD_MAN_DATE = $(shell date -u +"%Y-%m-%d" 
--date="@$(SOURCE_DATE_EPOCH)")
 
 
 CFLAGS = -Wall -g


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#796527: vserver-debiantools: please make the build reproducible

2015-08-22 Thread Dhole
Source: vserver-debiantools
Version: 0.8.1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that vserver-debiantools could not be built reproducibly.

The attached patch sets the embedded date in the man pages generated by
podman to the latest debian/changelog entry timestamp instead of local
date. Once applied, vserver-debiantools can be built reproducibly in our
current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru vserver-debiantools-0.8.1/debian/changelog 
vserver-debiantools-0.8.1+nmu1/debian/changelog
--- vserver-debiantools-0.8.1/debian/changelog  2011-08-02 08:00:05.0 
+0200
+++ vserver-debiantools-0.8.1+nmu1/debian/changelog 2015-08-21 
17:35:47.0 +0200
@@ -1,3 +1,11 @@
+vserver-debiantools (0.8.1+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace date embedded in man pages by the latest debian/changelog entry
+timestamp to make the package build reproducibly.
+
+ -- Eduard Sanou   Fri, 21 Aug 2015 17:35:14 +0200
+
 vserver-debiantools (0.8.1) unstable; urgency=low
 
   * Debian is spelled with a capital D. Closes: #627624.
diff -Nru vserver-debiantools-0.8.1/debian/rules 
vserver-debiantools-0.8.1+nmu1/debian/rules
--- vserver-debiantools-0.8.1/debian/rules  2009-04-21 06:52:32.0 
+0200
+++ vserver-debiantools-0.8.1+nmu1/debian/rules 2015-08-21 17:35:01.0 
+0200
@@ -6,7 +6,7 @@
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
-
+export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 
-SDate)" +%s)
 
 
 CFLAGS = -Wall -g
diff -Nru vserver-debiantools-0.8.1/Makefile 
vserver-debiantools-0.8.1+nmu1/Makefile
--- vserver-debiantools-0.8.1/Makefile  2009-04-21 06:52:32.0 +0200
+++ vserver-debiantools-0.8.1+nmu1/Makefile 2015-08-21 17:34:29.0 
+0200
@@ -1,5 +1,11 @@
 MANFILES=newvserver.1 newnfsvserver.1 dupvserver.1 stripserver.1
 
+ifdef SOURCE_DATE_EPOCH
+POD_DATE  ?= $$(date -u -d @${SOURCE_DATE_EPOCH})
+else
+POD_DATE  ?= $$(LANG=C date")
+endif
+
 all: build-man
 
 build-man: $(MANFILES)
@@ -7,25 +13,25 @@
 newvserver.1: newvserver.pod
pod2man --section=1 \
 --release="Vserver " \
---date="`LANG=C date`" \
+--date="$(POD_DATE)" \
 $^ > $@
 
 newnfsvserver.1: newnfsvserver.pod
pod2man --section=1 \
 --release="Vserver " \
---date="`LANG=C date`" \
+--date="$(POD_DATE)" \
 $^ > $@
 
 dupvserver.1: dupvserver.pod
pod2man --section=1 \
 --release="Vserver " \
---date="`LANG=C date`" \
+--date="$(POD_DATE)" \
 $^ > $@
 
 stripserver.1: stripserver.pod
pod2man --section=1 \
 --release="Vserver " \
---date="`LANG=C date`" \
+--date="$(POD_DATE)" \
 $^ > $@
 
 install: install-sbin install-man install-conf install-var


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] Bug#792687: gettext: please support timestamps from environment

2015-09-01 Thread Dhole
On 09/01/2015 12:36 AM, Santiago Vila wrote:
> On Tue, Sep 01, 2015 at 12:01:45AM +0200, Chris Lamb wrote:
>>> As a proof of concept, I've fixed "pppconfig" the way I think this
>>> kind of bugs should be fixed: By not running "po/update.sh" each and
>>> every time.
>>
>> https://gist.github.com/be5b243cfcaaa27819f0 is the diff for anyone
>> interested
> 
> Well, that includes some cleanup I also did because the package was
> orphaned (like removing "source and diff are obsolete" warning message
> which is 15 years old at least).
> 
> The size of "not running po/update.sh" is really a single line removal.
> 
>>> Would be possible to drop the forked gettext and try to fix this in
>>> the affected packages?
>>
>> Seems reasonable, especially as it's only ~40 packages. Would you guess
>> most of them are fixable under debian/ or require upstream patches?
> 
> I would bet that most of them are fixable by changing debian/* only
> (but I really don't know).
> 

As I understand it, the changes in debian/* would be to disable the call
to po/update.sh. But then there's also changes needed inside po/ because
the maintainer would need to run update.sh (which would modify files in
po/) before packaging right? I don't find it clear if the update.sh
should be run by the Debian maintainer or by upstream.

> It's funny that the current gettext fork in alioth did not seem to
> help about 8 of them:
> 
> https://reproducible.debian.net/issues/unstable/lc_messages_randomness_issue.html
> 
> (There are 12 unreproducible, but only 8 suffer currently from this issue)
> 

The reason why 8 of them are not reproducible even with the patched
gettext is because the calls to xgettext in those packages don't happen
under dh, which is one of the current patched toolchains that export
SOURCE_DATE_EPOCH. Since that variable is not exported, xgettext embeds
the current date. But that happens to other packages as well with other
issues (where the toolchain has already been patched to honour
SOURCE_DATE_EPOCH).


-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] GCC patch to honour SOURCE_DATE_EPOCH, comments?

2015-09-07 Thread Dhole
Hi Matthias and everyone,

During DebConf we talked about a patch for GCC to honour the
SOURCE_DATE_EPOCH env var when using the __DATE__ and __TIME__ macros.

I sent a patch that did this from libcpp/macro.c in the gcc-patches
mailing list. There was a reply from Joseph Myers  suggesting that it may be better to put the patch
in some file in the gcc/ directory [0].

I checked the call trace until reaching the macro processing for both
gcc and g++ and found a common function in gcc/c-family/c-lex.c, so I
moved part of the patch there.

Now the patch consists on the following:
- the struct cpp_reader (defined in libcpp/internal.h) now has a new
field: source_date_epoch, with a default value of -1
- the function c_lex_with_flags from gcc/c-family/c-lex.c will check if
SOURCE_DATE_EPOCH is defined in the environment and if so, store the
value in the cpp_reader struct (parse_in), to pass it around the other
functions
- the function _cpp_builtin_macro_text from _cpp_builtin_macro_text will
use the source_date_epoch field from the cpp_reader struct instead of
the value returned by time(NULL) and use gmtime to get a representation
of the timestamp, if source_date_epoch != -1 (that is, it has been defined)

This way, the getenv call happens in the gcc/ directory.

There is one thing that I haven't managed to get nice, as I'm not that
familiar with the gcc source code: the ouptut of the error handling when
parsing SOURCE_DATE_EPOCH in gcc/c-family/c-lex.c doesn't look too good:

"""
$ export SOURCE_DATE_EPOCH="1234a"
$../gcc_build/bin/gcc test_c.c -o test_c
In file included from :0:0:
/usr/include/stdc-predef.h:1:0: error: Environment variable
$SOURCE_DATE_EPOCH: Trailing garbage: a

 /* Copyright (C) 1991-2014 Free Software Foundation, Inc.
 ^
"""

The error function prints the line of the file it was parsing when the
error happened.

What do you think about this patch? I would like you to take a look at
it before sending it to the gcc-patches mailing list. Do you think it's
good to read the SOURCE_DATE_EPOCH env var in gcc/c-family/c-lex.c and
pass it to the macro processing function through the cpp_reader struct?
Or do you think there's a better place?

As a reminder, we now have a spec describing the usage of
SOURCE_DATE_EPOCH as a distribution-agnostic standard for build systems
to exchange a timestamp [1], I'll add the link when sending the patch to
the gcc-patches mailing list.

[0] https://gcc.gnu.org/ml/gcc-patches/2015-06/msg02270.html
[1] https://reproducible-builds.org/specs/source-date-epoch/

Regards,
-- 
Dhole
diff --git a/gcc/c-family/c-lex.c b/gcc/c-family/c-lex.c
index bb55be8..265195f 100644
--- a/gcc/c-family/c-lex.c
+++ b/gcc/c-family/c-lex.c
@@ -44,6 +44,9 @@ along with GCC; see the file COPYING3.  If not see
 #include "debug.h"
 #include "target.h"
 #include "wide-int.h"
+#include "../libcpp/internal.h"
+#include  /* For parsing SOURCE_DATE_EPOCH */
+#include /* For parsing SOURCE_DATE_EPOCH */
 
 #include "attribs.h"
 
@@ -388,6 +391,53 @@ c_common_has_attribute (cpp_reader *pfile)
 
   return result;
 }
+
+/* Read SOURCE_DATE_EPOCH from environment to have a deterministic
+   timestamp to replace embedded current dates to get reproducible
+   results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */
+long long
+get_source_date_epoch()
+{
+  char *source_date_epoch;
+  unsigned long long epoch;
+  char *endptr;
+
+  source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
+  if (source_date_epoch)
+{
+  errno = 0;
+  epoch = strtoull (source_date_epoch, &endptr, 10);
+  if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
+ || (errno != 0 && epoch == 0))
+   {
+ error ("Environment variable $SOURCE_DATE_EPOCH: strtoull: \
+%s\n", xstrerror(errno));
+ exit (EXIT_FAILURE);
+   }
+  if (endptr == source_date_epoch)
+   {
+ error ("Environment variable $SOURCE_DATE_EPOCH: \
+No digits were found: %s\n", endptr);
+ exit (EXIT_FAILURE);
+   }
+  if (*endptr != '\0')
+   {
+ error ("Environment variable $SOURCE_DATE_EPOCH: \
+Trailing garbage: %s\n", endptr);
+ exit (EXIT_FAILURE);
+}
+  if (epoch > ULONG_MAX)
+   {
+ error ("Environment variable $SOURCE_DATE_EPOCH: \
+value must be smaller than or equal to: %lu but was found to be: \
+%llu \n", ULONG_MAX, epoch);
+ exit (EXIT_FAILURE);
+   }
+  return (long long) epoch;
+}
+  else
+return -1;
+}
 
 /* Read a token and return its type.  Fill *VALUE with its value, if
applicable.  Fill *CPP_FLAGS with the token's flags, if it is
@@ -403,6 +453,7 @@ c_lex_with_flags (tree *value, location_t *loc, unsigned 
char *cpp_flags,
   unsigned char add_flags = 0;
   enum overf

Re: [Reproducible-builds] Bug#792687: gettext: please support timestamps from environment

2015-09-08 Thread Dhole
On 08/31/2015 09:32 PM, Santiago Vila wrote:
> Would be possible to drop the forked gettext and try to fix this in
> the affected packages?

Hi Santiago, I saw that you have been working on the packages affected
by the POT creation date timestamps in gettext mo files today so maybe
you know this already, but just to be sure:
The patched gettext has been dropped from our reproducible APT
repository, and all the affected packages by the issue
different_pot_creation_date_in_gettext_mo_files (formerly
lc_messages_randomness) have been rebuilt in our jenkins setup, using
the gettext version from Debian unstable:
https://reproducible.debian.net/issues/unstable/different_pot_creation_date_in_gettext_mo_files_issue.html

Regards,
-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#798557: libapache-dbi-perl: please make the build reproducible

2015-09-10 Thread Dhole
Source: libapache-dbi-perl
Version: 1.12-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that libapache-dbi-perl could not be built reproducibly.

The attached patch sets the embedded date in the man pages generated by
podman to the latest debian/changelog entry timestamp instead of local
date. Once applied, libapache-dbi-perl can be built reproducibly in our
current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru libapache-dbi-perl-1.12/debian/changelog 
libapache-dbi-perl-1.12/debian/changelog
--- libapache-dbi-perl-1.12/debian/changelog2013-06-12 18:17:37.0 
+0200
+++ libapache-dbi-perl-1.12/debian/changelog2015-09-10 00:24:04.0 
+0200
@@ -1,3 +1,11 @@
+libapache-dbi-perl (1.12-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace timestamp in man pages to latest debian/changelog entry timestamp
+to make the package build reproducibly.
+
+ -- Eduard Sanou   Thu, 10 Sep 2015 00:23:31 +0200
+
 libapache-dbi-perl (1.12-1) unstable; urgency=low
 
   [ Salvatore Bonaccorso ]
diff -Nru libapache-dbi-perl-1.12/debian/rules 
libapache-dbi-perl-1.12/debian/rules
--- libapache-dbi-perl-1.12/debian/rules2013-06-12 18:02:44.0 
+0200
+++ libapache-dbi-perl-1.12/debian/rules2015-09-10 00:33:54.0 
+0200
@@ -1,3 +1,7 @@
 #!/usr/bin/make -f
+
+SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog -SDate)" +%s)
+export POD_MAN_DATE = $(shell date -u +"%Y-%m-%d" 
--date="@$(SOURCE_DATE_EPOCH)")
+
 %:
dh $@


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#798558: libapache-authznetldap-perl: please make the build reproducible

2015-09-10 Thread Dhole
Source: libapache-authznetldap-perl
Version: 0.07-5
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that libapache-authznetldap-perl could not be built reproducibly.

The attached patch sets the embedded date in the man pages generated by
podman to the latest debian/changelog entry timestamp instead of local
date. Once applied, libapache-authznetldap-perl can be built
reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,
-- 
Dhole
diff -Nru libapache-authznetldap-perl-0.07/debian/changelog 
libapache-authznetldap-perl-0.07/debian/changelog
--- libapache-authznetldap-perl-0.07/debian/changelog   2013-08-20 
16:46:19.0 +0200
+++ libapache-authznetldap-perl-0.07/debian/changelog   2015-09-10 
15:49:27.0 +0200
@@ -1,3 +1,12 @@
+libapache-authznetldap-perl (0.07-5.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Replace timestamp in man pages to latest debian/changelog entry timestamp
+to make the package build reproducibly.
+
+
+ -- Eduard Sanou   Thu, 10 Sep 2015 15:49:08 +0200
+
 libapache-authznetldap-perl (0.07-5) unstable; urgency=low
 
   * Team upload.
diff -Nru libapache-authznetldap-perl-0.07/debian/rules 
libapache-authznetldap-perl-0.07/debian/rules
--- libapache-authznetldap-perl-0.07/debian/rules   2013-08-20 
16:46:19.0 +0200
+++ libapache-authznetldap-perl-0.07/debian/rules   2015-09-10 
15:48:55.0 +0200
@@ -1,4 +1,7 @@
 #!/usr/bin/make -f
 
+SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog -SDate)" +%s)
+export POD_MAN_DATE = $(shell date -u +"%Y-%m-%d" 
--date="@$(SOURCE_DATE_EPOCH)")
+
 %:
dh $@


signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] Bug#798557: libapache-dbi-perl: please make the build reproducible

2015-09-10 Thread Dhole
On 09/10/2015 06:10 PM, Niko Tyni wrote:
> This is a toolchain issue that potentially affects hundreds of packages
> and should IMO be fixed centrally, at least for those packages that use
> these debhelper short form dh rules.
> 
After thinking about it, I agree too; a toolchain fix would be more
appropriate for this podman issue.

What do you think would be a better solution?
- Make debhelper export POD_MAN_DATE
- Patch podman to honour SOURCE_DATE_EPOCH (with this option, podman
would replace embedded timestamp either by the env var POD_MAN_DATE, or
by SOURCE_DATE_EPOCH. The later would need formatting the timestamp to
"%Y-%m-%d")

> The reason only a handful show up in the current reproducible.debian.net
> CI setup is that it only triggers when the two builds happen on different
> sides of midnight UTC. Once we start testing builds on different dates,
> I expect the number of those to explode.
> 
The difference that shows up in the affected packages in
reproducible.debian.net show a difference in the day within the
timestamp, because we use two different timezones between builds that
have a 26h difference. That makes the embedded timestamp to have a
different day whenever the package is built. I don't understand why when
we start testing builds on different dates you expect this to explode.
Am I missing anything? Maybe you are referring to timestamps in general,
and not only to this podman embedding timestamps issue? (in which case,
I'd agree that the number of issues like this will explode)

Regards,
-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] [Debian Wiki] Update of "ReproducibleBuilds/TimestampsProposal" by BenBoeckel

2015-09-17 Thread Dhole
On 09/17/2015 09:47 AM, Jérémy Bobbio wrote:
> Daniel Kahn Gillmor:
>> Wiki page:
>>> -   EXECUTE_PROCESS(COMMAND "date" "-u" "-d @${SOURCE_DATE_EPOCH}" 
>>> "+%d/%m/%Y" OUTPUT_VARIABLE BUILD_DATE)
>> […]
>> Is there a reason above that this example code to translate from
>> SOURCE_DATE_EPOCH to a build date doesn't produce ISO-8601-compliant
>> date strings in the BUILD_DATE variable?
> 
> I assume it's because it was initially in a piece of software that used
> the above format. I'd say feel free to replace by a ISO-8601 format
> string if you feel it matters.

Indeed. I took that example from a package I patched that was just using
that date format. I'd also say feel free to replace it by ISO-8601 format.

-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] GCC patch reviewed. Proposed mail for gcc-patches mailing list

2015-11-08 Thread Dhole
Hi all!

Back in summer I worked on a patch for GCC to honor the
SOURCE_DATE_EPOCH env variable when embedding timestamps with the C/C++
macros __DATE__ and __TIME__. I sent the patch to the gcc-patches
mailing list, and after some replies with suggestions and opinions it
didn't reach further.
In this year's DebConf I got in touch with doko (Debian gcc package
maintainer) and he offered to help me with the patch. I have addressed a
comment made by a gcc contributor in the original patch email thread, I
have organized it better and improved the style based on doko advices
and reviews. Before sending the patch to the gcc mailing list I'm
copying the message I intend to write here, in case anyone has comments
and/or improvements. Finally I'll wait for doko's approval before
sending it to the gcc-patches ML.

Cheers,
Dhole

---

Hi!

A while back I submitted a patch to the gcc-patches mailing list
to allow the embedded timestamps by C/C++ macros to be set externally
[0]. The attached patch adresses a comment from Joseph Myers : move the getenv calls into the gcc/ directory;
and it also provides better organization and style following the advice
and comments of the current Debian gcc package maintainer Matthias Klose
 (I'm sending the patch with him as co-author).

As a reminder for the motivation behind this patch, we are working on
the reproducible builds project which aims to provide users with a way
to reproduce bit-for-bit identical binary packages from the source and
build environment. The project involves Debian as well as several other
free software projects. See <https://reproducible-builds.org/> for more
information.

Quoting from the original email:

> In order to do this, we need to make the build processes deterministic.
> As you can imagine, gcc is quite involved in producing Debian packages.
> One issue we encounter in many packages that fail to build reproducibly
> is the use of the __DATE__, __TIME__ C macros [1], right now we have 456
> affected packages that would need patching (either removing the macros,
> or passing a known date externally).

> A solution for toolchain packages that embed timestamps during the build
> process has been proposed for anyone interested and it consists of the
> following:
> The build environment can export an environment variable called
> SOURCE_DATE_EPOCH with a known timestamp in Unix epoch format (In our
> case, we use the last date of the package's debian changelog). The
> toolchain package running during the build can check if the exported
> variable is set and if so, instead of embedding the local date/time,
> embed the date/time from SOURCE_DATE_EPOCH.

The proposal to use SOURCE_DATE_EPOCH has now been gathered in a more
formal specification [2], so that any project can adhere to it to
achieve reproducible builds when dealing with timestamps.

> It would be very beneficial to our project (and other free software
> projects working on reproducible builds) if gcc supported this feature.

I'm attaching a patch for gcc-5.2.0 that enables this feature: it
modifies the behavior of the macros __DATE__ and __TIME__ when
SOURCE_DATE_EPOCH is exported.

Any comments, suggestions or other ideas to improve this patch are
mostly welcomed.

I'm willing to extend the documentation if the patch feels appropriate.

Thanks for your attention!


PD: Implementation details:

The error output in gcc/c-family/c-common.c (get_source_date_epoch) is
handled by an fprintf() to stderr followed by an exit (EXIT_FAILURE). I
am not sure this is the right approach for error handling, as I have
found many usages of the error() function in the code. If implemented
with error(), the output looks like this:

"""
$ SOURCE_DATE_EPOCH=123a123 g++ test_cpp.cpp -o test_cpp
In file included from :0:0:
/usr/include/stdc-predef.h:1:0: error: Environment variable
$SOURCE_DATE_EPOCH: Trailing garbage: a123

 /* Copyright (C) 1991-2014 Free Software Foundation, Inc.
 ^
"""

For this reason I used fprintf(stderr, "error message") to report the
errors.


[0] https://gcc.gnu.org/ml/gcc-patches/2015-06/msg02210.html
[1] https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros
[2] https://reproducible-builds.org/specs/source-date-epoch/

Best regards,
Dhole
gcc/c-family/ChangeLog:

2015-10-10  Matthias Klose  
Eduard Sanou  
* gcc/c-family/c-common.c (get_source_date_epoch): New function, gets 
the environment variable SOURCE_DATE_EPOCH and parses it as long long
with error handling.
* gcc/c-family/c-common.h (get_source_date_epoch): Prototype.
* gcc/c-family/c-lex.c (c_lex_with_flags): set 
parse_in->source_date_epoch.

libcpp/ChangeLog:

2015-10-10  Matthias Klose  
Eduard Sanou  
* libcpp/include/cpplib.h (cpp_init_source_date_epoch): Prototype.
* libcpp/init.

Re: [Reproducible-builds] GCC patch reviewed. Proposed mail for gcc-patches mailing list

2015-11-10 Thread Dhole
Hi Chris :)

On 11/09/2015 12:11 PM, Chris Lamb wrote:
> Just a few quick comment on the patch itself:
> 
> +  source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
> +  if (source_date_epoch)
> +{
> +  errno = 0;
> +  [..]
> +  return (long long) epoch;
> +}
> +  else
> +return -1;
> +}
> 
> If you are copying the surrounding code style (I don't have the context
> in front of me) then feel free to ignore this, but generally I find
> something like this much cleaner:
> 
> +  source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
> +  if (!source_date_epoch)
> +return -1
> +
> +  errno = 0;
> +  [..]
> +  return (long long) epoch;
> +}
> 
> IMHO removing indentation levels isn't for the aesthetics; it actually
> removes cognitive load on a human reading it as they don't have to
> manage/remember/push state in their mind.

That does look much cleaner, thanks for the advice! I've modified the
patch following your suggestion.

-- 
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] [PATCH] Allow embedded timestamps by C/C++ macros to be set externally (2)

2015-11-15 Thread Dhole
Hi!

A while back I submitted a patch to the gcc-patches mailing list
to allow the embedded timestamps by C/C++ macros to be set externally
[0]. The attached patch addresses a comment from Joseph Myers : move the getenv calls into the gcc/ directory;
and it also provides better organization and style following the advice
and comments of the current Debian gcc package maintainer Matthias Klose
 (I'm sending the patch with him as co-author).

As a reminder for the motivation behind this patch, we are working on
the reproducible builds project which aims to provide users with a way
to reproduce bit-for-bit identical binary packages from the source and
build environment. The project involves Debian as well as several other
free software projects. See <https://reproducible-builds.org/> for more
information.

Quoting from the original email:

> In order to do this, we need to make the build processes deterministic.
> As you can imagine, gcc is quite involved in producing Debian packages.
> One issue we encounter in many packages that fail to build reproducibly
> is the use of the __DATE__, __TIME__ C macros [1], right now we have 456
> affected packages that would need patching (either removing the macros,
> or passing a known date externally).

> A solution for toolchain packages that embed timestamps during the build
> process has been proposed for anyone interested and it consists of the
> following:
> The build environment can export an environment variable called
> SOURCE_DATE_EPOCH with a known timestamp in Unix epoch format (In our
> case, we use the last date of the package's debian changelog). The
> toolchain package running during the build can check if the exported
> variable is set and if so, instead of embedding the local date/time,
> embed the date/time from SOURCE_DATE_EPOCH.

The proposal to use SOURCE_DATE_EPOCH has now been gathered in a more
formal specification [2], so that any project can adhere to it to
achieve reproducible builds when dealing with timestamps.

> It would be very beneficial to our project (and other free software
> projects working on reproducible builds) if gcc supported this feature.

I'm attaching a patch for gcc-5.2.0 that enables this feature: it
modifies the behavior of the macros __DATE__ and __TIME__ when
SOURCE_DATE_EPOCH is exported.

Any comments, suggestions or other ideas to improve this patch are
mostly welcomed.

I'm willing to extend the documentation if the patch feels appropriate.

Thanks for your attention!


PD: Implementation details:

The error output in gcc/c-family/c-common.c (get_source_date_epoch) is
handled by an fprintf() to stderr followed by an exit (EXIT_FAILURE). I
am not sure this is the right approach for error handling, as I have
found many usages of the error() function in the code. If implemented
with error(), the output looks like this:

"""
$ SOURCE_DATE_EPOCH=123a123 g++ test_cpp.cpp -o test_cpp
In file included from :0:0:
/usr/include/stdc-predef.h:1:0: error: Environment variable
$SOURCE_DATE_EPOCH: Trailing garbage: a123

 /* Copyright (C) 1991-2014 Free Software Foundation, Inc.
 ^
"""

For this reason I used fprintf(stderr, "error message") to report the
errors.


[0] https://gcc.gnu.org/ml/gcc-patches/2015-06/msg02210.html
[1] https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros
[2] https://reproducible-builds.org/specs/source-date-epoch/

Best regards,
Dhole
gcc/c-family/ChangeLog:

2015-10-10  Eduard Sanou  
Matthias Klose  
* gcc/c-family/c-common.c (get_source_date_epoch): New function, gets 
the environment variable SOURCE_DATE_EPOCH and parses it as long long
with error handling.
* gcc/c-family/c-common.h (get_source_date_epoch): Prototype.
* gcc/c-family/c-lex.c (c_lex_with_flags): set 
parse_in->source_date_epoch.

libcpp/ChangeLog:

2015-10-10  Eduard Sanou  
Matthias Klose  
* libcpp/include/cpplib.h (cpp_init_source_date_epoch): Prototype.
* libcpp/init.c (cpp_init_source_date_epoch): New function.
* libcpp/internal.h: Added source_date_epoch variable to struct
cpp_reader to store a reproducible date.
* libcpp/macro.c (_cpp_builtin_macro_text): Set pfile->date timestamp
from pfile->source_date_epoch instead of localtime if source_date_epoch
is set, to be used for __DATE__ and __TIME__ macros to help
reproducible builds.
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 7fe7fa6..f795871 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -12318,4 +12318,49 @@ pointer_to_zero_sized_aggr_p (tree t)
   return (TYPE_SIZE (t) && integer_zerop (TYPE_SIZE (t)));
 }
 
+/* Read SOURCE_DATE_EPOCH from environment to have a deterministic
+   timestamp to replace embedded current dates to get reproducible
+   resul

Re: [Reproducible-builds] Bug#791815: libxslt: please support timestamps from environment

2015-11-15 Thread Dhole
control: forwarded -1 https://bugzilla.gnome.org/show_bug.cgi?id=758148

I have just forwarded patch upstream.

Cheers,
Dhole



signature.asc
Description: OpenPGP digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: [Reproducible-builds] [PATCH] Allow embedded timestamps by C/C++ macros to be set externally (2)

2015-11-16 Thread Dhole
On 11/16/2015 02:05 PM, Bernd Schmidt wrote:
> On 11/15/2015 11:14 PM, Dhole wrote:
>> gcc/c-family/ChangeLog:
>>
>> 2015-10-10  Eduard Sanou
> 
> I can't find a previous change from you in the sources, so the first
> question would be whether you've gone through the copyright assignment
> process.

I haven't gone through the copyright assignment process. Nevertheless
Matthias Klose (co-author of this patch) has.

In any case, if required, let me know how to proceed to obtain the
relevant forms so that I can file the copyright assignment.

Best regards,
Dhole

___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds


[Reproducible-builds] Bug#814280: qt4-x11: please support fixed timestamps in qhelpgenerator

2016-02-09 Thread Dhole
Source: qt4-x11
Version: 4:4.8.7+dfsg-5
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

While working on the "reproducible builds" effort [1], we have noticed
that the qhelpgenerator tool from qt4-x11 embeds timestamps on the
creation of qch files.

Some months ago I sent a patch to fix this issue by enabling
qhelpgenerator to use the environment variable SOURCE_DATE_EPOCH when
embedding timestamps [1]. 

Sune Vuorela suggested that it would be better to backport the solution
he implemented for qt5 to solve this same issue, which consists in
replacing the embedded timestamp by a fixed one [2] and which is already
upstream.

The attached patch solves the reproducible timestamps issue in the same
way as it is solved in qt5 upstream.  With the attached patch packages
using qhelpgenerator would then automatically embed reproducible
timestamps in qch files.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=794681
[2] https://codereview.qt-project.org/#/c/106296/

Cheers
-- 
Dhole
diff -Nru qt4-x11-4.8.7+dfsg/debian/changelog 
qt4-x11-4.8.7+dfsg/debian/changelog
--- qt4-x11-4.8.7+dfsg/debian/changelog 2015-11-30 20:13:35.0 +0100
+++ qt4-x11-4.8.7+dfsg/debian/changelog 2016-02-09 18:43:42.0 +0100
@@ -1,3 +1,12 @@
+qt4-x11 (4:4.8.7+dfsg-5.0~reproducible0) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Backport patch from qttools5 [1] to make qch files reproducible by
+replacing the current time by a fixed date.  
+[1] https://codereview.qt-project.org/#/c/106296/
+
+ -- Eduard Sanou   Tue, 09 Feb 2016 13:34:21 +0100
+
 qt4-x11 (4:4.8.7+dfsg-5) unstable; urgency=medium
 
   * Add no-ssl3.patch to avoid calling SSLv3 functions as they have been 
removed
diff -Nru 
qt4-x11-4.8.7+dfsg/debian/patches/replace_timestamps_with_fixed_date_in_qhelpgenerator.patch
 
qt4-x11-4.8.7+dfsg/debian/patches/replace_timestamps_with_fixed_date_in_qhelpgenerator.patch
--- 
qt4-x11-4.8.7+dfsg/debian/patches/replace_timestamps_with_fixed_date_in_qhelpgenerator.patch
1970-01-01 01:00:00.0 +0100
+++ 
qt4-x11-4.8.7+dfsg/debian/patches/replace_timestamps_with_fixed_date_in_qhelpgenerator.patch
2016-02-09 18:49:02.0 +0100
@@ -0,0 +1,51 @@
+Description: Replace timestamps from qhelpgenerator by a fixed date 
+ In order to make qhelpgenerator output reproducible, we need a way to get
+ deterministic embedded timestaps.  Backport the patch from qttools5 [1] to
+ make qch files reproducible by replacing the current time by a fixed date.  
+
+ [1] https://codereview.qt-project.org/#/c/106296/
+Author: Eduard Sanou 
+
+---
+
+Index: qt4-x11-4.8.7+dfsg/tools/assistant/lib/qhelpgenerator.cpp
+===
+--- qt4-x11-4.8.7+dfsg.orig/tools/assistant/lib/qhelpgenerator.cpp
 qt4-x11-4.8.7+dfsg/tools/assistant/lib/qhelpgenerator.cpp
+@@ -380,9 +380,7 @@ bool QHelpGenerator::createTables()
+ 
+ d->query->exec(QLatin1String("INSERT INTO MetaDataTable 
VALUES('qchVersion', '1.0')"));
+ 
+-d->query->prepare(QLatin1String("INSERT INTO MetaDataTable 
VALUES('CreationDate', ?)"));
+-d->query->bindValue(0, 
QDateTime::currentDateTime().toString(Qt::ISODate));
+-d->query->exec();
++d->query->exec(QLatin1String("INSERT INTO MetaDataTable 
VALUES('CreationDate', '2012-12-20T12:00:00Z')"));
+ 
+ return true;
+ }
+Index: qt4-x11-4.8.7+dfsg/tools/assistant/tools/qcollectiongenerator/main.cpp
+===
+--- qt4-x11-4.8.7+dfsg.orig/tools/assistant/tools/qcollectiongenerator/main.cpp
 qt4-x11-4.8.7+dfsg/tools/assistant/tools/qcollectiongenerator/main.cpp
+@@ -521,7 +521,7 @@ int main(int argc, char *argv[])
+ CollectionConfiguration::setAddressBarVisible(helpEngine,
+  !config.hideAddressBar());
+ CollectionConfiguration::setCreationTime(helpEngine,
+-QDateTime::currentDateTime().toTime_t());
++QDateTime::fromString("2012-12-20T12:00:00Z", 
Qt::ISODate).toUTC().toTime_t());
+ CollectionConfiguration::setFullTextSearchFallbackEnabled(helpEngine,
+ config.fullTextSearchFallbackEnabled());
+ 
+Index: 
qt4-x11-4.8.7+dfsg/tools/assistant/tools/shared/collectionconfiguration.cpp
+===
+--- 
qt4-x11-4.8.7+dfsg.orig/tools/assistant/tools/shared/collectionconfiguration.cpp
 qt4-x11-4.8.7+dfsg/tools/assistant/tools/shared/collectionconfiguration.cpp
+@@ -282,7 +282,7 @@ const QDateTime CollectionConfiguration:
+ 
+ void CollectionConfiguration::updateLastRegisterTime(QHelpEngineCore 
&helpEngine)
+ {
+-helpEngine.setCustomValue(LastRegisterTime, QDateTime::currentDateTime());
++helpEngine.setCus

Re: [Reproducible-builds] Ideas about TimestampsFromCPPMacros issue.

2016-02-11 Thread Dhole
On 16-02-11 20:13:25, Ximin Luo wrote:
> Juan Picca:
> > From the issue page
> > (https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros)
> > i see that the usage of SOURCE_DATE_EPOCH was
> > discouraged in the gcc-patches mailing list thread.
> > 
> 
> Hi Juan, I think that was not discouragement, it was just neutral discussion 
> about the consequences.
> 
> As I understand the patch is going ahead and will eventually hit GCC 6. They 
> just needed to find some time that's suitable for their release cycle.
> 
> https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01590.html
> 
> X

Exactly!  As Ximin says, the thread you included was from june 2015.
The message you show was not really a discouragement but a suggestion,
so it must be taken as any other suggestion, and I believe that the
message was not from a gcc maintainer.

The thread that Ximin included is the most recent discussion, see the
beginning here:
https://gcc.gnu.org/ml/gcc-patches/2015-11/msg01890.html.
Basically I took the original patch and modified following the
suggestions from the gcc contributors in the original thread plus review
by the Debian gcc maintainer Matthias Klose 
(you can follow the thread to learn more).  Eventually the gcc people
seemed to have no further complain about the patch; I even signed the
copyright assignment.  So the last message was that they are now at the
stage of fixing bugs in GCC 5, and they asked me to send the patch again
when the new feature stage for GCC 6 starts, which should be around
April 2016 :)

-- 
Dhole


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#815082: arachne-pnr: please make the build reproducible

2016-02-18 Thread Dhole
Source: arachne-pnr 
Version: 0~20150927gitefdb026-1 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed that
arachne-pnr could not be built reproducibly.

The attached patch sets the embedded date in the man pages generated by txt2man
to UTC with LC_ALL=C to normalize the locale. Once applied, arachne-pnr can be
built reproducibly in our current experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,

-- 
Dhole
diff -Nru arachne-pnr-0~20150927gitefdb026/debian/changelog 
arachne-pnr-0~20150927gitefdb026/debian/changelog
--- arachne-pnr-0~20150927gitefdb026/debian/changelog   2016-02-06 
11:33:55.0 +0100
+++ arachne-pnr-0~20150927gitefdb026/debian/changelog   2016-02-18 
01:38:23.0 +0100
@@ -1,3 +1,10 @@
+arachne-pnr (0~20150927gitefdb026-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Set changelog date to UTC with LC_ALL=C to make man pages reproducible. 
+
+ -- Eduard Sanou   Thu, 18 Feb 2016 01:38:01 +0100
+
 arachne-pnr (0~20150927gitefdb026-1) unstable; urgency=low
 
   * Initial release (Closes: #801230)
diff -Nru arachne-pnr-0~20150927gitefdb026/debian/rules 
arachne-pnr-0~20150927gitefdb026/debian/rules
--- arachne-pnr-0~20150927gitefdb026/debian/rules   2016-02-06 
11:33:55.0 +0100
+++ arachne-pnr-0~20150927gitefdb026/debian/rules   2016-02-18 
15:14:07.0 +0100
@@ -5,7 +5,7 @@
 
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
-CHANGELOG_DATE ?= $(shell date -d "`dpkg-parsechangelog --show-field Date`" 
+"%d %B %Y")
+CHANGELOG_DATE ?= $(shell LC_ALL=C date -u -d "`dpkg-parsechangelog 
--show-field Date`" +"%d %B %Y")
 
 %:
dh $@ 


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#815818: pcmanfm-qt: please make the build reproducible

2016-02-24 Thread Dhole
Source: pcmanfm-qt 
Version: 0.10.1-1 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that pcmanfm-qt could not be built reproducibly.

When processing translation files and using a non-UTF8 locale, grep
misdetects them as binary files and embeds the line: "Binary file
(standard input) matches"

The attached patch fixes this by telling grep to treat the input as
text. Once applied, pcmanfm-qt can be built reproducibly in our current
experimental framework.


 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru pcmanfm-qt-0.10.1/debian/changelog pcmanfm-qt-0.10.1/debian/changelog
--- pcmanfm-qt-0.10.1/debian/changelog  2016-02-07 15:28:09.0 +0100
+++ pcmanfm-qt-0.10.1/debian/changelog  2016-02-23 11:31:01.0 +0100
@@ -1,3 +1,10 @@
+pcmanfm-qt (0.10.1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix misdetection as binary input when LC_ALL=C 
+
+ -- Eduard Sanou   Tue, 23 Feb 2016 11:30:33 +0100
+
 pcmanfm-qt (0.10.1-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru pcmanfm-qt-0.10.1/debian/patches/series 
pcmanfm-qt-0.10.1/debian/patches/series
--- pcmanfm-qt-0.10.1/debian/patches/series 1970-01-01 01:00:00.0 
+0100
+++ pcmanfm-qt-0.10.1/debian/patches/series 2016-02-23 11:31:21.0 
+0100
@@ -0,0 +1 @@
+unicode-grep.patch
diff -Nru pcmanfm-qt-0.10.1/debian/patches/unicode-grep.patch 
pcmanfm-qt-0.10.1/debian/patches/unicode-grep.patch
--- pcmanfm-qt-0.10.1/debian/patches/unicode-grep.patch 1970-01-01 
01:00:00.0 +0100
+++ pcmanfm-qt-0.10.1/debian/patches/unicode-grep.patch 2016-02-23 
11:59:06.0 +0100
@@ -0,0 +1,23 @@
+Description: Fix misdetection as binary input when LC_ALL=C
+
+Index: pcmanfm-qt-0.10.1/cmake/LXQtTranslateDesktop.cmake
+===
+--- pcmanfm-qt-0.10.1.orig/cmake/LXQtTranslateDesktop.cmake
 pcmanfm-qt-0.10.1/cmake/LXQtTranslateDesktop.cmake
+@@ -71,13 +71,13 @@ function(lxqt_translate_desktop _RESULT)
+ set(_pattern "'\\[.*]\\s*='")
+ if (_translations)
+ add_custom_command(OUTPUT ${_outFile}
+-COMMAND grep -v "'#TRANSLATIONS_DIR='" ${_inFile} > 
${_outFile}
+-COMMAND grep -h ${_pattern} ${_translations} >> ${_outFile}
++COMMAND grep -a -v "'#TRANSLATIONS_DIR='" ${_inFile} > 
${_outFile}
++COMMAND grep -a -h ${_pattern} ${_translations} >> ${_outFile}
+ COMMENT "Generating ${_fileName}${_fileExt}"
+ )
+ else()
+ add_custom_command(OUTPUT ${_outFile}
+-COMMAND grep -v "'#TRANSLATIONS_DIR='" ${_inFile} > 
${_outFile}
++COMMAND grep -a -v "'#TRANSLATIONS_DIR='" ${_inFile} > 
${_outFile}
+ COMMENT "Generating ${_fileName}${_fileExt}"
+ )
+ endif()


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#815900: obconf-qt: please make the build reproducible

2016-02-25 Thread Dhole
Source: obconf-qt 
Version: 0.9.0+20151227-1 
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that
obconf-qt could not be built reproducibly.

When processing translation files and using a non-UTF8 locale, grep
misdetects them as binary files and embeds the line: "Binary file
(standard input) matches"

The attached patch fixes this by telling grep to treat the input as
text.Once applied, obconf-qt can be built reproducibly in our current
experimental framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Regards,
-- 
Dhole
diff -Nru obconf-qt-0.9.0+20151227/debian/changelog 
obconf-qt-0.9.0+20151227/debian/changelog
--- obconf-qt-0.9.0+20151227/debian/changelog   2015-12-27 01:16:30.0 
+0100
+++ obconf-qt-0.9.0+20151227/debian/changelog   2016-02-25 00:19:06.0 
+0100
@@ -1,3 +1,10 @@
+obconf-qt (0.9.0+20151227-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix misdetection as binary input in grep when LC_ALL=C 
+
+ -- Eduard Sanou   Thu, 25 Feb 2016 00:19:00 +0100
+
 obconf-qt (0.9.0+20151227-1) unstable; urgency=medium
 
   * Cherry-picked upstream version 0.9.0+20151227.
diff -Nru obconf-qt-0.9.0+20151227/debian/patches/series 
obconf-qt-0.9.0+20151227/debian/patches/series
--- obconf-qt-0.9.0+20151227/debian/patches/series  1970-01-01 
01:00:00.0 +0100
+++ obconf-qt-0.9.0+20151227/debian/patches/series  2016-02-25 
00:19:24.0 +0100
@@ -0,0 +1 @@
+unicode-grep.patch
diff -Nru obconf-qt-0.9.0+20151227/debian/patches/unicode-grep.patch 
obconf-qt-0.9.0+20151227/debian/patches/unicode-grep.patch
--- obconf-qt-0.9.0+20151227/debian/patches/unicode-grep.patch  1970-01-01 
01:00:00.0 +0100
+++ obconf-qt-0.9.0+20151227/debian/patches/unicode-grep.patch  2016-02-25 
00:19:34.0 +0100
@@ -0,0 +1,22 @@
+Author: Eduard Sanou 
+Description: Fix misdetection as binary input when LC_ALL=C
+
+--- obconf-qt-0.9.0+20151227.orig/cmake/LXQtTranslateDesktop.cmake
 obconf-qt-0.9.0+20151227/cmake/LXQtTranslateDesktop.cmake
+@@ -71,13 +71,13 @@ function(lxqt_translate_desktop _RESULT)
+ set(_pattern "'\\[.*]\\s*='")
+ if (_translations)
+ add_custom_command(OUTPUT ${_outFile}
+-COMMAND grep -v "'#TRANSLATIONS_DIR='" ${_inFile} > 
${_outFile}
+-COMMAND grep -h ${_pattern} ${_translations} >> ${_outFile}
++COMMAND grep -a -v "'#TRANSLATIONS_DIR='" ${_inFile} > 
${_outFile}
++COMMAND grep -a -h ${_pattern} ${_translations} >> ${_outFile}
+ COMMENT "Generating ${_fileName}${_fileExt}"
+ )
+ else()
+ add_custom_command(OUTPUT ${_outFile}
+-COMMAND grep -v "'#TRANSLATIONS_DIR='" ${_inFile} > 
${_outFile}
++COMMAND grep -a -v "'#TRANSLATIONS_DIR='" ${_inFile} > 
${_outFile}
+ COMMENT "Generating ${_fileName}${_fileExt}"
+ )
+ endif()


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

  1   2   >