[strip-nondeterminism] 04/05: jar.pm, zip.pm: Allow $options{member_normalizer} callback to support specifying the timestamp.
Chris Lamb
chris at chris-lamb.co.uk
Tue Oct 3 13:56:15 UTC 2017
This is an automated email from the git hooks/post-receive script.
lamby pushed a commit to branch master
in repository strip-nondeterminism.
commit dec86231ce51db87d28db35fbedb9c887db569fd
Author: Chris Lamb <lamby at debian.org>
Date: Tue Oct 3 14:53:15 2017 +0100
jar.pm, zip.pm: Allow $options{member_normalizer} callback to support specifying the timestamp.
---
lib/File/StripNondeterminism/handlers/jar.pm | 8 ++++----
lib/File/StripNondeterminism/handlers/zip.pm | 8 +++++---
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/lib/File/StripNondeterminism/handlers/jar.pm b/lib/File/StripNondeterminism/handlers/jar.pm
index 1162c03..80cbfad 100644
--- a/lib/File/StripNondeterminism/handlers/jar.pm
+++ b/lib/File/StripNondeterminism/handlers/jar.pm
@@ -69,9 +69,9 @@ sub _jar_normalize_manifest($) {
return $modified;
}
-sub _jar_normalize_member($) {
- my ($member) = @_; # $member is a ref to an Archive::Zip::Member
- return if $member->isDirectory();
+sub _jar_normalize_member($$) {
+ my ($member, $timestamp) = @_; # $member is a ref to an Archive::Zip::Member
+ return $timestamp if $member->isDirectory();
if ($member->fileName() =~ /\.html$/
&&File::StripNondeterminism::handlers::zip::peek_member($member, 1024)
@@ -97,7 +97,7 @@ sub _jar_normalize_member($) {
\&normalize);
}
- return 1;
+ return $timestamp;
}
sub _jar_archive_filter($) {
diff --git a/lib/File/StripNondeterminism/handlers/zip.pm b/lib/File/StripNondeterminism/handlers/zip.pm
index 34164ca..8b6a8c7 100644
--- a/lib/File/StripNondeterminism/handlers/zip.pm
+++ b/lib/File/StripNondeterminism/handlers/zip.pm
@@ -198,9 +198,11 @@ sub normalize {
for my $filename (@filenames) {
my $member = $zip->removeMember($filename);
$zip->addMember($member);
- $options{member_normalizer}->($member)
- if exists $options{member_normalizer};
- $member->setLastModFileDateTimeFromUnix($canonical_time);
+ # member_normalizer returns the timestamp to use.
+ my $timestamp = exists $options{member_normalizer}
+ ? $options{member_normalizer}->($member, $canonical_time)
+ : $canonical_time;
+ $member->setLastModFileDateTimeFromUnix($timestamp);
if ($member->fileAttributeFormat() == FA_UNIX) {
$member->unixFileAttributes(
($member->unixFileAttributes() & oct(100))
--
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