diffstat for strip-nondeterminism-0.032 strip-nondeterminism-0.033 bin/dh_strip_nondeterminism | 2 - bin/strip-nondeterminism | 13 +++++---- debian/changelog | 16 +++++++++++ debian/control | 55 +++++++++++++++++++++++----------------- lib/File/StripNondeterminism.pm | 32 +++++++++-------------- t/failures.t | 2 - 6 files changed, 70 insertions(+), 50 deletions(-) diff -Nru strip-nondeterminism-0.032/bin/dh_strip_nondeterminism strip-nondeterminism-0.033/bin/dh_strip_nondeterminism --- strip-nondeterminism-0.032/bin/dh_strip_nondeterminism 2017-03-17 09:25:00.000000000 +0100 +++ strip-nondeterminism-0.033/bin/dh_strip_nondeterminism 2017-05-07 19:31:07.000000000 +0200 @@ -83,7 +83,7 @@ foreach (@nondeterministic_files) { my ($path, $normalize) = @$_; - verbose_print("Normalizing $path"); + nonquiet_print("Normalizing $path"); eval { $normalize->($path); 1 } or error("$path: $@"); } diff -Nru strip-nondeterminism-0.032/bin/strip-nondeterminism strip-nondeterminism-0.033/bin/strip-nondeterminism --- strip-nondeterminism-0.032/bin/strip-nondeterminism 2017-03-17 09:25:00.000000000 +0100 +++ strip-nondeterminism-0.033/bin/strip-nondeterminism 2017-05-07 19:31:07.000000000 +0200 @@ -60,15 +60,16 @@ die $usage if @ARGV == 0; +my $normalizer; +if (defined $filetype) { + $normalizer + = File::StripNondeterminism::get_normalizer_by_name($filetype); + die "$filetype: Unknown file type\n" unless $normalizer; +} for my $filename (@ARGV) { die "$filename: Does not exist\n" unless -e $filename; - my $normalizer; - if (defined $filetype) { - $normalizer - = File::StripNondeterminism::get_normalizer_by_name($filetype); - die "$filetype: Unknown file type\n" unless $normalizer; - } else { + if (!defined $filetype) { $normalizer = File::StripNondeterminism::get_normalizer_for_file($filename); next unless $normalizer; diff -Nru strip-nondeterminism-0.032/debian/changelog strip-nondeterminism-0.033/debian/changelog --- strip-nondeterminism-0.032/debian/changelog 2017-03-17 09:25:53.000000000 +0100 +++ strip-nondeterminism-0.033/debian/changelog 2017-05-07 19:32:19.000000000 +0200 @@ -1,3 +1,19 @@ +strip-nondeterminism (0.033-1) unstable; urgency=medium + + [ Chris Lamb ] + * Move from verbose_print to nonquiet_print so we print when normalising a + file. This is so we can start to target the removal of + strip-nondeterminism itself. (Closes: #862031) + * Update package long descriptions to clarify that this tool is a temporary + workaround. (Closes: #862029) + * Include the filename when testing failure fixtures. + + [ Bernhard M. Wiedemann ] + * Only call get_normalizer_by_name once + * Make get_normalizer_by_name O(1) + + -- Chris Lamb Sun, 07 May 2017 19:32:19 +0200 + strip-nondeterminism (0.032-1) unstable; urgency=medium * Add support for testing files we should reject. diff -Nru strip-nondeterminism-0.032/debian/control strip-nondeterminism-0.033/debian/control --- strip-nondeterminism-0.032/debian/control 2017-03-17 09:25:53.000000000 +0100 +++ strip-nondeterminism-0.033/debian/control 2017-05-07 19:32:19.000000000 +0200 @@ -26,13 +26,16 @@ ${misc:Depends}, ${perl:Depends}, Description: file non-deterministic information stripper — Perl module - StripNondeterminism is a library for stripping non-deterministic - information, such as timestamps and file system order, from files. It - is used as part of the Reproducible Builds project. - . - This can be used as a post-processing step to improve the - reproducibility of a build product, when the build process itself - cannot be made deterministic. + StripNondeterminism is a library for stripping non-deterministic information + such as timestamps and filesystem ordering from various file and archive + formats. + . + This can be used as a post-processing step to improve the reproducibility of a + build product, when the build process itself cannot be made deterministic. + . + It is used as part of the Reproducible Builds project, although it should be + considered a temmporary workaround which should not be needed in the long + term; upstream software should be reproducible even without using such a tool. . This package installs the Perl module ‘File::StripNondeterminism’. @@ -44,13 +47,16 @@ ${perl:Depends}, Multi-Arch: foreign Description: file non-deterministic information stripper — stand-alone tool - StripNondeterminism is a library for stripping non-deterministic - information, such as timestamps and file system order, from files. It - is used as part of the Reproducible Builds project. - . - This can be used as a post-processing step to improve the - reproducibility of a build product, when the build process itself - cannot be made deterministic. + StripNondeterminism is a library for stripping non-deterministic information + such as timestamps and filesystem ordering from various file and archive + formats. + . + This can be used as a post-processing step to improve the reproducibility of a + build product, when the build process itself cannot be made deterministic. + . + It is used as part of the Reproducible Builds project, although it should be + considered a temmporary workaround which should not be needed in the long + term; upstream software should be reproducible even without using such a tool. . This package installs the stand-alone ‘strip-nondeterminism’ tool. @@ -64,13 +70,16 @@ ${perl:Depends}, Multi-Arch: foreign Description: file non-deterministic information stripper — Debhelper add-on - StripNondeterminism is a library for stripping non-deterministic - information, such as timestamps and file system order, from files. It - is used as part of the Reproducible Builds project. - . - This can be used as a post-processing step to improve the - reproducibility of a build product, when the build process itself - cannot be made deterministic. + StripNondeterminism is a library for stripping non-deterministic information + such as timestamps and filesystem ordering from various file and archive + formats. + . + This can be used as a post-processing step to improve the reproducibility of a + build product, when the build process itself cannot be made deterministic. + . + It is used as part of the Reproducible Builds project, although it should be + considered a temmporary workaround which should not be needed in the long + term; upstream software should be reproducible even without using such a tool. . - This package installs the ‘dh_strip_nondeterminism’ Debhelper command - that strips nondeterminism as part of a Debian package build process. + This package installs the ‘dh_strip_nondeterminism’ Debhelper command that + strips nondeterminism as part of a Debian package build process. diff -Nru strip-nondeterminism-0.032/lib/File/StripNondeterminism.pm strip-nondeterminism-0.033/lib/File/StripNondeterminism.pm --- strip-nondeterminism-0.032/lib/File/StripNondeterminism.pm 2017-03-17 09:25:00.000000000 +0100 +++ strip-nondeterminism-0.033/lib/File/StripNondeterminism.pm 2017-05-07 19:31:07.000000000 +0200 @@ -34,7 +34,7 @@ our($VERSION, $canonical_time, $clamp_time); -$VERSION = '0.032'; # 0.032 +$VERSION = '0.033'; # 0.033 sub init { $ENV{'TZ'} = 'UTC'; @@ -107,26 +107,20 @@ return undef; } +our %typemap = ( + ar => \&File::StripNondeterminism::handlers::ar::normalize, + gettext => \&File::StripNondeterminism::handlers::gettext::normalize, + gzip => \&File::StripNondeterminism::handlers::gzip::normalize, + jar => \&File::StripNondeterminism::handlers::jar::normalize, + javadoc => \&File::StripNondeterminism::handlers::javadoc::normalize, + pearregistry => \&File::StripNondeterminism::handlers::pearregistry::normalize, + png => \&File::StripNondeterminism::handlers::png::normalize, + javaproperties => \&File::StripNondeterminism::handlers::javaproperties::normalize, + zip => \&File::StripNondeterminism::handlers::zip::normalize, +); sub get_normalizer_by_name { $_ = shift; - return \&File::StripNondeterminism::handlers::ar::normalize if $_ eq 'ar'; - return \&File::StripNondeterminism::handlers::gettext::normalize - if $_ eq 'gettext'; - return \&File::StripNondeterminism::handlers::gzip::normalize - if $_ eq 'gzip'; - return \&File::StripNondeterminism::handlers::jar::normalize - if $_ eq 'jar'; - return \&File::StripNondeterminism::handlers::javadoc::normalize - if $_ eq 'javadoc'; - return \&File::StripNondeterminism::handlers::pearregistry::normalize - if $_ eq 'pearregistry'; - return \&File::StripNondeterminism::handlers::png::normalize - if $_ eq 'png'; - return \&File::StripNondeterminism::handlers::javaproperties::normalize - if $_ eq 'javaproperties'; - return \&File::StripNondeterminism::handlers::zip::normalize - if $_ eq 'zip'; - return undef; + return $typemap{$_}; } 1; diff -Nru strip-nondeterminism-0.032/t/failures.t strip-nondeterminism-0.033/t/failures.t --- strip-nondeterminism-0.032/t/failures.t 2017-03-17 09:25:00.000000000 +0100 +++ strip-nondeterminism-0.033/t/failures.t 2017-05-07 19:31:07.000000000 +0200 @@ -43,7 +43,7 @@ my $normalizer = File::StripNondeterminism::get_normalizer_for_file($in); $normalizer->($in); }; - ok($@ ne ""); + ok($@ ne "", $filename); } done_testing;