[Reproducible-commits] [strip-nondeterminism] 03/10: Add $File::StripNondeterminism::canonical_time for setting a canonical time

Andrew Ayer agwa at andrewayer.name
Sun Nov 16 23:16:06 UTC 2014


This is an automated email from the git hooks/post-receive script.

agwa-guest pushed a commit to branch master
in repository strip-nondeterminism.

commit 4dd9533d688ad5799c36b5a2261389525a0339ac
Author: Andrew Ayer <agwa at andrewayer.name>
Date:   Sat Oct 25 16:43:30 2014 -0700

    Add $File::StripNondeterminism::canonical_time for setting a canonical time
    
    If defined, this variable will be used for timestamps instead of removing
    or zeroing the timestamp.
---
 lib/File/StripNondeterminism.pm               | 2 +-
 lib/File/StripNondeterminism/handlers/ar.pm   | 2 +-
 lib/File/StripNondeterminism/handlers/gzip.pm | 3 ++-
 lib/File/StripNondeterminism/handlers/zip.pm  | 2 +-
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/lib/File/StripNondeterminism.pm b/lib/File/StripNondeterminism.pm
index 4a496a2..af04b6c 100644
--- a/lib/File/StripNondeterminism.pm
+++ b/lib/File/StripNondeterminism.pm
@@ -27,7 +27,7 @@ use File::StripNondeterminism::handlers::jar;
 use File::StripNondeterminism::handlers::javadoc;
 use File::StripNondeterminism::handlers::zip;
 
-our($VERSION);
+our($VERSION, $canonical_time);
 
 $VERSION = '0.003'; # 0.003
 
diff --git a/lib/File/StripNondeterminism/handlers/ar.pm b/lib/File/StripNondeterminism/handlers/ar.pm
index e23485d..cdbf7c0 100644
--- a/lib/File/StripNondeterminism/handlers/ar.pm
+++ b/lib/File/StripNondeterminism/handlers/ar.pm
@@ -67,7 +67,7 @@ sub normalize {
 		seek $fh, $file_header_start + 16, SEEK_SET;
 
 		# mtime
-		syswrite $fh, sprintf("%-12d", 0);
+		syswrite $fh, sprintf("%-12d", $File::StripNondeterminism::canonical_time // 0);
 		# owner
 		syswrite $fh, sprintf("%-6d", 0);
 		# group
diff --git a/lib/File/StripNondeterminism/handlers/gzip.pm b/lib/File/StripNondeterminism/handlers/gzip.pm
index f1a80b6..e49c136 100644
--- a/lib/File/StripNondeterminism/handlers/gzip.pm
+++ b/lib/File/StripNondeterminism/handlers/gzip.pm
@@ -54,7 +54,8 @@ sub normalize {
 	my $new_flg = $flg;
 	$new_flg &= ~FNAME;	# Don't include filename
 	$new_flg &= ~FHCRC;	# Don't include header CRC (not all implementations support it)
-	$mtime = 0;		# Zero out mtime (this is what `gzip -n` does)
+	# If there's no canonical time set, zero out the mtime (this is what `gzip -n` does):
+	$mtime = $File::StripNondeterminism::canonical_time // 0;
 	# TODO: question: normalize some of the other fields, such as OS?
 
 	my $tempfile = File::Temp->new(DIR => dirname($filename));
diff --git a/lib/File/StripNondeterminism/handlers/zip.pm b/lib/File/StripNondeterminism/handlers/zip.pm
index 96378a6..75e4c7b 100644
--- a/lib/File/StripNondeterminism/handlers/zip.pm
+++ b/lib/File/StripNondeterminism/handlers/zip.pm
@@ -71,7 +71,7 @@ sub normalize {
 		my $member = $zip->removeMember($filename);
 		$zip->addMember($member);
 		$options{member_normalizer}->($member) if exists $options{member_normalizer};
-		$member->setLastModFileDateTimeFromUnix(SAFE_EPOCH);
+		$member->setLastModFileDateTimeFromUnix($File::StripNondeterminism::canonical_time // SAFE_EPOCH);
 	}
 	$zip->overwrite();
 	return 1;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/strip-nondeterminism.git



More information about the Reproducible-commits mailing list