[Reproducible-builds] Bug#828627: uim: please make the build reproducible (locale)
Source: uim Version: 1:1.8.6+gh20160621.0.87bf935-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: locale X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that 'uim' could not be built reproducibly. The attached patch sets the locale used to sort using LC_ALL instead of LANG (that is overwrote by LC_ALL), so that the order is fixed even if LC_ALL is set. Once applied, uim can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds Description: Use LC_ALL instead of LANG bacause LC_ALL overwrites LANG. This makes the build reproducible. Author: Alexis Bienvenüe <p...@passoire.fr> --- uim-1.8.6+gh20160621.0.87bf935.orig/tables/Makefile.am +++ uim-1.8.6+gh20160621.0.87bf935/tables/Makefile.am @@ -32,7 +32,7 @@ zm.scm: $(top_srcdir)/scm/zm.scm $(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir)/replace && \ $(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir)/uim sigscheme-combined && \ $(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir)/uim uim-sh && \ - echo "(begin (load \"$<\") (for-each (lambda (key) (display (format \"~a ~W\n\" (apply string-append (caar key)) (cadr key `basename $< .scm`-rule))" | $(UIM_SH_ENV) $(UIM_SH) -b | grep -v "^#" | LANG=C sort > $@ + echo "(begin (load \"$<\") (for-each (lambda (key) (display (format \"~a ~W\n\" (apply string-append (caar key)) (cadr key `basename $< .scm`-rule))" | $(UIM_SH_ENV) $(UIM_SH) -b | grep -v "^#" | LC_ALL=C sort > $@ #endif clean-genscm: ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#827864: funtools: please make the build reproducible (fileordering)
Source: funtools Version: 1.4.6+git150811-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that 'funtools' could not be built reproducibly. The attached patch fixes the order in which object files are passed to mklib. Once applied, funtools can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru funtools-1.4.6+git150811/debian/changelog funtools-1.4.6+git150811/debian/changelog --- funtools-1.4.6+git150811/debian/changelog 2015-11-24 20:27:06.0 +0100 +++ funtools-1.4.6+git150811/debian/changelog 2016-06-21 17:40:22.0 +0200 @@ -1,3 +1,9 @@ +funtools (1.4.6+git150811-2.0~reproducible1) UNRELEASED; urgency=medium + + * Sort object files to pass to mklib, to make the build reproducible. + + -- Alexis Bienvenüe <p...@passoire.fr> Tue, 21 Jun 2016 17:40:22 +0200 + funtools (1.4.6+git150811-2) unstable; urgency=low * Depend on libfuntools1 on libc6-dev, since this is needed for the diff -Nru funtools-1.4.6+git150811/debian/patches/series funtools-1.4.6+git150811/debian/patches/series --- funtools-1.4.6+git150811/debian/patches/series 2015-10-23 13:29:58.0 +0200 +++ funtools-1.4.6+git150811/debian/patches/series 2016-06-21 17:38:53.0 +0200 @@ -2,3 +2,4 @@ use_shared_libwcstools.patch build_tclfun.patch multiarch.patch +sort-object-files.patch diff -Nru funtools-1.4.6+git150811/debian/patches/sort-object-files.patch funtools-1.4.6+git150811/debian/patches/sort-object-files.patch --- funtools-1.4.6+git150811/debian/patches/sort-object-files.patch 1970-01-01 01:00:00.0 +0100 +++ funtools-1.4.6+git150811/debian/patches/sort-object-files.patch 2016-06-21 17:39:43.0 +0200 @@ -0,0 +1,33 @@ +Description: Sort object files + Sort object files to pass to mklib, to make the build reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- funtools-1.4.6+git150811.orig/Makefile.in funtools-1.4.6+git150811/Makefile.in +@@ -233,7 +233,7 @@ shlib: sublib $(LIBOBJS) + @(rm -rf $(PACKAGE)tmp; mkdir $(PACKAGE)tmp; \ + (cd $(PACKAGE)tmp && ar x ../$(LIB)); \ + CC='$(CC)' CXX=$(CXX) \ +- ./mklib -o $(PACKAGE) -ldl $(WCS_LIBS) -lm -lz $(PACKAGE)tmp/*.o; \ ++ ./mklib -o $(PACKAGE) -ldl $(WCS_LIBS) -lm -lz `LC_ALL=C ls $(PACKAGE)tmp/*.o`; \ + rm -rf $(PACKAGE)tmp;) + + mainlib: $(MAINLIBOBJS) funmainlib.o lex.calc.o +@@ -245,7 +245,7 @@ shmainlib: mainlib + @(rm -rf $(PACKAGE)tmp; mkdir $(PACKAGE)tmp; \ + (cd $(PACKAGE)tmp && ar x ../lib$(PACKAGE)MainLib.a); \ + CC='$(CC)' CXX='$(CXX)' \ +- ./mklib -o $(PACKAGE)MainLib -L. -lfuntools $(PACKAGE)tmp/*.o;\ ++ ./mklib -o $(PACKAGE)MainLib -L. -lfuntools `LC_ALL=C ls $(PACKAGE)tmp/*.o`;\ + rm -rf $(PACKAGE)tmp;) + + tclfun: $(LIB) tclmainlib.o tclfun.o +@@ -256,7 +256,7 @@ shtclfun: tclfun + @(rm -rf $(PACKAGE)tmp; mkdir $(PACKAGE)tmp; \ + (cd $(PACKAGE)tmp && ar x ../libtclfun.a); \ + CC='$(CC)' CXX='$(CXX)' \ +- ./mklib -o tclfun -L. -lfuntools $(PACKAGE)tmp/*.o $(TCL_LIBS); \ ++ ./mklib -o tclfun -L. -lfuntools `LC_ALL=C ls $(PACKAGE)tmp/*.o` $(TCL_LIBS); \ + rm -rf $(PACKAGE)tmp; \ + test -r pkgIndex.tcl && mv pkgIndex.tcl pkgIndex.tcl-old; \ + SHLIB=libtclfun.so; \ ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#827731: tin: please make the build reproducible (locale)
Source: tin Version: 1:2.3.2-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: locale X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the `reproducible builds' effort [1], we have noticed that 'tin' could not be built reproducibly. Since LC_ALL overwrites the LC_TIME value, the cpp_reprtime script output is locale-dependent. This could be fixed adding a LC_ALL=C definition, but as gcc now supports the SOURCE_DATE_EPOCH environment variable [2] to set the __DATE__ value, I think the best option is to drop cpp_reprtime -- see attached patch. Once applied, tin can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds [2]: https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru tin-2.3.2/debian/changelog tin-2.3.2/debian/changelog --- tin-2.3.2/debian/changelog 2015-12-27 15:43:34.0 +0100 +++ tin-2.3.2/debian/changelog 2016-06-20 12:18:59.0 +0200 @@ -1,3 +1,9 @@ +tin (1:2.3.2-1.0~reproducible1) UNRELEASED; urgency=medium + + * drop debian/cpp_reprtime, since gcc has SOURCE_DATE_EPOCH support now. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 20 Jun 2016 12:18:59 +0200 + tin (1:2.3.2-1) unstable; urgency=medium * New upstream release. diff -Nru tin-2.3.2/debian/cpp_reprtime tin-2.3.2/debian/cpp_reprtime --- tin-2.3.2/debian/cpp_reprtime 2015-12-27 06:16:18.0 +0100 +++ tin-2.3.2/debian/cpp_reprtime 1970-01-01 01:00:00.0 +0100 @@ -1,40 +0,0 @@ -#!/bin/sh -set -e - -FILE="$1" -if [ -z "$FILE" ]; then - echo "Usage: $0 FILENAME" >&2 - echo "\nThe reproducible definitions of the C time macros will be written to FILENAME\nand options for \$CPPFLAGS will be printed on standard output." - exit 1 -fi - -CHANGELOG_DATE=$(dpkg-parsechangelog --show-field Date) - -if [ -z "$CHANGELOG_DATE" ]; then - echo "dpkg-parsechangelog is unable to parse the changelog date!" >&2 - exit 1 -fi - -export LC_CTIME='C' -export TZ='UTC' - -cat < $FILE -/* Reproducible timestamp macros generated by $0. */ -#ifdef __TIME__ -# undef __TIME__ -#endif -#define __TIME__ "$(date --date="$CHANGELOG_DATE" "+%T")" - -#ifdef __DATE__ -# undef __DATE__ -#endif -#define __DATE__ "$(date --date="$CHANGELOG_DATE" "+%b %e %Y")" - -#ifdef __TIMESTAMP__ -# undef __TIMESTAMP__ -#endif -#define __TIMESTAMP__ "$(date --date="$CHANGELOG_DATE" "+%a %b %e %T %Y")" -END - -echo "-Wno-builtin-macro-redefined -include $(pwd)/$FILE" - diff -Nru tin-2.3.2/debian/rules tin-2.3.2/debian/rules --- tin-2.3.2/debian/rules 2015-12-27 15:43:07.0 +0100 +++ tin-2.3.2/debian/rules 2016-06-20 12:17:55.0 +0200 @@ -8,8 +8,6 @@ DPKG_EXPORT_BUILDFLAGS = 1 -include /usr/share/dpkg/buildflags.mk -CPPFLAGS+=$(shell sh debian/cpp_reprtime include/reprtime.h) - DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#827361: matplotlib: please honour SOURCE_DATE_EPOCH to allow reproducible output
Package: matplotlib Version: 1.5.2~rc2-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that some packages (like python-shapely) use matplotlib in their building process, leading to unreproducible builds (due to the timestamps inserted in PS/PDF files). To solve this kind of issues, it would be nice to make matplotlib support the SOURCE_DATE_EPOCH environment variable [2], so that the sources last modification date can be used for the timestamps in these PS and PDF files. See the attached patch for a proposed solution. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru matplotlib-1.5.2~rc2/debian/changelog matplotlib-1.5.2~rc2/debian/changelog --- matplotlib-1.5.2~rc2/debian/changelog 2016-05-30 20:36:55.0 +0200 +++ matplotlib-1.5.2~rc2/debian/changelog 2016-06-14 19:42:45.0 +0200 @@ -1,3 +1,9 @@ +matplotlib (1.5.2~rc2-1.0~reproducible1) UNRELEASED; urgency=medium + + * Reproducible PS/PDF output, using SOURCE_DATE_EPOCH (when set) + + -- Alexis Bienvenüe <p...@passoire.fr> Tue, 14 Jun 2016 19:42:45 +0200 + matplotlib (1.5.2~rc2-1) unstable; urgency=medium [ Sandro Tosi ] diff -Nru matplotlib-1.5.2~rc2/debian/patches/honour-SOURCE_DATE_EPOCH.patch matplotlib-1.5.2~rc2/debian/patches/honour-SOURCE_DATE_EPOCH.patch --- matplotlib-1.5.2~rc2/debian/patches/honour-SOURCE_DATE_EPOCH.patch 1970-01-01 01:00:00.0 +0100 +++ matplotlib-1.5.2~rc2/debian/patches/honour-SOURCE_DATE_EPOCH.patch 2016-06-14 23:27:09.0 +0200 @@ -0,0 +1,99 @@ +Description: Honour SOURCE_DATE_EPOCH + Honour the SOURCE_DATE_EPOCH environment variable, to build timestamps + in PS/PDF outputs. This allows reproducible output. + See https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: matplotlib-1.5.2~rc2/lib/matplotlib/backends/backend_pdf.py +=== +--- matplotlib-1.5.2~rc2.orig/lib/matplotlib/backends/backend_pdf.py matplotlib-1.5.2~rc2/lib/matplotlib/backends/backend_pdf.py +@@ -23,7 +23,7 @@ import numpy as np + from matplotlib.externals.six import unichr + + +-from datetime import datetime ++from datetime import datetime, tzinfo, timedelta + from math import ceil, cos, floor, pi, sin + + import matplotlib +@@ -134,6 +134,20 @@ def _string_escape(match): + assert False + + ++# tzinfo class for UTC ++class UTCtimezone(tzinfo): ++"""UTC""" ++ ++def utcoffset(self, dt): ++return timedelta(0) ++ ++def tzname(self, dt): ++return "UTC" ++ ++def dst(self, dt): ++return timedelta(0) ++ ++ + def pdfRepr(obj): + """Map Python objects to PDF syntax.""" + +@@ -201,10 +215,14 @@ def pdfRepr(obj): + # A date. + elif isinstance(obj, datetime): + r = obj.strftime('D:%Y%m%d%H%M%S') +-if time.daylight: +-z = time.altzone ++z = obj.utcoffset() ++if z is not None: ++z = z.seconds + else: +-z = time.timezone ++if time.daylight: ++z = time.altzone ++else: ++z = time.timezone + if z == 0: + r += 'Z' + elif z < 0: +@@ -457,10 +475,19 @@ class PdfFile(object): + self.writeObject(self.rootObject, root) + + revision = '' ++# get source date from SOURCE_DATE_EPOCH, if set ++# See https://reproducible-builds.org/specs/source-date-epoch/ ++source_date_epoch = os.getenv("SOURCE_DATE_EPOCH") ++if source_date_epoch: ++source_date = datetime.utcfromtimestamp(int(source_date_epoch)) ++source_date = source_date.replace(tzinfo=UTCtimezone()) ++else: ++source_date = datetime.today() ++ + self.infoDict = { + 'Creator': 'matplotlib %s, http://matplotlib.org' % __version__, + 'Producer': 'matplotlib pdf backend%s' % revision, +-'CreationDate': datetime.today() ++'CreationDate': source_date + } + + self.fontNames = {} # maps filenames to internal font names +Index: matplotlib-1.5.2~rc2/lib/matplotlib/backends/backend_ps.py +=== +--- matplotlib-1.5.2~rc2.orig/lib/matplotlib/backends/backend_ps.py matplotlib-1.5.2~rc2/lib/matplotlib/backends/backend_ps.py +@@ -1126,7 +1126,14 @@ class FigureCanvasPS(FigureCanvasBase): + if title: print("%%Title: "+title, file=fh) + print(("%%Creator: matplotlib version " +
[Reproducible-builds] Bug#827197: gnuplot: please make the build reproducible (timestamps, username, environment)
Source: gnuplot Version: 5.0.3+dfsg3-5 Severity: wishlist Tags: upstream User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps username environment X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Control: block -1 by 827187 Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that gnuplot has following reproducibility issues : * gnuplot embeds timestamps in its ps output. When the SOURCE_DATE_EPOCH environment variable [2] is set, it can be used to make the output reproducible. See 13_honour_SOURCE_DATE_EPOCH.patch * gnuplot embeds the username in its ps output. I think the unix username is not usefull in this output, and can be stripped. See 14_strip_username_from_output.patch - maybe it is possible to strip it only if SOURCE_DATE_EPOCH is set if this username is considered to be relevant here. * The SHELL used when building gnuplot is recorded in the Makefiles included in gnuplot-doc. I think /bin/sh can always be used instead. See changes with override_dh_auto_configure Once these patches are applied, and once https://bugs.debian.org/827187 is fixed, gnuplot can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru gnuplot-5.0.3+dfsg3/debian/changelog gnuplot-5.0.3+dfsg3/debian/changelog --- gnuplot-5.0.3+dfsg3/debian/changelog 2016-06-10 20:03:10.0 +0200 +++ gnuplot-5.0.3+dfsg3/debian/changelog 2016-06-13 17:01:48.0 +0200 @@ -1,3 +1,9 @@ +gnuplot (5.0.3+dfsg3-5.0~reproducible1) UNRELEASED; urgency=medium + + * Make the build reproducible. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 13 Jun 2016 17:01:48 +0200 + gnuplot (5.0.3+dfsg3-5) unstable; urgency=medium [ Sven Joachim ] diff -Nru gnuplot-5.0.3+dfsg3/debian/patches/13_honour_SOURCE_DATE_EPOCH.patch gnuplot-5.0.3+dfsg3/debian/patches/13_honour_SOURCE_DATE_EPOCH.patch --- gnuplot-5.0.3+dfsg3/debian/patches/13_honour_SOURCE_DATE_EPOCH.patch 1970-01-01 01:00:00.0 +0100 +++ gnuplot-5.0.3+dfsg3/debian/patches/13_honour_SOURCE_DATE_EPOCH.patch 2016-06-13 17:00:49.0 +0200 @@ -0,0 +1,57 @@ +Description: Honour SOURCE_DATE_EPOCH + Get date from the environment variable SOURCE_DATE_EPOCH (when set), + to build output timestamps. + See https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- gnuplot-5.0.3+dfsg3.orig/term/post.trm gnuplot-5.0.3+dfsg3/term/post.trm +@@ -1657,15 +1657,45 @@ end\n\ + int i; + time_t now; + char *timedate; +- ++char *source_date_epoch; ++unsigned long long epoch; ++char *endptr; ++ + ps_common_uses_fonts = uses_fonts; + ps_common_xoff = xoff; + ps_common_yoff = yoff; + + ps_page = 0; + +-time(); +-timedate=asctime(localtime()); ++/* get source date from environment variable SOURCE_DATE_EPOCH, if set. ++ See https://reproducible-builds.org/specs/source-date-epoch/ */ ++source_date_epoch = getenv("SOURCE_DATE_EPOCH"); ++if (source_date_epoch) { ++ errno = 0; ++ epoch = strtoull(source_date_epoch, , 10); ++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) ++ || (errno != 0 && epoch == 0)) { ++fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", strerror(errno)); ++exit(EXIT_FAILURE); ++ } ++ if (endptr == source_date_epoch) { ++fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", endptr); ++exit(EXIT_FAILURE); ++ } ++ if (*endptr != '\0') { ++fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", endptr); ++exit(EXIT_FAILURE); ++ } ++ if (epoch > ULONG_MAX) { ++fprintf(stderr, "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); ++ } ++ now = epoch; ++ timedate=asctime(gmtime()); ++} else { ++ time(); ++ timedate=asctime(localtime()); ++} + timedate[strlen(timedate)-1]='\0'; + + #ifdef PSLATEX_DRIVER diff -Nru gnuplot-5.0.3+dfsg3/debian/patches/14_strip_username_from_output.patch gnuplot-5.0.3+dfsg3/debian/patches/14_strip_username_from_output.patch --- gnuplot-5.0.3+dfsg3/debian/patches/14_strip_username_from_output.patch 1970-01-01 01:00:00.0 +0100 +++ gnuplot-5.0.3+dfsg3/debian/patches/14_strip_username_from_output.patch 2016-06-13 17:00:49.0 +0200 @@ -0,0 +1,36 @@ +Description: Strip username from output + Strip username from output to make it reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: gnuplot-5.0.3+dfsg3/term/post.trm +=
[Reproducible-builds] Bug#827187: latex2html: please make the output reproducible (toolchain, timestamps, username, randomness)
Source: latex2html Version: 2015-debian1-1 Severity: wishlist Tags: upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain timestamps username randomness X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Control: block -1 by 827115 Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that some packages (including latex2html itself) use latex2html in their building process, leading to the following reproducibility issues : * keys from the perl hashes are not sorted. See reproducible-output.patch to sort them and get a reproducible order. * a timestamp is included in the output. See honour-SOURCE_DATE_EPOCH.patch to use the SOURCE_DATE_EPOCH environment variable when set [2]. This way, the timestamps correspond to the sources date instead of the build date. * the user name is included in the output. See suppress-username-from-output.patch to strip it. * the index keys are not fully ordered in the case cleaned values are equal. See idx-sort-all.patch Once these patches are applied, and once https://bugs.debian.org/827115 is fixed, latex2html can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru latex2html-2015-debian1/debian/changelog latex2html-2015-debian1/debian/changelog --- latex2html-2015-debian1/debian/changelog 2016-01-19 19:24:18.0 +0100 +++ latex2html-2015-debian1/debian/changelog 2016-06-10 15:20:45.0 +0200 @@ -1,3 +1,9 @@ +latex2html (2015-debian1-1.0~reproducible1) UNRELEASED; urgency=medium + + * Reproducible output. + + -- Alexis Bienvenüe <p...@passoire.fr> Fri, 10 Jun 2016 15:20:45 +0200 + latex2html (2015-debian1-1) unstable; urgency=medium * New upstream release (Closes: #647433) diff -Nru latex2html-2015-debian1/debian/patches/honour-SOURCE_DATE_EPOCH.patch latex2html-2015-debian1/debian/patches/honour-SOURCE_DATE_EPOCH.patch --- latex2html-2015-debian1/debian/patches/honour-SOURCE_DATE_EPOCH.patch 1970-01-01 01:00:00.0 +0100 +++ latex2html-2015-debian1/debian/patches/honour-SOURCE_DATE_EPOCH.patch 2016-06-10 15:47:57.0 +0200 @@ -0,0 +1,22 @@ +Description: Honour SOURCE_DATE_EPOCH + Honour the SOURCE_DATE_EPOCH environment variable, to make the output + reproducible. + See https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- latex2html-2015-debian1.orig/latex2html.pin latex2html-2015-debian1/latex2html.pin +@@ -15006,7 +15006,12 @@ sub brackets { ($OP, $CP);} + + sub get_date { + local($format,$order) = @_; +-local(@lt) = localtime; ++local(@lt); ++if($ENV{SOURCE_DATE_EPOCH}) { ++@lt = gmtime($ENV{SOURCE_DATE_EPOCH}) ++} else { ++@lt = localtime; ++} + local($d,$m,$y) = @lt[3,4,5]; + if ($format =~ /ISO/) { + sprintf("%4d-%02d-%02d", 1900+$y, $m+1, $d); diff -Nru latex2html-2015-debian1/debian/patches/idx-sort-all.patch latex2html-2015-debian1/debian/patches/idx-sort-all.patch --- latex2html-2015-debian1/debian/patches/idx-sort-all.patch 1970-01-01 01:00:00.0 +0100 +++ latex2html-2015-debian1/debian/patches/idx-sort-all.patch 2016-06-13 14:49:30.0 +0200 @@ -0,0 +1,16 @@ +Description: Sort all index keys + Sort index keys, even if they are the same after beeing cleaned, to + get a reproducible output. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- latex2html-2015-debian1.orig/latex2html.pin latex2html-2015-debian1/latex2html.pin +@@ -8536,7 +8536,7 @@ sub keysort { + # Put alphabetic characters after symbols; already downcased + $x =~ s/^([a-z])/~~~$1/; + $y =~ s/^([a-z])/~~~$1/; +-$x cmp $y; ++($x cmp $y) || ($a cmp $b); + } + + sub index_key_eq { diff -Nru latex2html-2015-debian1/debian/patches/reproducible-output.patch latex2html-2015-debian1/debian/patches/reproducible-output.patch --- latex2html-2015-debian1/debian/patches/reproducible-output.patch 1970-01-01 01:00:00.0 +0100 +++ latex2html-2015-debian1/debian/patches/reproducible-output.patch 2016-06-13 09:50:57.0 +0200 @@ -0,0 +1,260 @@ +Description: Make the output reproducible. + Sort perl hash keys to get the output reproducible. + See https://wiki.debian.org/ReproducibleBuilds/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: latex2html-2015-debian1/latex2html.pin +=== +--- latex2html-2015-debian1.orig/latex2html.pin latex2html-2015-debian1/latex2html.pin +@@ -1049,7 +1049,7 @@ sub restore_critical_variables { + # undef any renewed-commands... + # so the new defs are read from %new_command + local($cmd,$key,$code); +-foreach $key (keys %renew_command) { ++foreach $key (sort keys %renew_command) { + $cmd = "do_cmd_$key"; +
[Reproducible-builds] Bug#827172: reaver: please make the build reproducible (fileordering)
Source: reaver Version: 1.4-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that 'reaver' could not be built reproducibly. The attached patch fixes the order in which object files are passed to gcc. Once applied, reaver can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds Description: Order object files when linking Sort object files when liking, to make the build reproducible. Author: Alexis Bienvenüe <p...@passoire.fr> Index: reaver-1.4/src/Makefile.in === --- reaver-1.4.orig/src/Makefile.in +++ reaver-1.4/src/Makefile.in @@ -5,15 +5,15 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ CONFDIR=@sysconfdir@/@target@ CFLAGS=-DCONF_DIR='"$(CONFDIR)"' -DREAVER_DATABASE='"$(CONFDIR)/reaver.db"' @CFLAGS@ -LDFLAGS=$(LIBWPS_DIR)/*.o wps/*.o tls/bignum.o tls/libtls.a utils/libutils.a crypto/libcrypto.a lwe/libiw.a @LDFLAGS@ +LDFLAGS=`LC_ALL=C ls $(LIBWPS_DIR)/*.o wps/*.o` tls/bignum.o tls/libtls.a utils/libutils.a crypto/libcrypto.a lwe/libiw.a @LDFLAGS@ all: wash reaver wash: wps libiw libwps.o argsparser.o globule.o init.o misc.o 80211.o iface.o - $(CC) $(CFLAGS) $(INC) wpsmon.c *.o $(LDFLAGS) -o wash + $(CC) $(CFLAGS) $(INC) wpsmon.c `LC_ALL=C ls *.o` $(LDFLAGS) -o wash reaver: wps libiw libwps.o argsparser.o globule.o init.o sigint.o sigalrm.o misc.o cracker.o - $(CC) $(CFLAGS) $(INC) wpscrack.c *.o $(LDFLAGS) -o reaver + $(CC) $(CFLAGS) $(INC) wpscrack.c `LC_ALL=C ls *.o` $(LDFLAGS) -o reaver libwps.o: (cd $(LIBWPS_DIR) && make) ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#827115: netpbm: please honour SOURCE_DATE_EPOCH to allow reproducible output
Package: netpbm Version: 2:10.0-15.3 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that some packages (like latex2html) use one of the netpbm utilities in their process, leading to unreproducible output (due to the use of the random generator, seeded from a time() call). To solve this kind of issues, it would be nice to make netpbm support the SOURCE_DATE_EPOCH environment variable [2]. See the attached patch for a proposed solution. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible-builds.org/specs/source-date-epoch/ diff -u netpbm-free-10.0/debian/changelog netpbm-free-10.0/debian/changelog --- netpbm-free-10.0/debian/changelog +++ netpbm-free-10.0/debian/changelog @@ -1,3 +1,9 @@ +netpbm-free (2:10.0-15.3.0~reproducible1) UNRELEASED; urgency=medium + + * SOURCE_DATE_EPOCH support. + + -- Alexis Bienvenüe <p...@passoire.fr> Sun, 12 Jun 2016 11:43:19 +0200 + netpbm-free (2:10.0-15.3) unstable; urgency=medium * Non-maintainer upload. only in patch2: unchanged: --- netpbm-free-10.0.orig/include/pm.h +++ netpbm-free-10.0/include/pm.h @@ -20,6 +20,7 @@ #include #include #include +#include #ifdef VMS #include @@ -245,5 +246,10 @@ char * pm_arg0toprogname(const char arg0[]); +/* SOURCE_DATE_EPOCH support */ + +time_t +pm_source_time(int use_pid); + #endif only in patch2: unchanged: --- netpbm-free-10.0.orig/pbm/libpm.c +++ netpbm-free-10.0/pbm/libpm.c @@ -23,6 +23,9 @@ #include #include #include +#include +#include +#include /* The following are set by pm_init(), then used by subsequent calls to other pm_xxx() functions. @@ -938,3 +941,42 @@ return realloc(a, b*c); } +time_t pm_source_time(int use_pid) +{ + time_t now; + 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, , 10); +if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) +|| (errno != 0 && epoch == 0)) { + fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", strerror(errno)); + exit(EXIT_FAILURE); +} +if (endptr == source_date_epoch) { + fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", endptr); + exit(EXIT_FAILURE); +} +if (*endptr != '\0') { + fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", endptr); + exit(EXIT_FAILURE); +} +if (epoch > ULONG_MAX) { + fprintf(stderr, "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); +} +now = epoch; +return(now); + } else { +now = time(NULL); +if(use_pid) { + return(now ^ getpid()); +} else { + return(now); +} + } +} only in patch2: unchanged: --- netpbm-free-10.0.orig/pbm/pbmreduce.c +++ netpbm-free-10.0/pbm/pbmreduce.c @@ -98,7 +98,7 @@ if ( thiserr == 0 || nexterr == 0 ) pm_error( "out of memory" ); -srand( (int) ( time( 0 ) ^ getpid( ) ) ); +srand( (int) ( pm_source_time(1) ) ); for ( col = 0; col < newcols + 2; ++col ) thiserr[col] = ( rand( ) % SCALE - HALFSCALE ) / 4; /* (random errors in [-SCALE/8 .. SCALE/8]) */ only in patch2: unchanged: --- netpbm-free-10.0.orig/pgm/pgmcrater.c +++ netpbm-free-10.0/pgm/pgmcrater.c @@ -107,7 +107,7 @@ { int i; -i = time((long *) 0) * 0xF37C; +i = pm_source_time(0) * 0xF37C; srand(i); for (i = 0; i < 7; i++) { V rand(); only in patch2: unchanged: --- netpbm-free-10.0.orig/pgm/pgmnoise.c +++ netpbm-free-10.0/pgm/pgmnoise.c @@ -57,7 +57,7 @@ pgm_writepgminit(stdout, cols, rows, PGM_MAXMAXVAL, 0); /* get time of day to feed the random number generator */ - timenow = time(NULL); + timenow = pm_source_time(0); srand(timenow); /* create the (gray) noise */ only in patch2: unchanged: --- netpbm-free-10.0.orig/pgm/pgmtopbm.c +++ netpbm-free-10.0/pgm/pgmtopbm.c @@ -132,7 +132,7 @@ overflow_add(cols, 2); thiserr = (long*) pm_allocrow( cols + 2, sizeof(long) ); nexterr = (long*) pm_allocrow( cols + 2, sizeof(long) ); - srand( (int) ( time( 0 ) ^ getpid( ) ) ); + srand( (int) ( pm_source_time(1) ) ); for ( col = 0; col < cols + 2; ++col ) thiserr[col] = ( rand( ) % FS_SCALE - HALF_FS_SCALE ) / 4; /* (random errors in [-FS_SCALE/8 .. FS_SCALE/8]) */ only in patch2: unchanged: --- netpbm-free-10.0.orig/pnm/pnmremap.c +++ netpbm-free-10.0/pnm/p
[Reproducible-builds] Bug#826951: slicot: please make the build reproducible (fileordering)
Source: slicot Version: 5.0+20101122-2 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that 'slicot' could not be built reproducibly. The attached patch fixes the order files are passed to `ar'. Once applied, slicot can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru slicot-5.0+20101122/debian/rules slicot-5.0+20101122/debian/rules --- slicot-5.0+20101122/debian/rules 2013-05-18 14:55:08.0 +0200 +++ slicot-5.0+20101122/debian/rules 2016-06-10 14:39:29.0 +0200 @@ -21,7 +21,7 @@ SO=0 VERS=$(SO).0 -SLICOT_SRC=$(shell echo src/*.f) +SLICOT_SRC=$(sort $(shell echo src/*.f)) SLICOT_OBJ=$(SLICOT_SRC:.f=.o) debian/shared_dir debian/static_dir debian/shared64_dir: ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#826162: slime: please make the contributors ordering locale-independent (environment)
Source: slime Version: 2:2.17-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that 'slime' could not be built reproducibly. The attached patch make the contributors ordering locale-independent. With this patch applied, and if #826158 is fixed, so that the slime.info file gets a reproducible date from the last debian/changelog entry, slime can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds Description: Reproducible contributors list Always use C locale when sorting contributors, to make the build reproducible Author: Alexis Bienvenüe <p...@passoire.fr> --- slime-2.17.orig/doc/Makefile +++ slime-2.17/doc/Makefile @@ -77,7 +77,7 @@ contributors.texi: $(CHANGELOGS) Makefil sed -ne '/^[0-9]/{s/^[^ ]* *//; s/ *<.*//; p;}' | \ sort | \ uniq -c | \ - sort -nr| \ + LC_ALL=C sort -nr| \ sed -e 's/^[^A-Z]*//' | \ LC_ALL=C awk -f texinfo-tabulate.awk \ > $@ ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#826093: osc: please make the build reproducible (timestamps)
Source: osc Version: 0.154.0-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the `reproducible builds' effort [1], we have noticed that 'osc' could not be built reproducibly. The attached patch honours the SOURCE_DATE_EPOCH environment variable [2] to get a reproducible man page date from the last debian changelog entry. Once applied, osc can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds [2]: https://reproducible-builds.org/specs/source-date-epoch/ Description: Reproducible man page date Set the man page date from the environment variable SOURCE_DATE_EPOCH (if set), to make the build reproducible. See https://reproducible-builds.org/specs/source-date-epoch/ Author: Alexis Bienvenüe <p...@passoire.fr> --- osc-0.154.0.orig/osc/cmdln.py +++ osc-0.154.0/osc/cmdln.py @@ -45,8 +45,8 @@ import re import cmd import optparse import sys +import time from pprint import pprint -from datetime import date # this is python 2.x style def introspect_handler_2(handler): @@ -619,9 +619,13 @@ class RawCmdln(cmd.Cmd): usage: ${name} man """ +if os.getenv("SOURCE_DATE_EPOCH"): +srcdate = time.gmtime(int(os.getenv("SOURCE_DATE_EPOCH"))) +else: +srcdate = time.localtime() self.stdout.write(bytes( self.man_header % { -'date': date.today().strftime('%b %Y'), +'date': time.strftime('%b %Y',srcdate), 'version': self.get_version(), 'name': self.name, 'ucname': self.name.upper() ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
Re: [Reproducible-builds] dropping texlive from our archive
Hi. Le 31/05/2016 23:52, Mattia Rizzolo a écrit : > The current status is: nearly everything was merged, but one patch. > https://anonscm.debian.org/git/reproducible/texlive-bin.git/tree/debian/patches/source-date-epoch-tex-primitives-defaults-to-1?id=c6dede514f6c724228ad6bbaa90531b27e78f1eb > That patch is basically what makes \today reproducible follow S_D_E > always instead of when somebody enables it with Yet Another Env Var. Note that when the TeX primitives do not honour S_D_E, xetex output is not reproducible (even if \today is not used) because of the /Creator string which includes a date that is build from these primitives : https://anonscm.debian.org/cgit/debian-tex/texlive-bin.git/tree/texk/web2c/xetexdir/xetex.web#n13872 So solution 3 should include a bugfix to make xetex's Creator string either strip the build date either honour S_D_E. Regards, Alexis Bienvenüe. ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#825436: gettext: please make xgettext honour SOURCE_DATE_EPOCH
Source: gettext Version: 0.19.7-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that some packages (like gdm3, gnome-session) use xgettext in their building process, resulting in timestamps in POT files that break reproducibility. To solve this kind of issues, it would be nice to have xgettext support the SOURCE_DATE_EPOCH environment variable [2], so that the POT-Creation-Date timestamp will be set from the last debian/changelog entry instead of the (unreproducible) build date. See the attached patch for a solution to this issue. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible-builds.org/specs/source-date-epoch/ Description: xgettext honour SOURCE_DATE_EPOCH Make xgettext honour the SOURCE_DATE_EPOCH environment variable: is set, this variable is used to set POT-Creation-Date. See https://reproducible-builds.org/specs/source-date-epoch/ Author: Alexis Bienvenüe <p...@passoire.fr> Index: gettext-0.19.7/gettext-tools/src/po-time.c === --- gettext-0.19.7.orig/gettext-tools/src/po-time.c +++ gettext-0.19.7/gettext-tools/src/po-time.c @@ -52,13 +52,17 @@ difftm (const struct tm *a, const struct char * -po_strftime (const time_t *tp) +po_strftime_tz (const time_t *tp, int gmt) { struct tm local_time; char tz_sign; long tz_min; - local_time = *localtime (tp); + if (gmt) { +local_time = *gmtime (tp); + } else { +local_time = *localtime (tp); + } tz_sign = '+'; tz_min = difftm (_time, gmtime (tp)) / 60; if (tz_min < 0) @@ -74,3 +78,9 @@ po_strftime (const time_t *tp) local_time.tm_min, tz_sign, tz_min / 60, tz_min % 60); } + +char * +po_strftime (const time_t *tp) +{ + return (po_strftime_tz (tp,0)); +} Index: gettext-0.19.7/gettext-tools/src/po-time.h === --- gettext-0.19.7.orig/gettext-tools/src/po-time.h +++ gettext-0.19.7/gettext-tools/src/po-time.h @@ -29,6 +29,7 @@ extern "C" { /* Return a freshly allocated string containing the given time in the format -MM-DD HH:MM+TZOFF. */ extern char *po_strftime (const time_t *tp); +extern char *po_strftime_tz (const time_t *tp, int gmt); #ifdef __cplusplus Index: gettext-0.19.7/gettext-tools/src/xgettext.c === --- gettext-0.19.7.orig/gettext-tools/src/xgettext.c +++ gettext-0.19.7/gettext-tools/src/xgettext.c @@ -3723,6 +3723,9 @@ construct_header () message_ty *mp; char *msgstr; char *comment; + char *source_date_epoch; + unsigned long long epoch; + char *endptr; static lex_pos_ty pos = { __FILE__, __LINE__ }; if (package_name != NULL) @@ -3744,8 +3747,33 @@ the MSGID_BUGS_ADDRESS variable there; o specify an --msgid-bugs-address command line option.\n\ "))); - time (); - timestring = po_strftime (); + source_date_epoch = getenv("SOURCE_DATE_EPOCH"); + if (source_date_epoch) { +errno = 0; +epoch = strtoull(source_date_epoch, , 10); +if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) +|| (errno != 0 && epoch == 0)) { + fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", strerror(errno)); + exit(EXIT_FAILURE); +} +if (endptr == source_date_epoch) { + fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", endptr); + exit(EXIT_FAILURE); +} +if (*endptr != '\0') { + fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", endptr); + exit(EXIT_FAILURE); +} +if (epoch > ULONG_MAX) { + fprintf(stderr, "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); +} +now = epoch; +timestring = po_strftime_tz (,1); + } else { +time (); +timestring = po_strftime (); + } msgstr = xasprintf ("\ Project-Id-Version: %s\n\ ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#825092: grass: please make the build reproducible (fileordering, randomness)
Source: grass Version: 7.0.4-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering randomness X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Control: block -1 by 825088 Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'grass' could not be built reproducibly. There are several reproducibility issues: 1) File ordering issues - the build result depends on the order of the files listed with readdir or equivalent. * in tools/build_modules_xml.py - see patch sort-build-modules-list * in lib/db/dbmi_base/dbmscap.c (this affects options order in the html/db.*.html files) - see patch sort-dbmscap that builds an ordered list. * in include/Make/Vars.make (this affects the order in which object files are merged) - see patch sort-obj-files 2) Randomness issue: html/colortables/random.png is built using a pseudo-random generator seeded with build-time value. See patch srand48_auto-from-SOURCE_DATE_EPOCH that uses the SOURCE_DATE_EPOCH [2] environment variable (when set) to set a seed from last debian/changelog entry date. 3) Makefile mistake: from https://buildd.debian.org/status/fetch.php?pkg=grass=i386=7.0.4-1=1462121195, it seems to me that the binary NAD files are not installed properly: /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/prvi /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/hawaii /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/alaska /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/stgeorge /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/FL /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/WO /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/TN /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/stlrnc /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/stpaul /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/conus /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/MD /usr/bin/install -c -m 644 OBJ.i686-pc-linux-gnu/prvi /«PKGBUILDDIR»/dist.i686-pc-linux-gnu/etc/proj/nad/WI The single OBJ.i686-pc-linux-gnu/prvi file is here installed to *all* /etc/proj/nad files. See the patch binary-nad-install for a fix. 4) nad2bin issue: nad2bin has unreproducible output (see #825088) Once these proposed patches are applied (and #825088 fixed), grass can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible-builds.org/specs/source-date-epoch/ Description: Sort build modules list Sort modules in module_items.xml, to make the build reproducible. Author: Alexis Bienvenüe <p...@passoire.fr> --- grass-7.0.4.orig/gui/wxpython/tools/build_modules_xml.py +++ grass-7.0.4/gui/wxpython/tools/build_modules_xml.py @@ -51,7 +51,7 @@ def parse_modules(fd): # TODO: what about ms windows? does gtask handle this? mlist = list(gcore.get_commands()[0]) indent = 4 -for m in mlist: +for m in sorted(mlist): # TODO: get rid of g.mapsets_picker.py if m == 'g.mapsets_picker.py' or m == 'g.parser': continue Description: Sort dbmscap list To get reproducible results. Author: Alexis Bienvenüe <p...@passoire.fr> Index: grass-7.0.4/lib/db/dbmi_base/dbmscap.c === --- grass-7.0.4.orig/lib/db/dbmi_base/dbmscap.c +++ grass-7.0.4/lib/db/dbmi_base/dbmscap.c @@ -209,19 +209,22 @@ dbDbmscap *db_read_dbmscap(void) return list; } +static int cmp_entry(dbDbmscap *a, dbDbmscap *b) { + return( a->driverName && b->driverName ? strcmp(a->driverName,b->driverName) : 0 ); +} + static void add_entry(dbDbmscap ** list, char *name, char *startup, char *comment) { -dbDbmscap *head, *cur, *tail; +/* add an entry to the list, so that the list remains ordered (by driverName) */ -/* add this entry to the head of a linked list */ -tail = head = *list; -while (tail && tail->next) - tail = tail->next; -*list = NULL; +dbDbmscap *head, *cur, *tail; cur = (dbDbmscap *) db_malloc(sizeof(dbDbmscap)); -if (cur == NULL) - return; /* out of memory */ +if (cur == NULL) { +*list = NULL; + return; +/* out of memory */ +} cur->next = NULL; /* copy
[Reproducible-builds] Bug#824808: gdal: please make the build reproducible (fileordering)
Source: gdal Version: 2.1.0+dfsg-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'gdal' could not be built reproducibly. Either one of the two attached patches fixes the order files are passed to libtool — but I don't know if one of them could be an acceptable solution. One applied, gdal can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds Description: Sort files Sort files passed as arguments to make the build reproducible. Author: Alexis Bienvenüe <p...@passoire.fr> Index: gdal-2.1.0+dfsg/GNUmakefile === --- gdal-2.1.0+dfsg.orig/GNUmakefile +++ gdal-2.1.0+dfsg/GNUmakefile @@ -53,7 +53,7 @@ $(GDAL_SLIB): $(GDAL_OBJ) $(GDAL_LIB) -o $(GDAL_SLIB) $(LIBGDAL):$(GDAL_OBJ:.o=.lo) - $(LD) $(LDFLAGS) $(LIBS) -o $@ $(GDAL_OBJ:.o=.lo) \ + $(LD) $(LDFLAGS) $(LIBS) -o $@ `LC_ALL=C ls $(GDAL_OBJ:.o=.lo) 2>/dev/null` \ -rpath $(INST_LIB) \ -no-undefined \ -version-info $(LIBGDAL_CURRENT):$(LIBGDAL_REVISION):$(LIBGDAL_AGE) Description: Sort files Sort files passed as arguments to make the build reproducible. Author: Alexis Bienvenüe <p...@passoire.fr> Index: gdal-2.1.0+dfsg/GNUmakefile === --- gdal-2.1.0+dfsg.orig/GNUmakefile +++ gdal-2.1.0+dfsg/GNUmakefile @@ -53,7 +53,11 @@ $(GDAL_SLIB):$(GDAL_OBJ) $(GDAL_LIB) -o $(GDAL_SLIB) $(LIBGDAL):$(GDAL_OBJ:.o=.lo) - $(LD) $(LDFLAGS) $(LIBS) -o $@ $(GDAL_OBJ:.o=.lo) \ + $(MAKE) $(LIBGDAL).buildit + +.PHONY: $(LIBGDAL).buildit +$(LIBGDAL).buildit: + $(LD) $(LDFLAGS) $(LIBS) -o $(LIBGDAL) $(sort $(wildcard $(GDAL_OBJ:.o=.lo))) \ -rpath $(INST_LIB) \ -no-undefined \ -version-info $(LIBGDAL_CURRENT):$(LIBGDAL_REVISION):$(LIBGDAL_AGE) ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] package uploaded to our repo
texlive-bin_2016.20160513.41080-2.0~reproducible1.dsc has just been uploaded to https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#824653: elkcode: please make the build reproducible (environment)
Source: elkcode Version: 2.3.22-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'elkcode' could not be built reproducibly. The attached patch fixes the locale used by ls to sort files. Once applied, elkcode can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds Description: Set ls locale for reproducible order. Fix locale used with `ls', so that the order of the files listed is always the same. This makes the build reproducible. Author: Alexis Bienvenüe <p...@passoire.fr> --- elkcode-2.3.22.orig/src/Makefile +++ elkcode-2.3.22/src/Makefile @@ -157,7 +157,7 @@ cleanall: doc: rm -f elk.aux elk.bbl elk.blg elk.log elk.pdf elk.tex elk.toc elk.lst - ls $(SRC_modules) $(SRC_routines) $(SRC_XC) $(SRC_phonon) $(SRC_DFTU) \ + LC_ALL=C ls $(SRC_modules) $(SRC_routines) $(SRC_XC) $(SRC_phonon) $(SRC_DFTU) \ $(SRC_RDMFT) $(SRC_TDDFT) > elk.lst ./protex -F -s $(SRC_main) $$(cat elk.lst) > elk.tex pdflatex elk;pdflatex elk;pdflatex elk ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#824639: openblas: please make the build reproducible (fileordering)
Source: openblas Version: 0.2.18-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'openblas' could not be built reproducibly. The attached patch fixes the order files are passed to `ar' and gcc. Once applied, openblas can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds Description: Order files Order the files when calling `ar' or $(CC), to make the build reproducible. Author: Alexis Bienvenüe <p...@passoire.fr> Index: openblas-0.2.18/Makefile === --- openblas-0.2.18.orig/Makefile +++ openblas-0.2.18/Makefile @@ -207,7 +207,7 @@ netlib : mkdir lapack-netlib cd lapack-netlib && ar -x /usr/lib/lapack/liblapack_pic.a make -C interface delete-duplicate-lapack-objects - ar -ru $(LIBNAME) lapack-netlib/* + ar -ru $(LIBNAME) `LC_ALL=C ls lapack-netlib/*` clean:: rm -rf lapack-netlib Index: openblas-0.2.18/interface/Makefile === --- openblas-0.2.18.orig/interface/Makefile +++ openblas-0.2.18/interface/Makefile @@ -2153,7 +2153,7 @@ libblas.so.3: $(SBLAS1OBJS) $(SBLAS2OBJS # The prerequisites must match the symbols deleted in target delete-duplicate-lapack-objects liblapack.so.3: $(SLAPACKOBJS) $(DLAPACKOBJS) $(CLAPACKOBJS) $(ZLAPACKOBJS) ../kernel/lsame.o ../driver/others/xerbla.o - $(CC) $(LDFLAGS) -shared -o $@ $^ ../lapack-netlib/* -Wl,-soname,liblapack.so.3 -L.. -lopenblas $(EXTRALIB) + $(CC) $(LDFLAGS) -shared -o $@ $^ `LC_ALL=C ls ../lapack-netlib/*` -Wl,-soname,liblapack.so.3 -L.. -lopenblas $(EXTRALIB) clean:: rm -f libblas.so.3 liblapack.so.3 ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#824592: twitter-bootstrap: wrong copyright formatting when using bash
Source: twitter-bootstrap Version: 2.0.2+dfsg-9 Severity: minor Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'twitter-bootstrap' could not be built reproducibly [2]. When using the shell bash, echo does not expand "\n" in the copyright string, leading to an unexpected result. This can be fixed by using printf instead of echo, as illustrated by the attached patch. Once applied, twitter-bootstrap can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible.debian.net/rb-pkg/testing/amd64/twitter-bootstrap.html diff -Nru twitter-bootstrap-2.0.2+dfsg/debian/patches/06-use-printf-instead-of-echo.patch twitter-bootstrap-2.0.2+dfsg/debian/patches/06-use-printf-instead-of-echo.patch --- twitter-bootstrap-2.0.2+dfsg/debian/patches/06-use-printf-instead-of-echo.patch 1970-01-01 01:00:00.0 +0100 +++ twitter-bootstrap-2.0.2+dfsg/debian/patches/06-use-printf-instead-of-echo.patch 2016-05-17 22:06:16.0 +0200 @@ -0,0 +1,17 @@ +Description: Use printf instead of echo + "\n" can be expanded or not by echo, depending on the shell used. + So using printf instead of echo is more reliable. +Author: Alexis Bienvenüe <p...@passoire.fr> +Index: twitter-bootstrap-2.0.2+dfsg/Makefile +=== +--- twitter-bootstrap-2.0.2+dfsg.orig/Makefile twitter-bootstrap-2.0.2+dfsg/Makefile +@@ -35,7 +35,7 @@ bootstrap: + lessc --compress ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.min.css + cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js > bootstrap/js/bootstrap.js + uglifyjs bootstrap/js/bootstrap.js > bootstrap/js/bootstrap.min.tmp.js +- echo "/**\n* Bootstrap.js by @fat & @mdo\n* Copyright 2012 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/; > bootstrap/js/copyright.js ++ printf "/**\n* Bootstrap.js by @fat & @mdo\n* Copyright 2012 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/\n; > bootstrap/js/copyright.js + cat bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js > bootstrap/js/bootstrap.min.js + rm bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js + diff -Nru twitter-bootstrap-2.0.2+dfsg/debian/patches/series twitter-bootstrap-2.0.2+dfsg/debian/patches/series --- twitter-bootstrap-2.0.2+dfsg/debian/patches/series 2015-09-25 15:00:00.0 +0200 +++ twitter-bootstrap-2.0.2+dfsg/debian/patches/series 2016-05-17 22:06:56.0 +0200 @@ -3,3 +3,4 @@ 03-use-nodejs-command.patch 04-build-with-node-1.4.2.patch 05-drop-nc-from-uglifyjs.patch +06-use-printf-instead-of-echo.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#824569: gap-ctbllib: please make the build reproducible (timestamps)
Source: gap-ctbllib Version: 1r2p2.dfsg.0-2 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'gap-ctbllib' could not be built reproducibly. The attached patch removes timestamps from the compressed *.{six,toc} files. Once applied, gap-ctbllib can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru gap-ctbllib-1r2p2.dfsg.0/debian/patches/doc-makefile gap-ctbllib-1r2p2.dfsg.0/debian/patches/doc-makefile --- gap-ctbllib-1r2p2.dfsg.0/debian/patches/doc-makefile 2014-08-06 23:47:04.0 +0200 +++ gap-ctbllib-1r2p2.dfsg.0/debian/patches/doc-makefile 2016-05-17 15:11:41.0 +0200 @@ -26,8 +26,8 @@ +install-help: + install -d $(DOCDIR)/$(DIRS) + set -e; for man in $(DIRS); do \ -+ gzip --best $$man/manual.six; \ -+ gzip --best $$man/main.toc; \ ++ gzip --best -n $$man/manual.six; \ ++ gzip --best -n $$man/main.toc; \ + install -o root -g root -m 0644 $$man/manualbib.xml $(DOCDIR)/$$man;\ + install -o root -g root -m 0644 $$man/manualbib.xml.bib $(DOCDIR)/$$man;\ + install -o root -g root -m 0644 $$man/manual.six.gz $(DOCDIR)/$$man;\ ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#824567: tkdesk: please make the build reproducible (fileordering)
Source: tkdesk Version: 2.0-9.2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'tkdesk' could not be built reproducibly. The attached patch fixes the order in which files are parsed by the mkindex script. Once applied, tkdesk can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds --- tkdesk-2.0.orig/tcldesk/mkindex +++ tkdesk-2.0/tcldesk/mkindex @@ -74,7 +74,7 @@ append index "# sets an element in the auto_index array, where the\n" append index "# element name is the name of a command and the value is\n" append index "# a script that loads the command.\n\n" -foreach file [eval glob $args] { +foreach file [lsort [eval glob $args]] { set f "" set error [catch { set f [open $file] ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#824472: torch3: please make the build reproducible (fileordering)
Source: torch3 Version: 3.1-2.1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'torch3' could not be built reproducibly. The attached patch fixes the order in which *.o files are merged. Once applied, torch3 can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds --- Makefile.modules.orig +++ Makefile.modules @@ -14,9 +14,9 @@ $(LIBTORCH): $(STATICOBJS) @echo "Archiving..." - $(AR) $(LIBTORCH) $(STATICOBJSDIR)/*.o + $(AR) $(LIBTORCH) $(sort $(wildcard $(STATICOBJSDIR)/*.o)) $(LIBSOTORCH): $(DYNAMICOBJS) - $(CC) -shared -Wl,-soname=libtorch.so.3 -o $(LIBSOTORCH) $(DYNAMICOBJSDIR)/*.o + $(CC) -shared -Wl,-soname=libtorch.so.3 -o $(LIBSOTORCH) $(sort $(wildcard $(DYNAMICOBJSDIR)/*.o)) $(OBJS_DIR)/static/%.o: %.cc ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] SORCE_DATE_EPOCH_TEX_PRIMITIVES
Hi. The support of SOURCE_DATE_EPOCH added in pdftex/dvipdfm-x is great, and does a very good job at building reproducible binary software packages. SOURCE_DATE_EPOCH allows to fix the metadata timestamps in the compiled document, and when SOURCE_DATE_EPOCH_TEX_PRIMITIVES is set to 1, the tex primitives \year, \month etc. are also fixed, so that for example \today refers to the date given by SOURCE_DATE_EPOCH. The SOURCE_DATE_EPOCH environment variable is always used to get reproducible builds, and in this context, SOURCE_DATE_EPOCH_TEX_PRIMITIVES is always set to 1. This is fine when working with tex documents only. However in a more general context, for example debian reproducible build effort [1] (which has equivalents for other distributions [2]), the need to set another tool-specific environment variable has been criticized: adding such tool-specifc envvar handling in general package-building tools is considered to be endless and so discarded. Therefore, I would like to support a solution where the default value of SOURCE_DATE_EPOCH_TEX_PRIMITIVES is set to to 1. It has already been mentioned by Norman Gray [3]. The only drawback is that we brake backward-compatibility in a situation where someone already uses SOURCE_DATE_EPOCH for another task, and don't set SOURCE_DATE_EPOCH_TEX_PRIMITIVES. In this situation, the default value 0 of SOURCE_DATE_EPOCH_TEX_PRIMITIVES allows this user to get the same content in the compiled document. I do think this situation is very unlikely. Another solution is to drop SOURCE_DATE_EPOCH_TEX_PRIMITIVES as if it is always set to 1, but I understand that it has to be kept if someone thinks it can be useful. Whatever will be your answer, I thank you again for your welcome regarding reproducibility questions. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds/ [2] https://reproducible-builds.org/ [3] https://www.tug.org/pipermail/tex-k/2016-May/002703.html ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#824183: texlive-bin: please set default value of SOURCE_DATE_EPOCH_TEX_PRIMITIVES to 1
Source: texlive-bin Version: 2016.20160512.41045-1 Severity: wishlist Tags: upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, Extended support of SOURCE_DATE_EPOCH in TL2016 does a great job for reproducibility [1]. However, setting a tool-specific environment variable as SOURCE_DATE_EPOCH_TEX_PRIMITIVES from dpkg-buildpackage is not possible. I would suggest to set the default value of SOURCE_DATE_EPOCH_TEX_PRIMITIVES to 1 instead of 0 in pdftex. I think SOURCE_DATE_EPOCH is most often used to build reproducible packages, and in this case the user always need SOURCE_DATE_EPOCH_TEX_PRIMITIVES=1. Also, SOURCE_DATE_EPOCH_TEX_PRIMITIVES=1 makes the dates in the timestamps and in the document coherent. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds/ ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#824050: emacs24: please make autoloads files reproducible
Source: emacs24 Version: 24.5+1-6 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, autoloads files embed a timestamp. To get a reproducible build [1] for software packages that build-depend on emacs (including emacs24), it would be great to make this timestamp honoring the SOURCE_DATE_EPOCH environment variable [2], that is set to the last debian/changelog entry date when building binary debian packages. Please find attached a proposed patch for this. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds/ [2] https://reproducible-builds.org/specs/source-date-epoch/ Description: Make autoloads honour SOURCE_DATE_EPOCH Author: Alexis Bienvenüe <p...@passoire.fr> Index: emacs24-24.5+1/lisp/emacs-lisp/autoload.el === --- emacs24-24.5+1.orig/lisp/emacs-lisp/autoload.el +++ emacs24-24.5+1/lisp/emacs-lisp/autoload.el @@ -604,7 +604,10 @@ Return non-nil if and only if FILE adds ;; We'd really want to just use ;; `emacs-internal' instead. nil nil 'emacs-mule-unix) - (nth 5 (file-attributes relfile + (let ((source-date-epoch (getenv "SOURCE_DATE_EPOCH"))) + (if (null source-date-epoch) + (nth 5 (file-attributes relfile)) + (seconds-to-time (string-to-number source-date-epoch)) (insert " Generated autoloads from " relfile "\n"))) (insert generate-autoload-section-trailer (message "Generating autoloads for %s...done" file)) @@ -740,7 +743,10 @@ write its autoloads into the specified f t files-re)) dirs))) (done ()) - (this-time (current-time)) + (this-time (let ((source-date-epoch (getenv "SOURCE_DATE_EPOCH"))) + (if (null source-date-epoch) + (current-time) +(seconds-to-time (string-to-number source-date-epoch) ;; Files with no autoload cookies or whose autoloads go to other ;; files because of file-local autoload-generated-file settings. (no-autoloads nil) ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#824049: emacs24: please make start value of gensym-counter reproducible
Source: emacs24 Version: 24.5+1-6 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, When bytecompiling elisp files, cl-gensym-counter is initialized from the current time, leading to unreproducible results. This can affect reproducibility [1] of some software packages that build-depend on emacs (and of emacs24 itself). I suggest to set the initial value of cl-gensym-counter from the names of the files to be compiled (see proposed patch). Test-case: cd /tmp wget https://sources.debian.net/data/main/e/emacs24/24.5+1-5/lisp/org/ob-C.el emacs -batch --no-site-file --no-site-lisp -f batch-byte-compile ob-C.el cp ob-C.elc ob-C.elc.0 sleep 1 emacs -batch --no-site-file --no-site-lisp -f batch-byte-compile ob-C.el diff ob-C.elc ob-C.elc.0 The two files should be the same, but they differ (with different #:Gnnn values) Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds/ Description: Reproducible gensym-counter When calling batch-byte-compile, set the start value of gensym-counter from a hash of the command-line arguments instead of time, so that the compiled files can be reproducible. Author: Alexis Bienvenüe <p...@passoire.fr> Index: emacs24-24.5+1/lisp/emacs-lisp/bytecomp.el === --- emacs24-24.5+1.orig/lisp/emacs-lisp/bytecomp.el +++ emacs24-24.5+1/lisp/emacs-lisp/bytecomp.el @@ -4625,6 +4625,10 @@ already up-to-date." (if (not noninteractive) (error "`batch-byte-compile' is to be used only with -batch")) (let ((error nil)) +;; Init gensym-counter from command-line arguments instead of +;; time, to get a reproducible result. +(cl-init-gensym-counter + (mapconcat 'identity (sort command-line-args-left 'string<) ";")) (while command-line-args-left (if (file-directory-p (expand-file-name (car command-line-args-left))) ;; Directory as argument. Index: emacs24-24.5+1/lisp/emacs-lisp/cl-lib.el === --- emacs24-24.5+1.orig/lisp/emacs-lisp/cl-lib.el +++ emacs24-24.5+1/lisp/emacs-lisp/cl-lib.el @@ -261,6 +261,12 @@ so that they are registered at compile-t (defvar cl--gensym-counter (* (logand (cl--random-time) 1023) 100)) +(defun cl-init-gensym-counter (string) + "Set gensym-counter from a hash of string." + (setq cl--gensym-counter (* (logand + (string-to-number (substring (secure-hash 'sha1 string) -3) 16) + 1023) 100))) + ;;; Numbers. ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#824037: courier: please make the build reproducible (environment, timestamps)
Source: courier Version: 0.76.1-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: environment timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'courier' could not be built reproducibly. The attached patch honours the SOURCE_DATE_EPOCH environment variable [2] to set the imapd version string from the last debian/changelog date, and sets the shell to /bin/sh whatever SHELL is. Once applied, courier can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds [2]: https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru courier-0.76.1/debian/changelog courier-0.76.1/debian/changelog --- courier-0.76.1/debian/changelog 2016-05-09 15:26:49.0 +0200 +++ courier-0.76.1/debian/changelog 2016-05-11 15:23:45.0 +0200 @@ -1,3 +1,10 @@ +courier (0.76.1-1.0~reproducible1) UNRELEASED; urgency=medium + + * Always use /bin/sh as SHELL, to get reproducible build. + * Use SOURCE_DATE_EPOCH for imapd version string. + + -- Alexis Bienvenüe <p...@passoire.fr> Wed, 11 May 2016 15:23:44 +0200 + courier (0.76.1-1) unstable; urgency=medium * Imported Upstream version 0.76.1 diff -Nru courier-0.76.1/debian/patches/0026-use-SOURCE_DATE_EPOCH-for-imapd-version.patch courier-0.76.1/debian/patches/0026-use-SOURCE_DATE_EPOCH-for-imapd-version.patch --- courier-0.76.1/debian/patches/0026-use-SOURCE_DATE_EPOCH-for-imapd-version.patch 1970-01-01 01:00:00.0 +0100 +++ courier-0.76.1/debian/patches/0026-use-SOURCE_DATE_EPOCH-for-imapd-version.patch 2016-05-11 14:32:30.0 +0200 @@ -0,0 +1,20 @@ +Description: Use SOURCE_DATE_EPOCH for imapd version + Use the environment variable SOURCE_DATE_EPOCH (if set) for imapd + PROGRAMVERSION, to make the build reproducible. + See https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- courier-0.76.1.orig/libs/imap/configure.ac courier-0.76.1/libs/imap/configure.ac +@@ -340,8 +340,9 @@ courier) + ;; + esac + +-date=`date` +-AC_DEFINE_UNQUOTED(PROGRAMVERSION, "$package/${target_cpu}-${target_vendor}-${target_os}/$date", ++SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}" ++BUILD_DATE=$(date -u -d "@$SOURCE_DATE_EPOCH" "+%F %R" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+%F %R" 2>/dev/null || date -u "+%F %R") ++AC_DEFINE_UNQUOTED(PROGRAMVERSION, "$package/${target_cpu}-${target_vendor}-${target_os}/$BUILD_DATE", + [ Source code version ]) + + AC_ARG_WITH(trashquota, [ --with-trashquota Count deleted messages as part of the quota], diff -Nru courier-0.76.1/debian/patches/series courier-0.76.1/debian/patches/series --- courier-0.76.1/debian/patches/series 2016-05-09 15:26:49.0 +0200 +++ courier-0.76.1/debian/patches/series 2016-05-11 14:30:51.0 +0200 @@ -22,3 +22,4 @@ 0022-mkesmtpdcert-should-use-certsdir.patch 0024-Fix-missing-AC_PROG_SYSCONFTOOL-macro-on-autoreconf.patch 0025-Dynamically-resolver-mailuid-and-mailgid-on-runtime-.patch +0026-use-SOURCE_DATE_EPOCH-for-imapd-version.patch diff -Nru courier-0.76.1/debian/rules courier-0.76.1/debian/rules --- courier-0.76.1/debian/rules 2016-05-09 15:26:49.0 +0200 +++ courier-0.76.1/debian/rules 2016-05-11 11:03:30.0 +0200 @@ -83,7 +83,7 @@ --disable-root-check override_dh_auto_configure: - dh_auto_configure -- $(COMMON_CONFIGURE) + CONFIG_SHELL=/bin/sh dh_auto_configure -- $(COMMON_CONFIGURE) override_dh_auto_install: INSTALL_IGNORE_UMASK=1 dh_auto_install -- install ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
Re: [Reproducible-builds] getting dpkg ready for reproducible sid
Hi. Le 09/05/2016 14:26, Holger Levsen a écrit : > ddce83d dpkg-buildpackage: Preset build timestamp to latest changelog entry > > Are there any other changes needed in dpkg for Reproducible builds of Debian? Maybe it should be good to also have (to be merged with ddce83d) if (! exists($ENV{SOURCE_DATE_EPOCH_TEX_PRIMITIVES})) { $ENV{SOURCE_DATE_EPOCH_TEX_PRIMITIVES} = 1; } in dpkg-buildpackage (see summary and pointers in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=75#25) This is not essential with current version of texlive-bin in our reproducible toolchain, that backports TL2016 patches to TL2015 currently packaged (without using SOURCE_DATE_EPOCH_TEX_PRIMITIVES), but it will be meaningful when TL2016 will be released and reach debian. Regards, Alexis Bienvenüe. ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#823824: asymptote: please make the build reproducible (timestamps)
Source: asymptote Version: 2.37.real-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the `reproducible builds' effort [1], we have noticed that 'asymptote' could not be built reproducibly. The attached patch honours the SOURCE_DATE_EPOCH environment variable [2] to get a reproducible documentation date from the last debian changelog entry. Once applied, asymptote can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds [2]: https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru asymptote-2.37.real/debian/changelog asymptote-2.37.real/debian/changelog --- asymptote-2.37.real/debian/changelog 2016-03-15 03:44:39.0 +0100 +++ asymptote-2.37.real/debian/changelog 2016-05-09 10:07:40.0 +0200 @@ -1,3 +1,9 @@ +asymptote (2.37.real-1.0~reproducible1) UNRELEASED; urgency=medium + + * Honour SOURCE_DATE_EPOCH, to make the build reproducible. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 09 May 2016 10:07:40 +0200 + asymptote (2.37.real-1) unstable; urgency=medium * Imported Upstream version 2.37.real - the previous 2.37 was only diff -Nru asymptote-2.37.real/debian/patches/honour-source-date-epoch asymptote-2.37.real/debian/patches/honour-source-date-epoch --- asymptote-2.37.real/debian/patches/honour-source-date-epoch 1970-01-01 01:00:00.0 +0100 +++ asymptote-2.37.real/debian/patches/honour-source-date-epoch 2016-05-09 11:54:20.0 +0200 @@ -0,0 +1,62 @@ +Description: Honour SOURCE_DATE_EPOCH. + Honour the SOURCE_DATE_EPOCH environment variable to get documentation date + from last debian changelog entry. + This makes the build reproducible. + See https://reproducible-builds.org/specs/source-date-epoch/. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: asymptote-2.37.real/doc/FAQ/m-html.pl +=== +--- asymptote-2.37.real.orig/doc/FAQ/m-html.pl asymptote-2.37.real/doc/FAQ/m-html.pl +@@ -34,8 +34,8 @@ sub html_init { + print HTML "\n"; + $html_needpara= -1; + $html_end=''; +-chop($html_date=`date '+%d %B %Y'`); +-chop($html_year=`date '+%Y'`); ++$html_date=time2str("%d %B %Y", $ENV{SOURCE_DATE_EPOCH} || time, "UTC"); ++$html_year=time2str("%Y", $ENV{SOURCE_DATE_EPOCH} || time, "UTC"); + } + + sub html_startup { +Index: asymptote-2.37.real/doc/FAQ/m-lout.pl +=== +--- asymptote-2.37.real.orig/doc/FAQ/m-lout.pl asymptote-2.37.real/doc/FAQ/m-lout.pl +@@ -23,7 +23,7 @@ + + sub lout_init { + open(LOUT,">$prefix.lout"); +-chop($dprint= `date '+%d %B %Y'`); ++$dprint = time2str("%d %B %Y", $ENV{SOURCE_DATE_EPOCH} || time, "UTC"); + $dprint =~ s/^0//; + } + +Index: asymptote-2.37.real/doc/FAQ/bfnnconv.pl +=== +--- asymptote-2.37.real.orig/doc/FAQ/bfnnconv.pl asymptote-2.37.real/doc/FAQ/bfnnconv.pl +@@ -21,6 +21,8 @@ + # by the GPL. However, I would appreciate it if you credited me if + # appropriate in any documents you format using BFNN.) + ++use Date::Format; ++ + @outputs=('ascii','info','html'); + + while ($ARGV[0] =~ m/^\-/) { +@@ -135,7 +137,12 @@ while (<>) { + m/([^\\])\`/ || warn "`$_'"; + $_= $'; + $cmd= $`.$1; +-$it= `$cmd`; chop $it; ++if($cmd =~ /date [\"\']\+(.*?)[\"\']/) { ++ my $format=$1; ++ $it=time2str($format, $ENV{SOURCE_DATE_EPOCH} || time, "UTC"); ++} else { ++ $it= `$cmd`; chop $it; ++} + print $fh $it; + } + print $fh $_; diff -Nru asymptote-2.37.real/debian/patches/series asymptote-2.37.real/debian/patches/series --- asymptote-2.37.real/debian/patches/series 2016-03-15 03:44:39.0 +0100 +++ asymptote-2.37.real/debian/patches/series 2016-05-09 10:04:55.0 +0200 @@ -4,3 +4,4 @@ #old-gs-use-epswrite #upstream-gsl2 #upstream-fix-mips-build-failure +honour-source-date-epoch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#823797: openclonk: please make the build reproducible (timestamps)
Source: openclonk Version: 7.0-3 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the `reproducible builds' effort [1], we have noticed that 'openclonk' could not be built reproducibly. The attached patch honours the SOURCE_DATE_EPOCH environment variable [2] to get a reproducible copyright year from the last debian changelog entry. Once applied, openclonk can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds [2]: https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru openclonk-7.0/debian/changelog openclonk-7.0/debian/changelog --- openclonk-7.0/debian/changelog 2016-02-14 12:26:56.0 +0100 +++ openclonk-7.0/debian/changelog 2016-05-04 11:15:38.0 +0200 @@ -1,3 +1,9 @@ +openclonk (7.0-3.0~reproducible1) UNRELEASED; urgency=medium + + * Honour SOURCE_DATE_EPOCH for the copyright year. + + -- Alexis Bienvenüe <p...@passoire.fr> Wed, 04 May 2016 11:15:38 +0200 + openclonk (7.0-3) unstable; urgency=medium * Ship Music.ocg's content unpacked. diff -Nru openclonk-7.0/debian/patches/honour_SOURCE_DATE_EPOCH.patch openclonk-7.0/debian/patches/honour_SOURCE_DATE_EPOCH.patch --- openclonk-7.0/debian/patches/honour_SOURCE_DATE_EPOCH.patch 1970-01-01 01:00:00.0 +0100 +++ openclonk-7.0/debian/patches/honour_SOURCE_DATE_EPOCH.patch 2016-05-04 11:14:54.0 +0200 @@ -0,0 +1,24 @@ +Description: Honour SOURCE_DATE_EPOCH + Honour the SOURCE_DATE_EPOCH environment variable to get the copyright year, + to make the build reproducible. + See https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- openclonk-7.0.orig/cmake/Version.cmake openclonk-7.0/cmake/Version.cmake +@@ -24,7 +24,14 @@ git_get_changeset_id(C4REVISION) + + + IF(CMAKE_HOST_UNIX) +- EXECUTE_PROCESS(COMMAND "date" "+%Y" OUTPUT_VARIABLE DATE) ++if (DEFINED ENV{SOURCE_DATE_EPOCH}) ++ EXECUTE_PROCESS( ++COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y" ++OUTPUT_VARIABLE DATE ++OUTPUT_STRIP_TRAILING_WHITESPACE) ++else () ++ EXECUTE_PROCESS(COMMAND "date" "+%Y" OUTPUT_VARIABLE DATE) ++endif () + ELSEIF(CMAKE_HOST_WIN32) + EXECUTE_PROCESS(COMMAND "cscript.exe" "//nologo" "${CMAKE_CURRENT_SOURCE_DIR}/tools/get_current_year.vbs" OUTPUT_VARIABLE DATE) + ENDIF() diff -Nru openclonk-7.0/debian/patches/series openclonk-7.0/debian/patches/series --- openclonk-7.0/debian/patches/series 2016-02-14 12:26:08.0 +0100 +++ openclonk-7.0/debian/patches/series 2016-05-04 11:13:40.0 +0200 @@ -1 +1,2 @@ do-not-pack-music-ocg.patch +honour_SOURCE_DATE_EPOCH.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] package uploaded to our repo
texlive-bin_2015.20160222.37495-1.0~reproducible2.dsc has just been uploaded to https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
Re: [Reproducible-builds] LaTeX's \today
Hi. Here is the follow-up for the luatex side: https://mailman.ntg.nl/pipermail/dev-luatex/2016-May/005700.html Please have a look at our discussion to correct me if I'm wrong and/or participate! Alexis. ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#823393: kdbg: mixed encoding in changelog
Source: kdbg Version: 2.5.5-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, The ChangeLog-pre-2.2.0 has mixed latin1/UTF-8 encoding. With some locales, the grep call used to process it uses binary mode, returning "Binary file matches" instead of the filtered content. Please find a patch that fixes those issues, allowing reproducible build [1,2]. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://tests.reproducible-builds.org/rb-pkg/unstable/amd64/kdbg.html diff -Nru kdbg-2.5.5/debian/changelog kdbg-2.5.5/debian/changelog --- kdbg-2.5.5/debian/changelog 2016-04-19 06:23:14.0 +0200 +++ kdbg-2.5.5/debian/changelog 2016-05-04 10:05:13.0 +0200 @@ -1,3 +1,9 @@ +kdbg (2.5.5-1.0~reproducible1) UNRELEASED; urgency=medium + + * Fix changelog encoding. + + -- Alexis Bienvenüe <p...@passoire.fr> Wed, 04 May 2016 09:31:26 +0200 + kdbg (2.5.5-1) unstable; urgency=medium * QA upload. diff -Nru kdbg-2.5.5/debian/patches/11_fix_changelog_encoding.patch kdbg-2.5.5/debian/patches/11_fix_changelog_encoding.patch --- kdbg-2.5.5/debian/patches/11_fix_changelog_encoding.patch 1970-01-01 01:00:00.0 +0100 +++ kdbg-2.5.5/debian/patches/11_fix_changelog_encoding.patch 2016-05-04 10:07:18.0 +0200 @@ -0,0 +1,26 @@ +Description: Fix changelog encoding + Set ChangeLog-pre-2.2.0 encoding to UTF-8 (it was mixed latin1/UTF-8) +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: kdbg-2.5.5/ChangeLog-pre-2.2.0 +=== +--- kdbg-2.5.5.orig/ChangeLog-pre-2.2.0 kdbg-2.5.5/ChangeLog-pre-2.2.0 +@@ -287,7 +287,7 @@ Version 1.1.1 + command (required if you are debugging remote devices), the + terminal emulation needed for the program. + +-Verison 1.1.0 ++Version 1.1.0 + + Use docking windows thanks to Judin Max <novapr...@mtu-net.ru>. + +@@ -299,7 +299,7 @@ Verison 1.1.0 + Berndt Josef Wulf <w...@ping.net.au>. + + There's now a Swedish translation thanks to +- Örjan Lindbergh <orjan.lindbe...@telia.com>. ++ Ãrjan Lindbergh <orjan.lindbe...@telia.com>. + + Version 1.0.2 + diff -Nru kdbg-2.5.5/debian/patches/series kdbg-2.5.5/debian/patches/series --- kdbg-2.5.5/debian/patches/series 2016-03-16 23:32:05.0 +0100 +++ kdbg-2.5.5/debian/patches/series 2016-05-04 10:01:56.0 +0200 @@ -1 +1,2 @@ 10_fix_check_include_files.patch +11_fix_changelog_encoding.patch diff -Nru kdbg-2.5.5/debian/rules kdbg-2.5.5/debian/rules --- kdbg-2.5.5/debian/rules 2016-04-10 05:23:26.0 +0200 +++ kdbg-2.5.5/debian/rules 2016-05-04 09:30:22.0 +0200 @@ -8,5 +8,5 @@ override_dh_installchangelogs: cat $$(ls ReleaseNotes-* | sort -Vr) ChangeLog-pre-2.2.0 | \ - egrep -v '(KDbg Release Notes for|)' > debian/upstream.changes + egrep -av '(KDbg Release Notes for|)' > debian/upstream.changes dh_installchangelogs debian/upstream.changes ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
Re: [Reproducible-builds] LaTeX's \today
Le 02/05/2016 10:56, Holger Levsen a écrit : >> I (very awkwardly) started something at >> https://www.tug.org/pipermail/tex-live/2016-May/038339.html > > seems you got useful feedback there and your work was generally found > useful, yay! Please follow up on those suggestsions there! Here is the follow-up for the pdftex side: https://www.tug.org/pipermail/tex-k/2016-May/002691.html Please have a look at our discussion to correct me if I'm wrong and/or participate! Alexis. ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#823241: unhide: please make the build reproducible (fileordering)
Source: unhide Version: 20130526-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'unhide' could not be built reproducibly. The attached patch fixes the order in which c files are passed to the compiler. Once applied, unhide can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru unhide-20130526/debian/changelog unhide-20130526/debian/changelog --- unhide-20130526/debian/changelog 2015-11-02 23:51:16.0 +0100 +++ unhide-20130526/debian/changelog 2016-05-02 17:57:58.0 +0200 @@ -1,3 +1,9 @@ +unhide (20130526-1.0~reproducible1) UNRELEASED; urgency=medium + + * Sort c source files to pass to gcc, to get reproducible build. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 02 May 2016 17:57:58 +0200 + unhide (20130526-1) unstable; urgency=medium * Team upload. diff -Nru unhide-20130526/debian/rules unhide-20130526/debian/rules --- unhide-20130526/debian/rules 2015-11-02 20:44:36.0 +0100 +++ unhide-20130526/debian/rules 2016-05-02 17:57:11.0 +0200 @@ -21,7 +21,7 @@ ln man/es/unhide.8 man/unhide.es.8 override_dh_auto_build: - gcc $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -Wall -O2 -pthread -o unhide-linux unhide-linux*.c unhide-output.c + gcc $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -Wall -O2 -pthread -o unhide-linux $(sort $(wildcard unhide-linux*.c)) unhide-output.c gcc $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -Wall -O2 -o unhide-tcp unhide-tcp.c unhide-tcp-fast.c unhide-output.c gcc $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -Wall -O2 -o unhide_rb unhide_rb.c - gcc $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o unhide-posix unhide-posix.c \ Pas de fin de ligne à la fin du fichier + gcc $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o unhide-posix unhide-posix.c ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
Re: [Reproducible-builds] LaTeX's \today
Hi Holger. Le 16/04/2016 20:59, Holger Levsen a écrit : >> Can we consider turning LaTeX into using SOURCE_DATE_EPOCH (when >> available) as \today's epoch? > > to make sure this aint forgotten: we've discussed this sufficiently on irc > and it's clear what needs been doing here, it "just" needs doing, correct? I (very awkwardly) started something at https://www.tug.org/pipermail/tex-live/2016-May/038339.html I can also prepare a new version from texlive-bin_2015.20160222.37495-1.0~reproducible1 if you think it should be relevant to test in the toolchain. Regards, Alexis Bienvenüe. ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#822963: htop: please make the build reproducible (timestamps)
Source: htop Version: 2.0.1-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'htop' could not be built reproducibly. The attached patch honours the SOURCE_DATE_EPOCH environment variable [2] to get a reproducible copyright year. Once applied, htop can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds [2]: https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru htop-2.0.1/debian/changelog htop-2.0.1/debian/changelog --- htop-2.0.1/debian/changelog 2016-04-14 10:26:00.0 +0200 +++ htop-2.0.1/debian/changelog 2016-04-29 14:59:30.0 +0200 @@ -1,3 +1,9 @@ +htop (2.0.1-1.0~reproducible1) UNRELEASED; urgency=medium + + * Honour SOURCE_DATE_EPOCH for copyright year + + -- Alexis Bienvenüe <p...@passoire.fr> Fri, 29 Apr 2016 14:46:35 +0200 + htop (2.0.1-1) unstable; urgency=medium * New upstream release 2.0.1. (Closes: #814401, #783893, #774930) diff -Nru htop-2.0.1/debian/patches/003-honour-source-date-epoch.patch htop-2.0.1/debian/patches/003-honour-source-date-epoch.patch --- htop-2.0.1/debian/patches/003-honour-source-date-epoch.patch 1970-01-01 01:00:00.0 +0100 +++ htop-2.0.1/debian/patches/003-honour-source-date-epoch.patch 2016-04-29 14:55:47.0 +0200 @@ -0,0 +1,18 @@ +Description: Hounour SOURCE_DATE_EPOCH + Honour the SOURCE_DATE_EPOCH environment variable for copyright year. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: htop-2.0.1/configure.ac +=== +--- htop-2.0.1.orig/configure.ac htop-2.0.1/configure.ac +@@ -4,7 +4,8 @@ + AC_PREREQ(2.65) + AC_INIT([htop],[2.0.1],[his...@gobolinux.org]) + +-year=$(date +%Y) ++SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}" ++year=$(date -u -d "@$SOURCE_DATE_EPOCH" "+%Y" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+%Y" 2>/dev/null || date -u "+%Y") + + # The following two lines are required by hwloc scripts + AC_USE_SYSTEM_EXTENSIONS diff -Nru htop-2.0.1/debian/patches/series htop-2.0.1/debian/patches/series --- htop-2.0.1/debian/patches/series 2016-04-14 10:22:00.0 +0200 +++ htop-2.0.1/debian/patches/series 2016-04-29 14:45:00.0 +0200 @@ -1,3 +1,4 @@ 001-lintian-warning-fix-man-typo.patch 002-lintian-warning-fix-desktop-keywords.patch 601-openvz-new-ctid-vpid.patch +003-honour-source-date-epoch.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#822948: shotwell: please make the build reproducible (timestamps, umask)
Source: shotwell Version: 0.22.0-4 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps umask X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'shotwell' could not be built reproducibly. The attached patch fixes date handling (tar needs an English date in --mtime) and fixes files mode in the temp-source archive. Once applied, shotwell can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru shotwell-0.22.0/debian/changelog shotwell-0.22.0/debian/changelog --- shotwell-0.22.0/debian/changelog 2016-03-21 13:15:42.0 +0100 +++ shotwell-0.22.0/debian/changelog 2016-04-29 11:10:27.0 +0200 @@ -1,3 +1,10 @@ +shotwell (0.22.0-4.0~reproducible1) UNRELEASED; urgency=medium + + * Fix date handling for non-English locales + * Fix files mode in temp-source tarball + + -- Alexis Bienvenüe <p...@passoire.fr> Fri, 29 Apr 2016 08:57:37 +0200 + shotwell (0.22.0-4) unstable; urgency=medium * New debian/patches/0100-ios8.patch (Closes: #792016): diff -Nru shotwell-0.22.0/debian/rules shotwell-0.22.0/debian/rules --- shotwell-0.22.0/debian/rules 2015-11-03 11:57:14.0 +0100 +++ shotwell-0.22.0/debian/rules 2016-04-29 11:10:09.0 +0200 @@ -5,7 +5,7 @@ export VALAFLAGS:=$(foreach w,$(CPPFLAGS) $(CFLAGS) $(LDFLAGS),-X $(w)) CHDATE:=$(shell dpkg-parsechangelog --show-field=Date) -B_DATE:=$(shell date -d "$(CHDATE)") +B_DATE:=$(shell LC_ALL=C date --utc -d "$(CHDATE)") %: dh $@ @@ -21,8 +21,7 @@ mkdir -p debian/shotwell-dbg/usr/share/doc/shotwell-dbg/temp-source find -type f -name '*.c' -exec cp --parent '{}' debian/shotwell-dbg/usr/share/doc/shotwell-dbg/temp-source/ ';' cd debian/shotwell-dbg/usr/share/doc/shotwell-dbg && \ - find . -newermt '$(B_DATE)' -print0 | xargs -0r touch --no-dereference --date='$(B_DATE)' && \ - tar --mtime="$(B_DATE)" -cJf temp-source.tar.xz temp-source + tar --mode=go=rX,u+rw,a-s --mtime="$(B_DATE)" -cJf temp-source.tar.xz temp-source rm -fr debian/shotwell-dbg/usr/share/doc/shotwell-dbg/temp-source override_dh_installchangelogs: ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#822566: stk: please make the build reproducible (fileordering)
Source: stk Version: 4.5.0-3 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'stk' could not be built reproducibly. The attached patch fixes the order in which *.o files are merged. Once applied, stk can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru stk-4.5.0/debian/changelog stk-4.5.0/debian/changelog --- stk-4.5.0/debian/changelog 2015-12-11 02:39:07.0 +0100 +++ stk-4.5.0/debian/changelog 2016-04-25 14:30:42.0 +0200 @@ -1,3 +1,9 @@ +stk (4.5.0-3.0~reproducible1) unstable; urgency=medium + + * Sort *.o files when building shared lib, to get reproducible build. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 25 Apr 2016 14:30:42 +0200 + stk (4.5.0-3) unstable; urgency=medium * Use autotools_dev again to get up-to-date config.{sub,guess} diff -Nru stk-4.5.0/debian/patches/0007-Sort-o-files stk-4.5.0/debian/patches/0007-Sort-o-files --- stk-4.5.0/debian/patches/0007-Sort-o-files 1970-01-01 01:00:00.0 +0100 +++ stk-4.5.0/debian/patches/0007-Sort-o-files 2016-04-25 14:59:52.0 +0200 @@ -0,0 +1,83 @@ +Description: Sort *.o files + Fix the order in which *.o files are merged to build the shared lib, + to get reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: stk-4.5.0/src/Makefile.in +=== +--- stk-4.5.0.orig/src/Makefile.in stk-4.5.0/src/Makefile.in +@@ -90,7 +90,7 @@ $(STATICLIB) : $(OBJECTS) + + $(SHAREDLIB) : $(OBJECTS) + $(RM) -f $(@) $(SHAREDLIB).$(MAJOR) $(SHAREDLIB) +- $(CC) $(LDFLAGS) -fPIC @libflags@ $(OBJECT_PATH)/*.o $(LIBS) ++ $(CC) $(LDFLAGS) -fPIC @libflags@ `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBS) + $(LN) -s @sharedname@ $(SHAREDLIB) + + install-headers: +Index: stk-4.5.0/projects/demo/Makefile.in +=== +--- stk-4.5.0.orig/projects/demo/Makefile.in stk-4.5.0/projects/demo/Makefile.in +@@ -63,7 +63,7 @@ $(OBJECT_PATH)/.placeholder: + touch $(OBJECT_PATH)/.placeholder + + stk-demo: demo.cpp $(OBJECTS) +- $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o stk-demo demo.cpp $(OBJECT_PATH)/*.o $(LIBRARY) ++ $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o stk-demo demo.cpp `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBRARY) + + libdemo: demo.cpp + $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o demo utilities.cpp demo.cpp -L../../src -lstk $(LIBRARY) +Index: stk-4.5.0/projects/effects/Makefile.in +=== +--- stk-4.5.0.orig/projects/effects/Makefile.in stk-4.5.0/projects/effects/Makefile.in +@@ -52,7 +52,7 @@ $(OBJECT_PATH)/.placeholder: + touch $(OBJECT_PATH)/.placeholder + + effects: effects.cpp $(OBJECTS) +- $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o effects effects.cpp $(OBJECT_PATH)/*.o $(LIBRARY) ++ $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o effects effects.cpp `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBRARY) + + libeffects: effects.cpp + $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o effects effects.cpp -L../../src -lstk $(LIBRARY) +Index: stk-4.5.0/projects/eguitar/Makefile.in +=== +--- stk-4.5.0.orig/projects/eguitar/Makefile.in stk-4.5.0/projects/eguitar/Makefile.in +@@ -52,7 +52,7 @@ $(OBJECT_PATH)/.placeholder: + touch $(OBJECT_PATH)/.placeholder + + eguitar: eguitar.cpp $(OBJECTS) +- $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o eguitar eguitar.cpp $(OBJECT_PATH)/*.o $(LIBRARY) ++ $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o eguitar eguitar.cpp `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBRARY) + + libeguitar: eguitar.cpp + $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o eguitar utilities.cpp eguitar.cpp -L../../src -lstk $(LIBRARY) +Index: stk-4.5.0/projects/examples/Makefile.in +=== +--- stk-4.5.0.orig/projects/examples/Makefile.in stk-4.5.0/projects/examples/Makefile.in +@@ -57,7 +57,7 @@ strip : + strip $(PROGRAMS) + + audioprobe: @objects@ +- $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o audioprobe audioprobe.cpp $(OBJECT_PATH)/*.o $(LIBRARY) -lrtaudio ++ $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o audioprobe audioprobe.cpp `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBRARY) -lrtaudio + + midiprobe: + $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o midiprobe midiprobe.cpp $(LIBRARY) -lrtmidi +Index: stk-4.5.0/projects/ragamatic/Makefile.in +=== +--- stk-4.5.0.orig/projects/ragamatic/Makefile.in stk-4.5.0/projects/ragamatic/Makefile.in +@@ -53,7 +53,7 @@ $(OBJECT_PATH)/.placeholder: + touch $(OBJECT_PATH)/.placeholder + + ragamat: ragamat.cpp $(OBJECTS) +- $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS
[Reproducible-builds] Bug#822561: xpa: please make the build reproducible (fileordering)
Source: xpa Version: 2.1.17-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'xpa' could not be built reproducibly. The attached patch fixes the order in which *.o files are merged. Once applied, xpa can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru xpa-2.1.17/debian/changelog xpa-2.1.17/debian/changelog --- xpa-2.1.17/debian/changelog 2015-10-20 10:21:34.0 +0200 +++ xpa-2.1.17/debian/changelog 2016-04-25 13:14:48.0 +0200 @@ -1,3 +1,9 @@ +xpa (2.1.17-1.0~reproducible1) unstable; urgency=medium + + * Build libs with fixed order *.o files, to ger reproducible build. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 25 Apr 2016 13:14:48 +0200 + xpa (2.1.17-1) unstable; urgency=low * New upstream version diff -Nru xpa-2.1.17/debian/patches/series xpa-2.1.17/debian/patches/series --- xpa-2.1.17/debian/patches/series 2015-10-20 10:08:03.0 +0200 +++ xpa-2.1.17/debian/patches/series 2016-04-25 13:13:06.0 +0200 @@ -2,3 +2,4 @@ fix_manpages.patch install_tclxpa.patch hardening.patch +sort_o_files diff -Nru xpa-2.1.17/debian/patches/sort_o_files xpa-2.1.17/debian/patches/sort_o_files --- xpa-2.1.17/debian/patches/sort_o_files 1970-01-01 01:00:00.0 +0100 +++ xpa-2.1.17/debian/patches/sort_o_files 2016-04-25 13:14:03.0 +0200 @@ -0,0 +1,24 @@ +Description: Sort *.o files + Build libs with fixed order *.o files, to ger reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- xpa-2.1.17.orig/Makefile.in xpa-2.1.17/Makefile.in +@@ -185,7 +185,7 @@ shlib: $(LIB) + rm -f lib$(PACKAGE).tmp/xt*.o; \ + rm -f lib$(PACKAGE).tmp/tcl*.o; \ + CC='$(CC)' CXX=$(CXX) \ +- ./mklib -ldflags "$(LDFLAGS)" -o $(PACKAGE) lib$(PACKAGE).tmp/*.o; \ ++ ./mklib -ldflags "$(LDFLAGS)" -o $(PACKAGE) `LC_ALL=C ls lib$(PACKAGE).tmp/*.o`; \ + rm -rf lib$(PACKAGE).tmp) + + mingw-dll: $(LIBOBJS) +@@ -204,7 +204,7 @@ shtclxpa: tclxpa + @(rm -rf $(PACKAGE)tmp; mkdir $(PACKAGE)tmp; \ + (cd $(PACKAGE)tmp && ar x ../libtclxpa.a); \ + CC='$(CC)' CXX='$(CXX)' \ +- ./mklib -ldflags "$(LDFLAGS)" -o tclxpa -L. -lxpa $(PACKAGE)tmp/*.o $(TCL_LIBS); \ ++ ./mklib -ldflags "$(LDFLAGS)" -o tclxpa -L. -lxpa `LC_ALL=C ls $(PACKAGE)tmp/*.o` $(TCL_LIBS); \ + rm -rf $(PACKAGE)tmp; ) + + diff: ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#822197: sphinx: please remove memory addresses from generated python documentation
Source: sphinx Version: 1.3.6-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Control: forwarded -1 https://github.com/sphinx-doc/sphinx/pull/2480 Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that the documentation generated by sphinx can include the memory address of some python objects that are used at build time. See for example, in file /usr/share/doc/python-kombu-doc/html/reference/kombu.transport.qpid.html from package python-kombu-doc_3.0.35-1.1 : Transport.Connection.Channel.codecs = {'base64': } This memory address is irrelevant in the documentation, and prevents the package building to be reproducible. The attached patch strips these memory addresses, leading to better reproducibility. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds diff -Nru sphinx-1.3.6/debian/changelog sphinx-1.3.6/debian/changelog --- sphinx-1.3.6/debian/changelog 2016-03-03 18:22:21.0 +0100 +++ sphinx-1.3.6/debian/changelog 2016-04-22 00:37:33.0 +0200 @@ -1,3 +1,9 @@ +sphinx (1.3.6-3) unstable; urgency=medium + + * Strips memory addresses from python documentation + + -- Alexis Bienvenüe <p...@passoire.fr> Fri, 22 Apr 2016 00:37:33 +0200 + sphinx (1.3.6-2) unstable; urgency=medium * Use implementation of jstest from Iain Lane in hope it succeeds on diff -Nru sphinx-1.3.6/debian/patches/remove_memaddress.patch sphinx-1.3.6/debian/patches/remove_memaddress.patch --- sphinx-1.3.6/debian/patches/remove_memaddress.patch 1970-01-01 01:00:00.0 +0100 +++ sphinx-1.3.6/debian/patches/remove_memaddress.patch 2016-04-22 00:36:39.0 +0200 @@ -0,0 +1,36 @@ +Description: Removes memory addresses from generated documentation + Some modules have eg. functions in some default arguments values, so + that sphinx generates signatures with some memory addresses in it. + This strips thes addresses. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: sphinx-1.3.6/sphinx/domains/python.py +=== +--- sphinx-1.3.6.orig/sphinx/domains/python.py sphinx-1.3.6/sphinx/domains/python.py +@@ -34,6 +34,8 @@ py_sig_re = re.compile( + )? $ # and nothing more + ''', re.VERBOSE) + ++# RE for memory address in variable description ++py_memaddr_re = re.compile(r' at 0x[0-9a-f]{4,}(?=>)') + + def _pseudo_parse_arglist(signode, arglist): + """"Parse" a list of arguments separated by commas. +@@ -62,6 +64,7 @@ def _pseudo_parse_arglist(signode, argli + ends_open += 1 + argument = argument[:-1].strip() + if argument: ++argument = py_memaddr_re.sub('',argument) + stack[-1] += addnodes.desc_parameter(argument, argument) + while ends_open: + stack.append(addnodes.desc_optional()) +@@ -220,6 +223,8 @@ class PyObject(ObjectDescription): + if retann: + signode += addnodes.desc_returns(retann, retann) + if anno: ++if anno[0] == '=': ++anno = py_memaddr_re.sub('',anno) + signode += addnodes.desc_annotation(' ' + anno, ' ' + anno) + return fullname, name_prefix + diff -Nru sphinx-1.3.6/debian/patches/series sphinx-1.3.6/debian/patches/series --- sphinx-1.3.6/debian/patches/series 2016-03-03 18:22:21.0 +0100 +++ sphinx-1.3.6/debian/patches/series 2016-04-22 00:34:39.0 +0200 @@ -7,3 +7,4 @@ reproducible_inventory.diff reproducible_js_locale.diff reproducible_searchindex.diff +remove_memaddress.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820932: fim: please make the build reproducible (fileordering, timestamps, locale)
Source: fim Version: 0.5~rc2-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering timestamps locale X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'fim' could not be built reproducibly. The attached patch fixes the order in which files are joined in header files, strips the build date from fim binary, makes the embeded vim2html script honour the SOURCE_DATE_EPOCH environment variable when building the documentation, and force language to be English when using bison to make a grammar that is going to be parsed using English keywords. Once applied, fim can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru fim-0.5~rc2/debian/changelog fim-0.5~rc2/debian/changelog --- fim-0.5~rc2/debian/changelog 2016-02-17 16:15:03.0 +0100 +++ fim-0.5~rc2/debian/changelog 2016-04-13 20:20:02.0 +0200 @@ -1,3 +1,13 @@ +fim (0.5~rc2-1.0~reproducible1) unstable; urgency=medium + + * Make the build reproducible : +- Set locale to C when sorting files +- Strip build date from fim binary +- makes embeded vim2html script honour SOURCE_DATE_EPOCH +- fix language problem when parsing bison output + + -- Alexis Bienvenüe <p...@passoire.fr> Tue, 12 Apr 2016 10:56:22 +0200 + fim (0.5~rc2-1) unstable; urgency=medium * New upstream release snapshot (Closes: #814673). diff -Nru fim-0.5~rc2/debian/patches/english_bison.patch fim-0.5~rc2/debian/patches/english_bison.patch --- fim-0.5~rc2/debian/patches/english_bison.patch 1970-01-01 01:00:00.0 +0100 +++ fim-0.5~rc2/debian/patches/english_bison.patch 2016-04-13 19:16:05.0 +0200 @@ -0,0 +1,17 @@ +Description: Call bison with LC_ALL=C + If the current language is not English, the terms that bison outputs + in src/yacc.tab.output won't be recognized by the yacc2grammar.awk + script, and the file grammar.h won't be built correctly. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- fim-0.5~rc2.orig/src/Makefile.am fim-0.5~rc2/src/Makefile.am +@@ -19,7 +19,7 @@ lex.yy.cc: lex.lex yacc.tab.cpp + $(SED) -i 's/^.*extern.*isatty.*int.*$$//g' $@ + + yacc.tab.hpp yacc.tab.cpp: yacc.ypp lex.lex +- $(YACC) $(YFLAGS) $< -o $@ ++ LC_ALL=C $(YACC) $(YFLAGS) $< -o $@ + + FIM_LIB_OBJECTS = yacc.tab.o lex.yy.o + diff -Nru fim-0.5~rc2/debian/patches/series fim-0.5~rc2/debian/patches/series --- fim-0.5~rc2/debian/patches/series 1970-01-01 01:00:00.0 +0100 +++ fim-0.5~rc2/debian/patches/series 2016-04-13 19:13:50.0 +0200 @@ -0,0 +1,4 @@ +sort_locale.patch +strip_build_date.petch +vim2html_SOURCE_DATE_EPOCH.patch +english_bison.patch diff -Nru fim-0.5~rc2/debian/patches/sort_locale.patch fim-0.5~rc2/debian/patches/sort_locale.patch --- fim-0.5~rc2/debian/patches/sort_locale.patch 1970-01-01 01:00:00.0 +0100 +++ fim-0.5~rc2/debian/patches/sort_locale.patch 2016-04-12 17:56:23.0 +0200 @@ -0,0 +1,21 @@ +Description: Sort locale + Set sort locale to C, so that the order is always the same. + This helps reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- fim-0.5~rc2.orig/src/Makefile.am fim-0.5~rc2/src/Makefile.am +@@ -46,10 +46,10 @@ SDLDevice.o: default_icon_byte_array.h + + # in the following : for some freebsd oddity, i was forced to replace ..0-9_]\+ with ..0-9_]* + version.h: ../config.h +- $(GREP) define $< | $(GREP) FIM | $(SORT) | $(SED) 's/^#//g;s/define //g;s/^\([A-Za-z0-9_]*\).*$$/+\1 /g;s/^/\"/g;s/$$/\"/g' > $@ ++ $(GREP) define $< | $(GREP) FIM | LC_ALL=C $(SORT) | $(SED) 's/^#//g;s/define //g;s/^\([A-Za-z0-9_]*\).*$$/+\1 /g;s/^/\"/g;s/$$/\"/g' > $@ + $(ECHO) "\"\n\"" >> $@ +- $(GREP) define $< | $(GREP) FIM.*'"' | $(SORT) | $(SED) 's/^#//g;s/define //g;s/^\([A-Za-z0-9_]*\) "\(.*\)"$$/"\1 = \\"\2\\"\\n"/g' >> $@ +- $(GREP) undef $< | $(GREP) FIM | $(SORT) | $(SED) 's/^#//g;s/.*undef //g;s/^\([A-Za-z0-9_]*\).\+$$/-\1 /g;s/^/\"/g;s/$$/\"/g' >> $@ ++ $(GREP) define $< | $(GREP) FIM.*'"' | LC_ALL=C $(SORT) | $(SED) 's/^#//g;s/define //g;s/^\([A-Za-z0-9_]*\) "\(.*\)"$$/"\1 = \\"\2\\"\\n"/g' >> $@ ++ $(GREP) undef $< | $(GREP) FIM | LC_ALL=C $(SORT) | $(SED) 's/^#//g;s/.*undef //g;s/^\([A-Za-z0-9_]*\).\+$$/-\1 /g;s/^/\"/g;s/$$/\"/g' >> $@ + $(ECHO) '"\n'CXXFLAGS=$(CXXFLAGS)'\n"' >> $@ + + help.cpp: fim.h diff -Nru fim-0.5~rc2/debian/patches/strip_build_date.petch fim-0.5~rc2/debian/patches/strip_build_date.petch --- fim-0.5~rc2/debian/patches/strip_build_date.petch 1970-01-01 01:00:00.0 +0100 +++ fim-0.5~rc2/debian/patches/strip_build_date.petch 2016-04-12 17:56:23.0
[Reproducible-builds] Bug#820895: sphinx: please extend SOURCE_DATE_EPOCH support
Source: sphinx Version: 1.3.6-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that, even though sphinx honours the SOURCE_DATE_EPOCH environment variable [2], this support is still incomplete: default copyright year and gettext don't use it. Various packages (eg. fabric, guidata) that build-depend on sphinx use a conf.py that sets the copyright year from current time, like copyright = u'2006-%s, Author' % time.strftime('%Y') This also breaks reproducibility of the building process. The attached patch extends the SOURCE_DATE_EPOCH support in copyright year and gettext, and corrects copyright strings that does not corresponds to SOURCE_DATE_EPOCH, so that affected packages can be built reproducibly without any change. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru sphinx-1.3.6/debian/changelog sphinx-1.3.6/debian/changelog --- sphinx-1.3.6/debian/changelog 2016-03-03 18:22:21.0 +0100 +++ sphinx-1.3.6/debian/changelog 2016-04-13 14:05:28.0 +0200 @@ -1,3 +1,9 @@ +sphinx (1.3.6-2.0~reproducible1) unstable; urgency=medium + + * Extends SOURCE_DATE_EPOCH support to copyright year. + + -- Alexis Bienvenüe <p...@passoire.fr> Wed, 13 Apr 2016 09:45:47 +0200 + sphinx (1.3.6-2) unstable; urgency=medium * Use implementation of jstest from Iain Lane in hope it succeeds on diff -Nru sphinx-1.3.6/debian/patches/correct_copyright_year_from_source_date_epoch.patch sphinx-1.3.6/debian/patches/correct_copyright_year_from_source_date_epoch.patch --- sphinx-1.3.6/debian/patches/correct_copyright_year_from_source_date_epoch.patch 1970-01-01 01:00:00.0 +0100 +++ sphinx-1.3.6/debian/patches/correct_copyright_year_from_source_date_epoch.patch 2016-04-13 14:36:48.0 +0200 @@ -0,0 +1,45 @@ +Description: Correct copyright year from SOURCE_DATE_EPOCH + If the environment variable SOURCE_DATE_EPOCH is set, use it to correct + uncoherent copyright years that are set using strftime, which don't honour + SOURCE_DATE_EPOCH. + This helps reproducibility of packages that build-depends on sphinx. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: sphinx-1.3.6/sphinx/config.py +=== +--- sphinx-1.3.6.orig/sphinx/config.py sphinx-1.3.6/sphinx/config.py +@@ -10,14 +10,14 @@ + """ + + import re +-from os import path, environ ++from os import path, environ, getenv + import shlex + + from six import PY3, iteritems, string_types, binary_type, integer_types + + from sphinx.errors import ConfigError + from sphinx.locale import l_ +-from sphinx.util.osutil import make_filename, cd ++from sphinx.util.osutil import make_filename, cd, ustrftime + from sphinx.util.pycompat import execfile_ + + nonascii_re = re.compile(br'[\x80-\xff]') +@@ -286,6 +286,16 @@ class Config(object): + self.setup = config.get('setup', None) + self.extensions = config.get('extensions', []) + ++# correct values of copyright year that are not coherent with ++# the SOURCE_DATE_EPOCH environment variable: ++source_date_epoch = getenv('SOURCE_DATE_EPOCH') ++if source_date_epoch is not None: ++for k in ['copyright','epub_copyright']: ++if k in config: ++config[k] = re.sub('^((\d{4}-)?)(\d{4})(?=[ ,])', ++ '\g<1>%s' % ustrftime('%Y'), ++ config[k]) ++ + def check_types(self, warn): + # check all values for deviation from the default value's type, since + # that can result in TypeErrors all over the place diff -Nru sphinx-1.3.6/debian/patches/series sphinx-1.3.6/debian/patches/series --- sphinx-1.3.6/debian/patches/series 2016-03-03 18:22:21.0 +0100 +++ sphinx-1.3.6/debian/patches/series 2016-04-13 14:02:26.0 +0200 @@ -7,3 +7,4 @@ reproducible_inventory.diff reproducible_js_locale.diff reproducible_searchindex.diff +correct_copyright_year_from_source_date_epoch.patch diff -Nru sphinx-1.3.6/debian/patches/source_date_epoch.diff sphinx-1.3.6/debian/patches/source_date_epoch.diff --- sphinx-1.3.6/debian/patches/source_date_epoch.diff 2016-03-03 18:22:21.0 +0100 +++ sphinx-1.3.6/debian/patches/source_date_epoch.diff 2016-04-13 10:03:43.0 +0200 @@ -11,10 +11,10 @@ sphinx/util/osutil.py | 15 +++ 1 file changed, 11 insertions(+), 4 deletions(-) -diff --git a/sphinx/util/osutil.py b/sphinx/util/osutil.py -index 70d5cf5..e1d29a9 100644 a/sphinx/util/osutil.py -+++ b/sphinx/util/osutil.py +Index: sphinx-1.3.6/sphinx/util/osutil.py +=
[Reproducible-builds] Bug#820869: pyexiv2: please make the build reproducible (timestamps)
Source: pyexiv2 Version: 0.3.2-8 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'pyexiv2' could not be built reproducibly. The attached patch honours the SOURCE_DATE_EPOCH environment variable through the ustrftime function, to get a reproducible copyright year. Once applied, pyexiv2 can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru pyexiv2-0.3.2/debian/changelog pyexiv2-0.3.2/debian/changelog --- pyexiv2-0.3.2/debian/changelog 2015-04-28 11:26:28.0 +0200 +++ pyexiv2-0.3.2/debian/changelog 2016-04-13 11:31:43.0 +0200 @@ -1,3 +1,10 @@ +pyexiv2 (0.3.2-8.0~reproducible1) unstable; urgency=medium + + * Get copyright year from ustrftime for documentation, to make the build +reproducible. + + -- Alexis Bienvenüe <p...@passoire.fr> Wed, 13 Apr 2016 11:31:43 +0200 + pyexiv2 (0.3.2-8) unstable; urgency=medium * Adjust Vcs-Svn URL. diff -Nru pyexiv2-0.3.2/debian/patches/series pyexiv2-0.3.2/debian/patches/series --- pyexiv2-0.3.2/debian/patches/series 2015-04-28 11:22:29.0 +0200 +++ pyexiv2-0.3.2/debian/patches/series 2016-04-13 10:58:31.0 +0200 @@ -1 +1,2 @@ remove-date.patch +use_source_date_for_copyright.patch diff -Nru pyexiv2-0.3.2/debian/patches/use_source_date_for_copyright.patch pyexiv2-0.3.2/debian/patches/use_source_date_for_copyright.patch --- pyexiv2-0.3.2/debian/patches/use_source_date_for_copyright.patch 1970-01-01 01:00:00.0 +0100 +++ pyexiv2-0.3.2/debian/patches/use_source_date_for_copyright.patch 2016-04-13 11:00:34.0 +0200 @@ -0,0 +1,25 @@ +Description: Use source date for copyright year + To get copyright year, use ustrftime, which honours SOURCE_DATE_EPOCH. + This makes the build reproducible. + See https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- pyexiv2-0.3.2.orig/doc/conf.py pyexiv2-0.3.2/doc/conf.py +@@ -14,6 +14,7 @@ + import sys, os + import time + import pyexiv2 ++from sphinx.util.osutil import ustrftime + + # If extensions (or modules to document with autodoc) are in another directory, + # add these directories to sys.path here. If the directory is relative to the +@@ -40,7 +41,7 @@ master_doc = 'index' + + # General information about the project. + project = u'pyexiv2' +-copyright = u'2006-%s, Olivier Tilloy' % time.strftime('%Y') ++copyright = u'2006-%s, Olivier Tilloy' % ustrftime('%Y') + + # The version info for the project you're documenting, acts as replacement for + # |version| and |release|, also used in various other places throughout the ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820815: freefem++: please make the build reproducible (fileordering, timestamps)
Source: freefem++ Version: 3.45-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'freefem++' could not be built reproducibly. The attached patch fixes the order in which files are included in the edp files, and honours SOURCE_DATE_EPOCH [2] when using the build date. Once applied, freefem++ can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds [2]: https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru freefem++-3.45/debian/changelog freefem++-3.45/debian/changelog --- freefem++-3.45/debian/changelog 2016-03-19 23:24:48.0 +0100 +++ freefem++-3.45/debian/changelog 2016-04-12 19:10:09.0 +0200 @@ -1,3 +1,10 @@ +freefem++ (3.45-1.0~reproducible1) unstable; urgency=medium + + * Set ls locale in Makefiles, for reproducible order. + * Honours SOURCE_DATE_EPOCH to date the build. + + -- Alexis Bienvenüe <p...@passoire.fr> Tue, 12 Apr 2016 19:10:09 +0200 + freefem++ (3.45-1) unstable; urgency=medium * Imported Upstream version 3.45 diff -Nru freefem++-3.45/debian/patches/build_date_from_SOURCE_DATE_EPOCH.patch freefem++-3.45/debian/patches/build_date_from_SOURCE_DATE_EPOCH.patch --- freefem++-3.45/debian/patches/build_date_from_SOURCE_DATE_EPOCH.patch 1970-01-01 01:00:00.0 +0100 +++ freefem++-3.45/debian/patches/build_date_from_SOURCE_DATE_EPOCH.patch 2016-04-12 18:49:38.0 +0200 @@ -0,0 +1,55 @@ +Description: Get build date from SOURCE_DATE_EPOCH + Get build date from SOURCE_DATE_EPOCH (if set), to make the build + reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: freefem++-3.45/configure.ac +=== +--- freefem++-3.45.orig/configure.ac freefem++-3.45/configure.ac +@@ -128,8 +128,12 @@ m4_define([TOOL_DISABLE], + TOOL_PARAMETERS($1,$2,$3) + ]) + ++SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}" ++FF_DATE=$(date -u -d "@$SOURCE_DATE_EPOCH" "+%Y-%m-%d" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+%Y-%m-%d" 2>/dev/null || date -u "+%Y-%m-%d") ++AC_SUBST(FF_DATE,$FF_DATE) ++ + ff_HOSTARCH_pastix= +-echo "# Build with freefem++ with ./configure " `date` >$ff_where_lib_conf ++echo "# Build with freefem++ with ./configure $FF_DATE" >$ff_where_lib_conf + # To allow anonymous CVS version to contain a "./configure" and + # Makefiles + +@@ -600,7 +604,6 @@ ff_prefix_dir="${prefix}/lib/ff++/$VERSI + AC_MSG_CHECKING(prefix dir freefem++ ) + AC_MSG_RESULT($ff_prefix_dir) + +-FF_DATE=`date` + AC_DEFINE_UNQUOTED(VersionFreeFemDate,"$FF_DATE",FreeFem++ build date) + AC_DEFINE_UNQUOTED(FF_PREFIX_DIR,"${ff_prefix_dir}",FreeFem prefix dir) + AC_SUBST(ff_prefix_dir,$ff_prefix_dir) +Index: freefem++-3.45/src/fflib/Makefile.am +=== +--- freefem++-3.45.orig/src/fflib/Makefile.am freefem++-3.45/src/fflib/Makefile.am +@@ -64,5 +64,5 @@ AM_CPPFLAGS=-I$(srcdir)/../lglib -I$(src + EXTRA_DIST=strversionnumber.m4 + BUILT_SOURCES=strversionnumber.cpp + strversionnumber.cpp: $(libff_a_SOURCES2) ../../configure +- m4 -DVersionFreeFemDate="`date`" strversionnumber.m4 > $@ ++ m4 -DVersionFreeFemDate="@FF_DATE@" strversionnumber.m4 > $@ + FORCE: +Index: freefem++-3.45/src/medit/Makefile.am +=== +--- freefem++-3.45.orig/src/medit/Makefile.am freefem++-3.45/src/medit/Makefile.am +@@ -17,7 +17,7 @@ LDADD=picking.$(OBJEXT) ../libMesh/libMe + AM_CPPFLAGS=-I$(srcdir)/../libMesh + BUILT_SOURCES=compil.date + compil.date: $(ffmedit_SOURCES) +- echo "#define COMPIL " '"' `date` '(with ff++ $(VERSION))''"' > compil.date ++ echo "#define COMPIL " '" @FF_DATE@ (with ff++ $(VERSION))"' > compil.date + #.PHONY: compil.date + + # ALH - during a parallel make, we should make sure that picking.o is not used before being made by a different diff -Nru freefem++-3.45/debian/patches/ls-locale.patch freefem++-3.45/debian/patches/ls-locale.patch --- freefem++-3.45/debian/patches/ls-locale.patch 1970-01-01 01:00:00.0 +0100 +++ freefem++-3.45/debian/patches/ls-locale.patch 2016-04-12 17:57:07.0 +0200 @@ -0,0 +1,85 @@ +Description: Set ls locale to C + Set ls locale to C, so that the order is always the same, whatever the + current locale is. This makes the build reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- freefem++-3.45.orig/examples++-3d/Makefile.am freefem++-3.45/examples++-3d/Makefile.am +@@ -16,7 +
[Reproducible-builds] Bug#820809: wsdl4j: please make the build reproducible (environment)
Source: wsdl4j Version: 1.6.3-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'wsdl4j' could not be built reproducibly. The attached patch use a plain text representation of the copyright character in the build.xml file, to avoid encoding issues with javadoc. Once applied, wsdl4j can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru wsdl4j-1.6.3/debian/patches/javadoc_encoding.patch wsdl4j-1.6.3/debian/patches/javadoc_encoding.patch --- wsdl4j-1.6.3/debian/patches/javadoc_encoding.patch 1970-01-01 01:00:00.0 +0100 +++ wsdl4j-1.6.3/debian/patches/javadoc_encoding.patch 2016-04-12 17:11:02.0 +0200 @@ -0,0 +1,18 @@ +Description: Fix javadoc encoding + Don't use UTF-8 characters in build.xml, to avoid encoding issues when + using javadoc and make the build reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: wsdl4j-1.6.3/build.xml +=== +--- wsdl4j-1.6.3.orig/build.xml wsdl4j-1.6.3/build.xml +@@ -193,7 +193,7 @@ Author: + windowtitle="${Name} API" + doctitle="${Name}" + breakiterator="yes" +- bottom="Copyright ${year} IBM. All Rights Reserved." ++ bottom="Copyright (c) ${year} IBM. All Rights Reserved." + /> + + diff -Nru wsdl4j-1.6.3/debian/patches/series wsdl4j-1.6.3/debian/patches/series --- wsdl4j-1.6.3/debian/patches/series 1970-01-01 01:00:00.0 +0100 +++ wsdl4j-1.6.3/debian/patches/series 2016-04-12 16:27:06.0 +0200 @@ -0,0 +1 @@ +javadoc_encoding.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820742: gmic: please make the build reproducible (timestamps)
Source: gmic Version: 1.6.8-3 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'gmic' could not be built reproducibly. The attached patch strips the build date from help messages. Once applied, gmic can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru gmic-1.6.8/debian/changelog gmic-1.6.8/debian/changelog --- gmic-1.6.8/debian/changelog 2016-01-16 17:27:29.0 +0100 +++ gmic-1.6.8/debian/changelog 2016-04-11 23:07:20.0 +0200 @@ -1,3 +1,9 @@ +gmic (1.6.8-3.0~reproducible1) unstable; urgency=medium + + * Strip build date from help output, to make the build reproducible. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 11 Apr 2016 23:07:20 +0200 + gmic (1.6.8-3) unstable; urgency=medium * [0e17dac] Add hardening flags. diff -Nru gmic-1.6.8/debian/patches/series gmic-1.6.8/debian/patches/series --- gmic-1.6.8/debian/patches/series 2016-01-16 17:27:29.0 +0100 +++ gmic-1.6.8/debian/patches/series 2016-04-11 23:05:34.0 +0200 @@ -1,2 +1,3 @@ disable-optimization-in-upstream-makefile ldconfig-symlink-referencing-wrong-file +strip_build_date diff -Nru gmic-1.6.8/debian/patches/strip_build_date gmic-1.6.8/debian/patches/strip_build_date --- gmic-1.6.8/debian/patches/strip_build_date 1970-01-01 01:00:00.0 +0100 +++ gmic-1.6.8/debian/patches/strip_build_date 2016-04-11 23:06:32.0 +0200 @@ -0,0 +1,27 @@ +Description: Strip build date + Strip build date and time from help outputs, to make the build reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- gmic-1.6.8.orig/src/CImg.h gmic-1.6.8/src/CImg.h +@@ -5175,7 +5175,7 @@ namespace cimg_library_suffixed { + if (usage) { + std::fprintf(cimg::output(),"\n %s%s%s",cimg::t_red,cimg::basename(argv[0]),cimg::t_normal); + std::fprintf(cimg::output(),": %s",usage); +- std::fprintf(cimg::output()," (%s, %s)\n\n",__DATE__,__TIME__); ++ std::fprintf(cimg::output(),"\n\n"); + } + if (defaut) std::fprintf(cimg::output(),"%s\n",defaut); + } +@@ -5253,9 +5253,9 @@ namespace cimg_library_suffixed { +\note Output is done on the default output stream. + **/ + inline void info() { +- std::fprintf(cimg::output(),"\n %s%sCImg Library %u.%u.%u%s, compiled %s ( %s ) with the following flags:\n\n", ++ std::fprintf(cimg::output(),"\n %s%sCImg Library %u.%u.%u%s, compiled with the following flags:\n\n", +cimg::t_red,cimg::t_bold,cimg_version/100,(cimg_version/10)%10,cimg_version%10, +- cimg::t_normal,__DATE__,__TIME__); ++ cimg::t_normal); + + std::fprintf(cimg::output()," > Operating System: %s%-13s%s %s('cimg_OS'=%d)%s\n", +cimg::t_bold, ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820741: sim4: please make the build reproducible (fileordering)
Source: sim4 Version: 0.0.20121010-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'sim4' could not be built reproducibly. The attached patch fixes the order in which C files are compiled. Once applied, sim4 can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru sim4-0.0.20121010/debian/changelog sim4-0.0.20121010/debian/changelog --- sim4-0.0.20121010/debian/changelog 2016-01-21 09:55:42.0 +0100 +++ sim4-0.0.20121010/debian/changelog 2016-04-12 00:08:43.0 +0200 @@ -1,3 +1,9 @@ +sim4 (0.0.20121010-2.0~reproducible1) unstable; urgency=medium + + * Sort c files for reproducible build + + -- Alexis Bienvenüe <p...@passoire.fr> Tue, 12 Apr 2016 00:08:43 +0200 + sim4 (0.0.20121010-2) unstable; urgency=medium * Moved debian/upstream to debian/upstream/metadata diff -Nru sim4-0.0.20121010/debian/patches/compilation_order.patch sim4-0.0.20121010/debian/patches/compilation_order.patch --- sim4-0.0.20121010/debian/patches/compilation_order.patch 1970-01-01 01:00:00.0 +0100 +++ sim4-0.0.20121010/debian/patches/compilation_order.patch 2016-04-12 00:08:00.0 +0200 @@ -0,0 +1,14 @@ +Description: Compilation order + Sort c files for compilation, to make the build reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- sim4-0.0.20121010.orig/Makefile sim4-0.0.20121010/Makefile +@@ -8,6 +8,6 @@ CFLAGS+=-g -O2 -Wall + LDLIBS=-lm + + sim4: +- $(CC) -o sim4 -I. $(CFLAGS) *.c $(LDLIBS) $(LDFLAGS) ++ $(CC) -o sim4 -I. $(CFLAGS) `LC_ALL=C ls *.c` $(LDLIBS) $(LDFLAGS) + clean: + rm -f sim4 *.o diff -Nru sim4-0.0.20121010/debian/patches/series sim4-0.0.20121010/debian/patches/series --- sim4-0.0.20121010/debian/patches/series 2013-09-12 11:00:31.0 +0200 +++ sim4-0.0.20121010/debian/patches/series 2016-04-12 00:06:59.0 +0200 @@ -1 +1,2 @@ hardening.patch +compilation_order.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820684: fop: please make the build reproducible (username, hostname, timestamps, locale)
Source: fop Version: 1:2.1-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: username hostname timestamps locale X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'fop' could not be built reproducibly. The attached patch fixes the encoding of documentation files, strips the timestamp from the fop-ttfreader man page, and removes hostname, username and OS info from MANIFEST files. Once applied, fop can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru fop-2.1/debian/changelog fop-2.1/debian/changelog --- fop-2.1/debian/changelog 2016-02-15 08:56:48.0 +0100 +++ fop-2.1/debian/changelog 2016-04-11 13:51:45.0 +0200 @@ -1,3 +1,11 @@ +fop (1:2.1-2.0~reproducible1) unstable; urgency=medium + + * Use d/changelog date for pod2man + * Strip user/host from MANIFEST + * Fix javadoc encoding + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 11 Apr 2016 11:48:50 +0200 + fop (1:2.1-2) unstable; urgency=medium [ Sylvestre Ledru ] diff -Nru fop-2.1/debian/patches/javadoc_encoding.patch fop-2.1/debian/patches/javadoc_encoding.patch --- fop-2.1/debian/patches/javadoc_encoding.patch 1970-01-01 01:00:00.0 +0100 +++ fop-2.1/debian/patches/javadoc_encoding.patch 2016-04-11 12:18:12.0 +0200 @@ -0,0 +1,16 @@ +Description: Set javadoc output encoding to UTF-8 + Set javadoc output encoding to UTF-8, to make the build reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: fop-2.1/build.xml +=== +--- fop-2.1.orig/build.xml fop-2.1/build.xml +@@ -963,6 +963,7 @@ NOTE: + windowtitle="${Name} ${version} API" + doctitle="Apache Formatting Objects Processor (FOP)" + bottom="Copyright ${year} The Apache Software Foundation. All Rights Reserved." ++ encoding="UTF-8" docencoding="UTF-8" charset="UTF-8" + overview="${src.dir}/java/org/apache/fop/overview.html" + maxmemory="256M"> + diff -Nru fop-2.1/debian/patches/series fop-2.1/debian/patches/series --- fop-2.1/debian/patches/series 2016-02-15 08:56:48.0 +0100 +++ fop-2.1/debian/patches/series 2016-04-11 12:07:35.0 +0200 @@ -2,3 +2,5 @@ fixbuildxml.patch replace-sRGB-profile.patch hyph_stacksize.patch +strip_user_host_from_manifest.patch +javadoc_encoding.patch diff -Nru fop-2.1/debian/patches/strip_user_host_from_manifest.patch fop-2.1/debian/patches/strip_user_host_from_manifest.patch --- fop-2.1/debian/patches/strip_user_host_from_manifest.patch 1970-01-01 01:00:00.0 +0100 +++ fop-2.1/debian/patches/strip_user_host_from_manifest.patch 2016-04-11 11:25:09.0 +0200 @@ -0,0 +1,81 @@ +Description: Strip user and host from MANIFEST + Strip user, host and os variables from MANIFEST.MF, to make the build + reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- fop-2.1.orig/build.xml fop-2.1/build.xml +@@ -461,7 +461,7 @@ list of possible build targets. + + + http://xmlgraphics.apache.org/fop/)"/> +- ++ + + + +@@ -483,7 +483,7 @@ list of possible build targets. + + + +- ++ + + + +@@ -508,7 +508,7 @@ list of possible build targets. + + + +- ++ + + + +@@ -638,7 +638,7 @@ list of possible build targets. + + + http://xmlgraphics.apache.org/fop/)"/> +- ++ + + + +@@ -673,7 +673,7 @@ list of possible build targets. + + + http://xmlgraphics.apache.org/fop/)"/> +- ++ + + + +@@ -1044,7 +1044,7 @@ NOTE: + + + +- ++ + + + +@@ -1348,7 +1348,7 @@ NOTE: + + + +- ++ + + + +--- fop-2.1.orig/examples/plan/build.xml fop-2.1/examples/plan/build.xml +@@ -133,7 +133,7 @@ + + + http://xmlgraphics.apache.org/fop/)"/> +- ++ + + + diff -Nru fop-2.1/debian/rules fop-2.1/debian/rules --- fop-2.1/debian/rules 2016-02-15 08:56:48.0 +0100 +++ fop-2.1/debian/rules 2016-04-11 11:28:53.0 +0200 @@ -37,7 +37,6 @@ pod2man --section=1 \ --release="Fop-TTFReader " \ - --date="`date`" \ debian/fop-ttfreader.pod > build/fop-ttfreader.1 install/fop-doc:: ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820668: sawfish: please make the build reproducible (fileordering, timestamps, username, hostname)
Source: sawfish Version: 1.11-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering timestamps username hostname X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'sawfish' could not be built reproducibly. The attached patch fixes the order in which files are included in the theme tgz files, strips hostname and username from the config.h file, and honours SOURCE_DATE_EPOCH when creating the config.h file. Once applied, sawfish can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru sawfish-1.11/debian/changelog sawfish-1.11/debian/changelog --- sawfish-1.11/debian/changelog 2016-03-19 18:05:17.0 +0100 +++ sawfish-1.11/debian/changelog 2016-04-11 10:30:04.0 +0200 @@ -1,3 +1,10 @@ +sawfish (1:1.11-2.0~reproducible1) unstable; urgency=medium + + * Removes timestamps, and fix files order, to make the build +reproducible. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 11 Apr 2016 10:30:04 +0200 + sawfish (1:1.11-2) unstable; urgency=low * Upload to unstable. diff -Nru sawfish-1.11/debian/patches/honours_SOURCE_DATE_EPOCH_for_build_h sawfish-1.11/debian/patches/honours_SOURCE_DATE_EPOCH_for_build_h --- sawfish-1.11/debian/patches/honours_SOURCE_DATE_EPOCH_for_build_h 1970-01-01 01:00:00.0 +0100 +++ sawfish-1.11/debian/patches/honours_SOURCE_DATE_EPOCH_for_build_h 2016-04-11 10:27:07.0 +0200 @@ -0,0 +1,32 @@ +Description: Honours SOURCE_DATE_EPOCH for build.h + Honours SOURCE_DATE_EPOCH when building build.h, to get reproducible build. + See https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- sawfish-1.11.orig/build-info sawfish-1.11/build-info +@@ -20,8 +20,11 @@ localedir="$5" + sys_name="$HOSTNAME.$LOCALDOMAIN" + user_name="$LOGNAME" + +-build_date="`date +'%a %b %e %Y'`" +-build_time="`date +'%T %Z'`" ++SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}" ++DATE_FMT="%Y-%m-%d" ++build_date=$(date -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u "+$DATE_FMT") ++DATE_FMT="%T %Z" ++build_time=$(date -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u "+$DATE_FMT") + + cat >src/build.h <src/build.h < -Index: sawfish.git/themes/Makefile.in +Index: sawfish-1.11/themes/Makefile.in === sawfish.git.orig/themes/Makefile.in 2016-02-07 14:01:21.138285458 + -+++ sawfish.git/themes/Makefile.in 2016-02-08 20:39:18.072356084 + +--- sawfish-1.11.orig/themes/Makefile.in sawfish-1.11/themes/Makefile.in @@ -48,7 +48,7 @@ install : all installdirs rm -rf $(DESTDIR)$(themedir)/$$d; \ for f in $(srcdir)/$$d/*; do \ if [ $$f != $(srcdir)/$$d/CVS ]; then \ - ( cd $(srcdir) && tar czf $$d.tar.gz $$d/* ) ; \ -+ ( cd $(srcdir) && GZIP=-9n tar czf $$d.tar.gz $$d/* ) ; \ ++ ( cd $(srcdir) && GZIP=-9n tar czf $$d.tar.gz `LC_ALL=C ls $$d/*` ) ; \ $(INSTALL_DATA) $$d.tar.gz $(DESTDIR)$(themedir)/$$d.tar.gz; \ fi \ done \ diff -Nru sawfish-1.11/debian/patches/series sawfish-1.11/debian/patches/series --- sawfish-1.11/debian/patches/series 2016-03-05 01:46:54.0 +0100 +++ sawfish-1.11/debian/patches/series 2016-04-11 10:25:57.0 +0200 @@ -4,3 +4,4 @@ limit-max-dimensions.patch make-build-reproducible fix-desktop-entry-lacks-keywords-entry +honours_SOURCE_DATE_EPOCH_for_build_h ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820603: viking: please make the build reproducible (fileordering)
Source: viking Version: 1.6-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Control: forwarded -1 https://github.com/viking-gps/viking/pull/13 Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'viking' could not be built reproducibly. The attached patch fixes icon headers inclusion order. Once applied, viking can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru viking-1.6/debian/patches/series viking-1.6/debian/patches/series --- viking-1.6/debian/patches/series 2015-09-15 23:14:43.0 +0200 +++ viking-1.6/debian/patches/series 2016-04-10 14:10:21.0 +0200 @@ -2,3 +2,4 @@ 0003-Add-missing-lz.patch no_doc-dir.patch fix-IT_PROG_INTLTOOL-and-AM_GNU_GETTEXT-conflict.patch +sort-icon-headers.patch diff -Nru viking-1.6/debian/patches/sort-icon-headers.patch viking-1.6/debian/patches/sort-icon-headers.patch --- viking-1.6/debian/patches/sort-icon-headers.patch 1970-01-01 01:00:00.0 +0100 +++ viking-1.6/debian/patches/sort-icon-headers.patch 2016-04-10 14:22:01.0 +0200 @@ -0,0 +1,17 @@ +Description: Sort icon headers + Sort icon headers to build src/cons/icons.c, to get reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: viking-1.6/src/icons/Makefile.am +=== +--- viking-1.6.orig/src/icons/Makefile.am viking-1.6/src/icons/Makefile.am +@@ -267,7 +267,7 @@ icons.h: $(ALL_ICONS_HEADER) + icons.c: $(ALL_ICONS_HEADER) + echo "/* Generated file */" > $@ + echo "#include " >> $@ +- for file in *_pixmap.h ; do echo "#include \"$$file\"" >> $@ ; done ++ for file in $(ALL_ICONS_HEADER) ; do echo "#include \"$$file\"" >> $@ ; done + + $(BUILT_SOURCES): $(srcdir)/Makefile.am + ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820522: gtkspell: please make the build reproducible (environment)
Source: gtkspell Version: 2.0.16-1.1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'gtkspell' could not be built reproducibly. The attached patch fixes the SHELL used in the examples/Makefile to /bin/sh instead of current one. Once applied, gtkspell can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru gtkspell-2.0.16/debian/changelog gtkspell-2.0.16/debian/changelog --- gtkspell-2.0.16/debian/changelog 2014-08-30 12:09:50.0 +0200 +++ gtkspell-2.0.16/debian/changelog 2016-04-09 14:05:56.0 +0200 @@ -1,3 +1,9 @@ +gtkspell (2.0.16-1.1.0~reproducible1) unstable; urgency=medium + + * Set the examples SHELL to sh, to get a reproducible build. + + -- Alexis Bienvenüe <p...@passoire.fr> Sat, 09 Apr 2016 14:05:56 +0200 + gtkspell (2.0.16-1.1) unstable; urgency=low * Non-maintainer upload. diff -Nru gtkspell-2.0.16/debian/patches/series gtkspell-2.0.16/debian/patches/series --- gtkspell-2.0.16/debian/patches/series 1970-01-01 01:00:00.0 +0100 +++ gtkspell-2.0.16/debian/patches/series 2016-04-09 14:04:04.0 +0200 @@ -0,0 +1 @@ +set_examples_shell_to_sh.patch diff -Nru gtkspell-2.0.16/debian/patches/set_examples_shell_to_sh.patch gtkspell-2.0.16/debian/patches/set_examples_shell_to_sh.patch --- gtkspell-2.0.16/debian/patches/set_examples_shell_to_sh.patch 1970-01-01 01:00:00.0 +0100 +++ gtkspell-2.0.16/debian/patches/set_examples_shell_to_sh.patch 2016-04-09 14:05:09.0 +0200 @@ -0,0 +1,12 @@ +Description: Set examples SHELL to sh + Set the examples/Makefile's SHELL to /bin/sh whatever the current SHELL is + to get the build reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- gtkspell-2.0.16.orig/examples/Makefile.am gtkspell-2.0.16/examples/Makefile.am +@@ -4,3 +4,4 @@ INCLUDES = -I$(top_srcdir) + LDADD = @GTKSPELL_LIBS@ $(top_builddir)/gtkspell/libgtkspell.la + simple_SOURCES = simple.c + advanced_SOURCES = advanced.c ++SHELL=/bin/sh ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820457: recode: please make the build reproducible (timestamps)
Source: recode Version: 3.6-22 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'recode' could not be built reproducibly. The attached patch makes recode building using a recent version of help2man (from the debian package) instead of the old one shipped with the recode sources. This version honours the SOURCE_DATE_EPOCH environment variable, so that the date used in the documentation is taken from the last debian/changelog entry. Once applied, recode can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru recode-3.6/debian/changelog recode-3.6/debian/changelog --- recode-3.6/debian/changelog 2015-08-26 12:07:35.0 +0200 +++ recode-3.6/debian/changelog 2016-04-08 18:12:42.0 +0200 @@ -1,3 +1,9 @@ +recode (3.6-22.0~reproducible1) unstable; urgency=medium + + * Uses packaged help2man instead of old version shipped with the sources. + + -- Alexis Bienvenüe <p...@passoire.fr> Fri, 08 Apr 2016 18:12:42 +0200 + recode (3.6-22) unstable; urgency=medium * Change doc/mdate-sh to use TZ=UTC. diff -Nru recode-3.6/debian/control recode-3.6/debian/control --- recode-3.6/debian/control 2013-10-12 17:48:01.0 +0200 +++ recode-3.6/debian/control 2016-04-08 17:44:02.0 +0200 @@ -3,7 +3,7 @@ Priority: optional Maintainer: Santiago Vila <sanv...@debian.org> Standards-Version: 3.9.4 -Build-Depends: debhelper (>= 9), gettext, texinfo +Build-Depends: debhelper (>= 9), gettext, texinfo, help2man Package: recode Architecture: any diff -Nru recode-3.6/debian/patches/14-use-packaged-help2man recode-3.6/debian/patches/14-use-packaged-help2man --- recode-3.6/debian/patches/14-use-packaged-help2man 1970-01-01 01:00:00.0 +0100 +++ recode-3.6/debian/patches/14-use-packaged-help2man 2016-04-08 17:58:00.0 +0200 @@ -0,0 +1,58 @@ +Description: Use packaged help2man + Use packaged help2man instead of the outdated copy included in the + sources. This allows reproducibility, since help2man honours + SOURCE_DATE_EPOCH since version 1.47.1. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: recode-3.6/doc/Makefile.am +=== +--- recode-3.6.orig/doc/Makefile.am recode-3.6/doc/Makefile.am +@@ -20,7 +20,7 @@ AUTOMAKE_OPTIONS = gnits + info_TEXINFOS = recode.texi + MAKEINFO = LANG= LANGUAGE= @MAKEINFO@ + +-EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 help2man Makemore \ ++EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 Makemore \ + tables.py + + MOSTLYCLEANFILES = recode.ops +Index: recode-3.6/src/Makefile.am +=== +--- recode-3.6.orig/src/Makefile.am recode-3.6/src/Makefile.am +@@ -102,7 +102,7 @@ $(srcdir)/merged.c: mergelex.py $(L_STEP + $(srcdir)/recode.1: recode + @if test -r $@ && test ! -w $@; then \ + echo "WARNING: Page \`$@' read only, not updated"; \ +- elif $(PERL) $(top_srcdir)/doc/help2man --output=$@ ./recode; then \ ++ elif help2man --output=$@ ./recode; then \ + echo "Page \`$@' has been updated"; \ + else \ + echo "WARNING: Page \`$@' has *not* been updated."; \ +Index: recode-3.6/src/Makefile.in +=== +--- recode-3.6.orig/src/Makefile.in recode-3.6/src/Makefile.in +@@ -819,7 +819,7 @@ $(srcdir)/merged.c: mergelex.py $(L_STEP + $(srcdir)/recode.1: recode + @if test -r $@ && test ! -w $@; then \ + echo "WARNING: Page \`$@' read only, not updated"; \ +- elif $(PERL) $(top_srcdir)/doc/help2man --name="converts files between character sets" --output=$@ ./recode; then \ ++ elif help2man --name="converts files between character sets" --output=$@ ./recode; then \ + echo "Page \`$@' has been updated"; \ + else \ + echo "WARNING: Page \`$@' has *not* been updated."; \ +Index: recode-3.6/doc/Makefile.in +=== +--- recode-3.6.orig/doc/Makefile.in recode-3.6/doc/Makefile.in +@@ -106,7 +106,7 @@ AUTOMAKE_OPTIONS = gnits + info_TEXINFOS = recode.texi + MAKEINFO = LANG= LANGUAGE= @MAKEINFO@ + +-EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 help2man Makemore tables.py ++EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 Makemore tables.py + + + MOSTLYCLEANFILES = recode.ops diff -Nru recode-3.6/debian/patches/series recode-3.6/debian/patches/series --- recode-3.6/debian/patches/series 2015-08-26 01:33:14.0 +0200 +++ recode-3.6/debian/patches/series 2016-04-08 17:30:43.0 +0200 @@ -1
[Reproducible-builds] Bug#820435: asciidoctor: please honour SOURCE_DATE_EPOCH
Source: asciidoctor Version: 1.5.4-1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that several packages (like ruby-build) use asciidoctor in their building process, resulting in timestamps in man files that break reproducibility. To solve this kind of issues, it would be nice to have asciidoctor support the SOURCE_DATE_EPOCH environment variable [2]. See the attached patch for a proposed solution. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru asciidoctor-1.5.4/debian/changelog asciidoctor-1.5.4/debian/changelog --- asciidoctor-1.5.4/debian/changelog 2016-02-29 20:11:19.0 +0100 +++ asciidoctor-1.5.4/debian/changelog 2016-04-08 11:20:04.0 +0200 @@ -1,3 +1,10 @@ +asciidoctor (1.5.4-1.0~reproducible1) unstable; urgency=medium + + * Honour SOURCE_DATE_EPOCH to make build of packages using ronn +reproducible. + + -- Alexis Bienvenüe <p...@passoire.fr> Fri, 08 Apr 2016 11:20:04 +0200 + asciidoctor (1.5.4-1) unstable; urgency=medium * Team upload diff -Nru asciidoctor-1.5.4/debian/patches/honour_SOURCE_DATE_EPOCH.patch asciidoctor-1.5.4/debian/patches/honour_SOURCE_DATE_EPOCH.patch --- asciidoctor-1.5.4/debian/patches/honour_SOURCE_DATE_EPOCH.patch 1970-01-01 01:00:00.0 +0100 +++ asciidoctor-1.5.4/debian/patches/honour_SOURCE_DATE_EPOCH.patch 2016-04-08 12:14:52.0 +0200 @@ -0,0 +1,40 @@ +Description: Honour the SOURCE_DATE_EPOCH environment variable + Honour the SOURCE_DATE_EPOCH environment variable, so that output documents' + timestamp is set to last debian/changelog entry when building packages that + use asciidoctor in their building process. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: asciidoctor-1.5.4/lib/asciidoctor/document.rb +=== +--- asciidoctor-1.5.4.orig/lib/asciidoctor/document.rb asciidoctor-1.5.4/lib/asciidoctor/document.rb +@@ -401,7 +401,11 @@ class Document < AbstractBlock + #attrs['infile'] = attrs['docfile'] + + # dynamic intrinstic attribute values +- now = ::Time.now ++ if ENV['SOURCE_DATE_EPOCH'].nil? ++now = ::Time.now ++ else ++now = ::Time.at(ENV['SOURCE_DATE_EPOCH'].to_i).gmtime ++ end + localdate = (attrs['localdate'] ||= now.strftime('%Y-%m-%d')) + unless (localtime = attrs['localtime']) + begin +Index: asciidoctor-1.5.4/lib/asciidoctor.rb +=== +--- asciidoctor-1.5.4.orig/lib/asciidoctor.rb asciidoctor-1.5.4/lib/asciidoctor.rb +@@ -1308,7 +1308,11 @@ module Asciidoctor + if ::File === input + # TODO cli checks if input path can be read and is file, but might want to add check to API + input_path = ::File.expand_path input.path +- input_mtime = input.mtime ++ if ENV['SOURCE_DATE_EPOCH'].nil? ++input_mtime = input.mtime ++ else ++input_mtime = ::Time.at(ENV['SOURCE_DATE_EPOCH'].to_i).gmtime ++ end + lines = input.readlines + # hold off on setting infile and indir until we get a better sense of their purpose + attributes['docfile'] = input_path diff -Nru asciidoctor-1.5.4/debian/patches/series asciidoctor-1.5.4/debian/patches/series --- asciidoctor-1.5.4/debian/patches/series 2016-02-29 19:48:47.0 +0100 +++ asciidoctor-1.5.4/debian/patches/series 2016-04-08 11:18:11.0 +0200 @@ -3,3 +3,4 @@ skip-asciimath-test.patch package-version.patch skip-unreadable-file.patch +honour_SOURCE_DATE_EPOCH.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820240: lua-ldoc: please honour SOURCE_DATE_EPOCH
Source: lua-ldoc Version: 1.4.3-5 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Control: forwarded -1 https://github.com/stevedonovan/LDoc/pull/233 Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that some packages (like lua-posix) use LDoc in their building process, resulting in timestamps in documentation files that break reproducibility. To solve this kind of issues, it would be nice to have LDoc support the SOURCE_DATE_EPOCH environment variable [2]. See the attached patch for a solution to this issue. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru lua-ldoc-1.4.3/debian/changelog lua-ldoc-1.4.3/debian/changelog --- lua-ldoc-1.4.3/debian/changelog 2015-11-01 10:17:35.0 +0100 +++ lua-ldoc-1.4.3/debian/changelog 2016-04-06 08:57:58.0 +0200 @@ -1,3 +1,9 @@ +lua-ldoc (1.4.3-5.0~reproducible1) unstable; urgency=medium + + * Honour the SOURCE_DATE_EPOCH environment variable + + -- Alexis Bienvenüe <p...@passoire.fr> Wed, 06 Apr 2016 08:57:58 +0200 + lua-ldoc (1.4.3-5) unstable; urgency=medium * Fix header used by lua-any adding 5.1 (Closes: #802248) diff -Nru lua-ldoc-1.4.3/debian/patches/0005-honour-SOURCE_DATE_EPOCH.patch lua-ldoc-1.4.3/debian/patches/0005-honour-SOURCE_DATE_EPOCH.patch --- lua-ldoc-1.4.3/debian/patches/0005-honour-SOURCE_DATE_EPOCH.patch 1970-01-01 01:00:00.0 +0100 +++ lua-ldoc-1.4.3/debian/patches/0005-honour-SOURCE_DATE_EPOCH.patch 2016-04-06 08:57:21.0 +0200 @@ -0,0 +1,26 @@ +Description: Honour the SOURCE_DATE_EPOCH environment variable + Honour the SOURCE_DATE_EPOCH environment variable for even simpler + reproducible builds. + See https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- lua-ldoc-1.4.3.orig/ldoc.lua lua-ldoc-1.4.3/ldoc.lua +@@ -783,10 +783,14 @@ ldoc.modules = module_list + ldoc.title = ldoc.title or args.title + ldoc.project = ldoc.project or args.project + ldoc.package = args.package:match '%a+' and args.package or nil +-if args.date == 'system' then +-ldoc.updatetime = os.date("%Y-%m-%d %H:%M:%S") ++if os.getenv("SOURCE_DATE_EPOCH") == nil then ++ if args.date == 'system' then ++ ldoc.updatetime = os.date("%Y-%m-%d %H:%M:%S") ++ else ++ ldoc.updatetime = args.date ++ end + else +-ldoc.updatetime = args.date ++ ldoc.updatetime = os.date("!%Y-%m-%d %H:%M:%S",os.getenv("SOURCE_DATE_EPOCH")) + end + + local html = require 'ldoc.html' diff -Nru lua-ldoc-1.4.3/debian/patches/series lua-ldoc-1.4.3/debian/patches/series --- lua-ldoc-1.4.3/debian/patches/series 2015-11-01 10:17:35.0 +0100 +++ lua-ldoc-1.4.3/debian/patches/series 2016-04-06 08:55:47.0 +0200 @@ -2,3 +2,4 @@ 0002-Remove-non-existing-one-1.md-from-tests-config.ld.patch 0003-Fix-broken-template-missing-closing-bracket.patch 0004-make-system-date-override-able-via-date.patch +0005-honour-SOURCE_DATE_EPOCH.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820183: cython: please make the build reproducible (timestamps)
Source: cython Version: 0.23.4+git4-g7eed8d8-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'cython' could not be built reproducibly. The attached patch uses debian changelog last entry's year as copyright year in the documentation (through SOURCE_DATE_EPOCH). Once applied, cython can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru cython-0.23.4+git4-g7eed8d8/debian/changelog cython-0.23.4+git4-g7eed8d8/debian/changelog --- cython-0.23.4+git4-g7eed8d8/debian/changelog 2016-02-19 16:13:06.0 +0100 +++ cython-0.23.4+git4-g7eed8d8/debian/changelog 2016-04-06 12:03:47.0 +0200 @@ -1,3 +1,9 @@ +cython (0.23.4+git4-g7eed8d8-1.0~reproducible1) unstable; urgency=medium + + * Fix copyright year in documentation for reproducible build. + + -- Alexis Bienvenüe <p...@passoire.fr> Wed, 06 Apr 2016 12:03:47 +0200 + cython (0.23.4+git4-g7eed8d8-1) unstable; urgency=medium * Fresh upstream post bugfix release snapshot diff -Nru cython-0.23.4+git4-g7eed8d8/debian/patches/honour_SOURCE_DATE_EPOCH_for_copyright_year cython-0.23.4+git4-g7eed8d8/debian/patches/honour_SOURCE_DATE_EPOCH_for_copyright_year --- cython-0.23.4+git4-g7eed8d8/debian/patches/honour_SOURCE_DATE_EPOCH_for_copyright_year 1970-01-01 01:00:00.0 +0100 +++ cython-0.23.4+git4-g7eed8d8/debian/patches/honour_SOURCE_DATE_EPOCH_for_copyright_year 2016-04-06 12:02:29.0 +0200 @@ -0,0 +1,19 @@ +Description: Honour SOURCE_DATE_EPOCH for copyright year + Uses SOURCE_DATE_EPOCH environment variable (if set) to + set the copyright year in documentation, to get reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- cython-0.23.4+git4-g7eed8d8.orig/docs/conf.py cython-0.23.4+git4-g7eed8d8/docs/conf.py +@@ -15,7 +15,10 @@ import sys, os, os.path, re + import itertools + import datetime + +-YEAR = datetime.date.today().strftime('%Y') ++if os.environ.has_key('SOURCE_DATE_EPOCH'): ++YEAR = datetime.datetime.utcfromtimestamp(float(os.environ.get('SOURCE_DATE_EPOCH'))).strftime('%Y') ++else: ++YEAR = datetime.date.today().strftime('%Y') + + # If extensions (or modules to document with autodoc) are in another directory, + # add these directories to sys.path here. If the directory is relative to the diff -Nru cython-0.23.4+git4-g7eed8d8/debian/patches/series cython-0.23.4+git4-g7eed8d8/debian/patches/series --- cython-0.23.4+git4-g7eed8d8/debian/patches/series 2016-02-19 16:13:06.0 +0100 +++ cython-0.23.4+git4-g7eed8d8/debian/patches/series 2016-04-06 12:00:46.0 +0200 @@ -1,2 +1,3 @@ deb_disable_googleanalytics deb-reproducible.patch +honour_SOURCE_DATE_EPOCH_for_copyright_year ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820179: aodh: please make the build reproducible (timestamps)
Source: aodh Version: 1.0.0-11 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'aodh' could not be built reproducibly. The attached patch removes build date from documentation. Once applied, aodh can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru aodh-1.0.0/debian/changelog aodh-1.0.0/debian/changelog --- aodh-1.0.0/debian/changelog 2015-11-21 14:22:21.0 +0100 +++ aodh-1.0.0/debian/changelog 2016-04-06 10:26:06.0 +0200 @@ -1,3 +1,10 @@ +aodh (1.0.0-11.0~reproducible1) unstable; urgency=medium + + * Use SOURCE_DATE_EPOCH for sample timestamps, to get reproducible +build. + + -- Alexis Bienvenüe <p...@passoire.fr> Wed, 06 Apr 2016 10:26:05 +0200 + aodh (1.0.0-11) unstable; urgency=medium * Fixed incorrect python-keystonemiddleware (build-)depends version. diff -Nru aodh-1.0.0/debian/patches/series aodh-1.0.0/debian/patches/series --- aodh-1.0.0/debian/patches/series 1970-01-01 01:00:00.0 +0100 +++ aodh-1.0.0/debian/patches/series 2016-04-06 10:23:28.0 +0200 @@ -0,0 +1 @@ +use_SOURCE_DATE_EPOCH_for_sample_timestamps diff -Nru aodh-1.0.0/debian/patches/use_SOURCE_DATE_EPOCH_for_sample_timestamps aodh-1.0.0/debian/patches/use_SOURCE_DATE_EPOCH_for_sample_timestamps --- aodh-1.0.0/debian/patches/use_SOURCE_DATE_EPOCH_for_sample_timestamps 1970-01-01 01:00:00.0 +0100 +++ aodh-1.0.0/debian/patches/use_SOURCE_DATE_EPOCH_for_sample_timestamps 2016-04-06 11:11:05.0 +0200 @@ -0,0 +1,42 @@ +Description: Use SOURCE_DATE_EPOCH for sample timestamps + To get reproducible build of documentation, use SOURCE_DATE_EPOCH + environment variable (if set). + See https://wiki.debian.org/ReproducibleBuilds + and https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: aodh-1.0.0/aodh/api/controllers/v2/alarms.py +=== +--- aodh-1.0.0.orig/aodh/api/controllers/v2/alarms.py aodh-1.0.0/aodh/api/controllers/v2/alarms.py +@@ -19,6 +19,8 @@ + # under the License. + + import datetime ++import time ++import os + import itertools + import json + import uuid +@@ -359,10 +361,10 @@ class Alarm(base.Base): +user_id="c96c887c216949acbdfbd8b494863567", +project_id="c96c887c216949acbdfbd8b494863567", +enabled=True, +- timestamp=datetime.datetime.utcnow(), ++ timestamp=datetime.datetime.utcfromtimestamp(float(os.environ.get('SOURCE_DATE_EPOCH', time.time(, +state="ok", +severity="moderate", +- state_timestamp=datetime.datetime.utcnow(), ++ state_timestamp=datetime.datetime.utcfromtimestamp(float(os.environ.get('SOURCE_DATE_EPOCH', time.time(, +ok_actions=["http://site:8000/ok;], +alarm_actions=["http://site:8000/alarm;], +insufficient_data_actions=["http://site:8000/nodata;], +@@ -480,7 +482,7 @@ class AlarmChange(base.Base): +user_id="3e5d11fda79448ac99ccefb20be187ca", +project_id="b6f16144010811e387e4de429e99ee8c", +on_behalf_of="92159030020611e3b26dde429e99ee8c", +- timestamp=datetime.datetime.utcnow(), ++ timestamp=datetime.datetime.utcfromtimestamp(float(os.environ.get('SOURCE_DATE_EPOCH', time.time(, +) + + ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] lua-ldoc --date/SOURCE_DATE_EPOCH
Hi. lua-ldoc's maintainer added a --date option that helps reproducible building. It is used by lua-penlight. However, awesome and lua-posix don't use it already. What should you recommend? 1) patch awesome and lua-posix to use --date 2) patch lua-ldoc to add SOURCE_DATE_EPOCH, on top of --date. This would be more reliable, but maybe lua-ldoc will get a little messy/muddled? Thanks for your advice, Alexis Bienvenüe. ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820152: anope: please make the build reproducible (timestamps)
Source: anope Version: 2.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 Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'anope' could not be built reproducibly. The attached patch removes build date from the version string. Once applied, anope can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru anope-2.0.3/debian/patches/series anope-2.0.3/debian/patches/series --- anope-2.0.3/debian/patches/series 1970-01-01 01:00:00.0 +0100 +++ anope-2.0.3/debian/patches/series 2016-04-05 22:53:41.0 +0200 @@ -0,0 +1 @@ +strip_build_date.patch diff -Nru anope-2.0.3/debian/patches/strip_build_date.patch anope-2.0.3/debian/patches/strip_build_date.patch --- anope-2.0.3/debian/patches/strip_build_date.patch 1970-01-01 01:00:00.0 +0100 +++ anope-2.0.3/debian/patches/strip_build_date.patch 2016-04-05 22:54:46.0 +0200 @@ -0,0 +1,26 @@ +Description: Strip build date + Strip build date from version string, to get reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- anope-2.0.3.orig/include/anope.h anope-2.0.3/include/anope.h +@@ -336,8 +336,6 @@ namespace Anope + template class multimap : public std::multimap<string, T, ci::less> { }; + template class hash_map : public TR1NS::unordered_map<string, T, hash_ci, compare> { }; + +- static const char *const compiled = __TIME__ " " __DATE__; +- + /** The time Anope started. + */ + extern CoreExport time_t StartTime; +--- anope-2.0.3.orig/src/misc.cpp anope-2.0.3/src/misc.cpp +@@ -632,7 +632,7 @@ Anope::string Anope::VersionShort() + + Anope::string Anope::VersionBuildString() + { +- Anope::string s = "build #" + stringify(BUILD) + ", compiled " + Anope::compiled; ++ Anope::string s = "build #" + stringify(BUILD); + Anope::string flags; + + #ifdef DEBUG_BUILD ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820148: autopkgtest: please make the build reproducible (environment)
Source: autopkgtest Version: 3.20.2 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'autopkgtest' could not be built reproducibly. Depending on the locale (LC_COLLATE I think), [a-z] can include or not capitals, so that in the Makefile, [a-z]* can match SKELETON or not. Thus, depending on the locale, SKELETON will be installed with mode 0644 or 0755. The (very simple) attached patch can solve this issue, so that autopkgtest can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru autopkgtest-3.20.1/Makefile autopkgtest-3.20.1.0~reproducible1/Makefile --- autopkgtest-3.20.1/Makefile 2016-03-14 22:36:00.0 +0100 +++ autopkgtest-3.20.1.0~reproducible1/Makefile 2016-04-05 21:51:05.0 +0200 @@ -72,8 +72,8 @@ $(INSTALL_DATA) CREDITS $(docdir) $(INSTALL_DATA) $(rstfiles) $(htmlfiles) $(docdir) $(INSTALL_PROG) setup-commands/*[!~] $(datadir)/setup-commands - $(INSTALL_DATA) ssh-setup/SKELETON $(datadir)/ssh-setup $(INSTALL_PROG) ssh-setup/[a-z]*[!~] $(datadir)/ssh-setup + $(INSTALL_DATA) ssh-setup/SKELETON $(datadir)/ssh-setup clean: rm -f */*.pyc ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820144: rdtool: please honour SOURCE_DATE_EPOCH
Source: rdtool Version: 0.6.38-3 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that several packages (like apt-listbugs) use rdtool in their building process, resulting in timestamps (month and year of build) in man files that break reproducibility. To solve this kind of issues, it would be nice to have rdtool support the SOURCE_DATE_EPOCH environment variable [2]. See the attached patch for a proposed solution. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds [2] https://reproducible-builds.org/specs/source-date-epoch/ diff -Nru rdtool-0.6.38/debian/changelog rdtool-0.6.38/debian/changelog --- rdtool-0.6.38/debian/changelog 2014-09-09 11:16:13.0 +0200 +++ rdtool-0.6.38/debian/changelog 2016-04-05 19:52:49.0 +0200 @@ -1,3 +1,9 @@ +rdtool (0.6.38-3.0~reproducible1) unstable; urgency=medium + + * Honour the SOURCE_DATE_EPOCH environment variable. + + -- Alexis Bienvenüe <p...@passoire.fr> Tue, 05 Apr 2016 19:52:49 +0200 + rdtool (0.6.38-3) unstable; urgency=medium * Team upload. diff -Nru rdtool-0.6.38/debian/patches/040_honour_SOURCE_DATE_EPOCH rdtool-0.6.38/debian/patches/040_honour_SOURCE_DATE_EPOCH --- rdtool-0.6.38/debian/patches/040_honour_SOURCE_DATE_EPOCH 1970-01-01 01:00:00.0 +0100 +++ rdtool-0.6.38/debian/patches/040_honour_SOURCE_DATE_EPOCH 2016-04-05 20:00:27.0 +0200 @@ -0,0 +1,26 @@ +Description: Honour the SOURCE_DATE_EPOCH environment variable + If the environment variable SOURCE_DATE_EPOCH is set, uses this date + instead of current date for generated man pages. + See https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: rdtool-0.6.38/lib/rd/rd2man-lib.rb +=== +--- rdtool-0.6.38.orig/lib/rd/rd2man-lib.rb rdtool-0.6.38/lib/rd/rd2man-lib.rb +@@ -43,9 +43,14 @@ module RD + content = content.join + title = guess_title + title = title.sub(/\.rd$/i, '').upcase ++ if ENV['SOURCE_DATE_EPOCH'].nil? ++date=Time.now ++ else ++date=Time.at(ENV['SOURCE_DATE_EPOCH'].to_i).gmtime ++ end + <<"EOT" + .\\" DO NOT MODIFY THIS FILE! it was generated by rd2 +-.TH #{title} 1 "#{Time.now.strftime '%B %Y'}" ++.TH #{title} 1 "#{date.strftime '%B %Y'}" + #{content} + EOT + end # " diff -Nru rdtool-0.6.38/debian/patches/series rdtool-0.6.38/debian/patches/series --- rdtool-0.6.38/debian/patches/series 2014-01-23 19:25:38.0 +0100 +++ rdtool-0.6.38/debian/patches/series 2016-04-05 19:50:18.0 +0200 @@ -1,2 +1,3 @@ 010_change_dot_rd2rc_path 020_test_load_fix +040_honour_SOURCE_DATE_EPOCH ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820072: synfig: please make the build reproducible (timestamps)
Source: synfig Version: 1.0.2-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'synfig' could not be built reproducibly. The attached patch removes build date from info output. Once applied, synfig can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru synfig-1.0.2/debian/patches/series synfig-1.0.2/debian/patches/series --- synfig-1.0.2/debian/patches/series 2015-11-27 10:31:17.0 +0100 +++ synfig-1.0.2/debian/patches/series 2016-04-05 10:36:15.0 +0200 @@ -1,2 +1,3 @@ c++11.patch #no-mod_ffmpeg.patch +strip-build-date.patch diff -Nru synfig-1.0.2/debian/patches/strip-build-date.patch synfig-1.0.2/debian/patches/strip-build-date.patch --- synfig-1.0.2/debian/patches/strip-build-date.patch 1970-01-01 01:00:00.0 +0100 +++ synfig-1.0.2/debian/patches/strip-build-date.patch 2016-04-05 10:37:25.0 +0200 @@ -0,0 +1,27 @@ +Description: Strip build date from source + Strip build date from source, to get reproducible build. + see https://wiki.debian.org/ReproducibleBuilds +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- synfig-1.0.2.orig/src/synfig/main.cpp synfig-1.0.2/src/synfig/main.cpp +@@ -110,7 +110,7 @@ synfig::get_version() + const char * + synfig::get_build_date() + { +- return __DATE__; ++ return "Unknown"; + } + + bool +--- synfig-1.0.2.orig/src/tool/optionsprocessor.cpp synfig-1.0.2/src/tool/optionsprocessor.cpp +@@ -193,7 +193,7 @@ void OptionsProcessor::process_info_opti + #ifdef DEVEL_VERSION + cout << endl << DEVEL_VERSION << endl << endl; + #endif +- cout << "Compiled on " __DATE__ /* " at "__TIME__ */; ++cout << "Compiled "; + #ifdef __GNUC__ + cout << " with GCC " << __VERSION__; + #endif ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820032: bibledit-gtk: please make the build reproducible (environment)
Source: bibledit-gtk Version: 4.9-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'bibledit-gtk' could not be built reproducibly. That comes from the inclusion of the Makefile's used for building into the package. These files seem however not necessary: please consider removing them from bibledit-gtk-data, for example with the attached patch. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru bibledit-gtk-4.9/debian/rules bibledit-gtk-4.9/debian/rules --- bibledit-gtk-4.9/debian/rules 2015-09-15 21:29:23.0 +0200 +++ bibledit-gtk-4.9/debian/rules 2016-04-04 23:18:27.0 +0200 @@ -2,4 +2,6 @@ %: dh $@ --with autoreconf +override_dh_install: + dh_install -XMakefile ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#820016: gabedit: please make the build reproducible (fileordering)
Source: gabedit Version: 2.4.8-2 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'gabedit' could not be built reproducibly. The attached patch sorts object files while building the final gabedit executable, to get a fixed order. Once applied, gabedit can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru gabedit-2.4.8/debian/changelog gabedit-2.4.8/debian/changelog --- gabedit-2.4.8/debian/changelog 2015-10-19 00:12:22.0 +0200 +++ gabedit-2.4.8/debian/changelog 2016-04-04 20:25:54.0 +0200 @@ -1,3 +1,9 @@ +gabedit (2.4.8-2.0~reproducible1) unstable; urgency=medium + + * Sort object files in Makefile, to get reproducible build + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 04 Apr 2016 20:25:54 +0200 + gabedit (2.4.8-2) unstable; urgency=medium * debian/compat: Raised to level 9. diff -Nru gabedit-2.4.8/debian/patches/01-sort-object-files-in-makefile.patch gabedit-2.4.8/debian/patches/01-sort-object-files-in-makefile.patch --- gabedit-2.4.8/debian/patches/01-sort-object-files-in-makefile.patch 1970-01-01 01:00:00.0 +0100 +++ gabedit-2.4.8/debian/patches/01-sort-object-files-in-makefile.patch 2016-04-04 21:16:50.0 +0200 @@ -0,0 +1,24 @@ +Description: Sort object files in Makefile + To get reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: gabedit-2.4.8/Makefile +=== +--- gabedit-2.4.8.orig/Makefile gabedit-2.4.8/Makefile +@@ -63,11 +63,14 @@ all: gabedit + gabedit: $(SUBDIRS) + $(MKDIR) tmp + cp $(OBJECTS) tmp +- $(CC) $(LDFLAGS) tmp/*.o -o gabedit $(GLTOPS) $(X11LIB) $(GTKLIB) $(OGLLIB) $(JPEGLIB) $(LIBPTHREAD) $(WIN32LIB) $(OMPLIB) -g -lm ++ $(MAKE) exec + @$(RMTMP) > ptmp + rmdir tmp + @$(RM) ptmp + ++exec: ++ $(CC) $(LDFLAGS) $(sort $(wildcard tmp/*.o)) -o gabedit $(GLTOPS) $(X11LIB) $(GTKLIB) $(OGLLIB) $(JPEGLIB) $(LIBPTHREAD) $(WIN32LIB) $(OMPLIB) -g -lm ++ + clean: + @$(RM) gabedit + @$(RM) gabedit.exe diff -Nru gabedit-2.4.8/debian/patches/series gabedit-2.4.8/debian/patches/series --- gabedit-2.4.8/debian/patches/series 2014-02-09 13:25:06.0 +0100 +++ gabedit-2.4.8/debian/patches/series 2016-04-04 20:24:35.0 +0200 @@ -0,0 +1 @@ +01-sort-object-files-in-makefile.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] LaTeX's \today
Hi. Looking at debian package canl-c, I saw it uses \today in the documentation LaTeX files, so that it can't build reproducibly. I also heard about gle-graphics [1], which has to be patched to give a fixed value to \today. Can we consider turning LaTeX into using SOURCE_DATE_EPOCH (when available) as \today's epoch? Maybe a way to do this is telling get_date_and_time to honour SOURCE_DATE_EPOCH. As this function is used to give a value to the \day, \month and \year LaTeX primitives, this should be ok. See attached patch for an example. However, some little more work has to be done if we need the same result for lualatex and xelatex, as shown in the attached test. Regards, Alexis Bienvenüe. [1] https://lists.alioth.debian.org/pipermail/reproducible-builds/Week-of-Mon-20160328/005135.html diff -Nru texlive-bin-2015.20160222.37495/debian/patches/honour-source-date-epoch-today texlive-bin-2015.20160222.37495/debian/patches/honour-source-date-epoch-today --- texlive-bin-2015.20160222.37495/debian/patches/honour-source-date-epoch-today 1970-01-01 01:00:00.0 +0100 +++ texlive-bin-2015.20160222.37495/debian/patches/honour-source-date-epoch-today 2016-04-04 17:14:46.0 +0200 @@ -0,0 +1,142 @@ +Description: Make \today honour SOURCE_DATE_EPOCH + See https://reproducible-builds.org/ and https://reproducible-builds.org/specs/source-date-epoch/ +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: texlive-bin-2015.20160222.37495/texk/web2c/lib/texmfmp.c +=== +--- texlive-bin-2015.20160222.37495.orig/texk/web2c/lib/texmfmp.c texlive-bin-2015.20160222.37495/texk/web2c/lib/texmfmp.c +@@ -2143,6 +2143,49 @@ catch_interrupt (int arg) + } + #endif /* not WIN32 */ + ++static boolean start_time_set = false; ++static time_t start_time = 0; ++ ++void init_start_time() { ++ char *source_date_epoch; ++ unsigned long long epoch; ++ char *endptr; ++ if (!start_time_set) { ++start_time_set = true; ++source_date_epoch = getenv("SOURCE_DATE_EPOCH"); ++if (source_date_epoch) ++ { ++errno = 0; ++epoch = strtoull(source_date_epoch, , 10); ++if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) ++|| (errno != 0 && epoch == 0)) ++ { ++fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", strerror(errno)); ++uexit(EXIT_FAILURE); ++ } ++if (endptr == source_date_epoch) ++ { ++fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", endptr); ++uexit(EXIT_FAILURE); ++ } ++if (*endptr != '\0') ++ { ++fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", endptr); ++uexit(EXIT_FAILURE); ++ } ++if (epoch > ULONG_MAX) ++ { ++fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu \n", ULONG_MAX ,epoch); ++uexit(EXIT_FAILURE); ++ } ++start_time = epoch; ++ } ++else { ++ start_time = time((time_t *) NULL); ++} ++ } ++} ++ + /* Besides getting the date and time here, we also set up the interrupt +handler, for no particularly good reason. It's just that since the +`fix_date_and_time' routine is called early on (section 1337 in TeX, +@@ -2153,8 +2196,14 @@ void + get_date_and_time (integer *minutes, integer *day, +integer *month, integer *year) + { +- time_t myclock = time ((time_t *) 0); +- struct tm *tmptr = localtime (); ++ struct tm *tmptr; ++ if(getenv("SOURCE_DATE_EPOCH")) { ++init_start_time(); ++tmptr = gmtime (_time); ++ } else { ++time_t myclock = time ((time_t *) 0); ++tmptr = localtime (); ++ } + + *minutes = tmptr->tm_hour * 60 + tmptr->tm_min; + *day = tmptr->tm_mday; +@@ -2869,11 +2918,10 @@ void pdftex_fail(const char *fmt, ...) + } + #endif /* not pdfTeX */ + +-static boolean start_time_set = false; +-static time_t start_time = 0; + #define TIME_STR_SIZE 30 + char start_time_str[TIME_STR_SIZE]; +-static char time_str[TIME_STR_SIZE]; ++ ++ static char time_str[TIME_STR_SIZE]; + /* minimum size for time_str is 24: "D:mmddHHMMSS+HH'MM'" */ + + static void makepdftime(time_t t, char *time_str, int utc) +@@ -2931,45 +2979,14 @@ static void makepdftime(time_t t, char * + + void initstarttime(void) + { +- char *source_date_epoch; +- unsigned long long epoch; +- char *endptr; +-if (!start_time_set) { +-start_time_set = true; +- source_date_epoch = getenv("SOURCE_DATE_EPOCH"); +- if (source_date_epoch) +- { +- errno = 0; +- epoch = strtoull(source_date_epoch, , 10); +- if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch
[Reproducible-builds] Bug#819948: maude: please make the build reproducible (timestamps)
Source: maude Version: 2.7-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'maude' could not be built reproducibly. The attached patch removes build date from the banner. Once applied, maude can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru maude-2.7/debian/changelog maude-2.7/debian/changelog --- maude-2.7/debian/changelog 2015-12-16 22:57:27.0 +0100 +++ maude-2.7/debian/changelog 2016-04-04 09:04:27.0 +0200 @@ -1,3 +1,9 @@ +maude (2.7-1.0~reproducible1) unstable; urgency=medium + + * Strip build date from banner to get reproducible build. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 04 Apr 2016 09:04:16 +0200 + maude (2.7-1) unstable; urgency=medium * New upstream version diff -Nru maude-2.7/debian/patches/series maude-2.7/debian/patches/series --- maude-2.7/debian/patches/series 2015-12-16 22:44:15.0 +0100 +++ maude-2.7/debian/patches/series 2016-04-04 09:02:26.0 +0200 @@ -1,3 +1,4 @@ search-datadir.patch bison-parse-param.patch getinput-size_t.patch +strip-build-date.patch diff -Nru maude-2.7/debian/patches/strip-build-date.patch maude-2.7/debian/patches/strip-build-date.patch --- maude-2.7/debian/patches/strip-build-date.patch 1970-01-01 01:00:00.0 +0100 +++ maude-2.7/debian/patches/strip-build-date.patch 2016-04-04 09:03:40.0 +0200 @@ -0,0 +1,16 @@ +Description: Strip build date + Strip build date from banner, for reproducibility reasons. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- maude-2.7.orig/src/Mixfix/banner.cc maude-2.7/src/Mixfix/banner.cc +@@ -53,8 +53,7 @@ printBanner(std::ostream& s) + Tty(Tty::GREEN) << 'e' << + Tty(Tty::RESET) << " ---\n"; + s << "\t\t /||\\\n"; +- s << "\t" << PACKAGE_STRING << " built: " << +-__DATE__ << ' ' << __TIME__ << '\n'; ++ s << "\t" << PACKAGE_STRING << '\n'; + s << "\tCopyright 1997-2014 SRI International\n"; + s << "\t\t " << ctime(); + } ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#819921: basket: please make the build reproducible (timestamps)
Source: basket Version: 2.10~beta+git20160305.487a115-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'basket' could not be built reproducibly. The attached patch removes build date from debug info. Once applied, basket can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru basket-2.10~beta+git20160305.487a115/debian/changelog basket-2.10~beta+git20160305.487a115/debian/changelog --- basket-2.10~beta+git20160305.487a115/debian/changelog 2016-03-06 20:38:04.0 +0100 +++ basket-2.10~beta+git20160305.487a115/debian/changelog 2016-04-03 23:41:40.0 +0200 @@ -1,3 +1,9 @@ +basket (2.10~beta+git20160305.487a115-1.0~reproducible1) unstable; urgency=medium + + * Removes build date from debug info, to get a reproducible build. + + -- Alexis Bienvenüe <p...@passoire.fr> Sun, 03 Apr 2016 23:41:39 +0200 + basket (2.10~beta+git20160305.487a115-1) unstable; urgency=medium * New git snapshot: diff -Nru basket-2.10~beta+git20160305.487a115/debian/patches/15_remove_build_date_from_debug_info.patch basket-2.10~beta+git20160305.487a115/debian/patches/15_remove_build_date_from_debug_info.patch --- basket-2.10~beta+git20160305.487a115/debian/patches/15_remove_build_date_from_debug_info.patch 1970-01-01 01:00:00.0 +0100 +++ basket-2.10~beta+git20160305.487a115/debian/patches/15_remove_build_date_from_debug_info.patch 2016-04-03 23:40:43.0 +0200 @@ -0,0 +1,14 @@ +Description: Remove build date from debug info + This makes the build reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- basket-2.10~beta+git20160305.487a115.orig/src/crashhandler.cpp basket-2.10~beta+git20160305.487a115/src/crashhandler.cpp +@@ -72,7 +72,6 @@ Crash::crashHandler(int /*signal*/) + + body += " DEBUG INFORMATION ===\n" + "Version:" VERSION "\n" +-"Build date: " __DATE__ "\n" + "CC version: " __VERSION__ "\n" //assuming we're using GCC + "KDElibs:" KDE_VERSION_STRING "\n" + ;//"TagLib: %2.%3.%4\n"; diff -Nru basket-2.10~beta+git20160305.487a115/debian/patches/series basket-2.10~beta+git20160305.487a115/debian/patches/series --- basket-2.10~beta+git20160305.487a115/debian/patches/series 2015-11-29 12:04:35.0 +0100 +++ basket-2.10~beta+git20160305.487a115/debian/patches/series 2016-04-03 23:39:53.0 +0200 @@ -1 +1,2 @@ 14_update_es_po.diff +15_remove_build_date_from_debug_info.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#819915: kannel: please make the build reproducible (timestamps)
Source: kannel Version: 1.4.4-2 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'kannel' could not be built reproducibly. The attached patch makes sure that a fixed date timestamp is used in the documentation (taken from the last d/changelog entry), so the build date does not appear anywhere in the output. It also removes the build date from the return value of version_report_string. Note than timestamps also appear in postscript files built from FIG and PNG files from the source tree (as CreationDate meta data). However, once transfig and imagemagick (which are used for these conversions) honour the SOURCE_DATE_EPOCH environment variable, these timestamps will also be replaced by a fixed date. Once applied, and once bugs #819911 and #819914 regarding transfig and imagemagick will be resolved in the experimental toolchain, kannel can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru kannel-1.4.4/debian/changelog kannel-1.4.4/debian/changelog --- kannel-1.4.4/debian/changelog 2015-11-23 11:09:32.0 +0100 +++ kannel-1.4.4/debian/changelog 2016-04-02 14:46:03.0 +0200 @@ -1,3 +1,10 @@ +kannel (1.4.4-2.0~reproducible1) unstable; urgency=medium + + * Reproducible build + * Uses dh-autoreconf, see https://wiki.debian.org/Autoreconf + + -- Alexis Bienvenüe <p...@passoire.fr> Sat, 02 Apr 2016 09:38:02 +0200 + kannel (1.4.4-2) unstable; urgency=medium * Fix Vcs-* field URLs. Closes: bug#793981. diff -Nru kannel-1.4.4/debian/control kannel-1.4.4/debian/control --- kannel-1.4.4/debian/control 2015-11-23 11:03:33.0 +0100 +++ kannel-1.4.4/debian/control 2016-04-02 14:46:24.0 +0200 @@ -6,6 +6,7 @@ Paul Dwerryhouse <p...@dwerryhouse.com.au> Build-Depends: cdbs, debhelper, + dh-autoreconf, libxml2-dev, libssl-dev, openssl, diff -Nru kannel-1.4.4/debian/patches/35_use_changelog_date_in_doc.patch kannel-1.4.4/debian/patches/35_use_changelog_date_in_doc.patch --- kannel-1.4.4/debian/patches/35_use_changelog_date_in_doc.patch 1970-01-01 01:00:00.0 +0100 +++ kannel-1.4.4/debian/patches/35_use_changelog_date_in_doc.patch 2016-04-02 15:05:46.0 +0200 @@ -0,0 +1,139 @@ +Description: Use debian changelog date in doc + Uses the date from SOURCE_DATE_EPOCH in documentation, + instead of current date. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- kannel-1.4.4.orig/Makefile.in kannel-1.4.4/Makefile.in +@@ -60,6 +60,7 @@ PACKAGE = @PACKAGE@ + RANLIB = @RANLIB@ + SHELL = @SHELL@ + VERSION = @VERSION@ ++BUILD_DATE = @BUILD_DATE@ + SUFFIX = @SUFFIX@ + LEX = @LEX@ + PERL = @PERL@ +@@ -179,17 +180,17 @@ figs = $(figsrcs:.fig=.png) $(figsrcs:. + .SUFFIXES: $(SUFFIXES) .xml .html .rtf .ps .fig .png .y .c .i .o .pdf + + .xml.html: +- sed "s/#FIGTYPE#/.png/;s/#VERSION#/${VERSION}/;s/#DATE#/`date +%Y.%m.%d`/;s/#DRAFTS#/${DOCDRAFTS}/" $< > $*.tmp ++ sed "s/#FIGTYPE#/.png/;s/#VERSION#/${VERSION}/;s/#DATE#/${BUILD_DATE}/;s/#DRAFTS#/${DOCDRAFTS}/" $< > $*.tmp + ${JADE} -V nochunks -t sgml -d $(HTML_DSL) $(XML_DCL) $*.tmp > $@ + rm -f $*.tmp + + .xml.rtf: +- sed "s/#FIGTYPE#/.ps/;s/#VERSION#/${VERSION}/;s/#DATE#/`date +%Y.%m.%d`/;s/#DRAFTS#/${DOCDRAFTS}/" $< > $*.tmp ++ sed "s/#FIGTYPE#/.ps/;s/#VERSION#/${VERSION}/;s/#DATE#/${BUILD_DATE}/;s/#DRAFTS#/${DOCDRAFTS}/" $< > $*.tmp + cd `dirname $<` && $(JADE) -o `basename $*`.rtf -t rtf -d $(TEX_DSL) $(XML_DCL) `basename $*`.tmp + rm -f $*.tmp + + .xml.ps: +- sed "s/#FIGTYPE#/.ps/;s/#VERSION#/${VERSION}/;s/#DATE#/`date +%Y.%m.%d`/;s/#DRAFTS#/${DOCDRAFTS}/" $< > $*.tmp ++ sed "s/#FIGTYPE#/.ps/;s/#VERSION#/${VERSION}/;s/#DATE#/${BUILD_DATE}/;s/#DRAFTS#/${DOCDRAFTS}/" $< > $*.tmp + $(JADE) -o $*.tex -t tex -d $(TEX_DSL) $(XML_DCL) $*.tmp + rm -f $*.tmp + cd `dirname $<` && $(JADETEX) `basename $*`.tex >/dev/null || true +@@ -201,7 +202,7 @@ figs = $(figsrcs:.fig=.png) $(figsrcs:. + rm -f $*.dvi $*.tex $*.aux + + .xml.pdf: +- sed "s/#FIGTYPE#/.png/;s/#VERSION#/${VERSION}/;s/#DATE#/`date +%Y.%m.%d`/;s/#DRAFTS#/${DOCDRAFTS}/" $< > $*.tmp ++ sed "s/#FIGTYPE#/.png/;s/#VERSION#/${VERSION}/;s/#DATE#/${BUILD_DATE}/;s/#DRAFTS#/${DOCDRAFTS}/" $< > $*.tmp + $(JADE) -o $*.tex -t tex -d $(TEX_DSL) $(XML_DCL) $*.tmp + rm -f $*.tmp + cd `dirname $<` && $(JADETEX) `basename $*`.tex >/dev/null || true +--- kannel-1.4.4.orig/addons/opensmppbox/Makefile.am kannel-1.4.4/addons/opensmppbox/Makefile.am +@@ -6,6 +6,7 @@ rpmtemp = /tmp/opensmppbox-rpm + DOCSTARGET=@DOCSTARGET@ + DOCDRAFTS=@DOCDRAFTS@ + RPMPKG=opensmppbox-@PACKAGE_VERSION@ ++BU
Re: [Reproducible-builds] Best approach to strip timestamp in postscript files
Hi. Le 31/03/2016 18:35, Dhole a écrit : > And I think it would be very helpful if you work on that :) (and also in > implementing SOURCE_DATE_EPOCH in graphicsmagick if there is the same > issue there). I prepared [1] patches for imagemagick and transfig which make reproducibility issues with kannel. I also prepared a patch for kannel itself [2]. With this patch, kannel does not build reproducibly in the experimental toolchain, but it does when adding patched imagemagick and transfig to the toolchain. Should I report a bug to kannel to include the patch? Since I am not experienced, can anyone have a look at these patches and help me to improve them or to find them their way? Regards, Alexis Bienvenüe. [1] http://docs.passoire.fr/alexis/debian/imagemagick_6.8.9.9-7_SOURCE_DATE_EPOCH.diff http://docs.passoire.fr/alexis/debian/transfig_3.2.5.e-5_SOURCE_DATE_EPOCH.diff [2] http://docs.passoire.fr/alexis/debian/kannel_1.4.4-2_reproducible.diff ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
Re: [Reproducible-builds] Best approach to strip timestamp in postscript files
Hi. Le 31/03/2016 18:35, Dhole a écrit : > I believe the best option would be to make 'convert' honour the > environment variable SOURCE_DATE_EPOCH when defined, when embedding > the CreationDate tag. Thanks for your very clear advice. I prepared a patch for this [1]. I tested that the convert command now honour SOURCE_DATE_EPOCH for some output image formats. Does anyone want to have a look at it and give me some advice? Regards, Alexis. [1] http://docs.passoire.fr/alexis/debian/imagemagick_6.8.9.9-7_SOURCE_DATE_EPOCH.diff ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds