Source: apt-dater
Version: 1.0.2-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

There are two issues with the handling of SOURCE_DATE_EPOCH that
cause this package to remain reproducible:

 * Missing LC_ALL=C (or LC_TIME, etc.) in src/Makefile.am
   otherwise the formatted string is translated to the current
   locale.

 * Missing "shell" in the nested call to dpkg-parsechangelog, which
   actually results in SOURCE_DATE_EPOCH being set to midnight of the
   current day, then mangled by the *inverse* of the current timezone
   offset relative to UTC. It's quite a fun chain if you follow it..

A patch for these two issues is attached.

You might also want to fix:

 * Assignment of SOURCE_DATE_EPOCH in debian/rules overrides
   environment, ie. prefer the the set-if-absent operaor.

     - SOURCE_DATE_EPOCH := $(shell [..]
     + SOURCE_DATE_EPOCH ?= $(shell [..]

   .. otherwise, an external value of SOURCE_DATE_EPOCH is not
   honoured.

 * As it happens It's actually not required that you set this line.
   Debian's default toolchain will export it soon anyway, and our
   experimental toolchain does it already.


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      la...@debian.org / chris-lamb.co.uk
       `-
--- a/debian/control    2015-08-28 14:49:42.917162383 +0100
--- b/debian/control    2015-08-28 15:07:49.757226351 +0100
@@ -3,6 +3,7 @@
 Priority: optional
 Maintainer: Patrick Matthäi <pmatth...@debian.org>
 Build-Depends: debhelper (>= 9),
+ dh-autoreconf,
  libpopt-dev,
  libglib2.0-dev,
  libncursesw5-dev,
--- a/debian/patches/reproducible-build.patch   1970-01-01 01:00:00.000000000 
+0100
--- b/debian/patches/reproducible-build.patch   2015-08-28 16:20:43.940164287 
+0100
@@ -0,0 +1,11 @@
+--- apt-dater-1.0.2.orig/src/Makefile.am
++++ apt-dater-1.0.2/src/Makefile.am
+@@ -51,7 +51,7 @@ endif
+ 
+ apt_dater_LDADD = $(GLIB_LIBS) $(TCL_LIBS) $(LIBXML2_LIBS) $(GIO_LIBS)
+ 
+-AM_CFLAGS = -Wall -DPKGLIBDIR='"'$(pkglibdir)'"' -DSOURCE_DATE_UTC="\"$(shell 
date -d @$(SOURCE_DATE_EPOCH) -u)\""
++AM_CFLAGS = -Wall -DPKGLIBDIR='"'$(pkglibdir)'"' -DSOURCE_DATE_UTC="\"$(shell 
LC_ALL=C date -d \@$(SOURCE_DATE_EPOCH) -u)\""
+ if LINUX
+ AM_LDFLAGS = -Wl,--as-needed
+ else
--- a/debian/patches/series     1970-01-01 01:00:00.000000000 +0100
--- b/debian/patches/series     2015-08-28 15:00:13.010353347 +0100
@@ -0,0 +1 @@
+reproducible-build.patch
--- a/debian/rules      2015-08-28 14:49:42.917162383 +0100
--- b/debian/rules      2015-08-28 16:24:34.229943740 +0100
@@ -1,6 +1,6 @@
 #!/usr/bin/make -f
 
-SOURCE_DATE_EPOCH := $(shell date -d "$(dpkg-parsechangelog --count 1 -SDate)" 
+%s)
+SOURCE_DATE_EPOCH := $(shell date -d "$(shell dpkg-parsechangelog --count 1 
-SDate)" +%s)
 
 DEB_CONFIGURE_EXTRA_FLAGS := \
        --enable-tclfilter \
@@ -12,7 +12,7 @@
        --enable-tmux
 
 %:
-       dh $@
+       dh $@ --with autoreconf
 
 override_dh_auto_configure:
        dh_auto_configure -- $(DEB_CONFIGURE_EXTRA_FLAGS)
_______________________________________________
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to