diff --git a/core/bin/attach b/core/bin/attach index 1685d3d586..06337c1a67 100755 --- a/core/bin/attach +++ b/core/bin/attach @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/changes b/core/bin/changes index f93ef69ff7..3af860a9a5 100755 --- a/core/bin/changes +++ b/core/bin/changes @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/edit b/core/bin/edit index d32b91468e..aedaae647b 100755 --- a/core/bin/edit +++ b/core/bin/edit @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/login b/core/bin/login index f1c30d8cad..ddafdcb398 100755 --- a/core/bin/login +++ b/core/bin/login @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/logon b/core/bin/logon index 8ee99f22f6..b1e7a0b9c0 100755 --- a/core/bin/logon +++ b/core/bin/logon @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/rdiff b/core/bin/rdiff index 27f3f07663..054e48812f 100755 --- a/core/bin/rdiff +++ b/core/bin/rdiff @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/rdiffauth b/core/bin/rdiffauth index 352791e4bd..b7a60956b2 100755 --- a/core/bin/rdiffauth +++ b/core/bin/rdiffauth @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/register b/core/bin/register index 772eb991a0..8d46ccaeaa 100755 --- a/core/bin/register +++ b/core/bin/register @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/rename b/core/bin/rename index f491114cf9..9f6438c45d 100755 --- a/core/bin/rename +++ b/core/bin/rename @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/resetpasswd b/core/bin/resetpasswd index 1f1b04d51b..af70829651 100755 --- a/core/bin/resetpasswd +++ b/core/bin/resetpasswd @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/rest b/core/bin/rest index 3f11872e41..b165f86094 100755 --- a/core/bin/rest +++ b/core/bin/rest @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki; diff --git a/core/bin/setlib.cfg b/core/bin/setlib.cfg index 1497a5ed8a..6eeb350ce8 100644 --- a/core/bin/setlib.cfg +++ b/core/bin/setlib.cfg @@ -30,21 +30,29 @@ # $ENV{FOSWIKI_ASSERTS} = 1; # to your bin/LocalLib.cfg -our $foswikiLibPath; -our @localPerlLibPath; +use strict; +use warnings; -my $LocalLib = __FILE__; # the dir where this setlib.cfg resides +# These might be defined in LocalLib.cfg +our ( $foswikiLibPath, @localPerlLibPath, $CPANBASE ); +our $twikiLibPath; # For compatibility + +my $LocalLib = __FILE__; # the dir where this setlib.cfg resides $LocalLib =~ s/setlib.cfg$/LocalLib.cfg/; -require $LocalLib; +require $LocalLib if -r $LocalLib; # if foswikiLibPath isn't defined, then see if $twikiLibPath is # for compatibility -$foswikiLibPath = $twikiLibPath unless defined( $foswikiLibPath ); +$foswikiLibPath = $twikiLibPath unless defined($foswikiLibPath); -unless (( defined ($foswikiLibPath) ) and (-e $foswikiLibPath)) { - ( $foswikiLibPath ) = ($foswikiLibPath = Cwd::abs_path( "$bin/../lib" )) =~ /(.*)/; +unless ( ( defined($foswikiLibPath) ) and ( -e $foswikiLibPath ) ) { + require FindBin; + FindBin->again; # If we're running under mod_perl or the like + my ($bin) = $FindBin::Bin =~ /^(.*)$/; + ($foswikiLibPath) = + ( $foswikiLibPath = Cwd::abs_path("$bin/../lib") ) =~ /(.*)/; } -if ($foswikiLibPath eq "") { +if ( $foswikiLibPath eq "" ) { $foswikiLibPath = "../lib"; warn "using relative path for libs - some plugins may break"; } @@ -53,18 +61,23 @@ if ($foswikiLibPath eq "") { my $defaultingCPANBASE = !defined($CPANBASE); $CPANBASE = "$foswikiLibPath/CPAN/lib/" unless $CPANBASE; if ( -e $CPANBASE ) { - require Config; - my $VER = $Config::Config{version}; - my $SITEARCH = $Config::Config{archname}; - push @localPerlLibPath, ( "$CPANBASE/arch", "$CPANBASE/$VER/$SITEARCH", "$CPANBASE/$VER", "$CPANBASE" ); + require Config; + my $VER = $Config::Config{version}; + my $SITEARCH = $Config::Config{archname}; + push @localPerlLibPath, + ( + "$CPANBASE/arch", "$CPANBASE/$VER/$SITEARCH", + "$CPANBASE/$VER", "$CPANBASE" + ); } # Prepend to @INC, the Perl search path for modules unshift @INC, $foswikiLibPath; if ($defaultingCPANBASE) { - push @INC, @localPerlLibPath if @localPerlLibPath; -} else { - unshift @INC, @localPerlLibPath if @localPerlLibPath; + push @INC, @localPerlLibPath if @localPerlLibPath; +} +else { + unshift @INC, @localPerlLibPath if @localPerlLibPath; } -1; # Return success for module loading +1; # Return success for module loading diff --git a/core/bin/view b/core/bin/view index a4d03e6ff0..c4e672361b 100755 --- a/core/bin/view +++ b/core/bin/view @@ -40,7 +40,7 @@ BEGIN { my ($bin) = $FindBin::Bin =~ /^(.*)$/; use Cwd (); my ($setlibCfg) = Cwd::abs_path( "$bin/setlib.cfg" ) =~ /(.*)/; - eval 'require "'.$setlibCfg.'";'; + require $setlibCfg; } use Foswiki;