Hello community, here is the log from the commit of package perl-PAR for openSUSE:Factory checked in at 2019-05-21 10:41:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-PAR (Old) and /work/SRC/openSUSE:Factory/.perl-PAR.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-PAR" Tue May 21 10:41:38 2019 rev:13 rq:704356 version:1.016 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-PAR/perl-PAR.changes 2017-05-16 14:33:54.054003390 +0200 +++ /work/SRC/openSUSE:Factory/.perl-PAR.new.5148/perl-PAR.changes 2019-05-21 10:41:41.247022801 +0200 @@ -1,0 +2,24 @@ +Tue May 21 05:19:12 UTC 2019 - Stephan Kulow <[email protected]> + +- updated to 1.016 + see /usr/share/doc/packages/perl-PAR/Changes + + 1.016 2019-05-20 + + - Fix #129312: Code signing for OSX + + Avoid Archive::Zip::Archive error "can't find EOCD signature" for pp'ed + executables with lots of stuff appended (e.g. by OSX codesign): + temporarily increase Archive::Zip::ChunkSize around the call to + Archive::Zip::readFromFileHandle(). + + Note this is prerequisite for the corresponding fix in PAR::Packer. + + - Fix: Archive::Unzip::Burst::unzip result is ignored and _extract_inc + does always the slow way, too + + PR from Vit Spinka <[email protected]>, thanks! + + - Show debug messages if $ENV{PERL_DL_DEBUG} is true + +------------------------------------------------------------------- Old: ---- PAR-1.015.tar.gz New: ---- PAR-1.016.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-PAR.spec ++++++ --- /var/tmp/diff_new_pack.t0Pj7z/_old 2019-05-21 10:41:43.027018655 +0200 +++ /var/tmp/diff_new_pack.t0Pj7z/_new 2019-05-21 10:41:43.027018655 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-PAR # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,18 +12,18 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: perl-PAR -Version: 1.015 +Version: 1.016 Release: 0 %define cpan_name PAR Summary: Perl Archive Toolkit -License: Artistic-1.0 or GPL-1.0+ +License: Artistic-1.0 OR GPL-1.0-or-later Group: Development/Libraries/Perl -Url: http://search.cpan.org/dist/PAR/ +Url: https://metacpan.org/release/%{cpan_name} Source0: https://cpan.metacpan.org/authors/id/R/RS/RSCHUPP/%{cpan_name}-%{version}.tar.gz Source1: cpanspec.yml BuildArch: noarch @@ -83,11 +83,11 @@ %setup -q -n %{cpan_name}-%{version} %build -%{__perl} Makefile.PL INSTALLDIRS=vendor -%{__make} %{?_smp_mflags} +perl Makefile.PL INSTALLDIRS=vendor +make %{?_smp_mflags} %check -%{__make} test +make test %install %perl_make_install ++++++ PAR-1.015.tar.gz -> PAR-1.016.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PAR-1.015/Changes new/PAR-1.016/Changes --- old/PAR-1.015/Changes 2017-04-13 17:24:36.000000000 +0200 +++ new/PAR-1.016/Changes 2019-05-20 20:09:13.000000000 +0200 @@ -1,3 +1,21 @@ +1.016 2019-05-20 + + - Fix #129312: Code signing for OSX + + Avoid Archive::Zip::Archive error "can't find EOCD signature" for pp'ed + executables with lots of stuff appended (e.g. by OSX codesign): + temporarily increase Archive::Zip::ChunkSize around the call to + Archive::Zip::readFromFileHandle(). + + Note this is prerequisite for the corresponding fix in PAR::Packer. + + - Fix: Archive::Unzip::Burst::unzip result is ignored and _extract_inc + does always the slow way, too + + PR from Vit Spinka <[email protected]>, thanks! + + - Show debug messages if $ENV{PERL_DL_DEBUG} is true + 1.015 2017-04-13 - Fix RT#120722 (Reason for Module::Signature dependency unclear since 2008) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PAR-1.015/MANIFEST new/PAR-1.016/MANIFEST --- old/PAR-1.015/MANIFEST 2017-04-13 17:26:57.000000000 +0200 +++ new/PAR-1.016/MANIFEST 2019-05-20 20:11:27.000000000 +0200 @@ -1,5 +1,13 @@ AUTHORS Changes +inc/Module/Install.pm +inc/Module/Install/Base.pm +inc/Module/Install/Can.pm +inc/Module/Install/Fetch.pm +inc/Module/Install/Makefile.pm +inc/Module/Install/Metadata.pm +inc/Module/Install/Win32.pm +inc/Module/Install/WriteAll.pm lib/PAR.pm lib/PAR/Environment.pod lib/PAR/FAQ.pod @@ -12,6 +20,7 @@ MANIFEST This list of files MANIFEST.SKIP META.yml +PAR-1.012.tar.gz README t/00-pod.t t/01-basic.t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PAR-1.015/META.json new/PAR-1.016/META.json --- old/PAR-1.015/META.json 2017-04-13 17:26:57.000000000 +0200 +++ new/PAR-1.016/META.json 2019-05-20 20:11:27.000000000 +0200 @@ -4,13 +4,13 @@ "Audrey Tang <[email protected]>" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.1002, CPAN::Meta::Converter version 2.150005", + "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" + "version" : 2 }, "name" : "PAR", "no_index" : { @@ -49,13 +49,16 @@ }, "release_status" : "stable", "resources" : { + "bugtracker" : { + "web" : "https://rt.cpan.org/Dist/Display.html?Queue=PAR" + }, "repository" : { "type" : "git", "url" : "git://github.com/rschupp/PAR.git", "web" : "https://github.com/rschupp/PAR" }, - "x_MailingList" : "[email protected]" + "x_MailingList" : "mailto:[email protected]" }, - "version" : "1.015", - "x_serialization_backend" : "JSON::PP version 2.27300_01" + "version" : "1.016", + "x_serialization_backend" : "JSON::PP version 2.97001" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PAR-1.015/META.yml new/PAR-1.016/META.yml --- old/PAR-1.015/META.yml 2017-04-13 17:26:57.000000000 +0200 +++ new/PAR-1.016/META.yml 2019-05-20 20:11:27.000000000 +0200 @@ -8,7 +8,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.1002, CPAN::Meta::Converter version 2.150005' +generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -27,7 +27,8 @@ PAR::Dist: '0.32' perl: '5.008001' resources: - MailingList: [email protected] + MailingList: mailto:[email protected] + bugtracker: https://rt.cpan.org/Dist/Display.html?Queue=PAR repository: git://github.com/rschupp/PAR.git -version: '1.015' +version: '1.016' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PAR-1.015/Makefile.PL new/PAR-1.016/Makefile.PL --- old/PAR-1.015/Makefile.PL 2017-04-12 22:41:33.000000000 +0200 +++ new/PAR-1.016/Makefile.PL 2018-08-08 17:25:47.000000000 +0200 @@ -33,7 +33,8 @@ url => 'git://github.com/rschupp/PAR.git', web => 'https://github.com/rschupp/PAR', }, - MailingList => '[email protected]', + MailingList => 'mailto:[email protected]', + bugtracker => { web => 'https://rt.cpan.org/Dist/Display.html?Queue=PAR' }, }, }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PAR-1.015/lib/PAR/Environment.pod new/PAR-1.016/lib/PAR/Environment.pod --- old/PAR-1.015/lib/PAR/Environment.pod 2016-12-18 16:18:28.000000000 +0100 +++ new/PAR-1.016/lib/PAR/Environment.pod 2018-09-12 18:28:22.000000000 +0200 @@ -50,26 +50,10 @@ If you are looking for the name and path of the pp-ed binary file, please refer to the C<PAR_PROGNAME> variable. -=head2 PAR_ARGC, PAR_ARGV_0, PAR_ARGV_... - -You should not rely on these variables outside of the PAR binary loader -code. - -These variables are set when a non-dependent pp-ed binary executable -runs. The initially executed process extracts another binary and runs -it as a child process. In order to pass its command line arguments to -the child, the parent process sets C<PAR_ARG*> as they would be -used in C programs: C<PAR_ARGC> has the number of arguments, C<PAR_ARGV_0> -has the name of the executable, C<PAR_ARGV_*> are the command line arguments. - -If you would like to access the name of the running program (script or binary), -please refer to C<PAR_0> and C<PAR_PROGNAME> instead! - -Related: C<PAR_SPAWNED>, C<PAR_0>, C<PAR_PROGNAME> - =head2 PAR_CLEAN Users should set C<PAR_GLOBAL_CLEAN> instead. + Recreated from C<PAR_GLOBAL_CLEAN> and the value of C<-C> from the YAML file by the PAR loader, and used within loader to control the initial behavior of extraction, and the final behavior of cleanup. The user can reference @@ -158,7 +142,7 @@ You should not rely on this variable outside of the PAR binary loader code. For a slightly more detailed discussion, please refer to the F<who_am_i.txt> documentation file in the PAR source distribution -which was contributed by Alan Stewart. Related: C<PAR_ARGC>, C<PAR_ARGV_*> +which was contributed by Alan Stewart. Documented only to avoid surprises if spawned applications expect to see a value initialized by the user. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PAR-1.015/lib/PAR/Heavy.pm new/PAR-1.016/lib/PAR/Heavy.pm --- old/PAR-1.015/lib/PAR/Heavy.pm 2016-12-18 16:18:28.000000000 +0100 +++ new/PAR-1.016/lib/PAR/Heavy.pm 2019-03-11 20:46:23.000000000 +0100 @@ -21,6 +21,9 @@ # NOTE: Don't "use" any module here, esp. one that is an XS module or # whose "use" could cause the loading of an XS module thru its dependencies. +# enable debug/trace messages from DynaLoader perl code +my $dl_debug = $ENV{PERL_DL_DEBUG} || 0; + my ($bootstrap, $dl_findfile); # Caches for code references my ($cache_key); # The current file to find my $is_insensitive_fs = ( @@ -34,6 +37,9 @@ return if $bootstrap; return unless eval { require DynaLoader; DynaLoader::dl_findfile(); 1 }; + print STDERR "PAR::Heavy: pre-hooks to Dynaloader's key methods\n" + if $dl_debug; + $bootstrap = \&DynaLoader::bootstrap; $dl_findfile = \&DynaLoader::dl_findfile; @@ -45,12 +51,23 @@ # Return the cached location of .dll inside PAR first, if possible. sub _dl_findfile { - return $FullCache{$cache_key} if exists $FullCache{$cache_key}; + print STDERR "PAR::Heavy::_dl_findfile($cache_key)\n" if $dl_debug; + + if (exists $FullCache{$cache_key}) { + print STDERR " found in FullCache as $FullCache{$cache_key}\n" + if $dl_debug; + return $FullCache{$cache_key}; + } if ($is_insensitive_fs) { # We have a case-insensitive filesystem... my ($key) = grep { lc($_) eq lc($cache_key) } keys %FullCache; - return $FullCache{$key} if defined $key; + if (defined $key) { + print STDERR " found case-insensitively in FullCache as $FullCache{$key}\n" + if $dl_debug; + return $FullCache{$key}; + } } + print STDERR " fall back to DynaLoader::dl_findfile\n" if $dl_debug; return $dl_findfile->(@_); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PAR-1.015/lib/PAR.pm new/PAR-1.016/lib/PAR.pm --- old/PAR-1.015/lib/PAR.pm 2016-12-18 17:39:37.000000000 +0100 +++ new/PAR-1.016/lib/PAR.pm 2019-05-20 20:03:29.000000000 +0200 @@ -1,5 +1,5 @@ package PAR; -$PAR::VERSION = '1.015'; +$PAR::VERSION = '1.016'; use 5.006; use strict; @@ -48,7 +48,7 @@ % perl -MPAR=./foo.par -MHello % perl -MPAR=./foo -MHello # the .par part is optional -Same thing, but search F<foo.par> in the C<@INC>; +Same thing, but search F<foo.par> in C<@INC>: % perl -MPAR -Ifoo.par -MHello % perl -MPAR -Ifoo -MHello # ditto @@ -213,13 +213,13 @@ =item * -If I<PAR_GLOBAL_TEMP> is not set, but I<PAR_CLEAN> is specified, set -I<PAR_GLOBAL_TEMP> to C<I<TEMP>/par-I<USER>/temp-I<PID>/>, cleaning it +If I<PAR_GLOBAL_TEMP> is not set, but I<PAR_GLOBAL_CLEAN> is specified, set +I<PAR_GLOBAL_TEMP> to C<I<TEMP>/par-I<USERHEX>/temp-I<PID>/>, cleaning it after execution. =item * -If both are not set, use C<I<TEMP>/par-I<USER>/cache-I<HASH>/> as the +If both are not set, use C<I<TEMP>/par-I<USERHEX>/cache-I<HASH>/> as the I<PAR_GLOBAL_TEMP>, reusing any existing files inside. =back @@ -239,9 +239,11 @@ =item * -I<USER> is the user name, or SYSTEM if none can be found. On Win32, -this is C<$Win32::LoginName>. On Unix, this is C<$ENV{USERNAME}> or -C<$ENV{USER}>. +I<USERHEX> is derived from the user name, or SYSTEM if none can be found. +On Win32, this is C<$Win32::LoginName>. +On Unix, this is C<$ENV{USERNAME}> or C<$ENV{USER}>. +Encode the raw bytes of the user name each as two hex digits +to obtain I<USERHEX>. =item * @@ -695,50 +697,44 @@ { mkdir($inc, 0755); - undef $@; - if (!$is_handle) { - # First try to unzip the *fast* way. - eval { - require Archive::Unzip::Burst; - Archive::Unzip::Burst::unzip($file_or_azip_handle, $inc) - and die "Could not unzip '$file_or_azip_handle' into '$inc'. Error: $!"; - die; - }; - - # This means the fast module is there, but didn't work. - if ($@ =~ /^Could not unzip/) { - die $@; - } - } - - # either failed to load Archive::Unzip::Burst or got - # an Archive::Zip handle: fallback to slow way. - if ($is_handle || $@) { - my $zip; - if (!$is_handle) { - open my $fh, '<', $file_or_azip_handle - or die "Cannot find '$file_or_azip_handle': $!"; - binmode($fh); - bless($fh, 'IO::File'); - - $zip = Archive::Zip->new; - $zip->readFromFileHandle($fh, $file_or_azip_handle) == AZ_OK - or die "Read '$file_or_azip_handle' error: $!"; - } - else { - $zip = $file_or_azip_handle; - } - - for ( $zip->memberNames() ) { - s{^/}{}; - my $outfile = File::Spec->catfile($inc, $_); - next if -e $outfile and not -w _; - $zip->extractMember($_, $outfile); - # Unfortunately Archive::Zip doesn't have an option - # NOT to restore member timestamps when extracting, hence set - # it to "now" (making it younger than the canary file). - utime(undef, undef, $outfile); - } + EXTRACT: { + my $zip; + if ($is_handle) { + $zip = $file_or_azip_handle; + } else { + # First try to unzip the *fast* way. + eval { + require Archive::Unzip::Burst; + Archive::Unzip::Burst::unzip($file_or_azip_handle, $inc) == AZ_OK; + } and last EXTRACT; + + # Either failed to load Archive::Unzip::Burst or + # Archive::Unzip::Burst::unzip failed: fallback to slow way. + open my $fh, '<', $file_or_azip_handle + or die "Cannot find '$file_or_azip_handle': $!"; + binmode($fh); + bless($fh, 'IO::File'); + + # Temporarily increase Archive::Zip::ChunkSize so that we may find + # the EOCD even if stuff has been appended (e.g.by OSX codesign) + # to the zip/executable. + Archive::Zip::setChunkSize(-s $fh); + $zip = Archive::Zip->new; + $zip->readFromFileHandle($fh, $file_or_azip_handle) == AZ_OK + or die "Read '$file_or_azip_handle' error: $!"; + Archive::Zip::setChunkSize(64 * 1024); + } + + for ( $zip->memberNames() ) { + s{^/}{}; + my $outfile = File::Spec->catfile($inc, $_); + next if -e $outfile and not -w _; + $zip->extractMember($_, $outfile); + # Unfortunately Archive::Zip doesn't have an option + # NOT to restore member timestamps when extracting, hence set + # it to "now" (making it younger than the canary file). + utime(undef, undef, $outfile); + } } $ArchivesExtracted{$is_handle ? $file_or_azip_handle->fileName() : $file_or_azip_handle} = $inc;
