Re: [Reproducible-builds] Bug#782878: [debhelper-devel] Bug#782879 + Bug#782878: lib{test-log4perl, scalar-defer}-perl: please make the build reproducible

2015-05-26 Thread Steven Chamberlain
Hi,

Russ Allbery wrote:
 My feeling is that the date in the man page serves a useful purpose for
 the end user by communicating some idea of the staleness of the
 documentation and the recentness of the last release of the software.
 While this isn't a huge deal, it does feel somewhat less than ideal to
 lose that data.  Replacing it with the last modification date of the
 Debian package isn't perfect, but it's fairly reasonable.

I'm suffering this issue in a different context, which is a binary
package that ships a tarball of the kfreebsd (kernel) source.  Some of
those files are patched by dpkg-source.

From #759404 I can see why dpkg-source can't really help with this.

It would be a shame to lose / reset all the timestamps, because:
  * it's useful to know how old a file is, if Debian didn't patch it,
  * installing the package, extracting files with newer timestamps,
could mean some systems for backup or deduplication must treat the
files as though they are new/changed,
  * in a new package revision, if the files in a particular .deb didn't
change, it would be nice if the data.tar.xz didn't change;  this
would be helpful to future work on .deb deltas or deduplication.

I suggest to only 'clamp' timestamps to the latest entry in
debian/changelog.  I think only timestamps newer than this are likely
an issue for reproducibility.  Older timestamps are potentially still
useful.

Regards,
-- 
Steven Chamberlain
ste...@pyro.eu.org

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


Re: [Reproducible-builds] Bug#782878: [debhelper-devel] Bug#782879 + Bug#782878: lib{test-log4perl, scalar-defer}-perl: please make the build reproducible

2015-05-25 Thread Niko Tyni
On Sun, May 24, 2015 at 12:07:37PM -0700, Russ Allbery wrote:

 Disabling the date in the generated man page is definitely the easiest
 fix.
 
 I personally like the idea of instead setting the date to the last
 modified time of the Debian package.  Actually, ideally, I wish that dpkg
 itself would set the timestamp of all files modified by patches to match
 the last modification date of the package, which would achieve the same
 thing but at what feels like the correct level.

I agree that dpkg would be the right level, but unfortunately Guillem
declined to do that. See #759404 (and please reopen+comment if you
have further arguments to add there.)

 My feeling is that the date in the man page serves a useful purpose for
 the end user by communicating some idea of the staleness of the
 documentation and the recentness of the last release of the software.
 While this isn't a huge deal, it does feel somewhat less than ideal to
 lose that data.  Replacing it with the last modification date of the
 Debian package isn't perfect, but it's fairly reasonable.

FWIW I'm fine with both options (disabling the date altogether or
replacing it with the debian/changelog date).
-- 
Niko Tyni   nt...@debian.org

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


Re: [Reproducible-builds] Bug#782878: [debhelper-devel] Bug#782879 + Bug#782878: lib{test-log4perl, scalar-defer}-perl: please make the build reproducible

2015-05-24 Thread Russ Allbery
Niko Tyni nt...@debian.org writes:
 On Wed, May 20, 2015 at 10:34:20PM +0200, Niels Thykier wrote:
 On 2015-04-19 14:35, gregor herrmann wrote:
 On Sun, 19 Apr 2015 14:03:44 +0200, Axel Beckert wrote:

 Jelmer Vernooij wrote:

 +# Set man page timestamp to last package change time.
 +BUILD_DATE = $(shell dpkg-parsechangelog -S Date)
 +POD_MAN_DATE = $(shell date -u +%Y-%m-%d --date=$(BUILD_DATE))
 +export POD_MAN_DATE

 But isn't this something which should be done doing once and properly
 in the build system (e.g. in dh_auto_build), like setting all the file
 time stamps to that date?

 It is not entirely clear to me what you are asking for.  Is this change
 only supposed to go into a Perl specific build system, in all build
 systems supported by dh_auto_build or ...?

 That's a good question. I suppose it should go in all the build systems,
 although most of the benefit is certainly for Perl module packages.

 The context is that Pod::Man sets the date header based on the mtime of
 the file, but if the file is patched by the Debian packaging, the mtime
 will be set to the extraction time, breaking reproducibility.  (See
 #759404 for some related discussion.)  The mtime will also be
 unreproducible if the file is generated during the build.

Disabling the date in the generated man page is definitely the easiest
fix.

I personally like the idea of instead setting the date to the last
modified time of the Debian package.  Actually, ideally, I wish that dpkg
itself would set the timestamp of all files modified by patches to match
the last modification date of the package, which would achieve the same
thing but at what feels like the correct level.

My feeling is that the date in the man page serves a useful purpose for
the end user by communicating some idea of the staleness of the
documentation and the recentness of the last release of the software.
While this isn't a huge deal, it does feel somewhat less than ideal to
lose that data.  Replacing it with the last modification date of the
Debian package isn't perfect, but it's fairly reasonable.

-- 
Russ Allbery (r...@debian.org)   http://www.eyrie.org/~eagle/

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