This is an automated email from the git hooks/post-receive script. gregoa pushed a commit to branch master in repository libpar-packer-perl.
commit 4bc1b1af518fe77fd214ccfc30498a2238269460 Author: gregor herrmann <[email protected]> Date: Tue Sep 16 17:20:38 2014 +0200 Imported Upstream version 1.021 --- ChangeLog | 17 +++++++ META.yml | 20 ++++---- Makefile.PL | 32 +++++++------ inc/Module/Install.pm | 23 +++++---- inc/Module/Install/Base.pm | 2 +- inc/Module/Install/Can.pm | 2 +- inc/Module/Install/Fetch.pm | 6 ++- inc/Module/Install/Include.pm | 6 ++- inc/Module/Install/Makefile.pm | 4 +- inc/Module/Install/Metadata.pm | 106 +++++++++++++++++++++++++++-------------- inc/Module/Install/PAR.pm | 4 +- inc/Module/Install/Win32.pm | 6 ++- inc/Module/Install/WriteAll.pm | 6 ++- lib/PAR/Packer.pm | 14 ++++-- lib/pp.pm | 13 ++++- myldr/Makefile.PL | 30 +++++++++--- myldr/encode_append.pl | 2 + myldr/file2c.pl | 3 +- myldr/par_pl2c.pl | 2 + myldr/run_with_inc.pl | 3 ++ myldr/sha1.c.PL | 2 + 21 files changed, 209 insertions(+), 94 deletions(-) diff --git a/ChangeLog b/ChangeLog index ed49426..05b84a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +[Changes for 1.021 - Sep 14, 2014] + +Fix #98791: PAR-Packer fails to build with DWIMPerl/Strawberry Perl due to unquoted path name + + - quote the list of embedded file wrt OS native shell + - require Win32::ShellQuote on Windows and String::ShellQuote otherwise + +[Changes for 1.020 - Aug 24, 2014] + +Implement option --xargs for pp: + +- splits value of --xargs using Text::ParseWords::shellquote +- passes result as @ARGV when running script for -x +- bump required version of Module::ScanDeps to the first to implement this + +Update to Module::Install 1.10 + [Changes for 1.019 - July 7, 2014] Fix RT #96288: PAR::Packer unable to build under Win32/ActivePerl v5.14.2 diff --git a/META.yml b/META.yml index 340c480..7d13dd3 100644 --- a/META.yml +++ b/META.yml @@ -4,12 +4,13 @@ author: - 'Audrey Tang <[email protected]>' build_requires: ExtUtils::MakeMaker: 6.59 + String::ShellQuote: 0 configure_requires: ExtUtils::Embed: 0 ExtUtils::MakeMaker: 6.59 distribution_type: module dynamic_config: 1 -generated_by: 'Module::Install version 1.08' +generated_by: 'Module::Install version 1.10' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -39,7 +40,7 @@ provides: file: lib/PAR/Filter/PodStrip.pm PAR::Packer: file: lib/PAR/Packer.pm - version: '1.019' + version: '1.021' PAR::StrippedPARL::Base: file: lib/PAR/StrippedPARL/Base.pm version: '0.975' @@ -53,16 +54,17 @@ recommends: Tk::EntryCheck: 0 Tk::Getopt: 0 requires: - Archive::Zip: 1 - Compress::Zlib: 1.3 - File::Temp: 0.05 - Getopt::ArgvFile: 1.07 + Archive::Zip: '1.00' + Compress::Zlib: '1.30' + File::Temp: '0.05' + Getopt::ArgvFile: '1.07' IO::Compress::Gzip: 0 - Module::ScanDeps: 1.09 + Module::ScanDeps: '1.15' PAR: '1.005' - PAR::Dist: 0.22 + PAR::Dist: '0.22' + Text::ParseWords: 0 perl: 5.8.1 resources: license: http://dev.perl.org/licenses/ repository: http://svn.openfoundry.org/par/PAR-Packer/trunk -version: '1.019' +version: '1.021' diff --git a/Makefile.PL b/Makefile.PL index 634e4f6..d1e93f4 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -9,26 +9,30 @@ all_from 'lib/PAR/Packer.pm'; perl_version '5.008001'; configure_requires 'ExtUtils::Embed'; -requires 'File::Temp' => 0.05; -requires 'Compress::Zlib' => ($^O eq 'MSWin32') ? 1.16 : 1.30; +build_requires $^O eq 'MSWin32' + ? ('Win32::ShellQuote' => 0) + : ('String::ShellQuote' => 0); +requires 'File::Temp' => '0.05'; +requires 'Compress::Zlib' => ($^O eq 'MSWin32') ? '1.16' : '1.30'; requires 'IO::Compress::Gzip' => 0; -requires 'Archive::Zip' => 1.00; -requires 'Module::ScanDeps' => 1.09; -requires 'PAR::Dist' => 0.22; -requires 'PAR' => '1.005'; -requires 'Getopt::ArgvFile' => 1.07; +requires 'Archive::Zip' => '1.00'; +requires 'Module::ScanDeps' => '1.15'; +requires 'PAR::Dist' => '0.22'; +requires 'PAR' => '1.005'; +requires 'Text::ParseWords' => 0; +requires 'Getopt::ArgvFile' => '1.07'; if ($^O eq 'MSWin32') { - requires 'Parse::Binary' => 0.04; - requires 'Win32::Exe' => 0.17; - requires 'Win32::Process'; + requires 'Parse::Binary' => '0.04'; + requires 'Win32::Exe' => '0.17'; + requires 'Win32::Process' => 0; } # for tkpp only -recommends 'Tk' => 0; -recommends 'Tk::ColoredButton' => 0; -recommends 'Tk::EntryCheck' => 0; -recommends 'Tk::Getopt' => 0; +recommends 'Tk' => 0; +recommends 'Tk::ColoredButton' => 0; +recommends 'Tk::EntryCheck' => 0; +recommends 'Tk::Getopt' => 0; if (can_use('Crypt::OpenPGP') or can_run('gpg')) { diff --git a/inc/Module/Install.pm b/inc/Module/Install.pm index 7680c84..99f677c 100644 --- a/inc/Module/Install.pm +++ b/inc/Module/Install.pm @@ -17,7 +17,7 @@ package Module::Install; # 3. The ./inc/ version of Module::Install loads # } -use 5.005; +use 5.006; use strict 'vars'; use Cwd (); use File::Find (); @@ -31,7 +31,7 @@ BEGIN { # 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.08'; + $VERSION = '1.10'; # Storage for the pseudo-singleton $MAIN = undef; @@ -156,10 +156,10 @@ END_DIE sub autoload { my $self = shift; my $who = $self->_caller; - my $cwd = Cwd::cwd(); + my $cwd = Cwd::getcwd(); my $sym = "${who}::AUTOLOAD"; $sym->{$cwd} = sub { - my $pwd = Cwd::cwd(); + my $pwd = Cwd::getcwd(); if ( my $code = $sym->{$pwd} ) { # Delegate back to parent dirs goto &$code unless $cwd eq $pwd; @@ -239,7 +239,7 @@ sub new { # ignore the prefix on extension modules built from top level. my $base_path = Cwd::abs_path($FindBin::Bin); - unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) { + unless ( Cwd::abs_path(Cwd::getcwd()) eq $base_path ) { delete $args{prefix}; } return $args{_self} if $args{_self}; @@ -338,7 +338,7 @@ sub find_extensions { if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) { my $content = Module::Install::_read($subpath . '.pm'); my $in_pod = 0; - foreach ( split //, $content ) { + foreach ( split /\n/, $content ) { $in_pod = 1 if /^=\w/; $in_pod = 0 if /^=cut/; next if ($in_pod || /^=cut/); # skip pod text @@ -434,7 +434,7 @@ END_OLD # _version is for processing module versions (eg, 1.03_05) not # Perl versions (eg, 5.8.1). -sub _version ($) { +sub _version { my $s = shift || 0; my $d =()= $s =~ /(\.)/g; if ( $d >= 2 ) { @@ -450,12 +450,12 @@ sub _version ($) { return $l + 0; } -sub _cmp ($$) { +sub _cmp { _version($_[1]) <=> _version($_[2]); } # Cloned from Params::Util::_CLASS -sub _CLASS ($) { +sub _CLASS { ( defined $_[0] and @@ -467,4 +467,7 @@ sub _CLASS ($) { 1; -# Copyright 2008 - 2012 Adam Kennedy. + +__END__ + +#line 485 diff --git a/inc/Module/Install/Base.pm b/inc/Module/Install/Base.pm index 3e63345..5e25388 100644 --- a/inc/Module/Install/Base.pm +++ b/inc/Module/Install/Base.pm @@ -4,7 +4,7 @@ package Module::Install::Base; use strict 'vars'; use vars qw{$VERSION}; BEGIN { - $VERSION = '1.08'; + $VERSION = '1.10'; } # Suspend handler for "redefined" warnings diff --git a/inc/Module/Install/Can.pm b/inc/Module/Install/Can.pm index 93f248d..d49f8d6 100644 --- a/inc/Module/Install/Can.pm +++ b/inc/Module/Install/Can.pm @@ -8,7 +8,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.08'; + $VERSION = '1.10'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff --git a/inc/Module/Install/Fetch.pm b/inc/Module/Install/Fetch.pm index ecc0d53..648b569 100644 --- a/inc/Module/Install/Fetch.pm +++ b/inc/Module/Install/Fetch.pm @@ -6,7 +6,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.08'; + $VERSION = '1.10'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -91,3 +91,7 @@ END_FTP } 1; + +__END__ + +#line 109 diff --git a/inc/Module/Install/Include.pm b/inc/Module/Install/Include.pm index fc86e23..cd5ca72 100644 --- a/inc/Module/Install/Include.pm +++ b/inc/Module/Install/Include.pm @@ -6,7 +6,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.08'; + $VERSION = '1.10'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -32,3 +32,7 @@ sub auto_include_dependent_dists { } 1; + +__END__ + +#line 50 diff --git a/inc/Module/Install/Makefile.pm b/inc/Module/Install/Makefile.pm index c0978a4..170c3fa 100644 --- a/inc/Module/Install/Makefile.pm +++ b/inc/Module/Install/Makefile.pm @@ -8,7 +8,7 @@ use Fcntl qw/:flock :seek/; use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.08'; + $VERSION = '1.10'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -133,7 +133,7 @@ sub makemaker_args { return $args; } -# For mm args that take multiple space-seperated args, +# For mm args that take multiple space-separated args, # append an argument to the current list. sub makemaker_append { my $self = shift; diff --git a/inc/Module/Install/Metadata.pm b/inc/Module/Install/Metadata.pm index e4112f8..1f48315 100644 --- a/inc/Module/Install/Metadata.pm +++ b/inc/Module/Install/Metadata.pm @@ -6,7 +6,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.08'; + $VERSION = '1.10'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -347,7 +347,7 @@ sub name_from { ^ \s* package \s* ([\w:]+) - \s* ; + [\s|;]* /ixms ) { my ($name, $module_name) = ($1, $1); @@ -453,24 +453,40 @@ sub author_from { #Stolen from M::B my %license_urls = ( - perl => 'http://dev.perl.org/licenses/', - apache => 'http://apache.org/licenses/LICENSE-2.0', - apache_1_1 => 'http://apache.org/licenses/LICENSE-1.1', - artistic => 'http://opensource.org/licenses/artistic-license.php', - artistic_2 => 'http://opensource.org/licenses/artistic-license-2.0.php', - lgpl => 'http://opensource.org/licenses/lgpl-license.php', - lgpl2 => 'http://opensource.org/licenses/lgpl-2.1.php', - lgpl3 => 'http://opensource.org/licenses/lgpl-3.0.html', - bsd => 'http://opensource.org/licenses/bsd-license.php', - gpl => 'http://opensource.org/licenses/gpl-license.php', - gpl2 => 'http://opensource.org/licenses/gpl-2.0.php', - gpl3 => 'http://opensource.org/licenses/gpl-3.0.html', - mit => 'http://opensource.org/licenses/mit-license.php', - mozilla => 'http://opensource.org/licenses/mozilla1.1.php', open_source => undef, unrestricted => undef, restrictive => undef, unknown => undef, + +## from Software-License - should we be using S-L instead ? +# duplicates commeted out, see hack above ^^ +# open_source => 'http://www.gnu.org/licenses/agpl-3.0.txt', +# apache => 'http://www.apache.org/licenses/LICENSE-1.1', + apache => 'http://www.apache.org/licenses/LICENSE-2.0.txt', + artistic => 'http://www.perlfoundation.org/artistic_license_1_0', + artistic_2 => 'http://www.perlfoundation.org/artistic_license_2_0', + bsd => 'http://opensource.org/licenses/BSD-3-Clause', +# unrestricted => 'http://creativecommons.org/publicdomain/zero/1.0/', +# open_source => 'http://www.freebsd.org/copyright/freebsd-license.html', +# open_source => 'http://www.gnu.org/licenses/fdl-1.2.txt', +# open_source => 'http://www.gnu.org/licenses/fdl-1.3.txt', +# gpl => 'http://www.gnu.org/licenses/old-licenses/gpl-1.0.txt', +# gpl => 'http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt', + gpl => 'http://www.gnu.org/licenses/gpl-3.0.txt', +# lgpl => 'http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt', + lgpl => 'http://www.gnu.org/licenses/lgpl-3.0.txt', + mit => 'http://www.opensource.org/licenses/mit-license.php', +# mozilla => 'http://www.mozilla.org/MPL/MPL-1.0.txt', +# mozilla => 'http://www.mozilla.org/MPL/MPL-1.1.txt', + mozilla => 'http://www.mozilla.org/MPL/2.0/index.txt', +# restrictive => '', +# open_source => 'http://www.openssl.org/source/license.html', + perl => 'http://dev.perl.org/licenses/', +# open_source => 'http://www.opensource.org/licenses/postgresql', +# open_source => 'http://trolltech.com/products/qt/licenses/licensing/qpl', +# unrestricted => 'http://h71000.www7.hp.com/doc/83final/BA554_90007/apcs02.html', +# open_source => 'http://www.openoffice.org/licenses/sissl_license.html', +# open_source => 'http://www.zlib.net/zlib_license.html', ); sub license { @@ -511,31 +527,43 @@ sub __extract_license { my @phrases = ( '(?:under )?the same (?:terms|license) as (?:perl|the perl (?:\d )?programming language)' => 'perl', 1, '(?:under )?the terms of (?:perl|the perl programming language) itself' => 'perl', 1, - 'Artistic and GPL' => 'perl', 1, - 'GNU general public license' => 'gpl', 1, - 'GNU public license' => 'gpl', 1, - 'GNU lesser general public license' => 'lgpl', 1, - 'GNU lesser public license' => 'lgpl', 1, - 'GNU library general public license' => 'lgpl', 1, - 'GNU library public license' => 'lgpl', 1, - 'GNU Free Documentation license' => 'unrestricted', 1, - 'GNU Affero General Public License' => 'open_source', 1, + + # the following are relied on by the test system even if they are wrong :( '(?:Free)?BSD license' => 'bsd', 1, 'Artistic license 2\.0' => 'artistic_2', 1, - 'Artistic license' => 'artistic', 1, - 'Apache (?:Software )?license' => 'apache', 1, - 'GPL' => 'gpl', 1, 'LGPL' => 'lgpl', 1, - 'BSD' => 'bsd', 1, - 'Artistic' => 'artistic', 1, 'MIT' => 'mit', 1, - 'Mozilla Public License' => 'mozilla', 1, - 'Q Public License' => 'open_source', 1, - 'OpenSSL License' => 'unrestricted', 1, - 'SSLeay License' => 'unrestricted', 1, - 'zlib License' => 'open_source', 1, - 'proprietary' => 'proprietary', 0, + +## from Software-License + 'The GNU Affero General Public License, Version 3, November 2007' => 'open_source', 1, + 'The Apache Software License, Version 1.1' => 'apache', 1, + 'The Apache License, Version 2.0, January 2004' => 'apache', 1, + 'The Artistic License 1.0' => 'artistic', 1, + 'The Artistic License 2.0 (GPL Compatible)' => 'artistic_2', 1, + 'The (three-clause) BSD License' => 'bsd', 1, + 'CC0 License' => 'unrestricted', 1, + 'The (two-clause) FreeBSD License' => 'open_source', 1, + 'GNU Free Documentation License v1.2' => 'open_source', 1, + 'GNU Free Documentation License v1.3' => 'open_source', 1, + 'The GNU General Public License, Version 1, February 1989' => 'gpl', 1, + 'The GNU General Public License, Version 2, June 1991' => 'gpl', 1, + 'The GNU General Public License, Version 3, June 2007' => 'gpl', 1, + 'The GNU Lesser General Public License, Version 2.1, February 1999' => 'lgpl', 1, + 'The GNU Lesser General Public License, Version 3, June 2007' => 'lgpl', 1, + 'The MIT (X11) License' => 'mit', 1, + 'The Mozilla Public License 1.0' => 'mozilla', 1, + 'The Mozilla Public License 1.1' => 'mozilla', 1, + 'Mozilla Public License Version 2.0' => 'mozilla', 1, + '"No License" License' => 'restrictive', 1, + 'OpenSSL License' => 'open_source', 1, + 'the same terms as the perl 5 programming language system itself' => 'perl', 1, + 'The PostgreSQL License' => 'open_source', 1, + 'The Q Public License, Version 1.0' => 'open_source', 1, + 'Original SSLeay License' => 'unrestricted', 1, + 'Sun Internet Standards Source License (SISSL)' => 'open_source', 1, + 'The zlib License' => 'open_source', 1, ); + while ( my ($pattern, $license, $osi) = splice(@phrases, 0, 3) ) { $pattern =~ s#\s+#\\s+#gs; if ( $license_text =~ /\b$pattern\b/i ) { @@ -705,7 +733,7 @@ sub _write_mymeta_data { my @yaml = Parse::CPAN::Meta::LoadFile('META.yml'); my $meta = $yaml[0]; - # Overwrite the non-configure dependency hashs + # Overwrite the non-configure dependency hashes delete $meta->{requires}; delete $meta->{build_requires}; delete $meta->{recommends}; @@ -720,3 +748,7 @@ sub _write_mymeta_data { } 1; + +__END__ + +#line 766 diff --git a/inc/Module/Install/PAR.pm b/inc/Module/Install/PAR.pm index 94e42b6..a6053e7 100644 --- a/inc/Module/Install/PAR.pm +++ b/inc/Module/Install/PAR.pm @@ -6,7 +6,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.08'; + $VERSION = '1.10'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -135,7 +135,7 @@ sub make_par { my ($self, $file) = @_; unlink $file if -f $file; - unless ( eval { require PAR::Dist; PAR::Dist->VERSION >= 0.03 } ) { + unless ( eval { require PAR::Dist; PAR::Dist->VERSION(0.03) } ) { warn "Please install PAR::Dist 0.03 or above first."; return; } diff --git a/inc/Module/Install/Win32.pm b/inc/Module/Install/Win32.pm index e529382..0b7cd38 100644 --- a/inc/Module/Install/Win32.pm +++ b/inc/Module/Install/Win32.pm @@ -6,7 +6,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.08'; + $VERSION = '1.10'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -62,3 +62,7 @@ END_MESSAGE } 1; + +__END__ + +#line 80 diff --git a/inc/Module/Install/WriteAll.pm b/inc/Module/Install/WriteAll.pm index 2c74308..53af6d2 100644 --- a/inc/Module/Install/WriteAll.pm +++ b/inc/Module/Install/WriteAll.pm @@ -6,7 +6,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.08'; + $VERSION = '1.10'; @ISA = qw{Module::Install::Base}; $ISCORE = 1; } @@ -61,3 +61,7 @@ sub WriteAll { } 1; + +__END__ + +#line 79 diff --git a/lib/PAR/Packer.pm b/lib/PAR/Packer.pm index c42c3f1..9f8a9c7 100644 --- a/lib/PAR/Packer.pm +++ b/lib/PAR/Packer.pm @@ -3,7 +3,7 @@ use 5.008001; use strict; use warnings; -our $VERSION = '1.019'; +our $VERSION = '1.021'; =head1 NAME @@ -46,6 +46,7 @@ use constant OPTIONS => { 'e|eval:s' => 'Packing one-liner', 'E|evalfeature:s'=> 'Packing one-liner with new syntactic features', 'x|execute' => 'Execute code to get dependencies', + 'xargs:s' => 'Args to pass when executing code', 'X|exclude:s@' => 'Exclude modules', 'f|filter:s@' => 'Input filters for scripts', 'g|gui' => 'No console window', @@ -355,7 +356,7 @@ sub _create_valid_hash { return () if (%$hashout); foreach my $key (keys(%$hashin)) { - my (@keys) = ($key =~ /\|/) ? ($key =~ /(?<!:)(\w+)/g) : ($key); + my (@keys) = $key =~ /(?<!:)(\w+)/g; @{$hashout}{@keys} = ($hashin->{$key}) x @keys; } } @@ -732,6 +733,11 @@ sub pack_manifest_hash { # Search for scannable code in all -I'd paths push @Module::ScanDeps::IncludeLibs, @{$opt->{I}} if $opt->{I}; + if ($opt->{x} && defined $opt->{xargs}) { + require Text::ParseWords; + $opt->{x} = [ Text::ParseWords::shellwords($opt->{xargs}) ]; + } + my $scan_dispatch = $opt->{n} ? $self->_obj_function($fe, 'scan_deps_runtime') @@ -754,7 +760,7 @@ sub pack_manifest_hash { %skip = map { $_, 1 } map &$inc_find($_), @exclude; %skip = (%skip, map { $_, 1 } @SharedLibs); - &$add_deps( + $add_deps->( rv => \%map, modules => \@modules, skip => \%skip, @@ -772,7 +778,7 @@ sub pack_manifest_hash { my $size = 0; my $old_member; - if ($opt->{'m'} and -e $par_file) { + if ($opt->{m} and -e $par_file) { my $tmpzip = Archive::Zip->new(); $tmpzip->read($par_file); diff --git a/lib/pp.pm b/lib/pp.pm index ea7f9f0..602c558 100644 --- a/lib/pp.pm +++ b/lib/pp.pm @@ -21,13 +21,16 @@ use Getopt::Long qw(:config no_ignore_case); sub go { my $class = shift; - unshift(@ARGV, split / +/, $ENV{PP_OPTS}) if $ENV{PP_OPTS}; + if ($ENV{PP_OPTS}) { + require Text::ParseWords; + unshift @ARGV, Text::ParseWords::shellwords($ENV{PP_OPTS}); + } my %opt; GetOptions( \%opt, PAR::Packer->options, 'h|help', 'V|version' ); help() if $opt{h}; version() if $opt{V}; - + local $Module::ScanDeps::ScanFileRE = qr/./; App::Packer::PAR->new( @@ -247,6 +250,12 @@ Behaves just like C<-e>, except that it implicitly enables all optional features Run C<perl inputfile> to determine additonal run-time dependencies. +=item B<--xargs>=I<STRING> + +If B<-x> is given, splits the C<STRING> using the function +C<shellwords> from L<Text::ParseWords> and passes the result +as C<@ARGV> when running C<perl inputfile>. + =item B<-X>, B<--exclude>=I<MODULE> Exclude the given module from the dependency search path and from the diff --git a/myldr/Makefile.PL b/myldr/Makefile.PL index b210e96..85e18ff 100644 --- a/myldr/Makefile.PL +++ b/myldr/Makefile.PL @@ -1,10 +1,11 @@ -#!/usr/bin/perl -w +#!perl # Copyright 2002-2009 by Audrey Tang. # Copyright (c) 2002 Mattia Barbon. # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. use strict; +use warnings; use Config; use File::Spec::Functions ':ALL'; use ExtUtils::Embed; @@ -78,6 +79,17 @@ my $boot_exe_link = catfile('.', "boot$link_exe"); my $parl_exe = "parl$exe"; my $parldyn_exe = "parldyn$exe"; +# quote(): quotes a list of strings to be passed to a native shell +if ($^O eq 'MSWin32') +{ + require Win32::ShellQuote; + *quote = sub { join(" ", Win32::ShellQuote::quote_system(@_)) }; +} +else +{ + require String::ShellQuote; + *quote = \&String::ShellQuote::shell_quote; +} my( $out, $ccdebug, $lddebug, $warn, $rm, $mv, $mt_cmd ); @@ -243,16 +255,20 @@ sub find_dll my ($libgcc, $libstdcpp); if ($dynperl and $^O eq 'MSWin32' - and defined $Config{gccversion} # gcc version 4.x or above was used + and defined $Config{gccversion} # gcc version >= 4.x was used and $Config{gccversion} =~ m{\A(\d+)}ms && $1 >= 4) { $libgcc = find_dll("libgcc_*.$Config{so}"); +} +if ($ld =~ /(\b|-)g\+\+(-.*)?(\.exe)?$/) { # g++ was used to link $libstdcpp = find_dll("libstdc++*.$Config{so}"); } -my @embedded_files = ($par_exe); # must come first -push @embedded_files, $libperl; -push @embedded_files, $libgcc if defined $libgcc; -push @embedded_files, $libstdcpp if defined $libstdcpp; +my $embedded_files = quote(grep { defined } + $par_exe, # must come first + $libperl, + $libgcc, + $libstdcpp +); my @strippedparl = qw( Static.pm ); push @strippedparl, qw( Dynamic.pm ) if $dynperl; @@ -359,7 +375,7 @@ $boot_exe: boot$o $mt_cmd boot_embedded_files.c: $par_exe - \$(PERLRUN) $f2c -c $chunk_size @embedded_files > \$@ + \$(PERLRUN) $f2c -c $chunk_size $embedded_files > \$@ Dynamic.pm: Dynamic.in $par_exe \$(PERLRUN) encode_append.pl Dynamic.in $par_exe Dynamic.pm diff --git a/myldr/encode_append.pl b/myldr/encode_append.pl index d803936..bc9ed86 100644 --- a/myldr/encode_append.pl +++ b/myldr/encode_append.pl @@ -1,3 +1,5 @@ +#!perl + use strict; use warnings; # Used in myldr/Makefile.PL / myldr/Makefile. diff --git a/myldr/file2c.pl b/myldr/file2c.pl index dbfd548..ed9efd8 100644 --- a/myldr/file2c.pl +++ b/myldr/file2c.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w +#!perl # Copyright (c) 2002 Mattia Barbon. # Copyright (c) 2002 Audrey Tang. @@ -6,6 +6,7 @@ # modify it under the same terms as Perl itself. use strict; +use warnings; use FindBin; use lib "$FindBin::Bin/../lib"; use File::Basename; diff --git a/myldr/par_pl2c.pl b/myldr/par_pl2c.pl index b17fa01..9ef68f9 100644 --- a/myldr/par_pl2c.pl +++ b/myldr/par_pl2c.pl @@ -1,3 +1,5 @@ +#!perl + use strict; use warnings; diff --git a/myldr/run_with_inc.pl b/myldr/run_with_inc.pl index 46672de..aeb5272 100644 --- a/myldr/run_with_inc.pl +++ b/myldr/run_with_inc.pl @@ -1,5 +1,8 @@ #!perl +use strict; +use warnings; + use File::Temp; $ENV{PAR_TMPDIR} = File::Temp::tempdir(TMPDIR => 1, CLEANUP => 1); diff --git a/myldr/sha1.c.PL b/myldr/sha1.c.PL index 2bf0e26..e108860 100644 --- a/myldr/sha1.c.PL +++ b/myldr/sha1.c.PL @@ -1,3 +1,5 @@ +#!perl + use strict; use warnings; -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libpar-packer-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits
