Hello community,

here is the log from the commit of package perl-local-lib for openSUSE:Factory 
checked in at 2013-06-13 17:46:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-local-lib (Old)
 and      /work/SRC/openSUSE:Factory/.perl-local-lib.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-local-lib"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-local-lib/perl-local-lib.changes    
2011-12-21 17:31:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-local-lib.new/perl-local-lib.changes       
2013-06-13 17:46:36.000000000 +0200
@@ -1,0 +2,14 @@
+Tue Jun 11 18:38:33 UTC 2013 - [email protected]
+
+- updated to 1.008010
+       - Fix a split on undefined value warning (David Golden -- see
+         https://github.com/gugod/App-perlbrew/issues/305)
+       - Remove Carp::Always dep
+       - Fix putting arch path in PERL5LIB
+       - Refactor Win32 path handling out of ensure_dir_structure_for()
+       - Fix activate_paths when PERL_LOCAL_LIB_ROOT starts with :
+       - Fix ~/perl5/bin missing in $PATH
+       - Back to 1.008004 with Carp fix since subsequent releases were botched
+       - Avoid issue where PERL5LIB Carp is older than local::lib one
+
+-------------------------------------------------------------------

Old:
----
  local-lib-1.008004.tar.gz

New:
----
  local-lib-1.008010.tar.gz

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

Other differences:
------------------
++++++ perl-local-lib.spec ++++++
--- /var/tmp/diff_new_pack.hkBrZM/_old  2013-06-13 17:46:37.000000000 +0200
+++ /var/tmp/diff_new_pack.hkBrZM/_new  2013-06-13 17:46:37.000000000 +0200
@@ -2,7 +2,7 @@
 #
 # spec file for package perl-local-lib
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,54 +16,62 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
+
 Name:           perl-local-lib
-Version:        1.008004
+Version:        1.008010
 Release:        0
 Summary:        Create and Use a local Library Directory for Perl Modules
 License:        Artistic-1.0 or GPL-1.0+
 Group:          Development/Libraries/Perl
-Source:         
http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-%{version}.tar.gz
+%define cpan_name local-lib
+Source:         
http://www.cpan.org/authors/id/E/ET/ETHER/%{cpan_name}-%{version}.tar.gz
 Source1:        perl-homedir.sh
 Source2:        perl-homedir.csh
 Url:            http://search.cpan.org/dist/local-lib/
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-BuildRequires:  make
 BuildRequires:  perl
 BuildRequires:  perl-macros
-BuildRequires:  perl(CPAN) >= 1.80
-BuildRequires:  perl(ExtUtils::CBuilder)
+BuildRequires:  perl(CPAN) >= 1.82
 BuildRequires:  perl(ExtUtils::Install) >= 1.43
-BuildRequires:  perl(ExtUtils::MakeMaker) >= 6.42
-BuildRequires:  perl(ExtUtils::ParseXS)
-BuildRequires:  perl(Module::Build) >= 0.28
-BuildRequires:  perl(Test::More)
-%if 0%{?suse_version} >= 1030
-Requires:       perl-base = %{perl_version}
-%else
-Requires:       perl
-%endif
-Requires:       perl(CPAN) >= 1.80
-Requires:       perl(ExtUtils::CBuilder)
+BuildRequires:  perl(ExtUtils::MakeMaker) >= 6.31
+BuildRequires:  perl(Module::Build) >= 0.3600
+#BuildRequires: perl(Capture::Tiny)
+#BuildRequires: perl(CPAN::HandleConfig)
+#BuildRequires: perl(CPANPLUS::Backend)
+#BuildRequires: perl(File::HomeDir)
+#BuildRequires: perl(inc::Module::Install)
+#BuildRequires: perl(JSON)
+#BuildRequires: perl(lib::core::only)
+#BuildRequires: perl(local::lib)
+#BuildRequires: perl(LWP::Simple)
+#BuildRequires: perl(Module::AutoInstall)
+#BuildRequires: perl(Module::Install::Base)
+#BuildRequires: perl(Parse::CPAN::Meta)
+#BuildRequires: perl(YAML::Tiny)
+Requires:       perl(CPAN) >= 1.82
 Requires:       perl(ExtUtils::Install) >= 1.43
 Requires:       perl(ExtUtils::MakeMaker) >= 6.31
-Requires:       perl(ExtUtils::ParseXS)
-Requires:       perl(Module::Build) >= 0.28
+Requires:       perl(Module::Build) >= 0.3600
+%{perl_requires}
 
 %description
-This module provides a quick, convenient way of bootstrapping a user-local Perl
-module library located within the user's home directory. It also constructs and
-prints out for the user the list of environment variables using the syntax
-appropriate for the user's current shell (as specified by the SHELL environment
-variable), suitable for directly adding to one's shell configuration file.
+This module provides a quick, convenient way of bootstrapping a user-local
+Perl module library located within the user's home directory. It also
+constructs and prints out for the user the list of environment variables
+using the syntax appropriate for the user's current shell (as specified by
+the 'SHELL' environment variable), suitable for directly adding to one's
+shell configuration file.
 
 More generally, local::lib allows for the bootstrapping and usage of a
-directory containing Perl modules outside of Perl's @INC. This makes it easier
-to ship an application with an app-specific copy of a Perl module, or
-collection of modules. Useful in cases like when an upstream maintainer hasn't
-applied a patch to a module of theirs that you need for your application.
+directory containing Perl modules outside of Perl's '@INC'. This makes it
+easier to ship an application with an app-specific copy of a Perl module,
+or collection of modules. Useful in cases like when an upstream maintainer
+hasn't applied a patch to a module of theirs that you need for your
+application.
 
 %package -n perl-homedir
 Summary:        Per-user Perl local::lib setup
+Group:          Development/Libraries/Perl
 Requires:       %{name} = %{version}-%{release}
 Requires:       /usr/bin/cpan
 

++++++ local-lib-1.008004.tar.gz -> local-lib-1.008010.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/Changes 
new/local-lib-1.008010/Changes
--- old/local-lib-1.008004/Changes      2011-02-24 22:49:10.000000000 +0100
+++ new/local-lib-1.008010/Changes      2013-05-27 03:01:30.000000000 +0200
@@ -1,4 +1,22 @@
 Revision history for local::lib
+
+1.008010 2013-05-26
+        - Fix a split on undefined value warning (David Golden -- see
+          https://github.com/gugod/App-perlbrew/issues/305)
+
+1.008009 2013-02-24
+        - Remove Carp::Always dep
+
+1.008008 2013-02-24
+        - Fix putting arch path in PERL5LIB
+        - Refactor Win32 path handling out of ensure_dir_structure_for()
+        - Fix activate_paths when PERL_LOCAL_LIB_ROOT starts with :
+        - Fix ~/perl5/bin missing in $PATH
+
+1.008007 2013-02-17
+        - Back to 1.008004 with Carp fix since subsequent releases were botched
+        - Avoid issue where PERL5LIB Carp is older than local::lib one
+
 1.008004 2011-02-24
 
         - Fix stackable tests on win32 by canonicalizing the path ahead of time
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/MANIFEST 
new/local-lib-1.008010/MANIFEST
--- old/local-lib-1.008004/MANIFEST     2011-02-23 23:14:49.000000000 +0100
+++ new/local-lib-1.008010/MANIFEST     2013-05-27 03:05:05.000000000 +0200
@@ -28,3 +28,4 @@
 t/lib-core-only.t
 t/pipeline.t
 t/stackable.t
+t/subroutine-in-inc.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/META.yml 
new/local-lib-1.008010/META.yml
--- old/local-lib-1.008004/META.yml     2011-02-24 22:50:01.000000000 +0100
+++ new/local-lib-1.008010/META.yml     2013-05-27 03:05:03.000000000 +0200
@@ -3,11 +3,12 @@
 author:
   - 'Matt S Trout <[email protected]> http://www.shadowcat.co.uk/'
 build_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.59
 configure_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.59
 distribution_type: module
-generated_by: 'Module::Install version 1.00'
+dynamic_config: 1
+generated_by: 'Module::Install version 1.06'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -17,7 +18,6 @@
   directory:
     - inc
     - t
-    - xt
 requires:
   CPAN: 1.82
   ExtUtils::Install: 1.43
@@ -29,4 +29,4 @@
   homepage: 
http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/local-lib.git
   license: http://dev.perl.org/licenses/
   repository: git://git.shadowcat.co.uk/p5sagit/local-lib.git
-version: 1.008004
+version: 1.008010
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/Makefile.PL 
new/local-lib-1.008010/Makefile.PL
--- old/local-lib-1.008004/Makefile.PL  2011-02-18 04:54:09.000000000 +0100
+++ new/local-lib-1.008010/Makefile.PL  2013-02-17 17:36:01.000000000 +0100
@@ -252,6 +252,7 @@
 }
 chdir($cwd);
 resources(
+  # r/w: [email protected]:local-lib.git
   repository => 'git://git.shadowcat.co.uk/p5sagit/local-lib.git',
   homepage => 
'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/local-lib.git',
   bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=local-lib',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/inc/Module/AutoInstall.pm 
new/local-lib-1.008010/inc/Module/AutoInstall.pm
--- old/local-lib-1.008004/inc/Module/AutoInstall.pm    2011-02-24 
22:50:00.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/AutoInstall.pm    2013-05-27 
03:05:02.000000000 +0200
@@ -3,11 +3,12 @@
 
 use strict;
 use Cwd                 ();
+use File::Spec          ();
 use ExtUtils::MakeMaker ();
 
 use vars qw{$VERSION};
 BEGIN {
-       $VERSION = '1.03';
+       $VERSION = '1.06';
 }
 
 # special map on pre-defined feature sets
@@ -17,11 +18,14 @@
 );
 
 # various lexical flags
-my ( @Missing, @Existing,  %DisabledTests, $UnderCPAN,     $HasCPANPLUS );
+my ( @Missing, @Existing,  %DisabledTests, $UnderCPAN, $InstallDepsTarget, 
$HasCPANPLUS );
 my (
-    $Config, $CheckOnly, $SkipInstall, $AcceptDefault, $TestOnly, $AllDeps
+    $Config, $CheckOnly, $SkipInstall, $AcceptDefault, $TestOnly, $AllDeps,
+    $UpgradeDeps
 );
-my ( $PostambleActions, $PostambleUsed );
+my ( $PostambleActions, $PostambleActionsNoTest, $PostambleActionsUpgradeDeps,
+    $PostambleActionsUpgradeDepsNoTest, $PostambleActionsListDeps,
+    $PostambleActionsListAllDeps, $PostambleUsed, $NoTest);
 
 # See if it's a testing or non-interactive session
 _accept_default( $ENV{AUTOMATED_TESTING} or ! -t STDIN ); 
@@ -31,6 +35,10 @@
     $AcceptDefault = shift;
 }
 
+sub _installdeps_target {
+    $InstallDepsTarget = shift;
+}
+
 sub missing_modules {
     return @Missing;
 }
@@ -63,6 +71,11 @@
             __PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) );
             exit 0;
         }
+       elsif ( $arg =~ /^--upgradedeps=(.*)$/ ) {
+           $UpgradeDeps = 1;
+           __PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) );
+           exit 0;
+       }
         elsif ( $arg =~ /^--default(?:deps)?$/ ) {
             $AcceptDefault = 1;
         }
@@ -125,7 +138,7 @@
     # check entirely since we don't want to have to load (and configure)
     # an old CPAN just for a cosmetic message
 
-    $UnderCPAN = _check_lock(1) unless $SkipInstall;
+    $UnderCPAN = _check_lock(1) unless $SkipInstall || $InstallDepsTarget;
 
     while ( my ( $feature, $modules ) = splice( @args, 0, 2 ) ) {
         my ( @required, @tests, @skiptests );
@@ -175,7 +188,7 @@
             }
 
             # XXX: check for conflicts and uninstalls(!) them.
-            my $cur = _load($mod);
+            my $cur = _version_of($mod);
             if (_version_cmp ($cur, $arg) >= 0)
             {
                 print "loaded. ($cur" . ( $arg ? " >= $arg" : '' ) . ")\n";
@@ -207,6 +220,7 @@
                 $CheckOnly
                 or ($mandatory and $UnderCPAN)
                 or $AllDeps
+                or $InstallDepsTarget
                 or _prompt(
                     qq{==> Auto-install the }
                       . ( @required / 2 )
@@ -237,10 +251,17 @@
         }
     }
 
-    if ( @Missing and not( $CheckOnly or $UnderCPAN ) ) {
+    if ( @Missing and not( $CheckOnly or $UnderCPAN) ) {
         require Config;
-        print
-"*** Dependencies will be installed the next time you type 
'$Config::Config{make}'.\n";
+        my $make = $Config::Config{make};
+        if ($InstallDepsTarget) {
+            print
+"*** To install dependencies type '$make installdeps' or '$make 
installdeps_notest'.\n";
+        }
+        else {
+            print
+"*** Dependencies will be installed the next time you type '$make'.\n";
+        }
 
         # make an educated guess of whether we'll need root permission.
         print "    (You may need to do that as the 'root' user.)\n"
@@ -271,6 +292,10 @@
 sub _check_lock {
     return unless @Missing or @_;
 
+    if ($ENV{PERL5_CPANM_IS_RUNNING}) {
+        return _running_under('cpanminus');
+    }
+
     my $cpan_env = $ENV{PERL5_CPAN_IS_RUNNING};
 
     if ($ENV{PERL5_CPANPLUS_IS_RUNNING}) {
@@ -324,7 +349,7 @@
     while ( my ( $pkg, $ver ) = splice( @_, 0, 2 ) ) {
 
         # grep out those already installed
-        if ( _version_cmp( _load($pkg), $ver ) >= 0 ) {
+        if ( _version_cmp( _version_of($pkg), $ver ) >= 0 ) {
             push @installed, $pkg;
         }
         else {
@@ -332,6 +357,11 @@
         }
     }
 
+    if ($UpgradeDeps) {
+        push @modules, @installed;
+        @installed = ();
+    }
+
     return @installed unless @modules;  # nothing to do
     return @installed if _check_lock(); # defer to the CPAN shell
 
@@ -363,7 +393,7 @@
 
     # see if we have successfully installed them
     while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
-        if ( _version_cmp( _load($pkg), $ver ) >= 0 ) {
+        if ( _version_cmp( _version_of($pkg), $ver ) >= 0 ) {
             push @installed, $pkg;
         }
         elsif ( $args{do_once} and open( FAILED, '>> .#autoinstall.failed' ) ) 
{
@@ -463,6 +493,11 @@
                        } else {
                                die "*** Cannot convert option $key = '$value' 
to CPANPLUS version.\n";
                        }
+                       push @config, 'prereqs', $value;
+               } elsif ( $key eq 'force' ) {
+                   push @config, $key, $value;
+               } elsif ( $key eq 'notest' ) {
+                   push @config, 'skiptest', $value;
                } else {
                        die "*** Cannot convert option $key to CPANPLUS 
version.\n";
                }
@@ -497,10 +532,14 @@
     # set additional options
     while ( my ( $opt, $arg ) = splice( @config, 0, 2 ) ) {
         ( $args{$opt} = $arg, next )
-          if $opt =~ /^force$/;    # pseudo-option
+          if $opt =~ /^(?:force|notest)$/;    # pseudo-option
         $CPAN::Config->{$opt} = $arg;
     }
 
+    if ($args{notest} && (not CPAN::Shell->can('notest'))) {
+       die "Your version of CPAN is too old to support the 'notest' pragma";
+    }
+
     local $CPAN::Config->{prerequisites_policy} = 'follow';
 
     while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
@@ -519,8 +558,16 @@
                 delete $INC{$inc};
             }
 
-            my $rv = $args{force} ? CPAN::Shell->force( install => $pkg )
-                                  : CPAN::Shell->install($pkg);
+            my $rv = do {
+               if ($args{force}) {
+                   CPAN::Shell->force( install => $pkg )
+               } elsif ($args{notest}) {
+                   CPAN::Shell->notest( install => $pkg )
+               } else {
+                   CPAN::Shell->install($pkg)
+               }
+           };
+
             $rv ||= eval {
                 $CPAN::META->instance( 'CPAN::Distribution', $obj->cpan_file, )
                   ->{install}
@@ -575,7 +622,7 @@
     my $ver   = shift;
 
     return
-      if _version_cmp( _load($class), $ver ) >= 0;  # no need to upgrade
+      if _version_cmp( _version_of($class), $ver ) >= 0;  # no need to upgrade
 
     if (
         _prompt( "==> A newer version of $class ($ver) is required. Install?",
@@ -660,16 +707,30 @@
 
 # load a module and return the version it reports
 sub _load {
-    my $mod  = pop;    # class/instance doesn't matter
+    my $mod  = pop; # method/function doesn't matter
     my $file = $mod;
-
     $file =~ s|::|/|g;
     $file .= '.pm';
-
     local $@;
     return eval { require $file; $mod->VERSION } || ( $@ ? undef: 0 );
 }
 
+# report version without loading a module
+sub _version_of {
+    my $mod = pop; # method/function doesn't matter
+    my $file = $mod;
+    $file =~ s|::|/|g;
+    $file .= '.pm';
+    foreach my $dir ( @INC ) {
+        next if ref $dir;
+        my $path = File::Spec->catfile($dir, $file);
+        next unless -e $path;
+        require ExtUtils::MM_Unix;
+        return ExtUtils::MM_Unix->parse_version($path);
+    }
+    return undef;
+}
+
 # Load CPAN.pm and it's configuration
 sub _load_cpan {
     return if $CPAN::VERSION and $CPAN::Config and not @_;
@@ -763,6 +824,35 @@
         : "\$(NOECHO) \$(NOOP)"
     );
 
+    my $deps_list = join( ',', @Missing, @Existing );
+
+    $PostambleActionsUpgradeDeps =
+        "\$(PERL) $0 --config=$config --upgradedeps=$deps_list";
+
+    my $config_notest =
+      join( ',', (UNIVERSAL::isa( $Config, 'HASH' ) ? %{$Config} : @{$Config}),
+         'notest', 1 )
+      if $Config;
+
+    $PostambleActionsNoTest = (
+        ($missing and not $UnderCPAN)
+        ? "\$(PERL) $0 --config=$config_notest --installdeps=$missing"
+        : "\$(NOECHO) \$(NOOP)"
+    );
+
+    $PostambleActionsUpgradeDepsNoTest =
+        "\$(PERL) $0 --config=$config_notest --upgradedeps=$deps_list";
+
+    $PostambleActionsListDeps =
+        '@$(PERL) -le "print for @ARGV" '
+            . join(' ', map $Missing[$_], grep $_ % 2 == 0, 0..$#Missing);
+
+    my @all = (@Missing, @Existing);
+
+    $PostambleActionsListAllDeps =
+        '@$(PERL) -le "print for @ARGV" '
+            . join(' ', map $all[$_], grep $_ % 2 == 0, 0..$#all);
+
     return %args;
 }
 
@@ -797,11 +887,15 @@
 
 sub postamble {
     $PostambleUsed = 1;
+    my $fragment;
 
-    return <<"END_MAKE";
+    $fragment .= <<"AUTO_INSTALL" if !$InstallDepsTarget;
 
 config :: installdeps
 \t\$(NOECHO) \$(NOOP)
+AUTO_INSTALL
+
+    $fragment .= <<"END_MAKE";
 
 checkdeps ::
 \t\$(PERL) $0 --checkdeps
@@ -809,12 +903,28 @@
 installdeps ::
 \t$PostambleActions
 
+installdeps_notest ::
+\t$PostambleActionsNoTest
+
+upgradedeps ::
+\t$PostambleActionsUpgradeDeps
+
+upgradedeps_notest ::
+\t$PostambleActionsUpgradeDepsNoTest
+
+listdeps ::
+\t$PostambleActionsListDeps
+
+listalldeps ::
+\t$PostambleActionsListAllDeps
+
 END_MAKE
 
+    return $fragment;
 }
 
 1;
 
 __END__
 
-#line 1071
+#line 1193
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/inc/Module/Install/AutoInstall.pm 
new/local-lib-1.008010/inc/Module/Install/AutoInstall.pm
--- old/local-lib-1.008004/inc/Module/Install/AutoInstall.pm    2011-02-24 
22:50:00.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/Install/AutoInstall.pm    2013-05-27 
03:05:02.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
@@ -73,6 +73,17 @@
     );
 }
 
+sub installdeps_target {
+    my ($self, @args) = @_;
+
+    $self->include('Module::AutoInstall');
+    require Module::AutoInstall;
+
+    Module::AutoInstall::_installdeps_target(1);
+
+    $self->auto_install(@args);
+}
+
 sub auto_install_now {
     my $self = shift;
     $self->auto_install(@_);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/inc/Module/Install/Base.pm 
new/local-lib-1.008010/inc/Module/Install/Base.pm
--- old/local-lib-1.008004/inc/Module/Install/Base.pm   2011-02-24 
22:49:59.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/Install/Base.pm   2013-05-27 
03:05:01.000000000 +0200
@@ -4,7 +4,7 @@
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
 }
 
 # Suspend handler for "redefined" warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/inc/Module/Install/Can.pm 
new/local-lib-1.008010/inc/Module/Install/Can.pm
--- old/local-lib-1.008004/inc/Module/Install/Can.pm    2011-02-24 
22:50:01.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/Install/Can.pm    2013-05-27 
03:05:02.000000000 +0200
@@ -3,13 +3,12 @@
 
 use strict;
 use Config                ();
-use File::Spec            ();
 use ExtUtils::MakeMaker   ();
 use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
@@ -29,7 +28,7 @@
        eval { require $mod; $pkg->VERSION($ver || 0); 1 };
 }
 
-# check if we can run some command
+# Check if we can run some command
 sub can_run {
        my ($self, $cmd) = @_;
 
@@ -38,14 +37,88 @@
 
        for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
                next if $dir eq '';
-               my $abs = File::Spec->catfile($dir, $_[1]);
+               require File::Spec;
+               my $abs = File::Spec->catfile($dir, $cmd);
                return $abs if (-x $abs or $abs = MM->maybe_command($abs));
        }
 
        return;
 }
 
-# can we locate a (the) C compiler
+# Can our C compiler environment build XS files
+sub can_xs {
+       my $self = shift;
+
+       # Ensure we have the CBuilder module
+       $self->configure_requires( 'ExtUtils::CBuilder' => 0.27 );
+
+       # Do we have the configure_requires checker?
+       local $@;
+       eval "require ExtUtils::CBuilder;";
+       if ( $@ ) {
+               # They don't obey configure_requires, so it is
+               # someone old and delicate. Try to avoid hurting
+               # them by falling back to an older simpler test.
+               return $self->can_cc();
+       }
+
+       # Do we have a working C compiler
+       my $builder = ExtUtils::CBuilder->new(
+               quiet => 1,
+       );
+       unless ( $builder->have_compiler ) {
+               # No working C compiler
+               return 0;
+       }
+
+       # Write a C file representative of what XS becomes
+       require File::Temp;
+       my ( $FH, $tmpfile ) = File::Temp::tempfile(
+               "compilexs-XXXXX",
+               SUFFIX => '.c',
+       );
+       binmode $FH;
+       print $FH <<'END_C';
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+int main(int argc, char **argv) {
+    return 0;
+}
+
+int boot_sanexs() {
+    return 1;
+}
+
+END_C
+       close $FH;
+
+       # Can the C compiler access the same headers XS does
+       my @libs   = ();
+       my $object = undef;
+       eval {
+               local $^W = 0;
+               $object = $builder->compile(
+                       source => $tmpfile,
+               );
+               @libs = $builder->link(
+                       objects     => $object,
+                       module_name => 'sanexs',
+               );
+       };
+       my $result = $@ ? 0 : 1;
+
+       # Clean up all the build files
+       foreach ( $tmpfile, $object, @libs ) {
+               next unless defined $_;
+               1 while unlink;
+       }
+
+       return $result;
+}
+
+# Can we locate a (the) C compiler
 sub can_cc {
        my $self   = shift;
        my @chunks = split(/ /, $Config::Config{cc}) or return;
@@ -78,4 +151,4 @@
 
 __END__
 
-#line 156
+#line 236
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/inc/Module/Install/Fetch.pm 
new/local-lib-1.008010/inc/Module/Install/Fetch.pm
--- old/local-lib-1.008004/inc/Module/Install/Fetch.pm  2011-02-24 
22:50:01.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/Install/Fetch.pm  2013-05-27 
03:05:02.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/inc/Module/Install/Include.pm 
new/local-lib-1.008010/inc/Module/Install/Include.pm
--- old/local-lib-1.008004/inc/Module/Install/Include.pm        2011-02-24 
22:50:00.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/Install/Include.pm        2013-05-27 
03:05:02.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/inc/Module/Install/Makefile.pm 
new/local-lib-1.008010/inc/Module/Install/Makefile.pm
--- old/local-lib-1.008004/inc/Module/Install/Makefile.pm       2011-02-24 
22:49:59.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/Install/Makefile.pm       2013-05-27 
03:05:02.000000000 +0200
@@ -8,7 +8,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
@@ -215,18 +215,22 @@
        require ExtUtils::MakeMaker;
 
        if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) {
-               # MakeMaker can complain about module versions that include
-               # 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+)/;
-               $self->build_requires(     'ExtUtils::MakeMaker' => $v );
-               $self->configure_requires( 'ExtUtils::MakeMaker' => $v );
+               # This previous attempted to inherit the version of
+               # ExtUtils::MakeMaker in use by the module author, but this
+               # was found to be untenable as some authors build releases
+               # using future dev versions of EU:MM that nobody else has.
+               # Instead, #toolchain suggests we use 6.59 which is the most
+               # stable version on CPAN at time of writing and is, to quote
+               # ribasushi, "not terminally fucked, > and tested enough".
+               # TODO: We will now need to maintain this over time to push
+               # the version up as new versions are released.
+               $self->build_requires(     'ExtUtils::MakeMaker' => 6.59 );
+               $self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 );
        } 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 +245,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 +415,4 @@
 
 __END__
 
-#line 541
+#line 544
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/inc/Module/Install/Metadata.pm 
new/local-lib-1.008010/inc/Module/Install/Metadata.pm
--- old/local-lib-1.008004/inc/Module/Install/Metadata.pm       2011-02-24 
22:49:59.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/Install/Metadata.pm       2013-05-27 
03:05:01.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @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/local-lib-1.008004/inc/Module/Install/Win32.pm 
new/local-lib-1.008010/inc/Module/Install/Win32.pm
--- old/local-lib-1.008004/inc/Module/Install/Win32.pm  2011-02-24 
22:50:01.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/Install/Win32.pm  2013-05-27 
03:05:02.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/inc/Module/Install/WriteAll.pm 
new/local-lib-1.008010/inc/Module/Install/WriteAll.pm
--- old/local-lib-1.008004/inc/Module/Install/WriteAll.pm       2011-02-24 
22:50:01.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/Install/WriteAll.pm       2013-05-27 
03:05:02.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '1.00';
+       $VERSION = '1.06';
        @ISA     = qw{Module::Install::Base};
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/inc/Module/Install.pm 
new/local-lib-1.008010/inc/Module/Install.pm
--- old/local-lib-1.008004/inc/Module/Install.pm        2011-02-24 
22:49:58.000000000 +0100
+++ new/local-lib-1.008010/inc/Module/Install.pm        2013-05-27 
03:05:01.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.06';
 
        # 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 - 2012 Adam Kennedy.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/lib/local/lib.pm 
new/local-lib-1.008010/lib/local/lib.pm
--- old/local-lib-1.008004/lib/local/lib.pm     2011-02-24 22:49:19.000000000 
+0100
+++ new/local-lib-1.008010/lib/local/lib.pm     2013-05-27 03:01:30.000000000 
+0200
@@ -8,10 +8,9 @@
 
 use File::Spec ();
 use File::Path ();
-use Carp ();
 use Config;
 
-our $VERSION = '1.008004'; # 1.8.4
+our $VERSION = '1.008010'; # 1.8.10
 
 our @KNOWN_FLAGS = qw(--self-contained --deactivate --deactivate-all);
 
@@ -175,6 +174,7 @@
     }
   };
   unless (defined $homedir) {
+    require Carp;
     Carp::croak(
       "Couldn't resolve homedir for "
       .(defined $user ? $user : 'current user')
@@ -207,7 +207,13 @@
   my $interpolate = LITERAL_ENV;
   my @active_lls = $class->active_paths;
 
-  $path = $class->ensure_dir_structure_for($path);
+  $class->ensure_dir_structure_for($path);
+
+  # On Win32 directories often contain spaces. But some parts of the CPAN
+  # toolchain don't like that. To avoid this, GetShortPathName() gives us
+  # an alternate representation that has none.
+  # This only works if the directory already exists.
+  $path = Win32::GetShortPathName($path) if $^O eq 'MSWin32';
 
   if (! $deactivating) {
     if (@active_lls && $active_lls[-1] eq $path) {
@@ -228,7 +234,15 @@
     exit 0;
   } else {
     $class->setup_env_hash_for($path, $deactivating);
-    @INC = _uniq(split($Config{path_sep}, $ENV{PERL5LIB}), @INC);
+    my $arch_dir = $Config{archname};
+    @INC = _uniq(
+  (
+      # Inject $path/$archname for each path in PERL5LIB
+      map { ( File::Spec->catdir($_, $arch_dir), $_ ) }
+      split($Config{path_sep}, $ENV{PERL5LIB})
+  ),
+  @INC
+    );
   }
 }
 
@@ -253,11 +267,7 @@
     warn "Attempting to create directory ${path}\n";
   }
   File::Path::mkpath($path);
-  # Need to have the path exist to make a short name for it, so
-  # converting to a short name here.
-  $path = Win32::GetShortPathName($path) if $^O eq 'MSWin32';
-
-  return $path;
+  return
 }
 
 sub guess_shelltype {
@@ -360,35 +370,71 @@
   }
 }
 
+# Build an environment value for a variable like PATH from a list of paths.
+# References to existing variables are given as references to the variable 
name.
+# Duplicates are removed.
+#
+# options:
+# - interpolate: INTERPOLATE_ENV/LITERAL_ENV
+# - exists: paths are included only if they exist (default: interpolate == 
INTERPOLATE_ENV)
+# - filter: function to apply to each path do decide if it must be included
+# - empty: the value to return in the case of empty value
+my %ENV_LIST_VALUE_DEFAULTS = (
+    interpolate => INTERPOLATE_ENV,
+    exists => undef,
+    filter => sub { 1 },
+    empty => undef,
+);
+sub _env_list_value {
+  my $options = shift;
+  die(sprintf "unknown option '$_' at %s line %u\n", (caller)[1..2])
+    for grep { !exists $ENV_LIST_VALUE_DEFAULTS{$_} } keys %$options;
+  my %options = (%ENV_LIST_VALUE_DEFAULTS, %{ $options });
+  $options{exists} = $options{interpolate} == INTERPOLATE_ENV
+    unless defined $options{exists};
+
+  my %seen;
+
+  my $value = join($Config{path_sep}, map {
+      ref $_ ? ($^O eq 'MSWin32' ? "%${$_}%" : "\$${$_}") : $_
+    } grep {
+      ref $_ || (defined $_
+                 && length($_) > 0
+                 && !$seen{$_}++
+                 && $options{filter}->($_)
+                 && (!$options{exists} || -e $_))
+    } map {
+      if (ref $_ eq 'SCALAR' && $options{interpolate} == INTERPOLATE_ENV) {
+        defined $ENV{${$_}} ? (split /\Q$Config{path_sep}/, $ENV{${$_}}) : ()
+      } else {
+        $_
+      }
+    } @_);
+  return length($value) ? $value : $options{empty};
+}
+
 sub build_activate_environment_vars_for {
   my ($class, $path, $interpolate) = @_;
   return (
-    PERL_LOCAL_LIB_ROOT => join($Config{path_sep},
-              (($ENV{PERL_LOCAL_LIB_ROOT}||()) ?
-                ($interpolate == INTERPOLATE_ENV
-                  ? ($ENV{PERL_LOCAL_LIB_ROOT}||())
-                  : (($^O ne 'MSWin32') ? '$PERL_LOCAL_LIB_ROOT' 
-                    : '%PERL_LOCAL_LIB_ROOT%' ))
-                : ()),
-                $path
+    PERL_LOCAL_LIB_ROOT =>
+            _env_list_value(
+              { interpolate => $interpolate, exists => 0, empty => '' },
+              \'PERL_LOCAL_LIB_ROOT',
+              $path,
             ),
     PERL_MB_OPT => "--install_base ${path}",
     PERL_MM_OPT => "INSTALL_BASE=${path}",
-    PERL5LIB => join($Config{path_sep},
-                  $class->install_base_arch_path($path),
-                  $class->install_base_perl_path($path),
-                  (($ENV{PERL5LIB}||()) ?
-                    ($interpolate == INTERPOLATE_ENV
-                      ? ($ENV{PERL5LIB})
-                      : (($^O ne 'MSWin32') ? '$PERL5LIB' : '%PERL5LIB%' ))
-                    : ())
-                ),
-    PATH => join($Config{path_sep},
-              $class->install_base_bin_path($path),
-              ($interpolate == INTERPOLATE_ENV
-                ? ($ENV{PATH}||())
-                : (($^O ne 'MSWin32') ? '$PATH' : '%PATH%' ))
-             ),
+    PERL5LIB =>
+            _env_list_value(
+              { interpolate => $interpolate, exists => 0, empty => '' },
+              $class->install_base_perl_path($path),
+              \'PERL5LIB',
+            ),
+    PATH => _env_list_value(
+              { interpolate => $interpolate, exists => 0, empty => '' },
+        $class->install_base_bin_path($path),
+              \'PATH',
+            ),
   )
 }
 
@@ -396,7 +442,7 @@
   my ($class) = @_;
 
   return () unless defined $ENV{PERL_LOCAL_LIB_ROOT};
-  return split /\Q$Config{path_sep}/, $ENV{PERL_LOCAL_LIB_ROOT};
+  return grep { $_ ne '' } split /\Q$Config{path_sep}/, 
$ENV{PERL_LOCAL_LIB_ROOT};
 }
 
 sub build_deactivate_environment_vars_for {
@@ -409,40 +455,42 @@
     return ();
   }
 
-  my @new_ll_root = grep { $_ ne $path } @active_lls;
-  my @new_perl5lib = grep {
-    $_ ne $class->install_base_arch_path($path) &&
-    $_ ne $class->install_base_perl_path($path)
-  } split /\Q$Config{path_sep}/, $ENV{PERL5LIB};
+  my $perl_path = $class->install_base_perl_path($path);
+  my $arch_path = $class->install_base_arch_path($path);
+  my $bin_path = $class->install_base_bin_path($path);
+
 
   my %env = (
-    PERL_LOCAL_LIB_ROOT => (@new_ll_root ?
-      join($Config{path_sep}, @new_ll_root) : undef
+    PERL_LOCAL_LIB_ROOT => _env_list_value(
+      {
+        exists => 0,
+      },
+      grep { $_ ne $path } @active_lls
     ),
-    PERL5LIB => (@new_perl5lib ?
-      join($Config{path_sep}, @new_perl5lib) : undef
+    PERL5LIB => _env_list_value(
+      {
+        exists => 0,
+        filter => sub {
+          $_ ne $perl_path && $_ ne $arch_path
+        },
+      },
+      \'PERL5LIB',
     ),
-    PATH => join($Config{path_sep},
-      grep { $_ ne $class->install_base_bin_path($path) }
-      split /\Q$Config{path_sep}/, $ENV{PATH}
+    PATH => _env_list_value(
+      {
+        exists => 0,
+        filter => sub { $_ ne $bin_path },
+      },
+      \'PATH',
     ),
   );
 
   # If removing ourselves from the "top of the stack", set install paths to
   # correspond with the new top of stack.
   if ($active_lls[-1] eq $path) {
-    if (@active_lls > 1) {
-      my $new_top = $active_lls[-2];
-      %env = (%env,
-        PERL_MB_OPT => "--install_base ${new_top}",
-        PERL_MM_OPT => "INSTALL_BASE=${new_top}",
-      );
-    } else {
-      %env = (%env,
-        PERL_MB_OPT => undef,
-        PERL_MM_OPT => undef,
-      );
-    }
+    my $new_top = $active_lls[-2];
+    $env{PERL_MB_OPT} = defined($new_top) ? "--install_base ${new_top}" : 
undef;
+    $env{PERL_MM_OPT} = defined($new_top) ? "INSTALL_BASE=${new_top}" : undef;
   }
 
   return %env;
@@ -453,28 +501,36 @@
 
   my @active_lls = $class->active_paths;
 
-  my @new_perl5lib = split /\Q$Config{path_sep}/, $ENV{PERL5LIB};
-  my @new_path = split /\Q$Config{path_sep}/, $ENV{PATH};
-
-  for my $path (@active_lls) {
-    @new_perl5lib = grep {
-      $_ ne $class->install_base_arch_path($path) &&
-      $_ ne $class->install_base_perl_path($path)
-    } @new_perl5lib;
-
-    @new_path = grep {
-      $_ ne $class->install_base_bin_path($path)
-    } @new_path;
-  }
+  my %perl_paths = map { (
+      $class->install_base_perl_path($_) => 1,
+      $class->install_base_arch_path($_) => 1
+    ) } @active_lls;
+  my %bin_paths = map { (
+      $class->install_base_bin_path($_) => 1,
+    ) } @active_lls;
 
   my %env = (
     PERL_LOCAL_LIB_ROOT => undef,
     PERL_MM_OPT => undef,
     PERL_MB_OPT => undef,
-    PERL5LIB => (@new_perl5lib ?
-      join($Config{path_sep}, @new_perl5lib) : undef
+    PERL5LIB => _env_list_value(
+      {
+        exists => 0,
+        filter => sub {
+          ! scalar grep { exists $perl_paths{$_} } $_[0]
+        },
+      },
+      \'PERL5LIB'
+    ),
+    PATH => _env_list_value(
+      {
+        exists => 0,
+        filter => sub {
+          ! scalar grep { exists $bin_paths{$_} } $_[0]
+        },
+      },
+      \'PATH'
     ),
-    PATH => join($Config{path_sep}, @new_path),
   );
 
   return %env;
@@ -645,7 +701,7 @@
   set PATH=C:\DOCUME~1\ADMINI~1\perl5\bin;%PATH%
   
   ### To set the environment for this shell alone
-  C:\>perl -Mlocal::lib > %TEMP%\tmp.bat && %TEMP%\tmp.bat && del 
%TEMP%\temp.bat
+  C:\>perl -Mlocal::lib > %TEMP%\tmp.bat && %TEMP%\tmp.bat && del 
%TEMP%\tmp.bat
   ### instead of $(perl -Mlocal::lib=./)
 
 If you want the environment entries to persist, you'll need to add then to the
@@ -1015,6 +1071,8 @@
 Improvements to stacking multiple local::lib dirs and removing them from the
 environment later on contributed by Andrew Rodland <[email protected]>.
 
+Patch for Carp version mismatch contributed by Hakim Cassimally 
<[email protected]>.
+
 =head1 COPYRIGHT
 
 Copyright (c) 2007 - 2010 the local::lib L</AUTHOR> and L</CONTRIBUTORS> as
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/t/classmethod.t 
new/local-lib-1.008010/t/classmethod.t
--- old/local-lib-1.008004/t/classmethod.t      2011-02-18 04:54:09.000000000 
+0100
+++ new/local-lib-1.008010/t/classmethod.t      2013-05-27 03:04:29.000000000 
+0200
@@ -17,6 +17,7 @@
 
 {
 
+no warnings 'once';
 local *File::Spec::rel2abs = sub { shift; 'FOO'.shift; };
 is($c->resolve_relative_path('bar'),'FOObar');
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/t/stackable.t 
new/local-lib-1.008010/t/stackable.t
--- old/local-lib-1.008004/t/stackable.t        2011-02-24 22:48:45.000000000 
+0100
+++ new/local-lib-1.008010/t/stackable.t        2013-02-25 19:36:28.000000000 
+0100
@@ -2,17 +2,36 @@
 use warnings;
 use Test::More;
 use File::Temp qw(tempdir);
+use File::Spec;
 use Cwd;
+use Config;
 
-plan tests => 19;
+plan tests => 24;
 
 use local::lib ();
 
-my $dir1 = tempdir('test_local_lib-XXXXX', DIR => Cwd::abs_path('t'), CLEANUP 
=> 1);
-$dir1 = local::lib->ensure_dir_structure_for($dir1);
+sub mk_temp_dir
+{
+    my $name_template = shift;
+
+    my $path = tempdir($name_template, DIR => Cwd::abs_path('t'), CLEANUP => 
1);
+    local::lib->ensure_dir_structure_for($path);
+    # On Win32 the path where the distribution is built usually contains
+    # spaces. This is a problem for some parts of the CPAN toolchain, so
+    # local::lib uses the GetShortPathName trick do get an alternate
+    # representation of the path that doesn't constain spaces.
+    return ($^O eq 'MSWin32')
+         ? Win32::GetShortPathName($path)
+        : $path
+}
+
+my $dir1 = mk_temp_dir('test_local_lib-XXXXX');
+my $dir2 = mk_temp_dir('test_local_lib-XXXXX');
+
+my ($dir1_arch, $dir2_arch) = map { File::Spec->catfile($_, qw'lib perl5', 
$Config{archname}) } $dir1, $dir2;
+note $dir1_arch;
+note $dir2_arch;
 
-my $dir2 = tempdir('test_local_lib-XXXXX', DIR => Cwd::abs_path('t'), CLEANUP 
=> 1);
-$dir2 = local::lib->ensure_dir_structure_for($dir2);
 
 my $prev_active = () = local::lib->active_paths;
 
@@ -20,6 +39,8 @@
 is +() = local::lib->active_paths, $prev_active + 1, 'one active path';
 like $ENV{PERL_LOCAL_LIB_ROOT}, qr/\Q$dir1/, 'added one dir in root';
 like $ENV{PERL5LIB}, qr/\Q$dir1/, 'added one dir in lib';
+note $ENV{PERL5LIB};
+unlike $ENV{PERL5LIB}, qr/\Q$dir1_arch/, 'no arch in PERL5LIB';
 like $ENV{PERL_MM_OPT}, qr/\Q$dir1/, 'first path is installation target';
 
 local::lib->import($dir1);
@@ -29,8 +50,10 @@
 is +() = local::lib->active_paths, $prev_active + 2, 'two active paths';
 like $ENV{PERL_LOCAL_LIB_ROOT}, qr/\Q$dir2/, 'added another dir in root';
 like $ENV{PERL5LIB}, qr/\Q$dir2/, 'added another dir in lib';
+unlike $ENV{PERL5LIB}, qr/\Q$dir2_arch/, 'no arch in PERL5LIB';
 like $ENV{PERL_LOCAL_LIB_ROOT}, qr/\Q$dir1/, 'first dir is still in root';
 like $ENV{PERL5LIB}, qr/\Q$dir1/, 'first dir is still in lib';
+unlike $ENV{PERL5LIB}, qr/\Q$dir1_arch/, 'no arch in PERL5LIB';
 like $ENV{PERL_MM_OPT}, qr/\Q$dir2/, 'second path is installation target';
 
 local::lib->import($dir1);
@@ -42,6 +65,8 @@
 local::lib->import('--deactivate', $dir2);
 unlike $ENV{PERL_LOCAL_LIB_ROOT}, qr/\Q$dir2/, 'second dir was removed from 
root';
 unlike $ENV{PERL5LIB}, qr/\Q$dir2/, 'second dir was removed from lib';
+unlike $ENV{PERL5LIB}, qr/\Q$dir2_arch/, 'no arch in PERL5LIB';
 like $ENV{PERL_LOCAL_LIB_ROOT}, qr/\Q$dir1/, q{first dir didn't go away from 
root};
 like $ENV{PERL5LIB}, qr/\Q$dir1/, q{first dir didn't go away from lib};
+unlike $ENV{PERL5LIB}, qr/\Q$dir1_arch/, 'no arch in PERL5LIB';
 like $ENV{PERL_MM_OPT}, qr/\Q$dir1/, 'first dir stays installation target';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local-lib-1.008004/t/subroutine-in-inc.t 
new/local-lib-1.008010/t/subroutine-in-inc.t
--- old/local-lib-1.008004/t/subroutine-in-inc.t        1970-01-01 
01:00:00.000000000 +0100
+++ new/local-lib-1.008010/t/subroutine-in-inc.t        2013-02-25 
19:36:28.000000000 +0100
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -w
+
+use Test::More;
+
+plan qw/no_plan/;
+
+use File::Spec;
+use Cwd;
+use File::Temp qw/ tempdir /;
+my $base;
+
+sub CODE_in_INC() {
+    return scalar grep { ref eq 'CODE' } @INC;
+}
+
+my $dir;
+
+BEGIN {
+    $base = CODE_in_INC;
+    unshift @INC, sub { };
+    splice @INC, 3, 1, sub { };
+    push @INC, sub { };
+
+    $dir = tempdir( DIR => Cwd::abs_path('t'), CLEANUP => 1 );
+}
+
+use local::lib( $dir );
+
+is( CODE_in_INC, $base + 3 );

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to