Bug#1017348: autopkgtest regression on ppc64el
Control: reassign -1 libopencv-imgproc406 Control: severity -1 normal Control: retitle -1 libopencv-imgproc406: cv::boundingRect fails on ppc64el Hi. I'm afraid I could not find why cv::boundingRect behaves like that. Anyway I reassign this bug to opencv. Regards, Alexis Bienvenüe.
Bug#1017348: autopkgtest regression on ppc64el
Hi. Thanks for the report. This autopkgtest fail comes from a call to cv::boundingRect that works differently between OpenCV versions 4.6.0+dfsg-4+b1 from testing and 4.6.0+dfsg-6+b1 from unstable, on a ppc64el virtual machine. Running the sample code below, which computes a bounding rectangle for three points, the output with OpenCV 4.6.0+dfsg-4+b1 is x: 3+4 y: 98+13 (which is what I was waiting for), and with OpenCV 4.6.0+dfsg-6+b1 is x: 3+4 y: 0+1 (I think the values for y are not correct here). However, the output seems correct with both versions of OpenCV on amd64. As far as I understand this issue, I would say that the problem comes from OpenCV and not auto-multiple-choice. Regards, Alexis Bienvenüe. -- // gcc -o bounding bounding.cc -O2 -lstdc++ -lm -I/usr/include/opencv4 -lopencv_imgproc #include #include #include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" int main(int argc, char** argv) { std::vector pts; pts.push_back(cv::Point(3,100)); pts.push_back(cv::Point(5,98)); pts.push_back(cv::Point(6,110)); cv::Rect rect = cv::boundingRect(pts); std::cout << "x: " << rect.x << "+" << rect.width << " y: " << rect.y << "+" << rect.height << "\n"; }
Bug#1013943: auto-multiple-choice: Autopkg Test fails
Hi. Le mercredi 29 juin 2022 à 22:40 +0200, Hilmar Preuße a écrit : > I've created a pull request to fix a build failure. This does not > solve > the Autopkg test failure. I'm able to reproduce but I have no clue > how > to address them. Thanks for your bug report and for the pull request. The problem comes from a change in the fancyhdr LaTeX package which modifies the layout of the documents produced by auto-multiple-choice : https://github.com/pietvo/fancyhdr/commit/6b1ad10eeb5bc3d804f3cd2cf193e6440d0229e6 I'm working on a acceptable fix. Regards, Alexis Bienvenüe.
Bug#998141: opencv breaks auto-multiple-choice autopkgtest
control: reassign -1 src:opencv On Sun, 31 Oct 2021 22:04:15 +0100 Paul Gevers wrote: > I think that means you must bump the SONAME (if not done upstream, with > a Debian specific version), go through NEW, ask for a transition block > with the release team and have all reverse dependencies rebuild. I think these apply to opencv, so I reassign to this package to let current working version of auto-multiple-choice in testing. Regards, Alexis.
Bug#998141: opencv breaks auto-multiple-choice autopkgtest
Hi. Than you for your report. After rebuilding auto-multiple-choice from the same 1.5.1-2 sources in a sid environment, it passes the autopkgtest. Maybe this is related to this issue, where it is said that OpenCV 4.x releases don't guarantee ABI compatibility: https://github.com/opencv/opencv/issues/20878 Regards, Alexis.
Bug#980935: pyzo: Crash at startup with python3.9
Hi. On Fri, 19 Feb 2021 16:35:29 +0100 Gianfranco Costamagna wrote: > Due to freeze, I can upload the patch on this bug right now, and maybe we can upload your changes in git to unstable once the current one goes in testing? > > I'm doing some git work to polish the packaging, I'll try to rebase your changes and push later today Excellent : thanks a lot. Alexis Bienvenüe.
Bug#980935: pyzo: Crash at startup with python3.9
Package: pyzo Version: 4.4.3-1.2 Severity: grave Tags: patch upstream Justification: renders package unusable Dear Maintainer, When trying to launch pyzo in a standard debian environment with python3.9, I face the following error: Traceback (most recent call last): File "/usr/bin/pyzo", line 11, in load_entry_point('pyzo==4.4.3', 'console_scripts', 'pyzo')() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 474, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2846, in load_entry_point return ep.load() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2450, in load return self.resolve() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2456, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/usr/share/pyzo/pyzo/__init__.py", line 73, in if commandline.is_our_server_running(): File "/usr/share/pyzo/pyzo/core/commandline.py", line 150, in is_our_server_running return server and server.isAlive() AttributeError: 'Server' object has no attribute 'isAlive' This error seems to be related to https://github.com/pyzo/pyzo/issues/713 Applying the upstream patch fixes the problem - see attached. Upgrading pyzo to a newer version should also be OK. Regards, Alexis Bienvenüe. -- System Information: Debian Release: bullseye/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.10.0-1-amd64 (SMP w/8 CPU threads) Kernel taint flags: TAINT_WARN Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages pyzo depends on: ii famfamfam-silk 1.3-1.1 ii fonts-dejavu-core 2.37-2 ii fonts-dejavu-extra 2.37-2 ii python3 3.9.1-1 ii python3-pkg-resources 51.3.3-1 ii python3-qtpy 1.9.0-3 pyzo recommends no packages. Versions of packages pyzo suggests: pn pyzo-doc -- no debconf information diff -Nru pyzo-4.4.3/debian/changelog pyzo-4.4.3/debian/changelog --- pyzo-4.4.3/debian/changelog 2019-01-11 19:09:52.0 +0100 +++ pyzo-4.4.3/debian/changelog 2021-01-24 15:52:14.0 +0100 @@ -1,3 +1,9 @@ +pyzo (4.4.3-1.3) UNRELEASED; urgency=medium + + * Fix crash with python3.9 + + -- Alexis Bienvenüe Sun, 24 Jan 2021 15:52:14 +0100 + pyzo (4.4.3-1.2) unstable; urgency=medium * Non-maintainer upload. diff -Nru pyzo-4.4.3/debian/patches/0002-replace-isAlive-per-is_alive-to-become-Python-3.9-compat.patch pyzo-4.4.3/debian/patches/0002-replace-isAlive-per-is_alive-to-become-Python-3.9-compat.patch --- pyzo-4.4.3/debian/patches/0002-replace-isAlive-per-is_alive-to-become-Python-3.9-compat.patch 1970-01-01 01:00:00.0 +0100 +++ pyzo-4.4.3/debian/patches/0002-replace-isAlive-per-is_alive-to-become-Python-3.9-compat.patch 2021-01-24 15:50:46.0 +0100 @@ -0,0 +1,31 @@ +Description: Replace isAlive per is_alive to become Python 3.9 compatible + With python3.9, pyzo 4.4.3 crashes at startup with + AttributeError: 'Server' object has no attribute 'isAlive' +Author: Alexis Bienvenüe +Origin: upstream +Bug: https://github.com/pyzo/pyzo/issues/713 +Applied-Upstream: https://github.com/pyzo/pyzo/pull/714/commits/9d9b2fe126f70f70ff8b0fa9dd5ba047f595b75a +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/pyzo/core/commandline.py b/pyzo/core/commandline.py +@@ -147,7 +147,7 @@ def is_our_server_running(): + not running, this is probably not the first Pyzo, but there might + also be problem with starting the server. + """ +-return server and server.isAlive() ++return server and server.is_alive() + + + def is_pyzo_server_running(): +--- a/pyzo/yoton/channels/channels_reqrep.py b/pyzo/yoton/channels/channels_reqrep.py +@@ -714,7 +714,7 @@ class RepChannel(BaseChannel): + self._timer.start() + elif mode in [2, 'thread', 'thread-driven']: + self._run_mode = 2 +-if not self._thread.isAlive(): ++if not self._thread.is_alive(): + self._thread.start() + else: + raise ValueError('Invalid mode for ReqChannel instance.') diff -Nru pyzo-4.4.3/debian/patches/series pyzo-4.4.3/debian/patches/series --- pyzo-4.4.3/debian/patches/series 2018-11-30 16:17:17.0 +0100 +++ pyzo-4.4.3/debian/patches/series 2021-01-24 15:43:45.0 +0100 @@ -1,2 +1,3 @@ Disable-install-of-appdata.patch 0001-replace-async-per-basync-to-become-Python-3.7-compat.patch +0002-replace-isAlive-per-is_alive-to-become-Python-3.9-compat.patch
Bug#948513: auto-multiple-choice-common: Should depend on liblocale-codes-perl
> perl-modules-5.22 is a left-over package from older distributions (in > Aptitude marked as "Obsolete"). If I uninstall it, liblocale-codes- > perl > is automatically installed and AMC works fine. So maybe, AMC should > depend on liblocale-codes-perl (>= 3.34). Thanks: I understand now. To avoid the same problem with perl 5.24 and 5.26, I will use >= 3.42 Regards, Alexis Bienvenüe.
Bug#948513: auto-multiple-choice-common: Should depend on liblocale-codes-perl
Thanks for the report. Le jeudi 09 janvier 2020 à 17:22 +0100, Michal Sojka a écrit : > I was able to get rid of it by manually installing > liblocale-codes-perl so I think that auto-multiple-choice-common > should depend on this package. That looks strange because auto-multiple-choice-common already depends on liblocale-codes-perl: > Versions of packages auto-multiple-choice-common depends on: > ii liblocale-codes-perl 3.62-1 Can you check that the installation ended properly when the problem arose? Regards, Alexis Bienvenüe.
Bug#941163: ghostscript: dvipdf not working
Package: ghostscript Version: 9.28~~rc3~dfsg-1 Severity: normal Tags: patch upstream Dear Maintainer, dvipdf produces an single blank page pdf file whatever the source file is. The last line of this script needs a dash at the end, that has been dropped when deprecating the .setpdfwrite operator - see http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15d95340389f0f46bd214803ec19685c0a738a0e Regards, Alexis Bienvenüe. -- System Information: Debian Release: bullseye/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.2.0-2-amd64 (SMP w/8 CPU cores) Kernel taint flags: TAINT_WARN Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages ghostscript depends on: ii libc6 2.29-2 ii libgs9 9.28~~rc3~dfsg-1 ghostscript recommends no packages. Versions of packages ghostscript suggests: pn ghostscript-x Index: ghostscript-9.28~~rc3~dfsg/lib/dvipdf Description: Fix dvipdf, that produced single blank page output whatever the source file is. === --- ghostscript-9.28~~rc3~dfsg.orig/lib/dvipdf +++ ghostscript-9.28~~rc3~dfsg/lib/dvipdf @@ -43,4 +43,4 @@ fi # We have to include the options twice because -I only takes effect if it # appears before other options. -exec dvips -Ppdf $DVIPSOPTIONS -q -f "$infile" | $GS_EXECUTABLE $OPTIONS -q -P- -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr -sOutputFile="$outfile" $OPTIONS +exec dvips -Ppdf $DVIPSOPTIONS -q -f "$infile" | $GS_EXECUTABLE $OPTIONS -q -P- -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr -sOutputFile="$outfile" $OPTIONS -
Bug#933485: auto-multiple-choice - ppc64el - make manual-test hangs
Hi. Thanks for the report. Le 01/08/2019 à 10:54, Roger a écrit : > but what is strange is that working directory /tmp/_lxVaXpUYl doesn't > exist any more - Didn't find why but I suspect it has an impact on > processing. The tests use tempdir with CLEANUP=>1, so that the working directories are deleted on exit. Maybe here some kind of error made the calling process to stop? Can you try to launch the test with the debugging flag on, with cd tests ; ./t/0assoc/test.pl --debug I hope the log file in the working directory will then remain. Regards, Alexis.
Bug#922567: FTBFS against opencv 4.0.1 (exp)
Thanks for the report! I will update the package also in unstable after buster release. Regards, Alexis Bienvenüe.
Bug#908583: auto-multiple-choice: Suggestion to set (or allow setting) catalog tags above the question
Control: forwarded -1 https://project.auto-multiple-choice.net/issues/588 This looks sensible: thanks. Forwarded to the upstream bugtracker. Regards, Alexis Bienvenüe.
Bug#870129: auto-multiple-choice broken with perl 5.26
Control: tags -1 + pending Hi Steve. Thanks for the report and the patch! Maybe I should wait for #870280 to be fixed before uploading a new version including it, because anyway #870280 currently prevents the package to be built. Regards, Alexis Bienvenüe.
Bug#870280: xelatex: Undefined control sequence \l__xeCJK_listings_letter_bool
Hi. Digging a little more, I found that \l__xeCJK_listings_letter_bool is never defined. Adding the following line in /usr/share/texlive/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty (eg. line 160) corrects the bug: \bool_new:N \l__xeCJK_listings_letter_bool I also tried the following source file: \documentclass{article} \usepackage{expl3} \begin{document} \ExplSyntaxOn \bool_if:NTF \l__TEST { TRUE } { FALSE } \ExplSyntaxOff \end{document} It compiles OK with LaTeX3 from 2017.20170629-1 (showing "FALSE"), but reports an error (I think this is the proper result) with 2017.20170724-1. Regards, Alexis Bienvenüe.
Bug#870280: xelatex: Undefined control sequence \l__xeCJK_listings_letter_bool
Hi. On Mon, 31 Jul 2017 23:49:38 +0900 Norbert Preining <norb...@preining.info> wrote: > Using this package has been an endless source of problems. Please > provide a minimal non-working example *NOT* using docbook (dblatex) The same problem arises with the following source file: \documentclass{article} \usepackage{listings} \usepackage{xeCJK} \setCJKmainfont{IPAexMincho} \setCJKsansfont{IPAexGothic} \setCJKmonofont{IPAexGothic} \begin{document} \lstinline!x! \end{document} Note that this file is compiling properly (xelatex) with debian version 2017.20170629-1. Also, this file is compiling properly with debian version 2017.20170724-1 *and* the following files from version 2017.20170629-1 in the current directory: expl3-code.tex expl3.sty l3keys2e.sty l3xdvipdfmx.def xparse.sty xtemplate.sty Regards, Alexis Bienvenüe.
Bug#792168: pdftk breaks PDF forms
Package: pdftk Version: 2.02-4+b2 Followup-For: Bug #792168 Dear Maintainer, The problem also exists with forms that can be used with evince/okular. With attached LaTeX file using hyperref package, you can build such a form: pdflatex sample.tex evince small.pdf Extracting pages with pdftk breaks the form: when clicking on the box in the new PDF form, the box disappears instead of showing a "checked" symbol. pdftk small.pdf cat output small-all.pdf evince small-all.pdf However, as a workaround, you can fix this file with pdftk small-all.pdf output small-all-fixed.pdf need_appearances Note that the file produced with pdftk small.pdf cat output small-all.pdf need_appearances does show the problem. Regards, Alexis Bienvenüe. -- System Information: Debian Release: 9.0 APT prefers testing APT policy: (990, 'testing'), (800, 'experimental'), (800, 'unstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages pdftk depends on: ii libc6 2.24-9 ii libgcc1 1:6.3.0-6 ii libgcj176.3.0-6 ii libstdc++6 6.3.0-6 pdftk recommends no packages. Versions of packages pdftk suggests: ii poppler-utils [xpdf-utils] 0.48.0-2 -- no debconf information % pdflatex small ; pdftk small.pdf output small-u.pdf uncompress ; pdftk small.pdf cat output small-all.pdf need_appearances ; pdftk small-all.pdf output small-all-2.pdf need_appearances \documentclass{article} \usepackage{hyperref} \begin{document} \pagestyle{empty} \begin{Form} \CheckBox[name=box]{}{ I am OK} \end{Form} \end{document} small-all.pdf Description: Adobe PDF document
Bug#844067: opencv: Uninstallable package libopencv-dev after binNMU
Source: opencv Version: 3.1.0+dfsg-1~exp2 Severity: important Dear Maintainer, The current version of libopencv-dev from experimental is uninstallable after beeing binNMU'ed: libopencv-dev depends on libopencv3.1-java=3.1.0+dfsg-1~exp2+b1, but libopencv is a Arch:all package with version 3.1.0+dfsg-1~exp2. I would say that the libopencv -> libopencv3.1-java dependency should be with ${source:Version} instead of ${binary:Version}. Regards, Alexis Bienvenüe. --- a/control 2016-11-12 09:20:41.051609811 +0100 +++ b/control 2016-11-12 09:20:53.703835973 +0100 @@ -73,7 +73,7 @@ libopencv-superres-dev (= ${binary:Version}), libopencv-imgcodecs-dev (= ${binary:Version}), libopencv-viz-dev (= ${binary:Version}), - libopencv3.1-java (= ${binary:Version}), + libopencv3.1-java (= ${source:Version}), pkg-config Recommends: opencv-data Breaks: libopencv-core-dev (<= 2.3.1-8)
Bug#823393:
Hi Samuel. Le 02/08/2016 03:25, Samuel Henrique a écrit : > Please have a look at line 196 of "./usr/share/doc/kdbg/changelog.gz" on > [1]. Yes I don't know where this comes from. > There's also a problem with the name "AndréWöbbeking" and i'm not sure > if your patch fixes that too, could you please confirm that/if you're > aware of that difference and wether grepping in non-binary-mode is enough? I think I checked reproducibility, but without explanations for the point you mentioned, maybe it is safer to begin with experimental. Regards, Alexis Bienvenüe.
Bug#823393: kdbg: mixed encoding in changelog
Hi Samuel. Le 21/07/2016 à 21:30, Samuel Henrique a écrit : > I could, however, make a new release signed by me, giving credit to you > in the changelog and keeping the patch itself almost intact (i would > like to add the "Last-Update" field on the header), and then having the > package sponsored. This is fine for me, thanks. Alexis Bienvenüe.
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-bui...@lists.alioth.debian.org Usertags: locale X-Debbugs-Cc: reproducible-bui...@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:
Bug#828226: tiger: please make the build reproducible (environment,locale)
Source: tiger Version: 1:3.2.3-14.1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: environment locale X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that 'tiger' could not be built reproducibly. The attached patch fixes the locale used by ls to sort files, and uses printf instead of echo to get the same behavior when SHELL is sh or dash. Once applied, tiger can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -u tiger-3.2.3/debian/changelog tiger-3.2.3/debian/changelog --- tiger-3.2.3/debian/changelog +++ tiger-3.2.3/debian/changelog @@ -1,3 +1,11 @@ +tiger (1:3.2.3-14.1.0~reproducible1) UNRELEASED; urgency=medium + + * Use printf instead of echo in convert2html, so that leading "-e", +or "*" wildcards, are printed as-is. + * Also set LC_ALL, which overwrites LC_COLLATE, in genmsgidx. + + -- Alexis Bienvenüe <p...@passoire.fr> Sun, 26 Jun 2016 09:21:57 +0200 + tiger (1:3.2.3-14.1) unstable; urgency=medium * Non-maintainer upload. diff -u tiger-3.2.3/util/genmsgidx tiger-3.2.3/util/genmsgidx --- tiger-3.2.3/util/genmsgidx +++ tiger-3.2.3/util/genmsgidx @@ -102,7 +102,7 @@ #exit 1 #} -LC_COLLATE=C.UTF-8 $LS $BASEDIR/doc/*.txt | +LC_ALL=C.UTF-8 LC_COLLATE=C.UTF-8 $LS $BASEDIR/doc/*.txt | while read infile do file=`$BASENAME $infile` only in patch2: unchanged: --- tiger-3.2.3.orig/util/convert2html +++ tiger-3.2.3/util/convert2html @@ -26,7 +26,7 @@ if [ -z "$line" ]; then echo "" else - echo $line + printf '%s\n' "$line" | sed 's/\s\+$//' fi read line if [ `echo $?` -ne 0 ]; then exit; fi
Bug#827864: funtools: please make the build reproducible (fileordering)
Source: funtools Version: 1.4.6+git150811-2 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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; \
Bug#827863: swedish: please make the build reproducible (locale)
Source: swedish Version: 1.4.5-2.1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: locale X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that 'swedish' could not be built reproducibly. The attached patch sets the locale to C while sorting, so that the order is fixed. Once applied, swedish can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -u swedish-1.4.5/debian/changelog swedish-1.4.5/debian/changelog --- swedish-1.4.5/debian/changelog +++ swedish-1.4.5/debian/changelog @@ -1,3 +1,9 @@ +swedish (1.4.5-2.1.0~reproducible1) UNRELEASED; urgency=medium + + * Use C locale for sorting, to make the build reproducible. + + -- Alexis Bienvenüe <p...@passoire.fr> Tue, 21 Jun 2016 15:16:32 +0200 + swedish (1.4.5-2.1) unstable; urgency=low * Non-maintainer upload. only in patch2: unchanged: --- swedish-1.4.5.orig/Makefile +++ swedish-1.4.5/Makefile @@ -47,8 +47,8 @@ svenska.datalista: svenska.aff goranj.data gorann.data < goranj.data sed 's/\/.*//' | sed 's/$$/\/S/' > goranJ.data - cat goran[jJ].data | sort -f | icombine svenska.aff > gorana.data - cat gorana.data gorann.data | sort -f > svenska.datalista + cat goran[jJ].data | LC_ALL=C sort -f | icombine svenska.aff > gorana.data + cat gorana.data gorann.data | LC_ALL=C sort -f > svenska.datalista rm goran[aJ].data goranj.data: diverse/gtmp.aff $(jsynclistor) @@ -113,7 +113,7 @@ munchlist -l diverse/gtmp.aff -v $< > $*.data ; touch $*.sync %.d2o: %.data diverse/gtmp.hash - ispell -d diverse/gtmp -e < $< | sed s/\ /$$'\\\n'/g | sort -u > $*.ord ; touch $*.sync + ispell -d diverse/gtmp -e < $< | sed s/\ /$$'\\\n'/g | LC_ALL=C sort -u > $*.ord ; touch $*.sync %.o: %.ord -[ -f $*.data ] && [ ! -f $*.sync ] && ( echo "Filen $*.sync finns ej" ; exit 1 )
Bug#827731: tin: please make the build reproducible (locale)
Source: tin Version: 1:2.3.2-1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: locale X-Debbugs-Cc: reproducible-bui...@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))
Bug#827361: matplotlib: please honour SOURCE_DATE_EPOCH to allow reproducible output
Control: forwarded -1 https://github.com/matplotlib/matplotlib/pull/6595 Le 15/06/2016 13:08, Sandro Tosi a écrit : > can you please send this upstream? thanks! Sure. I also included the attached patch to order keys when building the PDF file. That is needed to get reproducible output in some situations. Regards, Alexis Bienvenüe. Description: Reproducible PDF output Sort dict string representations to get reproducible PDF output. 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 @@ -17,6 +17,7 @@ import sys import time import warnings import zlib +import collections from io import BytesIO import numpy as np @@ -196,8 +197,8 @@ def pdfRepr(obj): # represented as Name objects. elif isinstance(obj, dict): r = [b"<<"] -r.extend([Name(key).pdfRepr() + b" " + pdfRepr(val) - for key, val in six.iteritems(obj)]) +r.extend(sorted([Name(key).pdfRepr() + b" " + pdfRepr(val) + for key, val in six.iteritems(obj)])) r.append(b">>") return fill(r) @@ -499,14 +500,14 @@ class PdfFile(object): self.alphaStates = {} # maps alpha values to graphics state objects self.nextAlphaState = 1 -self.hatchPatterns = {} +self.hatchPatterns = collections.OrderedDict() # reproducible writeHatches self.nextHatch = 1 self.gouraudTriangles = [] -self.images = {} +self.images = collections.OrderedDict() # reproducible writeImages self.nextImage = 1 -self.markers = {} +self.markers = collections.OrderedDict() # reproducible writeMarkers self.multi_byte_charprocs = {} self.paths = []
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-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@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 " +
Bug#827285: latex2html: Mispelled 'Homepage' in debian/control
Package: latex2html Version: 2015-debian1-1 Severity: minor Dear Maintainer, In debian/control, 'Hompage' should be 'Homepage'. Regards, Alexis Bienvenüe -- System Information: Debian Release: stretch/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.5.0-2-amd64 (SMP w/2 CPU cores) Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages latex2html depends on: ii ghostscript-x9.19~dfsg-1+b1 ii netpbm 2:10.0-15.3.0~reproducible1 ii perl 5.22.2-1 ii perl-doc 5.22.2-1 ii tex-common 6.05 ii texlive-binaries [texlive-base-bin] 2016.20160513.41080-2.0~reproducible1 ii texlive-fonts-recommended2016.20160512-1 ii texlive-latex-extra 2016.20160512-1 ii texlive-latex-recommended2016.20160512-1 latex2html recommends no packages. latex2html suggests no packages. -- no debconf information
Bug#796360: fixed in libical 2.0.0-0.1
Dear Maintainer, > * New upstream release > - includes reproducible build fix (Closes: #796360) The patch does not seem to be applied upstream: https://github.com/libical/libical/blob/master/scripts/mkderivedvalues.pl#L155 https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/libical.html Regards, Alexis Bienvenüe.
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-bui...@lists.alioth.debian.org Usertags: timestamps username environment X-Debbugs-Cc: reproducible-bui...@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 +=
Bug#827187: latex2html: please make the output reproducible (toolchain,timestamps,username,randomness)
Source: latex2html Version: 2015-debian1-1 Severity: wishlist Tags: upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: toolchain timestamps username randomness X-Debbugs-Cc: reproducible-bui...@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"; +
Bug#827172: reaver: please make the build reproducible (fileordering)
Source: reaver Version: 1.4-2 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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)
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-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@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
Bug#826951: slicot: please make the build reproducible (fileordering)
Source: slicot Version: 5.0+20101122-2 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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:
Bug#822197: sphinx: please remove memory addresses from generated python documentation
Control: tags -1 + fixed-upstream Now fixed upstream: https://github.com/sphinx-doc/sphinx/commit/09c25443ff8bbfb745b717658523f2c218bbf843 Regards, Alexis Bienvenüe.
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-bui...@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-bui...@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 \ > $@
Bug#826158: texinfo: please make makeinfo info output reproducible
Source: texinfo Version: 6.1.0.dfsg.1-8 Severity: wishlist Tags: upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, Thanks to the SOURCE_DATE_EPOCH [1] support in TL2016, pdf output of makeinfo can be made reproducible, even when using @today in the texi file (when SOURCE_DATE_EPOCH_TEX_PRIMITIVES is set to 1). It would be great to extend the SOURCE_DATE_EPOCH support for info output from makeinfo. See a proposed solution in the attached patch. Regards, Alexis Bienvenüe. [1] https://reproducible-builds.org/specs/source-date-epoch/ Description: Reproducible info output Honour the SOURCE_DATE_EPOCH environment variable to get a reproducible @today value for info output when it is set. See https://reproducible-builds.org/specs/source-date-epoch/ Author: Alexis Bienvenüe <p...@passoire.fr> --- texinfo-6.1.0.dfsg.1.orig/tp/Texinfo/Common.pm +++ texinfo-6.1.0.dfsg.1/tp/Texinfo/Common.pm @@ -1218,7 +1218,7 @@ sub expand_today($) return {'text' => 'a sunny day'}; } my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) - = localtime(time); + = ($ENV{SOURCE_DATE_EPOCH} ? gmtime($ENV{SOURCE_DATE_EPOCH}) : localtime(time)); $year += ($year < 70) ? 2000 : 1900; return $self->gdt('{month} {day}, {year}', { 'month' => $self->gdt($MONTH_NAMES[$mon]),
Bug#826093: osc: please make the build reproducible (timestamps)
Source: osc Version: 0.154.0-2 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@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()
Bug#825881: pyx: please make the build reproducible (timestamps,randomness)
Source: pyx Version: 0.12.1-4 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps randomness X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the `reproducible builds' effort [1], we have noticed that 'pyx' could not be built reproducibly. Please find attached proposed solutions for the following issues: * timestamps in the produced ps/pdf files can be made reproducible using the SOURCE_DATE_EPOCH environment variable [2] (when set), that corresponds to the last debian/changelog entry date when building a debian package. See reproducible-timestamps.patch * image names include memory addresses. They can eg. be replaced by some hash of the image itself, see reproducible-image-name.patch Once applied, pyx 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: Honour SOURCE_DATE_EPOCH Honour the SOURCE_DATE_EPOCH environment variable to get reproducible timestamps if it is set. See https://reproducible-builds.org/specs/source-date-epoch/ Author: Alexis Bienvenüe <p...@passoire.fr> Index: pyx-0.12.1/pyx/pdfwriter.py === --- pyx-0.12.1.orig/pyx/pdfwriter.py +++ pyx-0.12.1/pyx/pdfwriter.py @@ -29,7 +29,7 @@ except: haszlib = 0 import bbox, config, style, unit, version, trafo - +import os class PDFregistry: @@ -161,13 +161,18 @@ class PDFinfo(PDFobject): PDFobject.__init__(self, "info") def write(self, file, writer, registry): -if time.timezone < 0: -# divmod on positive numbers, otherwise the minutes have a different sign from the hours -timezone = "-%02i'%02i'" % divmod(-time.timezone/60, 60) -elif time.timezone > 0: -timezone = "+%02i'%02i'" % divmod(time.timezone/60, 60) -else: +if os.environ.get('SOURCE_DATE_EPOCH'): +creation_date = time.gmtime(int(os.environ.get('SOURCE_DATE_EPOCH'))) timezone = "Z00'00'" +else: +if time.timezone < 0: +# divmod on positive numbers, otherwise the minutes have a different sign from the hours +timezone = "-%02i'%02i'" % divmod(-time.timezone/60, 60) +elif time.timezone > 0: +timezone = "+%02i'%02i'" % divmod(time.timezone/60, 60) +else: +timezone = "Z00'00'" +creation_date = time.localtime() def pdfstring(s): r = "" @@ -188,7 +193,8 @@ class PDFinfo(PDFobject): if writer.keywords: file.write("/Keywords (%s)\n" % pdfstring(writer.keywords)) file.write("/Creator (PyX %s)\n" % version.version) -file.write("/CreationDate (D:%s%s)\n" % (time.strftime("%Y%m%d%H%M"), timezone)) +file.write("/CreationDate (D:%s%s)\n" % + (time.strftime("%Y%m%d%H%M",creation_date), timezone)) file.write(">>\n") Index: pyx-0.12.1/pyx/pswriter.py === --- pyx-0.12.1.orig/pyx/pswriter.py +++ pyx-0.12.1/pyx/pswriter.py @@ -22,6 +22,7 @@ import cStringIO, copy, time, math import bbox, config, style, version, unit, trafo +import os class PSregistry: @@ -107,11 +108,15 @@ class _PSwriter: self.encodings = {} def writeinfo(self, file): +if os.environ.get('SOURCE_DATE_EPOCH'): +creation_date = time.gmtime(int(os.environ.get('SOURCE_DATE_EPOCH'))) +else: +creation_date = time.localtime() file.write("Creator: PyX %s\n" % version.version) if self.title is not None: file.write("Title: %s\n" % self.title) file.write("CreationDate: %s\n" % - time.asctime(time.localtime(time.time( + time.asctime(creation_date)) def getfontmap(self): if self._fontmap is None: Description: Reproducible image name Use data hash instead of memory address to build internal image names, to get a reproducible result. Author: Alexis Bienvenüe <p...@passoire.fr> Index: pyx-0.12.1/pyx/bitmap.py === --- pyx-0.12.1.orig/pyx/bitmap.py +++ pyx-0.12.1/pyx/bitmap.py @@ -27,7 +27,7 @@ try: except: haszlib = 0 -import bbox, canvasitem, pswriter, pdfwriter, trafo, unit +import bbox, canvasitem, pswriter, pdfwriter, trafo, unit, hashlib devicenames = {"L": "/DeviceGray", "RGB": "/DeviceRGB", @@ -314,7 +31
Bug#825436: gettext: please make xgettext honour SOURCE_DATE_EPOCH
Control: merge -1 792687 OK, thanks, and sorry for duplicate. Regards, Alexis Bienvenüe.
Bug#825436: gettext: please make xgettext honour SOURCE_DATE_EPOCH
Source: gettext Version: 0.19.7-2 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@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\
Bug#824050: emacs24: please make autoloads files reproducible
Note that upstream recently commited another solution to this reproducibility issue for emacs 25.2, defaulting autoloads timestamps to nil: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22213 http://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS#n393 Regards, Alexis Bienvenüe.
Bug#825092: grass: please make the build reproducible (fileordering, randomness)
Source: grass Version: 7.0.4-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering randomness X-Debbugs-Cc: reproducible-bui...@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
Bug#825088: proj: please make nad2bin output reproducible
Source: proj Version: 4.9.2-2 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that the nad2bin binary has unreproducible output, as it includes uninitialized memory state when CTABLE.id's length is less than the available 80 bytes. See the attached patch for a proposed solution. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds Description: Makes nad2bin output reproducible Init CTABLE.id char[80] variable with zeroes, so that nad2bin output does not depend on memory state before call, and hence be reproducible. Author: Alexis Bienvenüe <p...@passoire.fr> --- proj-4.9.2.orig/src/nad2bin.c +++ proj-4.9.2/src/nad2bin.c @@ -98,6 +98,7 @@ int main(int argc, char **argv) { /* Read the ASCII Table*/ /* */ +memset(ct.id,0,MAX_TAB_ID); if ( NULL == fgets(ct.id, MAX_TAB_ID, stdin) ) { perror("fgets"); exit(1);
Bug#824472: torch3: please make the build reproducible (fileordering)
Hi. As pointed out by Reiner Herrmann, the previous patch is not very robust: the wildcard function may be executed before target's dependencies building, leading to an empty (or incomplete) objects list. The attached new patch solves that problem introducing intermediary targets. Regards, Alexis Bienvenüe. diff -u torch3-3.1/Makefile.modules torch3-3.1/Makefile.modules --- torch3-3.1/Makefile.modules +++ torch3-3.1/Makefile.modules @@ -12,11 +12,18 @@ all: $(LIBTORCH) $(LIBSOTORCH) soname: $(LIBSOTORCH) +.PHONY: LIBTORCH_build LIBSOTORCH_build + $(LIBTORCH): $(STATICOBJS) + $(MAKE) LIBTORCH_build -f ../Makefile.modules +LIBTORCH_build: @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 + $(MAKE) LIBSOTORCH_build -f ../Makefile.modules +LIBSOTORCH_build: + $(CC) -shared -Wl,-soname=libtorch.so.3 -o $(LIBSOTORCH) $(sort $(wildcard $(DYNAMICOBJSDIR)/*.o)) $(OBJS_DIR)/static/%.o: %.cc
Bug#824808: gdal: please make the build reproducible (fileordering)
Le 20/05/2016 11:18, Sebastiaan Couwenberg a écrit : > The second patches seems better because it doesn't rely on external ls > which is not a given for the Windows builds. OK I see. > I don't understand the need for the buildit target, isn't it sufficient > to do the wildcard sorting in the $(LIBGDAL) target? In some situations some of the target dependencies do not exist before the "make target" call. When this arises, as $(wildcard) is expanded before building the dependencies, it can miss some files… I was not sure of the situation here, so I added a transitional target to be safe. > I've modified your patch to do that, and that seems to work too. > > https://anonscm.debian.org/cgit/pkg-grass/gdal.git/tree/debian/patches/sort-files-in-static-library.patch?id=caf37a5adc5ea187af41b0faca799f45d2364bec Thanks! Regards, Alexis.
Bug#824808: gdal: please make the build reproducible (fileordering)
Source: gdal Version: 2.1.0+dfsg-2 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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)
Bug#824668: gmt: please make the build reproducible (timestamps)
Le 18/05/2016 17:36, Bas Couwenberg a écrit : > The transition to GDAl 2.1.0 is almost complete (#823335). I'll upload a > new GMT revision that includes the upstreamed patch after GDAL 2.1.0 is > in testing. Great, thanks! Alexis.
Bug#824668: gmt: please make the build reproducible (timestamps)
Source: gmt Version: 5.2.1+dfsg-5 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the `reproducible builds' effort [1], we have noticed that 'gmt' could not be built reproducibly. The attached patch honours the SOURCE_DATE_EPOCH environment variable [2] to get a reproducible build date from the last debian changelog entry. Once applied, gmt 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: Honour SOURCE_DATE_EPOCH Honour the SOURCE_DATE_EPOCH environment variable to set the sources last modification date. See https://reproducible-builds.org/specs/source-date-epoch/ Author: Alexis Bienvenüe <p...@passoire.fr> Index: gmt-5.2.1+dfsg/cmake/modules/today.c === --- gmt-5.2.1+dfsg.orig/cmake/modules/today.c +++ gmt-5.2.1+dfsg/cmake/modules/today.c @@ -5,18 +5,32 @@ #include #include +#include #define BUFSIZE 32 int main () { char today_string[BUFSIZE]; - /* obtain current time as time since epoch */ - time_t clock = time (NULL); - - /* convert time since epoch to calendar time expressed as local time */ - struct tm *p_time = localtime (); + time_t clock; +struct tm *p_time; +/* See https://reproducible-builds.org/specs/source-date-epoch/ */ +char* source_date_epoch = getenv("SOURCE_DATE_EPOCH"); +if(source_date_epoch) { + /* get sources last modification date from environment */ + clock = strtoull(source_date_epoch, NULL, 10); + + /* Use UTC for reproducibility */ + p_time = gmtime (); +} else { + /* obtain current time as time since epoch */ + clock = time (NULL); + + /* convert time since epoch to calendar time expressed as local time */ + p_time = localtime (); +} + /* convert tm object to custom textual representation ;mm;dd;Mmm*/ size_t result = strftime(today_string, BUFSIZE, "%Y;%m;%d;%B", p_time);
Bug#824653: elkcode: please make the build reproducible (environment)
Source: elkcode Version: 2.3.22-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-bui...@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
Bug#824639: openblas: please make the build reproducible (fileordering)
Source: openblas Version: 0.2.18-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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
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-bui...@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-bui...@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
Bug#824569: gap-ctbllib: please make the build reproducible (timestamps)
Source: gap-ctbllib Version: 1r2p2.dfsg.0-2 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@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;\
Bug#824567: tkdesk: please make the build reproducible (fileordering)
Source: tkdesk Version: 2.0-9.2 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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]
Bug#824501: cclive: please make the build reproducible (timestamps)
Source: cclive Version: 0.9.3-0.1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the `reproducible builds' effort [1], we have noticed that 'cclive' could not be built reproducibly. The attached patch honours the SOURCE_DATE_EPOCH environment variable [2] to get a reproducible build date from the last debian changelog entry. Once applied, cclive 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: Honour SOURCE_DATE_EPOCH Get build date from the environment variable SOURCA_DETE_EPOCH (is set) to make the build reproducible. See https://reproducible-builds.org/specs/source-date-epoch/ Author: Alexis Bienvenüe <p...@passoire.fr> --- cclive-0.9.3.orig/configure.ac +++ cclive-0.9.3/configure.ac @@ -37,7 +37,9 @@ AC_DEFINE_UNQUOTED([CXXFLAGS], "$CXXFLAG AC_DEFINE_UNQUOTED([CXX], "$CXX", [Define to compiler]) AC_PATH_PROG([DATE], [date], [no]) -AS_IF([test x"$DATE" != "xno"], [build_time=`$DATE +"%F %T %z"`]) +DATE_FMT="%F %T %z" +SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}" +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" 2>/dev/null) AC_DEFINE_UNQUOTED([BUILD_TIME], ["$build_time"], [We have build time]) AC_PATH_PROG([A2X], [a2x], [no])
Bug#824472: torch3: please make the build reproducible (fileordering)
Source: torch3 Version: 3.1-2.1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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
Bug#824183: texlive-bin: please set default value of SOURCE_DATE_EPOCH_TEX_PRIMITIVES to 1
Control: tags -1 + patch With a proposed patch. Thanks, Alexis Bienvenüe. Description: SOURCE_DATE_EPOCH_TEX_PRIMITIVES defaults to 1 If SOURCE_DATE_EPOCH is set, the tex primitives \year, \month, \day, \time will be set from its value if SOURCE_DATE_EPOCH_TEX_PRIMITIVES is not set or if SOURCE_DATE_EPOCH_TEX_PRIMITIVES is set to 1. This helps to make reproducible builds using only the environment variable SOURCE_DATE_EPOCH - setting some more *tool-specific* environment variables from dpkg-buildpackage is not possible. Author: Alexis Bienvenüe <p...@passoire.fr> Bug-Debian: https://bugs.debian.org/824183 --- texlive-bin-2016.20160512.41045.orig/texk/web2c/lib/texmfmp.c +++ texlive-bin-2016.20160512.41045/texk/web2c/lib/texmfmp.c @@ -2248,7 +2248,14 @@ get_date_and_time (integer *minutes, in struct tm *tmptr; #ifndef onlyTeX string sde_texprim = getenv ("SOURCE_DATE_EPOCH_TEX_PRIMITIVES"); - if (sde_texprim && STREQ (sde_texprim, "1")) { + /* warn if they gave an invalid value, empty (null string) ok. */ + if (sde_texprim && strlen (sde_texprim) > 0 + && !STREQ (sde_texprim, "0") && !STREQ (sde_texprim, "1")) { +WARNING1 ("invalid value (expected 0 or 1) for environment variable $SOURCE_DATE_EPOCH_TEX_PRIMITIVES: %s", + sde_texprim); + } + if (getenv ("SOURCE_DATE_EPOCH") && + !(sde_texprim && STREQ (sde_texprim, "0"))) { init_start_time (); tmptr = gmtime (_time); } else @@ -2258,15 +2265,6 @@ get_date_and_time (integer *minutes, in use current time. */ time_t myclock = time ((time_t *) 0); tmptr = localtime (); - -#ifndef onlyTeX -/* warn if they gave an invalid value, empty (null string) ok. */ -if (sde_texprim && strlen (sde_texprim) > 0 -&& !STREQ (sde_texprim, "0")) { -WARNING1 ("invalid value (expected 0 or 1) for environment variable $SOURCE_DATE_EPOCH_TEX_PRIMITIVES: %s", - sde_texprim); -} -#endif /* not onlyTeX */ } *minutes = tmptr->tm_hour * 60 + tmptr->tm_min; --- texlive-bin-2016.20160512.41045.orig/texk/web2c/man/pdftex.man +++ texlive-bin-2016.20160512.41045/texk/web2c/man/pdftex.man @@ -380,7 +380,7 @@ timestamps in the PDF output, such as th This is useful for making reproducible builds. .TP .B SOURCE_DATE_EPOCH_TEX_PRIMITIVES -If set to the value "1", the time-related \*(TX primitives +If not set to the value "0", the time-related \*(TX primitives .RI ( \eyear , .IR \emonth , .IR \eday ,
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-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@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/
Bug#787424: emacs24: improve reproducibility: please order hashes when generating .el files
Control: tags -1 + patch Hi. On Mon, 01 Jun 2015 11:44:06 -0400 Daniel Kahn Gillmor <d...@fifthhorseman.net> wrote: > One example can be seen in the difference in > /usr/share/emacs/24.4/lisp/finder-inf.el from here: > > https://reproducible.debian.net/dbd/unstable/amd64/emacs24_24.4+1-5.debbindiff.html > > compare the list after "convenience" here, which sorts the first 13 > items differently on each build: This difference is coming from the Makefile, which passes file names in a non-reproducible order to finder-compile-keywords-make-dist, which itself seem to me reproducible. The attached patch sorts the filenames before passing them to finder-compile-keywords-make-dist, and fixes this non-reproductible behavior in my experimental toolchain [1]. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain Description: Sort files in $wins lisp/Makefile.in: sort files in the $wins variable, to make the build reproducible. Author: Alexis Bienvenüe <p...@passoire.fr> Bug-Debian: https://bugs.debian.org/787424 Index: emacs24-24.5+1/lisp/Makefile.in === --- emacs24-24.5+1.orig/lisp/Makefile.in +++ emacs24-24.5+1/lisp/Makefile.in @@ -110,14 +110,14 @@ COMPILE_FIRST = \ emacs = EMACSLOADPATH= '$(EMACS)' $(EMACSOPT) # Common command to find subdirectories -setwins=for file in `find . -type d -print`; do \ +setwins=for file in `find . -type d -print | LC_ALL=C sort`; do \ case $$file in */.* ) ;; \ *) wins="$$wins$${wins:+ }$$file" ;; \ esac; \ done # Find all subdirectories except `obsolete' and `term'. -setwins_almost=for file in `find ${srcdir} -type d -print`; do \ +setwins_almost=for file in `find ${srcdir} -type d -print | LC_ALL=C sort`; do \ case $$file in ${srcdir}*/obsolete | ${srcdir}*/term ) ;; \ *) wins="$$wins$${wins:+ }$$file" ;; \ esac; \ @@ -126,14 +126,14 @@ setwins_almost=for file in `find ${srcdi # Find all subdirectories except `obsolete', `term', and `leim' (and subdirs). # We don't want the leim files listed as packages, especially # since many share basenames with files in language/. -setwins_finder=for file in `find ${srcdir} -type d -print`; do \ +setwins_finder=for file in `find ${srcdir} -type d -print | LC_ALL=C sort`; do \ case $$file in ${srcdir}*/obsolete | ${srcdir}*/term | ${srcdir}*/leim* ) ;; \ *) wins="$$wins$${wins:+ }$$file" ;; \ esac; \ done # Find all subdirectories in which we might want to create subdirs.el. -setwins_for_subdirs=for file in `find ${srcdir} -type d -print`; do \ +setwins_for_subdirs=for file in `find ${srcdir} -type d -print | LC_ALL=C sort`; do \ case $$file in \ ${srcdir}*/cedet* | ${srcdir}*/leim* ) ;; \ *) wins="$$wins$${wins:+ }$$file" ;; \
Bug#824050: emacs24: please make autoloads files reproducible
Source: emacs24 Version: 24.5+1-6 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@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)
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-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@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.
Bug#824037: courier: please make the build reproducible (environment,timestamps)
Source: courier Version: 0.76.1-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: environment timestamps X-Debbugs-Cc: reproducible-bui...@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
Bug#822197: sphinx: please remove memory addresses from generated python documentation
Control: forwarded -1 https://github.com/sphinx-doc/sphinx/pull/2534 A far simpler patch has been submitted upstream! Alexis Bienvenüe.
Bug#823824: asymptote: please make the build reproducible (timestamps)
Source: asymptote Version: 2.37.real-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@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
Bug#823797: openclonk: please make the build reproducible (timestamps)
Source: openclonk Version: 7.0-3 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@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
Bug#759999: dpkg-dev: please make mtimes of packaged files deterministic
Hi. On Fri, 15 Jan 2016 22:28:12 +0100 <lu...@debian.org> wrote: > The forth patch changes dpkg-buildpackage to set SOURCE_DATE_EPOCH to > the time of the latest debian/changelog entry if it hasn't been already > set, effectively making the timestamps recorded by dpkg-deb in the most > common build process deterministic. The SOURCE_DATE_EPOCH support is now implemented in pdftex/xetex: SOURCE_DATE_EPOCH will only be used to set CreationDate and related meta-data in produced files, and if SOURCE_DATE_EPOCH_TEX_PRIMITIVES equals 1, then the TeX primitives year, month, etc. will also be set so that the \today command will refer to the date given by SOURCE_DATE_EPOCH. See the discussion starting at [1], the news [2] and the commit [3]. The \today command is widely used in packages documentation, and I think replacing its value with the last source modification date is meaningful. It will also help reproducibility. Therefore I suggest to also add those lines to scripts/dpkg-buildpackage.pl, along with 0004-dpkg-buildpackage-Preset-build-timestamp-to-latest-c.patch: if (! exists($ENV{SOURCE_DATE_EPOCH_TEX_PRIMITIVES})) { $ENV{SOURCE_DATE_EPOCH_TEX_PRIMITIVES} = 1; } Regards, Alexis Bienvenüe. [1] https://www.tug.org/pipermail/tex-k/2016-May/002691.html [2] https://www.tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/NEWS?revision=40889 [3] https://www.tug.org/svn/texlive/trunk/Build/source/texk/web2c/lib/texmfmp.c?r1=40504=40889=40889
Bug#792202: texlive-bin: Please make the CreationDate, ModDate and ID field deterministic
Hi. Note that dvips honours SOURCE_DATE_EPOCH since https://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipsk/output.c?r1=32653=40885 so that suppress-dvips-creationdate.patch is not needed with TL2016. Also, with SOURCE_DATE_EPOCH_TEX_PRIMITIVES=1, remove-tex-output-timestamp.patch is not needed with TL2016: year, month, day are the TeX primitives that can be set from SOURCE_DATE_EPOCH if SOURCE_DATE_EPOCH_TEX_PRIMITIVES=1. See https://www.tug.org/svn/texlive?view=revision=40889 Regards, Alexis Bienvenüe.
Bug#823393: kdbg: mixed encoding in changelog
Source: kdbg Version: 2.5.5-1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-bui...@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
Bug#823383: crawl: please make the build reproducible (fileordering,timestamps)
Source: crawl Version: 0.17.1-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering timestamps X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'crawl' could not be built reproducibly. The attached patch fixes the order in which maps are listed, and strips build date from the version string. Once applied, crawl can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru crawl-0.17.1/debian/changelog crawl-0.17.1/debian/changelog --- crawl-0.17.1/debian/changelog 2015-12-21 14:06:08.0 +0100 +++ crawl-0.17.1/debian/changelog 2016-05-03 21:57:43.0 +0200 @@ -1,3 +1,10 @@ +crawl (2:0.17.1-1.0~reproducible1) UNRELEASED; urgency=medium + + * Sort maps list and strip build date from version string, to get +reproducible build. + + -- Alexis Bienvenüe <p...@passoire.fr> Tue, 03 May 2016 21:38:13 +0200 + crawl (2:0.17.1-1) unstable; urgency=medium * New upstream release. diff -Nru crawl-0.17.1/debian/patches/series crawl-0.17.1/debian/patches/series --- crawl-0.17.1/debian/patches/series 2015-09-20 14:54:52.0 +0200 +++ crawl-0.17.1/debian/patches/series 2016-05-03 21:56:34.0 +0200 @@ -0,0 +1,2 @@ +sort_list_of_maps.patch +strip_build_date diff -Nru crawl-0.17.1/debian/patches/sort_list_of_maps.patch crawl-0.17.1/debian/patches/sort_list_of_maps.patch --- crawl-0.17.1/debian/patches/sort_list_of_maps.patch 1970-01-01 01:00:00.0 +0100 +++ crawl-0.17.1/debian/patches/sort_list_of_maps.patch 2016-05-03 21:36:19.0 +0200 @@ -0,0 +1,15 @@ +Description: Sort list of maps + Sort list of maps, to get reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- crawl-0.17.1.orig/source/Makefile crawl-0.17.1/source/Makefile +@@ -1425,7 +1425,7 @@ endif + $(COPY_R) dat/dlua/* $(datadir_fp)/dat/dlua/ + echo "-- Autogenerated list of maps to load and compile:" \ + >$(datadir_fp)/dat/dlua/loadmaps.lua +- find dat -name '*.des'|sed s:dat/::| \ ++ find dat -name '*.des'|LC_ALL=C sort|sed s:dat/::| \ + while read x; \ + do echo "dgn.load_des_file('$$x')"; \ + done >>$(datadir_fp)/dat/dlua/loadmaps.lua diff -Nru crawl-0.17.1/debian/patches/strip_build_date crawl-0.17.1/debian/patches/strip_build_date --- crawl-0.17.1/debian/patches/strip_build_date 1970-01-01 01:00:00.0 +0100 +++ crawl-0.17.1/debian/patches/strip_build_date 2016-05-03 21:57:19.0 +0200 @@ -0,0 +1,15 @@ +Description: Strip build date + Strip build date from version string, to get reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- crawl-0.17.1.orig/source/version.cc crawl-0.17.1/source/version.cc +@@ -35,7 +35,7 @@ namespace Version + #endif + + const char* compilation_info = +-"Compiled with " COMPILER " on " __DATE__ " at " __TIME__ "\n" ++"Compiled with " COMPILER "\n" + "Build platform: " CRAWL_HOST "\n" + "Platform: " CRAWL_ARCH "\n" + "CFLAGS: " CRAWL_CFLAGS "\n"
Bug#823241: unhide: please make the build reproducible (fileordering)
Source: unhide Version: 20130526-1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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
Bug#823239: gspiceui: please make the build reproducible (fileordering)
Source: gspiceui Version: 1.1.00+dfsg-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'gspiceui' could not be built reproducibly. The attached patch fixes the order in which object files are passed to the compiler. Once applied, gspiceui can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru gspiceui-1.1.00+dfsg/debian/changelog gspiceui-1.1.00+dfsg/debian/changelog --- gspiceui-1.1.00+dfsg/debian/changelog 2015-05-21 22:10:58.0 +0200 +++ gspiceui-1.1.00+dfsg/debian/changelog 2016-04-30 21:26:42.0 +0200 @@ -1,3 +1,9 @@ +gspiceui (1.1.00+dfsg-1.0~reproducible1) UNRELEASED; urgency=medium + + * Reproducible build + + -- Alexis Bienvenüe <p...@passoire.fr> Sat, 30 Apr 2016 21:26:42 +0200 + gspiceui (1.1.00+dfsg-1) unstable; urgency=medium * New release version diff -Nru gspiceui-1.1.00+dfsg/debian/patches/06_sort_object_files.patch gspiceui-1.1.00+dfsg/debian/patches/06_sort_object_files.patch --- gspiceui-1.1.00+dfsg/debian/patches/06_sort_object_files.patch 1970-01-01 01:00:00.0 +0100 +++ gspiceui-1.1.00+dfsg/debian/patches/06_sort_object_files.patch 2016-04-30 21:37:15.0 +0200 @@ -0,0 +1,26 @@ +Description: Sort object files + Sort *.o files when merging, to get reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: gspiceui-1.1.00+dfsg/src/Makefile +=== +--- gspiceui-1.1.00+dfsg.orig/src/Makefile gspiceui-1.1.00+dfsg/src/Makefile +@@ -93,7 +93,7 @@ LIBS := $(shell $(WXCFG) --libs core,bas + OBJS := $(wildcard *.cpp) $(wildcard */*.cpp) $(wildcard */*/*.cpp) + OBJS := $(filter-out tests/%.cpp, $(OBJS)) + OBJS := $(notdir $(OBJS)) +-OBJS := $(patsubst %.cpp, obj/%.o, $(OBJS)) ++OBJS := $(sort $(patsubst %.cpp, obj/%.o, $(OBJS))) + + # Specify list of directories that `make' should search for prerequisite files + VPATH = $(BINDIR) +@@ -134,7 +134,7 @@ obj/%.o : %.cpp + # -o specify the output file name + + $(BINDIR)/$(PROG) : $(OBJS) +- $(CXX) -pipe $(LDFLAGS) -o $(BINDIR)/$(PROG) obj/*.o $(LIBS) ++ $(CXX) -pipe $(LDFLAGS) -o $(BINDIR)/$(PROG) $(OBJS) $(LIBS) + ifeq ($(ROOT)/GSpiceUI.app,$(wildcard $(ROOT)/GSpiceUI.app)) + cp $(BINDIR)/$(PROG) $(ROOT)/GSpiceUI.app/Contents/MacOS/gspiceui + endif diff -Nru gspiceui-1.1.00+dfsg/debian/patches/series gspiceui-1.1.00+dfsg/debian/patches/series --- gspiceui-1.1.00+dfsg/debian/patches/series 2015-05-21 18:50:22.0 +0200 +++ gspiceui-1.1.00+dfsg/debian/patches/series 2016-04-30 21:25:08.0 +0200 @@ -3,3 +3,4 @@ 03_manpage.patch 04_gwave.patch 05_manual_path.patch +06_sort_object_files.patch
Bug#822963: htop: please make the build reproducible (timestamps)
Hi Daniel. Le 29/04/2016 15:56, Daniel Lange a écrit : > that patch is from Graham (CC) and we have it both already in > https://anonscm.debian.org/cgit/collab-maint/htop.git/commit/?id=cef9e7933e5c9704eaa5a6330067967f32e52798 > and sent upstream (https://github.com/hishamhm/htop/pull/476). Excellent. Sorry I did not look at git and upstream before… If I understood correctly, the --date @epoch is GNU-date specific, and BSD-date has another syntax, that's why I took the code from [1]. Regards, Alexis. [1]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal#Examples
Bug#822963: htop: please make the build reproducible (timestamps)
Source: htop Version: 2.0.1-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@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
Bug#822948: shotwell: please make the build reproducible (timestamps, umask)
Source: shotwell Version: 0.22.0-4 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps umask X-Debbugs-Cc: reproducible-bui...@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:
Bug#820895: sphinx: please extend SOURCE_DATE_EPOCH support
Control: forwarded -1 https://github.com/sphinx-doc/sphinx/pull/2503 Hi Dmitry. Le 24/04/2016 14:40, Dmitry Shachnev a écrit : > Can you please submit your patch upstream (like you did it for #822197)? > > I would really prefer to get this patch reviewed/accepted by upstream before > including it in the Debian packaging. (Also, if you will be submitting it, > better use stable branch of git rather than master, which will make sure your > change will be in the next bugfix release if accepted.) As suggested - thanks, and sorry for the delay. Alexis.
Bug#820815: closed by Dimitrios Eftaxiopoulos <eftax...@otenet.gr> (Bug#820815: fixed in freefem++ 3.46+dfsg1-1)
Control: reopen -1 Hi. Thanks for this version integrating the patch. However, it appears that you forgot part of it, leading to unreproducible build [1]. The line "FF_DATE=`date`" has to be removed from configure.ac - this corresponds to the following lines of the original build_date_from_SOURCE_DATE_EPOCH.patch: @@ -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 ir) AC_SUBST(ff_prefix_dir,$ff_prefix_dir) Regards, Alexis Bienvenüe. [1] https://reproducible.debian.net/rb-pkg/testing/amd64/freefem%2B%2B.html
Bug#822566: stk: please make the build reproducible (fileordering)
Hi. Le 25/04/2016 15:32, Felipe Sateler a écrit : > Thanks, but couldn't this be simpler by using the already-defined > variable $(OBJECTS)? Does using that fix the problem? I agree that would be better, but it does not seem to be the same: eg. Generator.o is in src/Makefile.in's $(OBJECTS) but is _not_ built because there is no Generator.cpp, so it is not included in *.o Regards, Alexis Bienvenüe.
Bug#822566: stk: please make the build reproducible (fileordering)
Source: stk Version: 4.5.0-3 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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
Bug#822561: xpa: please make the build reproducible (fileordering)
Source: xpa Version: 2.1.17-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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:
Bug#820668: sawfish: please make the build reproducible (fileordering,timestamps,username,hostname)
Hi Jose. Le 17/04/2016 18:45, Jose M Calhariz a écrit : > The patch is broken in file themes/Makefile.in, so I used a workaround > for making it work. Sorry for this mess: I did not realize there is a problem when modifying an already existing patch and using debdiff on the source packages. Please find an updated diff file with an extra patch. > But I don't believe it makes a reproducible build. The arguments $$d/* are expanded in an unreproducible order before being passed to tar, that's why I used the ls command to sort them. However, the order has to be locale-independent (uppercase/lowercase letters, underscores, etc. are not sorted the same way depending on the locale), so I added LC_ALL=C to 'ls'. However, you're right: when themes have subdirectories, the -d switch must be used for ls, and tar also has to list them in a reproducible order, so that the --sort=name option has to be added. This is done in the updated patch. I used the experimental toolchain [1] to check for reproducibility. It is not the exact same process as the one used on jenkins to build the reports, but my patch seemed to solve the issues detected in [2]. Regards, Alexis Bienvenüe. [1] https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain [2] https://reproducible.debian.net/rb-pkg/testing/amd64/sawfish.html 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-25 09:56:33.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, 25 Apr 2016 11:02:24 +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-25 10:30:46.0 +0200 @@ -0,0 +1,34 @@ +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> + +Index: sawfish-1.11/build-info +=== +--- 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 < + +--- 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) && GZIP=-9n tar czf $$d.tar.gz $$d/* ) ; \ ++ ( cd $(srcdir) && GZIP=-9n tar --sort=name -czf $$d.tar.gz `LC_ALL=C ls -d $$d/*` ) ; \ + $(INSTALL_DATA) $$d.tar.gz $(DESTDIR)$(themedir)/$$d.tar.gz; \ + fi \ + done \
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-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@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
Bug#820809: wsdl4j: please make the build reproducible (environment)
Le 14/04/2016 12:28, Emmanuel Bourg a écrit : > Thank you for the patch. It reminded me that the javadoc task sets the > locale for the reproducible builds but not the encoding. I've fixed that > in ant/1.9.7-1. If it works properly the reproducibility status of > wsdl4j should get better in a few days. Excellent: thanks! Alexis.
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-bui...@lists.alioth.debian.org Usertags: fileordering timestamps locale X-Debbugs-Cc: reproducible-bui...@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
Bug#820895: sphinx: please extend SOURCE_DATE_EPOCH support
Source: sphinx Version: 1.3.6-2 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@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 +=
Bug#820869: pyexiv2: please make the build reproducible (timestamps)
Source: pyexiv2 Version: 0.3.2-8 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@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
Bug#820815: freefem++: please make the build reproducible (fileordering,timestamps)
Source: freefem++ Version: 3.45-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering timestamps X-Debbugs-Cc: reproducible-bui...@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 +
Bug#820809: wsdl4j: please make the build reproducible (environment)
Source: wsdl4j Version: 1.6.3-2 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-bui...@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
Bug#820742: gmic: please make the build reproducible (timestamps)
Source: gmic Version: 1.6.8-3 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@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,
Bug#820741: sim4: please make the build reproducible (fileordering)
Source: sim4 Version: 0.0.20121010-2 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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
Bug#820740: bless: please make the build reproducible (environment)
Source: bless Version: 0.6.0-5 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'bless' could not be built reproducibly. The attached patch fixes the SHELL used in the binary package executables to /bin/sh instead of current one. Once applied, bless can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru bless-0.6.0/debian/changelog bless-0.6.0/debian/changelog --- bless-0.6.0/debian/changelog 2015-09-09 15:49:19.0 +0200 +++ bless-0.6.0/debian/changelog 2016-04-11 23:19:02.0 +0200 @@ -1,3 +1,10 @@ +bless (0.6.0-5.0~reproducible1) unstable; urgency=medium + + * Use shell /bin/sh in binary package executables, to make the build +reproducible + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 11 Apr 2016 23:19:02 +0200 + bless (0.6.0-5) unstable; urgency=low * [6357a2e] Convert from CBDS to DH7 diff -Nru bless-0.6.0/debian/patches/series bless-0.6.0/debian/patches/series --- bless-0.6.0/debian/patches/series 2015-09-09 15:38:44.0 +0200 +++ bless-0.6.0/debian/patches/series 2016-04-11 23:16:58.0 +0200 @@ -1,2 +1,3 @@ use_default_compiler.patch force_gtk_action_namespace.patch +use_sh diff -Nru bless-0.6.0/debian/patches/use_sh bless-0.6.0/debian/patches/use_sh --- bless-0.6.0/debian/patches/use_sh 1970-01-01 01:00:00.0 +0100 +++ bless-0.6.0/debian/patches/use_sh 2016-04-11 23:45:53.0 +0200 @@ -0,0 +1,35 @@ +Description: Use sh + Use shell /bin/sh in binary package executables, whatever the $SHELL + variable is when building, to make the build reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: bless-0.6.0/bless-script.in +=== +--- bless-0.6.0.orig/bless-script.in bless-0.6.0/bless-script.in +@@ -1,3 +1,3 @@ +-#!@SHELL@ ++#!/bin/sh + + mono "@blesssrcdir@/bin/bless.exe" "$@" +\ No newline at end of file +Index: bless-0.6.0/data/help_script.tmpl.in +=== +--- bless-0.6.0.orig/data/help_script.tmpl.in bless-0.6.0/data/help_script.tmpl.in +@@ -1,4 +1,4 @@ +-#!@SHELL@ ++#!/bin/sh + + # Script that loads help for Bless + xml_help="@blessdocdir@/user/bless-manual.xml" +Index: bless-0.6.0/src/bless-script.in +=== +--- bless-0.6.0.orig/src/bless-script.in bless-0.6.0/src/bless-script.in +@@ -1,3 +1,3 @@ +-#!@SHELL@ ++#!/bin/sh + + mono "@blesslibdir@/@PACKAGE_NAME@/bless.exe" "$@" +\ No newline at end of file
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-bui...@lists.alioth.debian.org Usertags: username hostname timestamps locale X-Debbugs-Cc: reproducible-bui...@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::
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-bui...@lists.alioth.debian.org Usertags: fileordering timestamps username hostname X-Debbugs-Cc: reproducible-bui...@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
Bug#820661: nullmailer: please make the build reproducible (fileordering)
Source: nullmailer Version: 1.13-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'nullmailer' could not be built reproducibly. The attached patch fixes the order in which files are included in the libnullmailer.a archive. Once applied, nullmailer can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru nullmailer-1.13/debian/changelog nullmailer-1.13/debian/changelog --- nullmailer-1.13/debian/changelog 2014-08-08 02:19:32.0 +0200 +++ nullmailer-1.13/debian/changelog 2016-04-11 09:26:05.0 +0200 @@ -1,3 +1,9 @@ +nullmailer (1:1.13-1.0~reproducible1) unstable; urgency=medium + + * Deterministic file order in archives. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 11 Apr 2016 09:26:05 +0200 + nullmailer (1:1.13-1) unstable; urgency=low * Ack NMU, thankyou for your help with this package. diff -Nru nullmailer-1.13/debian/patches/15_sort_files_in_archive.diff nullmailer-1.13/debian/patches/15_sort_files_in_archive.diff --- nullmailer-1.13/debian/patches/15_sort_files_in_archive.diff 1970-01-01 01:00:00.0 +0100 +++ nullmailer-1.13/debian/patches/15_sort_files_in_archive.diff 2016-04-11 09:35:26.0 +0200 @@ -0,0 +1,16 @@ +Description: Sort files in archive + Sort files when using mergelib to create libnullmailer.a, to get + reproducible build +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: nullmailer-1.13/lib/mergelib.sh +=== +--- nullmailer-1.13.orig/lib/mergelib.sh nullmailer-1.13/lib/mergelib.sh +@@ -12,5 +12,5 @@ for input in "$@"; do + ar x ../../"$input" + cd .. + done +-ar rc ../"$archive" */* ++ar rc ../"$archive" `LC_ALL=C ls */*` + ranlib ../"$archive" diff -Nru nullmailer-1.13/debian/patches/series nullmailer-1.13/debian/patches/series --- nullmailer-1.13/debian/patches/series 2014-08-07 10:01:55.0 +0200 +++ nullmailer-1.13/debian/patches/series 2016-04-11 09:24:19.0 +0200 @@ -8,3 +8,4 @@ 12_allow_no_dots.diff 13_fix_automake.diff 14_more_manpages.diff +15_sort_files_in_archive.diff
Bug#820603: viking: please make the build reproducible (fileordering)
Source: viking Version: 1.6-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-bui...@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 +
Bug#820240: lua-ldoc: please honour SOURCE_DATE_EPOCH
Hi Julian. Le 10/04/2016 09:06, Julian Wollrath a écrit : > the patch looks fine by me. Feel free to upload a new version of > lua-ldoc with it applied. Thanks for your review and green light. However, I don't have any upload right… Regards, Alexis.
Bug#820522: gtkspell: please make the build reproducible (environment)
Source: gtkspell Version: 2.0.16-1.1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-bui...@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
Bug#820457: recode: please make the build reproducible (timestamps)
Source: recode Version: 3.6-22 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@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 @@ -12,3 +12,4 @@ 12-src-names-c-format-string 13-mdate-sh-use-tz-utc 99-config-guess-config-sub +14-use-packaged-help2man
Bug#820435: asciidoctor: please honour SOURCE_DATE_EPOCH
Source: asciidoctor Version: 1.5.4-1 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@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
Bug#820240: lua-ldoc: please honour SOURCE_DATE_EPOCH
Source: lua-ldoc Version: 1.4.3-5 Severity: wishlist Tags: patch upstream User: reproducible-bui...@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-bui...@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
Bug#820226: chrony: please make the build reproducible (timestamps)
Source: chrony Version: 2.2.1-1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, While working on the “reproducible builds” effort [1], we have noticed that 'chrony' could not be built reproducibly. The attached patch uses the last changelog entry date instead of the build date to set the ntp_era_split default parameter. Once applied, chrony can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds diff -Nru chrony-2.2.1/debian/changelog chrony-2.2.1/debian/changelog --- chrony-2.2.1/debian/changelog 2016-04-01 14:40:35.0 +0200 +++ chrony-2.2.1/debian/changelog 2016-04-06 19:09:01.0 +0200 @@ -1,3 +1,10 @@ +chrony (2.2.1-1.0~reproducible1) unstable; urgency=medium + + * Fix ntp_era_split default value from last changelog entry, to get +reproducible build. + + -- Alexis Bienvenüe <p...@passoire.fr> Wed, 06 Apr 2016 19:09:01 +0200 + chrony (2.2.1-1) unstable; urgency=medium * Import upstream versions 2.2 and 2.2.1: diff -Nru chrony-2.2.1/debian/patches/02_uses_SOURCE_DATE_EPOCH_for_ntp_era_split.patch chrony-2.2.1/debian/patches/02_uses_SOURCE_DATE_EPOCH_for_ntp_era_split.patch --- chrony-2.2.1/debian/patches/02_uses_SOURCE_DATE_EPOCH_for_ntp_era_split.patch 1970-01-01 01:00:00.0 +0100 +++ chrony-2.2.1/debian/patches/02_uses_SOURCE_DATE_EPOCH_for_ntp_era_split.patch 2016-04-06 19:08:30.0 +0200 @@ -0,0 +1,28 @@ +Description: Use SOURCE_DATE_EPOCH for ntp_era_split + Use SOURCE_DATE_EPOCH instead of current build epoch for ntp_era_split, + to get reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- chrony-2.2.1.orig/configure chrony-2.2.1/configure +@@ -478,11 +478,15 @@ then + split_seconds=$ntp_era_split + split_days=0 + else +-split_seconds=`date '+%s'` +-if [ "x$split_seconds" = "" ]; then +- echo "error: could not get current time, --with-ntp-era option is needed" +- exit 1 +-fi ++if [ "x$SOURCE_DATE_EPOCH" = "x" ]; then ++ split_seconds=`date '+%s'` ++ if [ "x$split_seconds" = "" ]; then ++echo "error: could not get current time, --with-ntp-era option is needed" ++exit 1 ++ fi ++else ++ split_seconds=$SOURCE_DATE_EPOCH ++fi + split_days=$((50 * 365)) + fi + diff -Nru chrony-2.2.1/debian/patches/series chrony-2.2.1/debian/patches/series --- chrony-2.2.1/debian/patches/series 2016-04-01 14:40:35.0 +0200 +++ chrony-2.2.1/debian/patches/series 2016-04-06 19:07:39.0 +0200 @@ -0,0 +1 @@ +02_uses_SOURCE_DATE_EPOCH_for_ntp_era_split.patch