Source: lcov
Severity: normal
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org

The build timestamp is embedded in various manpages:

  
https://tests.reproducible-builds.org/debian/rb-pkg/bullseye/amd64/diffoscope-results/lcov.html

  ./usr/share/man/man1/gendesc.1.gz

  .TH·gendesc·1·"LCOV·1.14"·2021\-06\-13·"User·Manuals"
  vs.
  .TH·gendesc·1·"LCOV·1.14"·2022\-07\-16·"User·Manuals"


The attached patch fixes this by changing updateversion.pl to use the
date specified by the SOURCE_DATE_EPOCH environment variable, which is
set by dpkg when building packages:

  https://reproducible-builds.org/docs/source-date-epoch/


With this patch applied, lcov should be reproducible on
tests.reproducible-builds.org.


Thanks for maintaining lcov!


live well,
  vagrant
From a19a51175995aee46892da20ee099071a5b459dc Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagr...@reproducible-builds.org>
Date: Sun, 11 Jul 2021 00:56:24 +0000
Subject: [PATCH] updateversion.pl: Add support for SOURCE_DATE_EPOCH to
 update_man_page function.

https://reproducible-builds.org/docs/source-date-epoch/
---
 bin/updateversion.pl | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/bin/updateversion.pl b/bin/updateversion.pl
index 19db81e..395b3c4 100755
--- a/bin/updateversion.pl
+++ b/bin/updateversion.pl
@@ -2,6 +2,7 @@
 
 use strict;
 use warnings;
+use POSIX qw(strftime);
 
 use File::Basename;
 
@@ -98,7 +99,9 @@ sub update_man_page($)
 {
 	my ($filename) = @_;
 	my @date = get_file_info($filename);
-	my $date_string = $date[0];
+	# Support SOURCE_DATE_EPOCH for date:
+	# https://reproducible-builds.org/docs/source-date-epoch/
+	my $date_string = strftime("%Y-%m-%d", gmtime($ENV{SOURCE_DATE_EPOCH} || $date[0]));
 	local *IN;
 	local *OUT;
 
-- 
2.32.0

Attachment: signature.asc
Description: PGP signature

Reply via email to