Hello community,

here is the log from the commit of package perl-PAR-Packer for openSUSE:Factory 
checked in at 2020-03-19 19:53:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-PAR-Packer (Old)
 and      /work/SRC/openSUSE:Factory/.perl-PAR-Packer.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-PAR-Packer"

Thu Mar 19 19:53:15 2020 rev:16 rq:786469 version:1.050

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-PAR-Packer/perl-PAR-Packer.changes  
2019-12-12 09:23:18.795274223 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-PAR-Packer.new.3160/perl-PAR-Packer.changes    
    2020-03-19 19:54:39.468278435 +0100
@@ -1,0 +2,39 @@
+Thu Mar 19 03:14:14 UTC 2020 -  <timueller+p...@suse.de>
+
+- updated to 1.050
+   see /usr/share/doc/packages/perl-PAR-Packer/Changes
+
+  1.050  2020-03-18
+  
+  - Rethink use of Filter::PodStrip.
+    
+    Do not add directives 
+  
+    #line 1 "file"
+  
+    to packed modules except for "embdeded" files.
+    We still add these directives to "embedded" files as these are extracted 
+    with mangled names which makes it hard to make sense of warn() or die() 
messages
+    caused by them. These are all core modules and don't reference __FILE__.
+  
+    This should make use of __FILE__ in packed modules work without
+    workarounds. __FILE__ is typically used to refer to installed non-module
+    resources, e.g.
+    
+      # MIME::Types
+      my $db = File::Spec->catfile(dirname(__FILE__), 'types.db');
+    
+      # Mozilla::CA
+      my $ca_file = File::Spec->catfile(dirname(__FILE__), "CA", "cacert.pem");
+    
+      # Mojo::File (__FILE__ used implicitly by caller())
+      sub curfile { __PACKAGE__->new(Cwd::realpath((caller)[1])) }
+    
+    Hence, remove known workarounds from Filter::PatchContent and add a test.
+    
+  - Fix RT#130685: core module detection doesn't work with -Duserelocatableinc
+    
+    Original patch by frank.lichtenh...@sophos.com, thanx!
+    Added a test for this.
+
+-------------------------------------------------------------------

Old:
----
  PAR-Packer-1.049.tar.gz

New:
----
  PAR-Packer-1.050.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-PAR-Packer.spec ++++++
--- /var/tmp/diff_new_pack.xK9BYc/_old  2020-03-19 19:54:40.084278457 +0100
+++ /var/tmp/diff_new_pack.xK9BYc/_new  2020-03-19 19:54:40.088278457 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-PAR-Packer
 #
-# Copyright (c) 2019 SUSE LLC
+# Copyright (c) 2020 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
@@ -17,13 +17,13 @@
 
 
 Name:           perl-PAR-Packer
-Version:        1.049
+Version:        1.050
 Release:        0
 %define cpan_name PAR-Packer
 Summary:        PAR Packager
 License:        Artistic-1.0 OR GPL-1.0-or-later
 Group:          Development/Libraries/Perl
-URL:            https://metacpan.org/release/%{cpan_name}
+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
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -68,7 +68,7 @@
 
 %prep
 %setup -q -n %{cpan_name}-%{version}
-find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644
+find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path 
"*/script/*" ! -name "configure" -print0 | xargs -0 chmod 644
 
 %build
 %{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"

++++++ PAR-Packer-1.049.tar.gz -> PAR-Packer-1.050.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/Changes new/PAR-Packer-1.050/Changes
--- old/PAR-Packer-1.049/Changes        2019-05-31 13:54:06.000000000 +0200
+++ new/PAR-Packer-1.050/Changes        2020-03-18 09:06:22.000000000 +0100
@@ -1,3 +1,36 @@
+1.050  2020-03-18
+
+- Rethink use of Filter::PodStrip.
+  
+  Do not add directives 
+
+  #line 1 "file"
+
+  to packed modules except for "embdeded" files.
+  We still add these directives to "embedded" files as these are extracted 
+  with mangled names which makes it hard to make sense of warn() or die() 
messages
+  caused by them. These are all core modules and don't reference __FILE__.
+
+  This should make use of __FILE__ in packed modules work without
+  workarounds. __FILE__ is typically used to refer to installed non-module
+  resources, e.g.
+  
+    # MIME::Types
+    my $db = File::Spec->catfile(dirname(__FILE__), 'types.db');
+  
+    # Mozilla::CA
+    my $ca_file = File::Spec->catfile(dirname(__FILE__), "CA", "cacert.pem");
+  
+    # Mojo::File (__FILE__ used implicitly by caller())
+    sub curfile { __PACKAGE__->new(Cwd::realpath((caller)[1])) }
+  
+  Hence, remove known workarounds from Filter::PatchContent and add a test.
+  
+- Fix RT#130685: core module detection doesn't work with -Duserelocatableinc
+  
+  Original patch by frank.lichtenh...@sophos.com, thanx!
+  Added a test for this.
+
 1.049  2019-05-31
 
 - Fix RT#129312: Code signing for OSX
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/MANIFEST 
new/PAR-Packer-1.050/MANIFEST
--- old/PAR-Packer-1.049/MANIFEST       2019-05-31 13:55:13.000000000 +0200
+++ new/PAR-Packer-1.050/MANIFEST       2020-03-18 09:12:16.000000000 +0100
@@ -69,6 +69,7 @@
 t/40-packer_cd_option.t
 t/80-doublecolon.t
 t/85-crt-glob.t
+t/85-myfile.t
 t/90-rt101800.t
 t/90-rt103861.t
 t/90-rt104560.t
@@ -79,11 +80,13 @@
 t/90-rt122949.t
 t/90-rt127064.t
 t/90-rt129312.t
+t/90-rt130685.t
 t/90-rt59710.t
 t/Double/Colon.pm
 t/Double/Colon/Barnie.pm
 t/Double/Colon/Foo/Bar/Quux.pm
 t/Double/Colon/Fred.pm
+t/Myfile.pm
 t/test-proc
 t/utils.pl
 META.yml                                 Module YAML meta-data (added by 
MakeMaker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/META.json 
new/PAR-Packer-1.050/META.json
--- old/PAR-Packer-1.049/META.json      2019-05-31 13:55:12.000000000 +0200
+++ new/PAR-Packer-1.050/META.json      2020-03-18 09:12:16.000000000 +0100
@@ -78,6 +78,6 @@
       },
       "x_MailingList" : "mailto:p...@perl.org";
    },
-   "version" : "1.049",
-   "x_serialization_backend" : "JSON::PP version 2.97001"
+   "version" : "1.050",
+   "x_serialization_backend" : "JSON::PP version 4.02"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/META.yml 
new/PAR-Packer-1.050/META.yml
--- old/PAR-Packer-1.049/META.yml       2019-05-31 13:55:12.000000000 +0200
+++ new/PAR-Packer-1.050/META.yml       2020-03-18 09:12:16.000000000 +0100
@@ -48,5 +48,5 @@
   MailingList: mailto:p...@perl.org
   bugtracker: https://rt.cpan.org/Dist/Display.html?Queue=PAR-Packer
   repository: git://github.com/rschupp/PAR-Packer.git
-version: '1.049'
+version: '1.050'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/lib/PAR/Filter/PatchContent.pm 
new/PAR-Packer-1.050/lib/PAR/Filter/PatchContent.pm
--- old/PAR-Packer-1.049/lib/PAR/Filter/PatchContent.pm 2016-12-04 
16:33:39.000000000 +0100
+++ new/PAR-Packer-1.050/lib/PAR/Filter/PatchContent.pm 2020-03-08 
23:54:55.000000000 +0100
@@ -26,14 +26,6 @@
         '$is_dosish = ' =>
         '$is_dosish = $^O eq \'cygwin\' || ',
     ],
-    'MIME/Types.pm' => [
-        'File::Spec->catfile(dirname(__FILE__),' =>
-        'File::Spec->catfile($ENV{PAR_TEMP}, qw(inc lib MIME),',
-    ],
-    'Mozilla/CA.pm' => [
-        'File::Spec->catfile(dirname(__FILE__), "CA", "cacert.pem")' =>
-        'File::Spec->catfile($ENV{PAR_TEMP}, qw(inc lib Mozilla CA 
cacert.pem))',
-    ],
     'Pod/Usage.pm' => [
         ' = $0' =>
         ' = $ENV{PAR_0} || $0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/lib/PAR/Packer.pm 
new/PAR-Packer-1.050/lib/PAR/Packer.pm
--- old/PAR-Packer-1.049/lib/PAR/Packer.pm      2019-04-29 13:51:32.000000000 
+0200
+++ new/PAR-Packer-1.050/lib/PAR/Packer.pm      2020-03-18 08:52:16.000000000 
+0100
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '1.049';
+our $VERSION = '1.050';
 
 =head1 NAME
 
@@ -35,6 +35,7 @@
 use Module::ScanDeps ();
 use PAR ();
 use PAR::Filter ();
+use PAR::Filter::PodStrip ();
 
 use constant OPTIONS => {
     'a|addfile:s@'   => 'Additional files to pack',
@@ -821,8 +822,9 @@
     # generate a selective set of filters from the options passed in via -F
     my $mod_filter = _generate_filter($opt, 'F');
 
-    (my $privlib = $Config{privlib}) =~ s{\\}{/}g;
-    (my $archlib = $Config{archlib}) =~ s{\\}{/}g;
+    my ($privlib, $archlib) = map { (my $lib = $_) =~ s{\\}{/}g; $lib } 
+                                  @Config{qw(privlibexp archlibexp)};
+
     foreach my $pfile (sort grep length $map{$_}, keys %map) {
         next if !$opt->{B} and (
             ($map{$pfile} eq "$privlib/$pfile") or
@@ -957,7 +959,6 @@
             filter => PAR::Filter->new($filter)
         };
     }
-    my $podstrip = PAR::Filter->new('PodStrip');
 
     my $filtersub = sub {
         my $ref = shift;
@@ -975,7 +976,7 @@
 
         # PodStrip by default, overridden by -F or $ENV{PAR_VERBATIM}
         if ($filtered == 1 and not $verbatim) {
-            $ref = $podstrip->apply($ref, $name);
+            $ref = PAR::Filter::PodStrip->apply($ref, '');
         }
         return $ref;
     };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/myldr/par_pl2c.pl 
new/PAR-Packer-1.050/myldr/par_pl2c.pl
--- old/PAR-Packer-1.049/myldr/par_pl2c.pl      2019-05-17 20:54:06.000000000 
+0200
+++ new/PAR-Packer-1.050/myldr/par_pl2c.pl      2020-03-08 23:54:55.000000000 
+0100
@@ -10,7 +10,7 @@
 
 my $slurp = do { local $/ = undef; <STDIN> };
 
-PAR::Filter::PodStrip->new->apply(\$slurp);
+PAR::Filter::PodStrip->apply(\$slurp, '');
 
 print "const char *$var =\n";
 foreach (split(/\n/, $slurp))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/script/par.pl 
new/PAR-Packer-1.050/script/par.pl
--- old/PAR-Packer-1.049/script/par.pl  2019-05-19 16:28:43.000000000 +0200
+++ new/PAR-Packer-1.050/script/par.pl  2020-03-08 23:54:55.000000000 +0100
@@ -497,7 +497,7 @@
     my $loader = scalar <_FH>;
     if (!$ENV{PAR_VERBATIM} and $loader =~ /^(?:#!|\@rem)/) {
         require PAR::Filter::PodStrip;
-        PAR::Filter::PodStrip->new->apply(\$loader, $0)
+        PAR::Filter::PodStrip->apply(\$loader, $0);
     }
     foreach my $key (sort keys %env) {
         my $val = $env{$key} or next;
@@ -578,7 +578,7 @@
                 $content = <FILE>;
                 close FILE;
 
-                PAR::Filter::PodStrip->new->apply(\$content, $file)
+                PAR::Filter::PodStrip->apply(\$content, "<embedded>/$name")
                     if !$ENV{PAR_VERBATIM} and $name =~ /\.(?:pm|ix|al)$/i;
 
                 PAR::Filter::PatchContent->new->apply(\$content, $file, $name);
@@ -793,7 +793,7 @@
                     $ctx->addfile($fh);
                     close($fh);
                     $ctx->hexdigest;
-                } // $mtime;
+                } || $mtime;
 
                 $stmpdir .= "$Config{_delim}cache-$digest"; 
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/t/85-myfile.t 
new/PAR-Packer-1.050/t/85-myfile.t
--- old/PAR-Packer-1.049/t/85-myfile.t  1970-01-01 01:00:00.000000000 +0100
+++ new/PAR-Packer-1.050/t/85-myfile.t  2020-03-18 09:10:27.000000000 +0100
@@ -0,0 +1,38 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Cwd;
+use File::Spec::Functions;
+
+use Test::More;
+require "./t/utils.pl";
+
+plan tests => 6;
+
+my $exe = pp_ok(-I => "t", -e => <<'...');
+use Cwd;
+use Data::Dumper;
+use Myfile;
+my $data = 
+{ 
+    par_temp    => Cwd::realpath($ENV{PAR_TEMP}), 
+    from_file   => Myfile::from_file(), 
+    from_caller => Myfile::from_caller(), 
+};
+print Data::Dumper->new([$data], ['data'])->Useqq(1)->Dump;
+...
+
+my ($out, $err) = run_ok($exe);
+
+our $data;
+eval($out);
+
+my $exp_file = catfile($data->{par_temp}, qw( inc lib Myfile.pm ));
+$exp_file =~ s{\\}{/}g if $^O eq 'MSWin32';
+
+is($data->{from_file}, $exp_file, "expected source path from __FILE__");
+ok(-e $data->{from_file}, "file __FILE__ exists");
+is($data->{from_caller}, $exp_file, "expected source path from (caller)[1]");
+ok(-e $data->{from_caller}, "file (caller)[1] exists");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/t/90-rt130685.t 
new/PAR-Packer-1.050/t/90-rt130685.t
--- old/PAR-Packer-1.049/t/90-rt130685.t        1970-01-01 01:00:00.000000000 
+0100
+++ new/PAR-Packer-1.050/t/90-rt130685.t        2020-03-18 08:51:01.000000000 
+0100
@@ -0,0 +1,51 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Config;
+use Cwd;
+use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
+
+use Test::More;
+require "./t/utils.pl";
+
+# check that "pp -p" (without "-B") implies "pack no core modules"
+
+my @core_modules = qw( Carp Exporter File::Glob List::Util );
+
+plan tests => 2 * @core_modules;
+
+# Note: There may be dual-life core modules installed.
+# PAR::Packer won't consider them "core" unless it finds them in 
$Config{archlibexp} 
+# or $Config{privlibexp}.
+
+my ($privlib, $archlib) = map { (my $lib = $_) =~ s{\\}{/}g; $lib } 
+                              @Config{qw(privlibexp archlibexp)};
+
+foreach my $mod (@core_modules)
+{
+    (my $file = "$mod.pm") =~ s{::}{/}g;
+    require $file;
+    (my $path = Cwd::realpath($INC{$file})) =~ s{\\}{/}g;
+    diag("found core module $mod in $path");
+
+    SKIP: 
+    {
+        if ($path eq "$privlib/$file" || $path eq "$archlib/$file")
+        {
+            # check that "pp -p ..."  doesn't contain "lib/$file"
+            my $par = pp_ok(-p => -e => "use $mod;");
+
+            my $zip = Archive::Zip->new();
+            $zip->read($par) == AZ_OK 
+                or die qq[can't open par file "$par"];
+
+            ok(!$zip->memberNamed("lib/$file"), ".par file doesn't contain 
core module $mod");
+        }
+        else
+        {
+            skip "your $mod is not a core module (according to PAR::Packer)", 
2;
+        }
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-Packer-1.049/t/Myfile.pm 
new/PAR-Packer-1.050/t/Myfile.pm
--- old/PAR-Packer-1.049/t/Myfile.pm    1970-01-01 01:00:00.000000000 +0100
+++ new/PAR-Packer-1.050/t/Myfile.pm    2020-03-08 23:54:55.000000000 +0100
@@ -0,0 +1,11 @@
+package Myfile;
+
+use strict;
+use warnings;
+use Cwd;
+
+sub from_caller  { Cwd::realpath(_from_caller()) }
+sub _from_caller { (caller)[1] }
+sub from_file    { Cwd::realpath(__FILE__) }
+
+1;


Reply via email to