Hello community,

here is the log from the commit of package perl-PAR for openSUSE:Factory 
checked in at 2015-08-02 22:46:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-PAR (Old)
 and      /work/SRC/openSUSE:Factory/.perl-PAR.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-PAR"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-PAR/perl-PAR.changes        2015-04-27 
13:04:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-PAR.new/perl-PAR.changes   2015-08-02 
22:46:22.000000000 +0200
@@ -1,0 +2,24 @@
+Sat Aug  1 08:51:03 UTC 2015 - co...@suse.com
+
+- updated to 1.010
+   see /usr/share/doc/packages/perl-PAR/Changes
+
+  1.010  2015-07-13
+  
+    - Fix #101800 "[PATCH] Reinstate files to inc dir if deleted by external 
process"
+      Periodic temp  directory cleaning programs (eg. "tmpwatch") may remove 
some
+      (older) files from $PAR_TEMP/inc, but keep others. This causes the packed
+      program to fail.
+  
+      - When extracting a .par file to $PAR_TEMP/inc do NOT restore the 
original
+        modified timestamps of the file (so that the extracted files have
+        the time of extraction as their modified time).
+  
+      - Add a "canary" file in $PAR_TEMP and back-date it 1 day. Hence any 
process
+        removing files in $PAR_TEMP based on timestamps should remove 
+        the "canary" before others.
+  
+      - If the canary file is missing, extract the .par to $PAR_TEMP/inc 
+        as previously was done only when $PAR_TEMP/inc was missing.
+
+-------------------------------------------------------------------

Old:
----
  PAR-1.009.tar.gz

New:
----
  PAR-1.010.tar.gz

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

Other differences:
------------------
++++++ perl-PAR.spec ++++++
--- /var/tmp/diff_new_pack.NuSBSS/_old  2015-08-02 22:46:23.000000000 +0200
+++ /var/tmp/diff_new_pack.NuSBSS/_new  2015-08-02 22:46:23.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           perl-PAR
-Version:        1.009
+Version:        1.010
 Release:        0
 %define cpan_name PAR
 Summary:        Perl Archive Toolkit

++++++ PAR-1.009.tar.gz -> PAR-1.010.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/Changes new/PAR-1.010/Changes
--- old/PAR-1.009/Changes       2015-04-22 17:22:37.000000000 +0200
+++ new/PAR-1.010/Changes       2015-07-13 12:50:07.000000000 +0200
@@ -1,3 +1,21 @@
+1.010  2015-07-13
+
+  - Fix #101800 "[PATCH] Reinstate files to inc dir if deleted by external 
process"
+    Periodic temp  directory cleaning programs (eg. "tmpwatch") may remove some
+    (older) files from $PAR_TEMP/inc, but keep others. This causes the packed
+    program to fail.
+
+    - When extracting a .par file to $PAR_TEMP/inc do NOT restore the original
+      modified timestamps of the file (so that the extracted files have
+      the time of extraction as their modified time).
+
+    - Add a "canary" file in $PAR_TEMP and back-date it 1 day. Hence any 
process
+      removing files in $PAR_TEMP based on timestamps should remove 
+      the "canary" before others.
+
+    - If the canary file is missing, extract the .par to $PAR_TEMP/inc 
+      as previously was done only when $PAR_TEMP/inc was missing.
+
 1.009  2015-04-22
 
   - Fix 103861 for PAR-Packer: Adding local directories to @INC for a pp 
executable fails
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/META.yml new/PAR-1.010/META.yml
--- old/PAR-1.009/META.yml      2015-04-22 17:23:59.000000000 +0200
+++ new/PAR-1.010/META.yml      2015-07-13 12:50:58.000000000 +0200
@@ -8,7 +8,7 @@
   ExtUtils::MakeMaker: 6.59
 distribution_type: module
 dynamic_config: 1
-generated_by: 'Module::Install version 1.14'
+generated_by: 'Module::Install version 1.16'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -21,7 +21,7 @@
 provides:
   PAR:
     file: lib/PAR.pm
-    version: '1.009'
+    version: '1.010'
   PAR::Heavy:
     file: lib/PAR/Heavy.pm
     version: '0.12'
@@ -42,4 +42,5 @@
   perl: 5.8.1
 resources:
   license: http://dev.perl.org/licenses/
-version: '1.009'
+  repository: https://www.openfoundry.org/svn/par/trunk
+version: '1.010'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/Makefile.PL new/PAR-1.010/Makefile.PL
--- old/PAR-1.009/Makefile.PL   2015-01-24 15:00:38.000000000 +0100
+++ new/PAR-1.010/Makefile.PL   2015-05-21 09:14:53.000000000 +0200
@@ -6,6 +6,7 @@
 name        'PAR';
 abstract    'Perl Archive Tookit';
 all_from    'lib/PAR.pm';
+repository  'https://www.openfoundry.org/svn/par/trunk';
 
 perl_version '5.008001';
 requires    'File::Temp'        => 0.05;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/inc/Module/Install/Base.pm 
new/PAR-1.010/inc/Module/Install/Base.pm
--- old/PAR-1.009/inc/Module/Install/Base.pm    2015-04-22 17:23:59.000000000 
+0200
+++ new/PAR-1.010/inc/Module/Install/Base.pm    2015-07-13 12:50:58.000000000 
+0200
@@ -4,7 +4,7 @@
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-       $VERSION = '1.14';
+       $VERSION = '1.16';
 }
 
 # Suspend handler for "redefined" warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/inc/Module/Install/Can.pm 
new/PAR-1.010/inc/Module/Install/Can.pm
--- old/PAR-1.009/inc/Module/Install/Can.pm     2015-04-22 17:23:59.000000000 
+0200
+++ new/PAR-1.010/inc/Module/Install/Can.pm     2015-07-13 12:50:58.000000000 
+0200
@@ -8,7 +8,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.14';
+       $VERSION = '1.16';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/inc/Module/Install/Fetch.pm 
new/PAR-1.010/inc/Module/Install/Fetch.pm
--- old/PAR-1.009/inc/Module/Install/Fetch.pm   2015-04-22 17:23:59.000000000 
+0200
+++ new/PAR-1.010/inc/Module/Install/Fetch.pm   2015-07-13 12:50:58.000000000 
+0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.14';
+       $VERSION = '1.16';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/inc/Module/Install/Makefile.pm 
new/PAR-1.010/inc/Module/Install/Makefile.pm
--- old/PAR-1.009/inc/Module/Install/Makefile.pm        2015-04-22 
17:23:59.000000000 +0200
+++ new/PAR-1.010/inc/Module/Install/Makefile.pm        2015-07-13 
12:50:58.000000000 +0200
@@ -8,7 +8,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.14';
+       $VERSION = '1.16';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/inc/Module/Install/Metadata.pm 
new/PAR-1.010/inc/Module/Install/Metadata.pm
--- old/PAR-1.009/inc/Module/Install/Metadata.pm        2015-04-22 
17:23:59.000000000 +0200
+++ new/PAR-1.010/inc/Module/Install/Metadata.pm        2015-07-13 
12:50:58.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.14';
+       $VERSION = '1.16';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/inc/Module/Install/Win32.pm 
new/PAR-1.010/inc/Module/Install/Win32.pm
--- old/PAR-1.009/inc/Module/Install/Win32.pm   2015-04-22 17:23:59.000000000 
+0200
+++ new/PAR-1.010/inc/Module/Install/Win32.pm   2015-07-13 12:50:58.000000000 
+0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.14';
+       $VERSION = '1.16';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/inc/Module/Install/WriteAll.pm 
new/PAR-1.010/inc/Module/Install/WriteAll.pm
--- old/PAR-1.009/inc/Module/Install/WriteAll.pm        2015-04-22 
17:23:59.000000000 +0200
+++ new/PAR-1.010/inc/Module/Install/WriteAll.pm        2015-07-13 
12:50:58.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.14';
+       $VERSION = '1.16';
        @ISA     = qw{Module::Install::Base};
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/inc/Module/Install.pm 
new/PAR-1.010/inc/Module/Install.pm
--- old/PAR-1.009/inc/Module/Install.pm 2015-04-22 17:23:59.000000000 +0200
+++ new/PAR-1.010/inc/Module/Install.pm 2015-07-13 12:50:58.000000000 +0200
@@ -31,7 +31,7 @@
        # This is not enforced yet, but will be some time in the next few
        # releases once we can make sure it won't clash with custom
        # Module::Install extensions.
-       $VERSION = '1.14';
+       $VERSION = '1.16';
 
        # Storage for the pseudo-singleton
        $MAIN    = undef;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/lib/PAR/SetupTemp.pm 
new/PAR-1.010/lib/PAR/SetupTemp.pm
--- old/PAR-1.009/lib/PAR/SetupTemp.pm  2011-12-28 12:22:50.000000000 +0100
+++ new/PAR-1.010/lib/PAR/SetupTemp.pm  2015-07-03 18:49:43.000000000 +0200
@@ -32,6 +32,11 @@
 # for PAR internal use only!
 our $PARTemp;
 
+# name of the canary file
+our $Canary = "_CANARY_.txt";
+# how much to "date back" the canary file (in seconds)
+our $CanaryDateBack = 24 * 3600;        # 1 day
+
 # The C version of this code appears in myldr/mktmpdir.c
 # This code also lives in PAR::Packer's par.pl as _set_par_temp!
 sub set_par_temp_env {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PAR-1.009/lib/PAR.pm new/PAR-1.010/lib/PAR.pm
--- old/PAR-1.009/lib/PAR.pm    2015-04-22 15:12:43.000000000 +0200
+++ new/PAR-1.010/lib/PAR.pm    2015-07-12 02:03:42.000000000 +0200
@@ -1,5 +1,5 @@
 package PAR;
-$PAR::VERSION = '1.009';
+$PAR::VERSION = '1.010';
 
 use 5.006;
 use strict;
@@ -673,15 +673,14 @@
 # returns that directory.
 sub _extract_inc {
     my $file_or_azip_handle = shift;
-    my $force_extract = shift;
-    my $inc = "$PAR::SetupTemp::PARTemp/inc";
     my $dlext = defined($Config{dlext}) ? $Config::Config{dlext} : '';
-    my $inc_exists = -d $inc;
     my $is_handle = ref($file_or_azip_handle) && 
$file_or_azip_handle->isa('Archive::Zip::Archive');
 
     require File::Spec;
+    my $inc = File::Spec->catdir($PAR::SetupTemp::PARTemp, "inc");
+    my $canary = File::Spec->catfile($PAR::SetupTemp::PARTemp, 
$PAR::SetupTemp::Canary);
 
-    if (!$inc_exists or $force_extract) {
+    if (!-d $inc || !-e $canary) {
         for (1 .. 10) { mkdir("$inc.lock", 0755) and last; sleep 1 }
         
         undef $@;
@@ -725,9 +724,19 @@
               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);
           }
         }
         
+        # touch (and back-date) canary file
+        open my $fh, ">", $canary; 
+        close $fh;
+        my $dateback = time() - $PAR::SetupTemp::CanaryDateBack;
+        utime($dateback, $dateback, $canary);
+
         rmdir("$inc.lock");
 
         $ArchivesExtracted{$is_handle ? $file_or_azip_handle->fileName() : 
$file_or_azip_handle} = $inc;


Reply via email to