This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix typos (spelling errors) in cpan/CPANPLUS-Dist-Build/*.
[perl5.git] / cpan / CPANPLUS-Dist-Build / t / inc / conf.pl
index f8268b1..2eec622 100644 (file)
@@ -29,11 +29,10 @@ BEGIN {
     
     ### add CPANPLUS' bin dir to the front of $ENV{PATH}, so that cpanp-run-perl
     ### and friends get picked up, only under PERL_CORE though.
+    $old_env_path = $ENV{PATH};
     if ( $ENV{PERL_CORE} ) {
-       $old_env_path = $ENV{PATH};
        $ENV{'PATH'}  = join $Config{'path_sep'}, 
-                    grep { defined } "$FindBin::Bin/../../CPANPLUS/bin", $ENV{'PATH'};
-
+                    grep { defined } "$FindBin::Bin/../../../utils", $ENV{'PATH'};
     }
 
     ### Fix up the path to perl, as we're about to chdir
@@ -187,6 +186,24 @@ sub gimme_conf {
         }
     }
 
+    ### CPANPLUS::Config checks 3 specific scenarios first
+    ### when looking for cpanp-run-perl: parallel to cpanp,
+    ### parallel to CPANPLUS.pm, or installed into a custom
+    ### prefix like /tmp/foo. Only *THEN* does it check the
+    ### the path.
+    ### If the perl core is extracted to a directory that has
+    ### cpanp-run-perl installed the same amount of 'uplevels'
+    ### as the /tmp/foo prefix, we'll pull in the wrong script
+    ### by accident.
+    ### Since we set the path to cpanp-run-perl explicitly
+    ### at the top of this script, it's best to update the config
+    ### ourselves with a path lookup, rather than rely on its
+    ### heuristics. Thanks to David Wheeler, Josh Jore and Vincent
+    ### Pit for helping to track this down.
+    if( $ENV{PERL_CORE} ) {
+        $conf->set_program( "perlwrapper" => IPC::Cmd::can_run('cpanp-run-perl') );
+    }
+
     $conf->set_conf( source_engine =>  $ENV{CPANPLUS_SOURCE_ENGINE} )
         if $ENV{CPANPLUS_SOURCE_ENGINE};