r11554 - in /trunk/libpar-packer-perl: ./ contrib/automated_pp_test/ debian/ inc/Module/ inc/Module/Install/ inc/Test/ inc/Test/Builder/ lib/ lib/PAR/ myldr/ script/

hanska-guest at users.alioth.debian.org hanska-guest at users.alioth.debian.org
Sun Dec 23 21:54:36 UTC 2007


Author: hanska-guest
Date: Sun Dec 23 21:54:36 2007
New Revision: 11554

URL: http://svn.debian.org/wsvn/?sc=1&rev=11554
Log:
* New upstream release

Removed:
    trunk/libpar-packer-perl/SIGNATURE
    trunk/libpar-packer-perl/contrib/automated_pp_test/patch.diff
    trunk/libpar-packer-perl/myldr/tmon.out
Modified:
    trunk/libpar-packer-perl/ChangeLog
    trunk/libpar-packer-perl/MANIFEST
    trunk/libpar-packer-perl/META.yml
    trunk/libpar-packer-perl/Makefile.PL
    trunk/libpar-packer-perl/debian/changelog
    trunk/libpar-packer-perl/inc/Module/Install.pm
    trunk/libpar-packer-perl/inc/Module/Install/Base.pm
    trunk/libpar-packer-perl/inc/Module/Install/Can.pm
    trunk/libpar-packer-perl/inc/Module/Install/Fetch.pm
    trunk/libpar-packer-perl/inc/Module/Install/Include.pm
    trunk/libpar-packer-perl/inc/Module/Install/Makefile.pm
    trunk/libpar-packer-perl/inc/Module/Install/Metadata.pm
    trunk/libpar-packer-perl/inc/Module/Install/PAR.pm
    trunk/libpar-packer-perl/inc/Module/Install/Win32.pm
    trunk/libpar-packer-perl/inc/Module/Install/WriteAll.pm
    trunk/libpar-packer-perl/inc/Test/Builder.pm
    trunk/libpar-packer-perl/inc/Test/Builder/Module.pm
    trunk/libpar-packer-perl/inc/Test/More.pm
    trunk/libpar-packer-perl/lib/PAR/Packer.pm
    trunk/libpar-packer-perl/lib/pp.pm
    trunk/libpar-packer-perl/myldr/Makefile.PL
    trunk/libpar-packer-perl/myldr/internals.c
    trunk/libpar-packer-perl/myldr/mktmpdir.c
    trunk/libpar-packer-perl/script/par.pl

Modified: trunk/libpar-packer-perl/ChangeLog
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/ChangeLog?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/ChangeLog (original)
+++ trunk/libpar-packer-perl/ChangeLog Sun Dec 23 21:54:36 2007
@@ -1,3 +1,26 @@
+[Changes for 0.977 - Dec 20, 2007]
+
+* New features
+    - Support for Perl 5.10 and later.
+    - New -E flag for "pp" that works just like "perl -E" for Perl 5.10+,
+      namely enabling new syntactic features like "say".
+
+* Bug fixes, etc.
+    - When deleting the temp directory in the background, rename the
+      directory to a unique name to avoid potential collisions caused
+      by pid reuse (primarily an issue on Windows).
+    - PAR::Packer now depends on Module::ScanDeps 0.78 because 0.77
+      had a critical bug. If you are having trouble with M::SD 0.78,
+      please a) report it in the bug tracker and b) try versions of
+      M::SD below 0.77.
+    - If running with the "clean" option, go through extra pain in par.pl
+      to clean up if the OS doesn't allow opened shared libraries to be
+      deleted. (Scott Stanton)
+    - Use the P_tmpdir macro as temporary directory on Unix if available.
+      See RT #29784.
+    - Included PWD fix. See RT #29050.
+    - Added deletion of 'orig_parl' on Win32 in PAR::Packer.
+    
 [Changes for 0.976 - Jul 29, 2007]
 * New features
     - If available, the packager will include the new and slightly

Modified: trunk/libpar-packer-perl/MANIFEST
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/MANIFEST?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/MANIFEST (original)
+++ trunk/libpar-packer-perl/MANIFEST Sun Dec 23 21:54:36 2007
@@ -1,10 +1,8 @@
 AUTHORS
 ChangeLog
 contrib/automated_pp_test/automated_pp_test.pl
-contrib/automated_pp_test/automated_pp_test.pl.orig
 contrib/automated_pp_test/hello_tk.pl
 contrib/automated_pp_test/hi.ico
-contrib/automated_pp_test/patch.diff
 contrib/automated_pp_test/pipe_a_command.pm
 contrib/automated_pp_test/prior_to_test.pm
 contrib/automated_pp_test/remove_file_and_try_executable_again.pm
@@ -58,7 +56,6 @@
 myldr/parlsig.pl
 myldr/sha1.c.PL
 myldr/static.c
-myldr/tmon.out
 myldr/usernamefrompwuid.c
 myldr/utils.c
 myldr/win32.coff
@@ -76,4 +73,3 @@
 t/30-current_exec.t
 t/test-proc
 TODO
-SIGNATURE                                Public-key signature (added by MakeMaker)

Modified: trunk/libpar-packer-perl/META.yml
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/META.yml?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/META.yml (original)
+++ trunk/libpar-packer-perl/META.yml Sun Dec 23 21:54:36 2007
@@ -1,8 +1,9 @@
 --- 
 abstract: PAR Packager
-author: Audrey Tang <cpan at audreyt.org>
+author: 
+  - Audrey Tang <cpan at audreyt.org>
 distribution_type: module
-generated_by: Module::Install version 0.67
+generated_by: Module::Install version 0.68
 license: perl
 meta-spec: 
   url: http://module-build.sourceforge.net/META-spec-v1.3.html
@@ -32,7 +33,7 @@
     file: lib/PAR/Filter/PodStrip.pm
   PAR::Packer: 
     file: lib/PAR/Packer.pm
-    version: 0.976
+    version: 0.977
   PAR::StrippedPARL::Base: 
     file: lib/PAR/StrippedPARL/Base.pm
     version: 0.975
@@ -52,8 +53,8 @@
   Compress::Zlib: 1.3
   File::Temp: 0.05
   Getopt::ArgvFile: 1.07
-  Module::ScanDeps: 0.74
-  PAR: 0.976
+  Module::ScanDeps: 0.81
+  PAR: 0.977
   PAR::Dist: 0.22
   perl: 5.6.0
-version: 0.976
+version: 0.977

Modified: trunk/libpar-packer-perl/Makefile.PL
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/Makefile.PL?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/Makefile.PL (original)
+++ trunk/libpar-packer-perl/Makefile.PL Sun Dec 23 21:54:36 2007
@@ -10,9 +10,9 @@
 requires    'File::Temp'        => 0.05;
 requires    'Compress::Zlib'    => ($^O eq 'MSWin32') ? 1.16 : 1.30;
 requires    'Archive::Zip'      => 1.00;
-requires    'Module::ScanDeps'  => 0.74;
+requires    'Module::ScanDeps'  => 0.81;
 requires    'PAR::Dist'         => 0.22;
-requires    'PAR'               => '0.976';
+requires    'PAR'               => '0.977';
 requires    'Getopt::ArgvFile'  => 1.07;
 
 if ($^O eq 'MSWin32') {
@@ -55,7 +55,8 @@
 }
 
 par_prehook();
-WriteAll sign => 1;
+WriteAll;
+#WriteAll sign => 1;
 par_posthook();
 
 my %no_parl  = ();
@@ -67,7 +68,7 @@
     $cc = can_cc unless $bork;
     my $par;
     $par = fetch_par('', '', !$cc) unless ($cc or $bork);
-    my $exe  = '';
+    my $exe  = $Config::Config{_exe};
     my $dynperl = $Config::Config{useshrplib} && ($Config::Config{useshrplib} ne 'false');
 
     if ($bork) {
@@ -106,11 +107,11 @@
 
     makemaker_args(
         MAN1PODS		=> {
-            'script/par.pl'	=> 'blib/man1/par.pl.1p',
-            'script/pp'	        => 'blib/man1/pp.1p',
-            'script/tkpp'       => 'blib/man1/tkpp.1p',
+            'script/par.pl'	=> 'blib/man1/par.pl.1',
+            'script/pp'	        => 'blib/man1/pp.1',
+            'script/tkpp'       => 'blib/man1/tkpp.1',
           ($par or $cc) ? (
-            'script/parl.pod'   => 'blib/man1/parl.1p',
+            'script/parl.pod'   => 'blib/man1/parl.1',
           ) : (),
         },
         EXE_FILES		=> [

Modified: trunk/libpar-packer-perl/debian/changelog
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/debian/changelog?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/debian/changelog (original)
+++ trunk/libpar-packer-perl/debian/changelog Sun Dec 23 21:54:36 2007
@@ -1,3 +1,9 @@
+libpar-packer-perl (0.977-1) UNRELEASED; urgency=low
+
+  * New upstream release
+
+ -- David Paleino <d.paleino at gmail.com>  Sun, 23 Dec 2007 22:54:02 +0100
+
 libpar-packer-perl (0.976-6) unstable; urgency=low
 
   * Add ${shlibs:Depends} to dependency list.

Modified: trunk/libpar-packer-perl/inc/Module/Install.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Module/Install.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Module/Install.pm (original)
+++ trunk/libpar-packer-perl/inc/Module/Install.pm Sun Dec 23 21:54:36 2007
@@ -28,7 +28,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 = '0.67';
+    $VERSION = '0.68';
 }
 
 # Whether or not inc::Module::Install is actually loaded, the

Modified: trunk/libpar-packer-perl/inc/Module/Install/Base.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Module/Install/Base.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Module/Install/Base.pm (original)
+++ trunk/libpar-packer-perl/inc/Module/Install/Base.pm Sun Dec 23 21:54:36 2007
@@ -1,7 +1,7 @@
 #line 1
 package Module::Install::Base;
 
-$VERSION = '0.67';
+$VERSION = '0.68';
 
 # Suspend handler for "redefined" warnings
 BEGIN {

Modified: trunk/libpar-packer-perl/inc/Module/Install/Can.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Module/Install/Can.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Module/Install/Can.pm (original)
+++ trunk/libpar-packer-perl/inc/Module/Install/Can.pm Sun Dec 23 21:54:36 2007
@@ -11,7 +11,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.67';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: trunk/libpar-packer-perl/inc/Module/Install/Fetch.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Module/Install/Fetch.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Module/Install/Fetch.pm (original)
+++ trunk/libpar-packer-perl/inc/Module/Install/Fetch.pm Sun Dec 23 21:54:36 2007
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.67';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: trunk/libpar-packer-perl/inc/Module/Install/Include.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Module/Install/Include.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Module/Install/Include.pm (original)
+++ trunk/libpar-packer-perl/inc/Module/Install/Include.pm Sun Dec 23 21:54:36 2007
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.67';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: trunk/libpar-packer-perl/inc/Module/Install/Makefile.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Module/Install/Makefile.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Module/Install/Makefile.pm (original)
+++ trunk/libpar-packer-perl/inc/Module/Install/Makefile.pm Sun Dec 23 21:54:36 2007
@@ -7,7 +7,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.67';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: trunk/libpar-packer-perl/inc/Module/Install/Metadata.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Module/Install/Metadata.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Module/Install/Metadata.pm (original)
+++ trunk/libpar-packer-perl/inc/Module/Install/Metadata.pm Sun Dec 23 21:54:36 2007
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.67';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: trunk/libpar-packer-perl/inc/Module/Install/PAR.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Module/Install/PAR.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Module/Install/PAR.pm (original)
+++ trunk/libpar-packer-perl/inc/Module/Install/PAR.pm Sun Dec 23 21:54:36 2007
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.67';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: trunk/libpar-packer-perl/inc/Module/Install/Win32.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Module/Install/Win32.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Module/Install/Win32.pm (original)
+++ trunk/libpar-packer-perl/inc/Module/Install/Win32.pm Sun Dec 23 21:54:36 2007
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.67';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: trunk/libpar-packer-perl/inc/Module/Install/WriteAll.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Module/Install/WriteAll.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Module/Install/WriteAll.pm (original)
+++ trunk/libpar-packer-perl/inc/Module/Install/WriteAll.pm Sun Dec 23 21:54:36 2007
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.67';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: trunk/libpar-packer-perl/inc/Test/Builder.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Test/Builder.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Test/Builder.pm (original)
+++ trunk/libpar-packer-perl/inc/Test/Builder.pm Sun Dec 23 21:54:36 2007
@@ -9,7 +9,7 @@
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.70';
+$VERSION = '0.74';
 $VERSION = eval $VERSION;    # make the alpha version come out as a number
 
 # Make Test::Builder thread-safe for ithreads.
@@ -690,7 +690,8 @@
 
 # I'm not ready to publish this.  It doesn't deal with array return
 # values from the code or context.
-#line 999
+
+#line 1000
 
 sub _try {
     my($self, $code) = @_;
@@ -703,15 +704,15 @@
     return wantarray ? ($return, $@) : $return;
 }
 
-#line 1021
+#line 1022
 
 sub is_fh {
     my $self = shift;
     my $maybe_fh = shift;
     return 0 unless defined $maybe_fh;
 
-    return 1 if ref $maybe_fh  eq 'GLOB'; # its a glob
-    return 1 if ref \$maybe_fh eq 'GLOB'; # its a glob ref
+    return 1 if ref $maybe_fh  eq 'GLOB'; # its a glob ref
+    return 1 if ref \$maybe_fh eq 'GLOB'; # its a glob
 
     return eval { $maybe_fh->isa("IO::Handle") } ||
            # 5.5.4's tied() and can() doesn't like getting undef
@@ -719,7 +720,7 @@
 }
 
 
-#line 1066
+#line 1067
 
 sub level {
     my($self, $level) = @_;
@@ -731,7 +732,7 @@
 }
 
 
-#line 1099
+#line 1100
 
 sub use_numbers {
     my($self, $use_nums) = @_;
@@ -743,7 +744,7 @@
 }
 
 
-#line 1133
+#line 1134
 
 foreach my $attribute (qw(No_Header No_Ending No_Diag)) {
     my $method = lc $attribute;
@@ -762,7 +763,7 @@
 }
 
 
-#line 1187
+#line 1188
 
 sub diag {
     my($self, @msgs) = @_;
@@ -789,7 +790,7 @@
     return 0;
 }
 
-#line 1224
+#line 1225
 
 sub _print {
     my($self, @msgs) = @_;
@@ -813,7 +814,7 @@
     print $fh $msg;
 }
 
-#line 1258
+#line 1259
 
 sub _print_diag {
     my $self = shift;
@@ -823,7 +824,7 @@
     print $fh @_;
 }    
 
-#line 1295
+#line 1296
 
 sub output {
     my($self, $fh) = @_;
@@ -909,7 +910,7 @@
 }
 
 
-#line 1395
+#line 1396
 
 sub _message_at_caller {
     my $self = shift;
@@ -938,7 +939,7 @@
     }
 }
 
-#line 1443
+#line 1444
 
 sub current_test {
     my($self, $num) = @_;
@@ -974,7 +975,7 @@
 }
 
 
-#line 1488
+#line 1489
 
 sub summary {
     my($self) = shift;
@@ -982,14 +983,14 @@
     return map { $_->{'ok'} } @{ $self->{Test_Results} };
 }
 
-#line 1543
+#line 1544
 
 sub details {
     my $self = shift;
     return @{ $self->{Test_Results} };
 }
 
-#line 1568
+#line 1569
 
 sub todo {
     my($self, $pack) = @_;
@@ -1002,7 +1003,7 @@
                                      : 0;
 }
 
-#line 1589
+#line 1590
 
 sub caller {
     my($self, $height) = @_;
@@ -1012,9 +1013,9 @@
     return wantarray ? @caller : $caller[0];
 }
 
-#line 1601
-
-#line 1615
+#line 1602
+
+#line 1616
 
 #'#
 sub _sanity_check {
@@ -1027,7 +1028,7 @@
           'Somehow you got a different number of results than tests ran!');
 }
 
-#line 1636
+#line 1637
 
 sub _whoa {
     my($self, $check, $desc) = @_;
@@ -1040,7 +1041,7 @@
     }
 }
 
-#line 1658
+#line 1659
 
 sub _my_exit {
     $? = $_[0];
@@ -1049,7 +1050,7 @@
 }
 
 
-#line 1671
+#line 1672
 
 $SIG{__DIE__} = sub {
     # We don't want to muck with death in an eval, but $^S isn't
@@ -1169,6 +1170,6 @@
     $Test->_ending if defined $Test and !$Test->no_ending;
 }
 
-#line 1846
+#line 1847
 
 1;

Modified: trunk/libpar-packer-perl/inc/Test/Builder/Module.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Test/Builder/Module.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Test/Builder/Module.pm (original)
+++ trunk/libpar-packer-perl/inc/Test/Builder/Module.pm Sun Dec 23 21:54:36 2007
@@ -6,7 +6,7 @@
 require Exporter;
 @ISA = qw(Exporter);
 
-$VERSION = '0.68';
+$VERSION = '0.74';
 
 use strict;
 

Modified: trunk/libpar-packer-perl/inc/Test/More.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/inc/Test/More.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/inc/Test/More.pm (original)
+++ trunk/libpar-packer-perl/inc/Test/More.pm Sun Dec 23 21:54:36 2007
@@ -17,7 +17,7 @@
 
 
 use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS $TODO);
-$VERSION = '0.70';
+$VERSION = '0.74';
 $VERSION = eval $VERSION;    # make the alpha version come out as a number
 
 use Test::Builder::Module;
@@ -233,32 +233,37 @@
 
     my($pack,$filename,$line) = caller;
 
-    local($@,$!,$SIG{__DIE__});   # isolate eval
-
-    if( @imports == 1 and $imports[0] =~ /^\d+(?:\.\d+)?$/ ) {
-        # probably a version check.  Perl needs to see the bare number
-        # for it to work with non-Exporter based modules.
-        eval <<USE;
+    # Work around a glitch in $@ and eval
+    my $eval_error;
+    {
+        local($@,$!,$SIG{__DIE__});   # isolate eval
+
+        if( @imports == 1 and $imports[0] =~ /^\d+(?:\.\d+)?$/ ) {
+            # probably a version check.  Perl needs to see the bare number
+            # for it to work with non-Exporter based modules.
+            eval <<USE;
 package $pack;
 use $module $imports[0];
 USE
-    }
-    else {
-        eval <<USE;
+        }
+        else {
+            eval <<USE;
 package $pack;
 use $module \@imports;
 USE
-    }
-
-    my $ok = $tb->ok( !$@, "use $module;" );
+        }
+        $eval_error = $@;
+    }
+
+    my $ok = $tb->ok( !$eval_error, "use $module;" );
 
     unless( $ok ) {
-        chomp $@;
+        chomp $eval_error;
         $@ =~ s{^BEGIN failed--compilation aborted at .*$}
                 {BEGIN failed--compilation aborted at $filename line $line.}m;
         $tb->diag(<<DIAGNOSTIC);
     Tried to use '$module'.
-    Error:  $@
+    Error:  $eval_error
 DIAGNOSTIC
 
     }
@@ -266,7 +271,7 @@
     return $ok;
 }
 
-#line 702
+#line 707
 
 sub require_ok ($) {
     my($module) = shift;
@@ -310,10 +315,16 @@
     $module =~ /^[a-zA-Z]\w*$/;
 }
 
-#line 779
+#line 784
 
 use vars qw(@Data_Stack %Refs_Seen);
 my $DNE = bless [], 'Does::Not::Exist';
+
+sub _dne {
+    ref $_[0] eq ref $DNE;
+}
+
+
 sub is_deeply {
     my $tb = Test::More->builder;
 
@@ -386,8 +397,8 @@
     foreach my $idx (0..$#vals) {
         my $val = $vals[$idx];
         $vals[$idx] = !defined $val ? 'undef'          :
-                      $val eq $DNE  ? "Does not exist" :
-	              ref $val      ? "$val"           :
+                      _dne($val)    ? "Does not exist" :
+                      ref $val      ? "$val"           :
                                       "'$val'";
     }
 
@@ -411,7 +422,7 @@
     return '';
 }
 
-#line 919
+#line 930
 
 sub diag {
     my $tb = Test::More->builder;
@@ -420,7 +431,7 @@
 }
 
 
-#line 988
+#line 999
 
 #'#
 sub skip {
@@ -448,7 +459,7 @@
 }
 
 
-#line 1075
+#line 1086
 
 sub todo_skip {
     my($why, $how_many) = @_;
@@ -469,7 +480,7 @@
     last TODO;
 }
 
-#line 1128
+#line 1139
 
 sub BAIL_OUT {
     my $reason = shift;
@@ -478,7 +489,7 @@
     $tb->BAIL_OUT($reason);
 }
 
-#line 1167
+#line 1178
 
 #'#
 sub eq_array {
@@ -536,7 +547,7 @@
         if( defined $e1 xor defined $e2 ) {
             $ok = 0;
         }
-        elsif ( $e1 == $DNE xor $e2 == $DNE ) {
+        elsif ( _dne($e1) xor _dne($e2) ) {
             $ok = 0;
         }
         elsif ( $same_ref and ($e1 eq $e2) ) {
@@ -602,7 +613,7 @@
 }
 
 
-#line 1298
+#line 1309
 
 sub eq_hash {
     local @Data_Stack;
@@ -635,7 +646,7 @@
     return $ok;
 }
 
-#line 1355
+#line 1366
 
 sub eq_set  {
     my($a1, $a2) = @_;
@@ -661,6 +672,6 @@
     );
 }
 
-#line 1545
+#line 1556
 
 1;

Modified: trunk/libpar-packer-perl/lib/PAR/Packer.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/lib/PAR/Packer.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/lib/PAR/Packer.pm (original)
+++ trunk/libpar-packer-perl/lib/PAR/Packer.pm Sun Dec 23 21:54:36 2007
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '0.976';
+our $VERSION = '0.977';
 
 =head1 NAME
 
@@ -44,6 +44,7 @@
     'c|compile'      => 'Compile code to get dependencies',
     'd|dependent'    => 'Do not include libperl',
     'e|eval:s'       => 'Packing one-liner',
+    'E|evalfeature:s'=> 'Packing one-liner with new syntactic features',
     'x|execute'      => 'Execute code to get dependencies',
     'X|exclude:s@'   => 'Exclude modules',
     'f|filter:s@'    => 'Input filters for scripts',
@@ -301,6 +302,11 @@
     $self->{logfh} = $self->_open('>>', $opt->{L})
       if length $opt->{L};
 
+    if ($opt->{E}) {
+        $opt->{e} = "use $];\n#line 1\n$opt->{E}";
+        push @{$opt->{M}||=[]}, 'feature' if $] >= 5.009;
+    }
+
     if ($opt->{e}) {
         $self->_warn("Using -e 'code' as input file, ignoring @$args\n")
           if (@$args and !$opt->{r});
@@ -1253,6 +1259,7 @@
 
         $self->_fix_console();
         unlink($self->{parl});
+        unlink($self->{orig_parl});
         unlink("$self->{parl}.bak");
         return;
     }
@@ -1675,7 +1682,7 @@
 
 =head1 COPYRIGHT
 
-Copyright 2004, 2005, 2006 by Audrey Tang E<lt>cpan at audreyt.orgE<gt>.
+Copyright 2004-2007 by Audrey Tang E<lt>cpan at audreyt.orgE<gt>.
 
 This program is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.

Modified: trunk/libpar-packer-perl/lib/pp.pm
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/lib/pp.pm?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/lib/pp.pm (original)
+++ trunk/libpar-packer-perl/lib/pp.pm Sun Dec 23 21:54:36 2007
@@ -226,6 +226,11 @@
 
 Package a one-liner, much the same as C<perl -e '...'>
 
+=item B<-E>, B<--evalfeature>=I<STRING>
+
+Behaves just like C<-e>, except that it implicitly enables all optional features
+(in the main compilation unit) with Perl 5.10 and later.  See L<feature>.
+
 =item B<-x>, B<--execute>
 
 Run C<perl inputfile> to determine additonal run-time dependencies.

Modified: trunk/libpar-packer-perl/myldr/Makefile.PL
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/myldr/Makefile.PL?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/myldr/Makefile.PL (original)
+++ trunk/libpar-packer-perl/myldr/Makefile.PL Sun Dec 23 21:54:36 2007
@@ -87,7 +87,7 @@
 );
 my $lib_path = join(' ', map qq(-I"$_"), @INC);
 
-my( $out, $ccdebug, $lddebug, $warn, $rm, $mv, $res, $long_literal );
+my( $out, $ccdebug, $lddebug, $warn, $rm, $mv, $res, $long_literal, $mt_cmd );
 
 if( $cc =~ m/^cl\b/i ) {
     $out = '-out:';
@@ -96,6 +96,13 @@
     $warn = $debug ? '-W3' : '';
     $res = 'win32.obj';
     $long_literal = 0;
+    # Embed the manifest file for VC 2005 (aka VC8) or higher, but not for the
+    # 64-bit Platform SDK compiler
+    if( $Config{ivsize} == 4 and $Config{ccversion} =~ /^(\d+)/ and $1 >= 14 ) {
+        $mt_cmd = 'mt -nologo -manifest $@.manifest -outputresource:$@;1';
+    } else {
+        $mt_cmd = '-$(NOOP)';
+    }
 } elsif ($cc =~ m/^gcc\b/i or ($cc =~ m/^cc\b/i and $gccversion)) {
     $out = '--output ';
     $ccdebug = $debug ? '-g ' : '';
@@ -103,6 +110,7 @@
     $warn = $debug ? '-Wall -Wno-comments ' : '';
     $res = ($^O =~ /^(?:MSWin|cygwin)/) ? 'win32.coff' : '';
     $long_literal = 1;
+    $mt_cmd = '-$(NOOP)';
 } else {
     $out = '-o ';
     $ccdebug = '';
@@ -110,6 +118,7 @@
     $warn = '';
     $res = '';
     $long_literal = 0; # better safe than sorry
+    $mt_cmd = '-$(NOOP)';
 }
 
 
@@ -208,7 +217,7 @@
 
 all: $all
 
-main.$o: main.c
+main$o: main.c perlxsi.c mktmpdir.c internals.c mktmpdir.h utils.c sha1.c
 
 main.c: perlxsi.c mktmpdir.c internals.c
 
@@ -238,6 +247,7 @@
 
 $par_exe: sha1$o \$(OBJECTS) my_par_pl$o
 	\$(LD) \$(OBJECTS) \$(PERL_LDFLAGS) $out$par_exe_link
+	$mt_cmd
 
 my_par_pl.c: $par_pl
 	\$(PERL) $f2c $par_pl \$@ load_me_2 $long_literal
@@ -270,6 +280,7 @@
 
 $static_exe: sha1$o static$o
 	\$(LD) static$o \$(STATIC_LDFLAGS) $res $out$static_exe_link
+	$mt_cmd
 	\$(PERL) parlsig.pl $static_exe $par_exe $dynperl $chunk_size
 
 my_perl.c:

Modified: trunk/libpar-packer-perl/myldr/internals.c
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/myldr/internals.c?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/myldr/internals.c (original)
+++ trunk/libpar-packer-perl/myldr/internals.c Sun Dec 23 21:54:36 2007
@@ -72,8 +72,8 @@
         }
 #if (PERL_REVISION == 5 && PERL_VERSION == 8 \
         && ( PERL_SUBVERSION >= 1 && PERL_SUBVERSION <= 5)) || \
-    (PERL_REVISION == 5 && PERL_VERSION >= 9 && PERL_SUBVERSION <= 1)
-        /* 5.8.1 and later perl versions no longer copies fakeargv, sigh */
+    (PERL_REVISION == 5 && PERL_VERSION == 9 && PERL_SUBVERSION <= 1)
+        /* 5.8.1 through 5.8.5, as well as 5.9.0 does not copy fakeargv, sigh */
         {
             char *p;
             STRLEN len = strlen( fakeargv[0] );

Modified: trunk/libpar-packer-perl/myldr/mktmpdir.c
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/myldr/mktmpdir.c?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/myldr/mktmpdir.c (original)
+++ trunk/libpar-packer-perl/myldr/mktmpdir.c Sun Dec 23 21:54:36 2007
@@ -6,6 +6,10 @@
 #  define OPEN_O_BINARY O_BINARY
 #else
 #  define OPEN_O_BINARY 0
+#endif
+
+#ifndef P_tmpdir
+#define P_tmpdir "/tmp"
 #endif
 
 void par_setup_libpath( const char * stmpdir )
@@ -42,8 +46,7 @@
     char *c;
     const char *tmpdir = NULL;
     const char *key = NULL , *val = NULL;
-
-    const char *temp_dirs[4] = { "C:\\TEMP", "/tmp", ".", "" };
+    const char *temp_dirs[4] = { "C:\\TEMP", P_tmpdir, ".", "" };
     const char *temp_keys[6] = { "PAR_TMPDIR", "TMPDIR", "TEMPDIR", "TEMP", "TMP", "" };
     const char *user_keys[3] = { "USER", "USERNAME", "" };
 

Modified: trunk/libpar-packer-perl/script/par.pl
URL: http://svn.debian.org/wsvn/trunk/libpar-packer-perl/script/par.pl?rev=11554&op=diff
==============================================================================
--- trunk/libpar-packer-perl/script/par.pl (original)
+++ trunk/libpar-packer-perl/script/par.pl Sun Dec 23 21:54:36 2007
@@ -159,10 +159,73 @@
 
 my ($par_temp, $progname, @tmpfile);
 END { if ($ENV{PAR_CLEAN}) {
-    unlink @tmpfile;
+    require File::Temp;
+    require File::Basename;
+    require File::Spec;
+    my $topdir = File::Basename::dirname($par_temp);
+    outs(qq{Removing files in "$par_temp"});
+    File::Find::finddepth(sub { ( -d ) ? rmdir : unlink }, $par_temp);
     rmdir $par_temp;
-    $par_temp =~ s{[^\\/]*[\\/]?$}{};
-    rmdir $par_temp;
+    rmdir $topdir;
+
+    if (-d $par_temp) {
+        # Something went wrong unlinking the temporary directory.  This
+        # typically happens on platforms that disallow unlinking shared
+        # libraries and executables that are in use. Unlink with a background
+        # shell command so the files are no longer in use by this process.
+
+        my $tmp = new File::Temp(
+            TEMPLATE => 'tmpXXXXX',
+            DIR => File::Basename::dirname($topdir),
+            SUFFIX => '.cmd',
+            UNLINK => 0,
+        );
+
+        # Because the par_temp directory is going to be deleted in a
+        # background process, the parent process id may be reused before the
+        # background process completes.  To ensure that the temporary
+        # directory does not get reused while it is being deleted, try to
+        # rename it to a name that is related to the temporary script file.
+
+        my $tmpname = (File::Spec->splitpath($tmp->filename))[2]; # filename
+        $tmpname =~ s/\.[^.]*$/.dir/;
+        my $newDir = File::Spec->catpath(
+            (File::Spec->splitpath($par_temp))[0..1], $tmpname);
+        if (rename $par_temp, $newDir) {
+            outs("Renamed $par_temp to $newDir");
+            $par_temp = $newDir;
+        }
+
+        if ($^O =~ m/win32/i) {
+            print $tmp "
+:loop
+rmdir /q /s \"$par_temp\"
+if exist \"$par_temp\" goto loop
+rmdir \"$topdir\"
+rm \"" . $tmp->filename . "\"
+";
+            close $tmp;
+            my $proc;
+            Win32::Process::Create(
+                $proc, $ENV{COMSPEC},
+                "$ENV{COMSPEC} /c \"" . $tmp->filename . "\" >nul 2>nul ",
+                1, NORMAL_PRIORITY_CLASS, "."
+            );
+        } else {
+            print $tmp "#!/bin/sh
+while [ -d '$par_temp' ]; do
+   rm -rf '$par_temp'
+done
+rmdir '$topdir'
+rm '" . $tmp->filename . "'
+";
+            chmod 0700,$tmp->filename;
+            my $cmd = $tmp->filename . ' >/dev/null 2>&1 &';
+            close $tmp;
+            system($cmd);
+        }
+        outs(qq(Spawned background process to perform cleanup));
+    }
 } }
 
 BEGIN {
@@ -659,7 +722,7 @@
     
     require File::Path;
     
-	File::Path::mkpath($path) unless(-e $path); # mkpath dies with error
+    File::Path::mkpath($path) unless(-e $path); # mkpath dies with error
 }
 
 sub require_modules {
@@ -688,7 +751,9 @@
     require PAR::Heavy;
     require PAR::Dist;
     require PAR::Filter::PodStrip;
+    eval { require Cwd };
     eval { require Win32 };
+    eval { require Win32::Process };
     eval { require Scalar::Util };
     eval { require Archive::Unzip::Burst };
 }
@@ -825,8 +890,8 @@
     }
 
     # XXX - hack to make PWD work
-    my $pwd = (defined &Win32::GetCwd) ? Win32::GetCwd() : $ENV{PWD};
-    $pwd = `pwd` if !defined $pwd;
+    my $pwd = (defined &Cwd::getcwd) ? Cwd::getcwd()
+                : ((defined &Win32::GetCwd) ? Win32::GetCwd() : `pwd`);
     chomp($pwd);
     $progname =~ s/^(?=\.\.?\Q$Config{_delim}\E)/$pwd$Config{_delim}/;
 




More information about the Pkg-perl-cvs-commits mailing list