Hello community, here is the log from the commit of package perl-File-Remove for openSUSE:Factory checked in at 2011-11-21 12:39:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-File-Remove (Old) and /work/SRC/openSUSE:Factory/.perl-File-Remove.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-File-Remove", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-File-Remove/perl-File-Remove.changes 2011-09-23 12:37:05.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-File-Remove.new/perl-File-Remove.changes 2011-11-21 12:39:58.000000000 +0100 @@ -1,0 +2,8 @@ +Fri Nov 18 11:49:33 UTC 2011 - [email protected] + +- update to 1.51 + - END-time deletion by clear() is now fork-safe, it will only remove + paths created in the same process. + - Adding a second skip for the known-bad cygwin file permissions problem + +------------------------------------------------------------------- Old: ---- File-Remove-1.49.tar.gz New: ---- File-Remove-1.51.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-File-Remove.spec ++++++ --- /var/tmp/diff_new_pack.rW5phT/_old 2011-11-21 12:39:59.000000000 +0100 +++ /var/tmp/diff_new_pack.rW5phT/_new 2011-11-21 12:40:00.000000000 +0100 @@ -18,15 +18,14 @@ Name: perl-File-Remove -Version: 1.49 +Version: 1.51 Release: 5 License: GPL+ or Artistic %define cpan_name File-Remove Summary: Remove files and directories Url: http://search.cpan.org/dist/File-Remove/ Group: Development/Libraries/Perl -#Source: http://www.cpan.org/authors/id/A/AD/ADAMK/File-Remove-%{version}.tar.gz -Source: %{cpan_name}-%{version}.tar.gz +Source: http://www.cpan.org/authors/id/A/AD/ADAMK/File-Remove-%{version}.tar.gz Patch1: perl-File-Remove-old_File-Spec.patch BuildRequires: perl(Cwd) >= 3.27.01 BuildRequires: perl(File::Spec) >= 3.27.01 ++++++ File-Remove-1.49.tar.gz -> File-Remove-1.51.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/Changes new/File-Remove-1.51/Changes --- old/File-Remove-1.49/Changes 2011-03-14 01:32:09.000000000 +0100 +++ new/File-Remove-1.51/Changes 2011-10-27 02:25:40.000000000 +0200 @@ -1,5 +1,12 @@ Revision history for Perl extension File-Remove +1.51 Thu 27 Oct 2011 - Adam Kennedy + - END-time deletion by clear() is now fork-safe, it will only remove + paths created in the same process. + +1.50 Mon 11 Jul 2011 - Adam Kennedy + - Adding a second skip for the known-bad cygwin file permissions problem + 1.49 Wed 14 Mar 2011 - Adam Kennedy - Restoring 02_directoreis to no_plan as it runs different test counts on different systems. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/MANIFEST new/File-Remove-1.51/MANIFEST --- old/File-Remove-1.49/MANIFEST 2011-03-14 01:32:31.000000000 +0100 +++ new/File-Remove-1.51/MANIFEST 2011-10-27 02:26:14.000000000 +0200 @@ -22,6 +22,7 @@ t/06_curly.t t/07_cwd.t t/08_spaces.t +t/09_fork.t xt/meta.t xt/pmv.t xt/pod.t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/META.yml new/File-Remove-1.51/META.yml --- old/File-Remove-1.49/META.yml 2011-03-14 01:32:31.000000000 +0100 +++ new/File-Remove-1.51/META.yml 2011-10-27 02:26:14.000000000 +0200 @@ -3,12 +3,13 @@ author: - 'Adam Kennedy <[email protected]>' build_requires: - ExtUtils::MakeMaker: 6.42 + ExtUtils::MakeMaker: 6.36 Test::More: 0.42 configure_requires: - ExtUtils::MakeMaker: 6.42 + ExtUtils::MakeMaker: 6.36 distribution_type: module -generated_by: 'Module::Install version 1.00' +dynamic_config: 0 +generated_by: 'Module::Install version 1.04' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -28,4 +29,4 @@ ChangeLog: http://fisheye2.atlassian.com/changelog/cpan/trunk/File-Remove license: http://dev.perl.org/licenses/ repository: http://svn.ali.as/cpan/trunk/File-Remove -version: 1.49 +version: 1.51 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/Makefile.PL new/File-Remove-1.51/Makefile.PL --- old/File-Remove-1.49/Makefile.PL 2011-03-14 01:32:09.000000000 +0100 +++ new/File-Remove-1.51/Makefile.PL 2011-10-27 02:25:40.000000000 +0200 @@ -1,4 +1,4 @@ -use inc::Module::Install::DSL 1.00; +use inc::Module::Install::DSL 1.04; all_from lib/File/Remove.pm requires_from lib/File/Remove.pm diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/inc/Module/Install/Base.pm new/File-Remove-1.51/inc/Module/Install/Base.pm --- old/File-Remove-1.49/inc/Module/Install/Base.pm 2011-03-14 01:32:30.000000000 +0100 +++ new/File-Remove-1.51/inc/Module/Install/Base.pm 2011-10-27 02:26:14.000000000 +0200 @@ -4,7 +4,7 @@ use strict 'vars'; use vars qw{$VERSION}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.04'; } # Suspend handler for "redefined" warnings diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/inc/Module/Install/Can.pm new/File-Remove-1.51/inc/Module/Install/Can.pm --- old/File-Remove-1.49/inc/Module/Install/Can.pm 2011-03-14 01:32:31.000000000 +0100 +++ new/File-Remove-1.51/inc/Module/Install/Can.pm 2011-10-27 02:26:14.000000000 +0200 @@ -9,7 +9,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.04'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/inc/Module/Install/DSL.pm new/File-Remove-1.51/inc/Module/Install/DSL.pm --- old/File-Remove-1.49/inc/Module/Install/DSL.pm 2011-03-14 01:32:30.000000000 +0100 +++ new/File-Remove-1.51/inc/Module/Install/DSL.pm 2011-10-27 02:26:14.000000000 +0200 @@ -4,7 +4,7 @@ use strict; use vars qw{$VERSION $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.04'; $ISCORE = 1; *inc::Module::Install::DSL::VERSION = *VERSION; @inc::Module::Install::DSL::ISA = __PACKAGE__; @@ -59,7 +59,8 @@ my @lines = grep { /\S/ } split /[\012\015]+/, $dsl; # Each line represents one command - my @code = (); + my @code = (); + my $static = 1; foreach my $line ( @lines ) { # Split the lines into tokens my @tokens = split /\s+/, $line; @@ -74,6 +75,10 @@ # This is the beginning of a suffix push @suffix, $token; push @suffix, @tokens; + + # The conditional means this distribution + # can no longer be considered fully static. + $static = 0; last; } else { # Convert to a string @@ -87,6 +92,9 @@ push @code, join( ' ', @tokens ) . ";\n"; } + # Is our configuration static? + push @code, "static_config;\n" if $static; + # Join into the complete code block return join( '', @code ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/inc/Module/Install/Fetch.pm new/File-Remove-1.51/inc/Module/Install/Fetch.pm --- old/File-Remove-1.49/inc/Module/Install/Fetch.pm 2011-03-14 01:32:31.000000000 +0100 +++ new/File-Remove-1.51/inc/Module/Install/Fetch.pm 2011-10-27 02:26:14.000000000 +0200 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.04'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/inc/Module/Install/Makefile.pm new/File-Remove-1.51/inc/Module/Install/Makefile.pm --- old/File-Remove-1.49/inc/Module/Install/Makefile.pm 2011-03-14 01:32:30.000000000 +0100 +++ new/File-Remove-1.51/inc/Module/Install/Makefile.pm 2011-10-27 02:26:14.000000000 +0200 @@ -8,7 +8,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.04'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -219,14 +219,14 @@ # an underscore, even though its own version may contain one! # Hence the funny regexp to get rid of it. See RT #35800 # for details. - my $v = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/; + my ($v) = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/; $self->build_requires( 'ExtUtils::MakeMaker' => $v ); $self->configure_requires( 'ExtUtils::MakeMaker' => $v ); } else { # Allow legacy-compatibility with 5.005 by depending on the # most recent EU:MM that supported 5.005. - $self->build_requires( 'ExtUtils::MakeMaker' => 6.42 ); - $self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 ); + $self->build_requires( 'ExtUtils::MakeMaker' => 6.36 ); + $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 ); } # Generate the MakeMaker params @@ -241,7 +241,6 @@ 'all_from' if you prefer) in Makefile.PL. EOT - $DB::single = 1; if ( $self->tests ) { my @tests = split ' ', $self->tests; my %seen; @@ -412,4 +411,4 @@ __END__ -#line 541 +#line 540 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/inc/Module/Install/Metadata.pm new/File-Remove-1.51/inc/Module/Install/Metadata.pm --- old/File-Remove-1.49/inc/Module/Install/Metadata.pm 2011-03-14 01:32:30.000000000 +0100 +++ new/File-Remove-1.51/inc/Module/Install/Metadata.pm 2011-10-27 02:26:14.000000000 +0200 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.04'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -151,15 +151,21 @@ sub install_as_vendor { $_[0]->installdirs('vendor') } sub dynamic_config { - my $self = shift; - unless ( @_ ) { - warn "You MUST provide an explicit true/false value to dynamic_config\n"; - return $self; + my $self = shift; + my $value = @_ ? shift : 1; + if ( $self->{values}->{dynamic_config} ) { + # Once dynamic we never change to static, for safety + return 0; } - $self->{values}->{dynamic_config} = $_[0] ? 1 : 0; + $self->{values}->{dynamic_config} = $value ? 1 : 0; return 1; } +# Convenience command +sub static_config { + shift->dynamic_config(0); +} + sub perl_version { my $self = shift; return $self->{values}->{perl_version} unless @_; @@ -170,7 +176,7 @@ # Normalize the version $version = $self->_perl_version($version); - # We don't support the reall old versions + # We don't support the really old versions unless ( $version >= 5.005 ) { die "Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)\n"; } @@ -515,6 +521,7 @@ 'GNU Free Documentation license' => 'unrestricted', 1, 'GNU Affero General Public License' => 'open_source', 1, '(?:Free)?BSD license' => 'bsd', 1, + 'Artistic license 2\.0' => 'artistic_2', 1, 'Artistic license' => 'artistic', 1, 'Apache (?:Software )?license' => 'apache', 1, 'GPL' => 'gpl', 1, @@ -550,9 +557,9 @@ sub _extract_bugtracker { my @links = $_[0] =~ m#L<( - \Qhttp://rt.cpan.org/\E[^>]+| - \Qhttp://github.com/\E[\w_]+/[\w_]+/issues| - \Qhttp://code.google.com/p/\E[\w_\-]+/issues/list + https?\Q://rt.cpan.org/\E[^>]+| + https?\Q://github.com/\E[\w_]+/[\w_]+/issues| + https?\Q://code.google.com/p/\E[\w_\-]+/issues/list )>#gx; my %links; @links{@links}=(); @@ -581,7 +588,7 @@ sub requires_from { my $self = shift; my $content = Module::Install::_readperl($_[0]); - my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg; + my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg; while ( @requires ) { my $module = shift @requires; my $version = shift @requires; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/inc/Module/Install/Win32.pm new/File-Remove-1.51/inc/Module/Install/Win32.pm --- old/File-Remove-1.49/inc/Module/Install/Win32.pm 2011-03-14 01:32:31.000000000 +0100 +++ new/File-Remove-1.51/inc/Module/Install/Win32.pm 2011-10-27 02:26:14.000000000 +0200 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.04'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/inc/Module/Install/WriteAll.pm new/File-Remove-1.51/inc/Module/Install/WriteAll.pm --- old/File-Remove-1.49/inc/Module/Install/WriteAll.pm 2011-03-14 01:32:31.000000000 +0100 +++ new/File-Remove-1.51/inc/Module/Install/WriteAll.pm 2011-10-27 02:26:14.000000000 +0200 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.04'; @ISA = qw{Module::Install::Base}; $ISCORE = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/inc/Module/Install.pm new/File-Remove-1.51/inc/Module/Install.pm --- old/File-Remove-1.49/inc/Module/Install.pm 2011-03-14 01:32:30.000000000 +0100 +++ new/File-Remove-1.51/inc/Module/Install.pm 2011-10-27 02:26:13.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.00'; + $VERSION = '1.04'; # Storage for the pseudo-singleton $MAIN = undef; @@ -451,7 +451,7 @@ } sub _cmp ($$) { - _version($_[0]) <=> _version($_[1]); + _version($_[1]) <=> _version($_[2]); } # Cloned from Params::Util::_CLASS @@ -467,4 +467,4 @@ 1; -# Copyright 2008 - 2010 Adam Kennedy. +# Copyright 2008 - 2011 Adam Kennedy. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/lib/File/Remove.pm new/File-Remove-1.51/lib/File/Remove.pm --- old/File-Remove-1.49/lib/File/Remove.pm 2011-03-14 01:32:09.000000000 +0100 +++ new/File-Remove-1.51/lib/File/Remove.pm 2011-10-27 02:25:40.000000000 +0200 @@ -6,24 +6,17 @@ use vars qw{ $VERSION @ISA @EXPORT_OK }; use vars qw{ $DEBUG $unlink $rmdir }; BEGIN { - $VERSION = '1.49'; + $VERSION = '1.51'; # $VERSION = eval $VERSION; @ISA = qw{ Exporter }; @EXPORT_OK = qw{ remove rm clear trash }; } -# If we ever need a Mac::Glue object we will want to cache it. -my $glue; - use File::Path (); use File::Glob (); use File::Spec 3.2701 (); use Cwd 3.2701 (); -sub expand (@) { - map { -e $_ ? $_ : File::Glob::bsd_glob($_) } @_; -} - # $debug variable must be set before loading File::Remove. # Convert to a constant to allow debugging code to be pruned out. use constant DEBUG => !! $DEBUG; @@ -40,6 +33,9 @@ # If so write permissions does not imply deletion permissions use constant IS_WIN32 => !! ( $^O =~ /^MSWin/ or $^O eq 'cygwin' ); +# If we ever need a Mac::Glue object we will want to cache it. +my $glue; + @@ -47,7 +43,7 @@ ##################################################################### # Main Functions -my @END_DELETE = (); +my @CLEANUP = (); sub clear (@) { my @files = expand( @_ ); @@ -58,18 +54,22 @@ remove( \1, $file ); } - # Delete again at END-time - push @END_DELETE, @files; + # Delete again at END-time. + # Save the current PID so that forked children + # won't delete things that the parent expects to + # live until their end-time. + push @CLEANUP, map { [ $$, $_ ] } @files; } END { - foreach my $file ( @END_DELETE ) { - next unless -e $file; - remove( \1, $file ); + foreach my $file ( @CLEANUP ) { + next unless $file->[0] == $$; + next unless -e $file->[1]; + remove( \1, $file->[1] ); } } -# acts like unlink would until given a directory as an argument, then +# Acts like unlink would until given a directory as an argument, then # it acts like rm -rf ;) unless the recursive arg is zero which it is by # default sub remove (@) { @@ -223,6 +223,10 @@ ###################################################################### # Support Functions +sub expand (@) { + map { -e $_ ? $_ : File::Glob::bsd_glob($_) } @_; +} + # Do we need to move to a different directory to delete a directory, # and if so which. sub _moveto { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/t/01_compile.t new/File-Remove-1.51/t/01_compile.t --- old/File-Remove-1.49/t/01_compile.t 2011-03-14 01:32:09.000000000 +0100 +++ new/File-Remove-1.51/t/01_compile.t 2011-10-27 02:25:40.000000000 +0200 @@ -8,8 +8,6 @@ $^W = 1; } -use Test::More tests => 2; - -ok( $] >= 5.00503, "Your perl is new enough" ); +use Test::More tests => 1; use_ok( 'File::Remove' ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/t/04_can_delete.t new/File-Remove-1.51/t/04_can_delete.t --- old/File-Remove-1.49/t/04_can_delete.t 2011-03-14 01:32:09.000000000 +0100 +++ new/File-Remove-1.51/t/04_can_delete.t 2011-10-27 02:25:40.000000000 +0200 @@ -44,7 +44,10 @@ if ( $^O ne 'MSWin32' and $< == 0 ) { skip("This test doesn't work as root", 1); } - ok( ! -w $f3, "Created $f3 ! -w" ); + if ( $^O eq 'cygwin' ) { + skip("Fails on some cygwin and shouldn't prevent install",1); + } + ok( ! -w $f3, "Created $f3 ! -w" ); }; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/t/05_links.t new/File-Remove-1.51/t/05_links.t --- old/File-Remove-1.49/t/05_links.t 2011-03-14 01:32:09.000000000 +0100 +++ new/File-Remove-1.51/t/05_links.t 2011-10-27 02:25:40.000000000 +0200 @@ -11,7 +11,7 @@ use File::Remove (); unless( eval { symlink("",""); 1 } ) { - plan("skip_all" => "Operating system does not support Unix-like symlinks"); + plan("skip_all" => "No Unix-like symlinks"); exit(0); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/File-Remove-1.49/t/09_fork.t new/File-Remove-1.51/t/09_fork.t --- old/File-Remove-1.49/t/09_fork.t 1970-01-01 01:00:00.000000000 +0100 +++ new/File-Remove-1.51/t/09_fork.t 2011-10-27 02:25:40.000000000 +0200 @@ -0,0 +1,47 @@ +#!/usr/bin/perl + +# Ensure that we don't prematurely END-time delete due to forking + +use strict; +BEGIN { + $| = 1; + $^W = 1; +} + +use Test::More tests => 8; +use File::Spec::Functions ':ALL'; +use File::Remove (); + +# Create a directory +my $parent = catdir( 't', '09_fork_parent' ); +my $child = catdir( 't', '09_fork_child' ); +File::Remove::clear($parent); +File::Remove::remove($child); +ok( ! -d $parent, 'Parent directory does not exist' ); +ok( ! -d $child, 'Child directory does not exist' ); +ok( mkdir( $parent, 0777 ), 'Created directory' ); +ok( -d $parent, 'Directory exists' ); + +# Fork the test +my $pid = fork(); +unless ( $pid ) { + # Create a child-owned directory and flag for deletion + File::Remove::clear($child); + mkdir( $child, 0777 ); + sleep(2); + + # Exit from the child to stimulate END-time code + exit(0); +} + +# In the parent, wait 1 second for process to spawn +# and create the child directory +sleep(1); +ok( -d $child, 'Child directory created (by forked child)' ); + +# Wait for the child to exit +my $caught = wait(); +is( $pid, $caught, 'The child exited' ); +sleep(1); # Give a chance for flakey windows to delete directory +ok( -d $parent, 'Parent directory still exists' ); +ok( ! -d $child, 'Child directory is removed' ); -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
