This is an automated email from the git hooks/post-receive script.

kanashiro-guest pushed a commit to branch master
in repository carton.

commit de2b4d23bb92a818dfb89799f24913df9462c6da
Author: Tatsuhiko Miyagawa <miyag...@bulknews.net>
Date:   Sun Jun 2 12:23:50 2013 +0900

    Stop using lib::core::only and PERL5OPT for now, in favor of simpler 
PERL5LIB. Re: #82 #70 #60
    
    PERL5LIB isn't perfect since it doesn't eliminate site_perl from @INC
    in the child process, which means carton exec could accidentally load
    modules from site_perl even when they are not available in the
    carton.lock.
    
    We'll address this by either implementing a check-like logic in the
    exec (which would add an overhead), or add some additional @INC hooks
    in the development, which can detect such errors, a la App::FatPacker
---
 lib/Carton/CLI.pm |  8 +++-----
 xt/cli/exec.t     | 14 +++++++-------
 2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/lib/Carton/CLI.pm b/lib/Carton/CLI.pm
index 0b225d4..db88586 100644
--- a/lib/Carton/CLI.pm
+++ b/lib/Carton/CLI.pm
@@ -277,13 +277,11 @@ sub cmd_exec {
     # allows -Ilib
     @args = map { /^(-[I])(.+)/ ? ($1,$2) : $_ } @args;
 
-    my @include;
-    $self->parse_options_pass_through(\@args, 'I=s@', \@include);
+    $self->parse_options_pass_through(\@args, 'I=s@', sub { die "exec -Ilib is 
deprecated.\n" });
 
+    # PERL5LIB takes care of arch
     my $path = $self->install_path;
-    my $lib  = join ",", @include, "$path/lib/perl5", ".";
-
-    local $ENV{PERL5OPT} = "-Mlib::core::only -Mlib=$lib";
+    local $ENV{PERL5LIB} = "$path/lib/perl5";
     local $ENV{PATH} = "$path/bin:$ENV{PATH}";
 
     $UseSystem ? system(@args) : exec(@args);
diff --git a/xt/cli/exec.t b/xt/cli/exec.t
index 17d2bd5..bbb0e8a 100644
--- a/xt/cli/exec.t
+++ b/xt/cli/exec.t
@@ -13,8 +13,11 @@ use xt::CLI;
     $app->dir->touch("cpanfile", '');
     $app->run("install");
 
-    $app->run("exec", "--", "perl", "-e", "use Try::Tiny");
-    like $app->system_error, qr/Can't locate Try\/Tiny.pm/;
+ TODO: {
+        local $TODO = "exec now does not strip site_perl";
+        $app->run("exec", "perl", "-e", "use Try::Tiny");
+        like $app->system_error, qr/Can't locate Try\/Tiny.pm/;
+    }
 
     $app->dir->touch("cpanfile", <<EOF);
 requires 'Try::Tiny', '== 0.11';
@@ -28,11 +31,8 @@ EOF
     $app->run("exec", "perl", "-e", 'use Try::Tiny; print $Try::Tiny::VERSION, 
"\n"');
     like $app->system_output, qr/0\.11/, "No need for -- as well";
 
- TODO: {
-        local $TODO = "Because of PERL5OPT loading order";
-        $app->run("exec", "perl", "-MTry::Tiny", "-e", 'print 
$Try::Tiny::VERSION, "\n"');
-        like $app->system_output, qr/0\.11/;
-    }
+    $app->run("exec", "perl", "-MTry::Tiny", "-e", 'print $Try::Tiny::VERSION, 
"\n"');
+    like $app->system_output, qr/0\.11/;
 
     $app->dir->touch("cpanfile", <<EOF);
 requires 'Try::Tiny';

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/carton.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to