perl-5.26: . no longer in @INC
Michael Weiser <[email protected]> Fri, 13 Oct 2017 15:11:35 +0200
| Newsgroups | gmane.mail.majordomo.majordomo2.devel |
|---|---|
| Message-ID | <[email protected]> |
--+pHx0qQiF2pBVqBT
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
I'm running the latest snapshot of Mj2 from
http://ftp.mj2.org/pub/mj2/snapshots/2016-04/ (20160404) on Gentoo.
Gentoo has recently introduced Perl 5.26 into the distribution. This
version no longer has . in @INC by default, breaking the Mj2
installation scripts:
[michael@build:~/majordomo] perl Makefile.PL
Can't locate setup/query_util.pl in @INC (@INC contains: /etc/perl
/usr/local/lib/perl5/5.26.1/armv7ve-linux /usr/local/lib/perl5/5.26.1
/usr/lib/perl5/vendor_perl/5.26.1/armv7ve-linux
/usr/lib/perl5/vendor_perl/5.26.1 /usr/local/lib/perl5
/usr/lib/perl5/vendor_perl/5.24.3 /usr/lib/perl5/vendor_perl/5.24.2
/usr/lib/perl5/vendor_perl/5.24.1 /usr/lib/perl5/vendor_perl/5.24.0
/usr/lib/perl5/vendor_perl /usr/lib/perl5/5.26.1/armv7ve-linux
/usr/lib/perl5/5.26.1) at Makefile.PL line 8.
Gentoo has a detailed explanation of reasons and fallout here:
https://wiki.gentoo.org/wiki/Project:Perl/Dot-In-INC-Removal. Since this
is an upstream Perl change, it'll affect all Mj2 installations in time.
The attached patch makes Mj2 install and run for me. This is mostly
adding "./" to requires in the setup scripts.
--
Thanks,
Michael
--+pHx0qQiF2pBVqBT
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="majordomo-20160404-dotinc.patch"
--- majordomo-20160404/Makefile.PL.orig 2017-10-12 19:47:39.885216523 +0200
+++ majordomo-20160404/Makefile.PL 2017-10-12 19:47:39.905216523 +0200
@@ -5,9 +5,9 @@
$| = 1;
use Carp;
use Config;
-require "setup/query_util.pl";
-require "setup/ask_basic.pl";
-require "setup/setup_func.pl";
+require "./setup/query_util.pl";
+require "./setup/ask_basic.pl";
+require "./setup/setup_func.pl";
BEGIN {
require 5.00401;
--- majordomo-20160404/convertlist.pl.orig 2017-10-12 19:44:12.005216424 +0200
+++ majordomo-20160404/convertlist.pl 2017-10-12 19:44:12.025216424 +0200
@@ -3,8 +3,8 @@
use Getopt::Std;
use Fcntl;
use Data::Dumper;
-require "setup/query_util.pl";
-require "setup/setup_func.pl";
+require "./setup/query_util.pl";
+require "./setup/setup_func.pl";
use vars qw(%opts $mjcfg);
$|=1;
--- majordomo-20160404/postinstall.orig 2017-10-12 19:44:12.085216424 +0200
+++ majordomo-20160404/postinstall 2017-10-12 19:44:12.095216424 +0200
@@ -8,9 +8,9 @@
use DirHandle;
use Data::Dumper;
-require "setup/query_util.pl";
-require "setup/install_util.pl";
-require "setup/setup_func.pl";
+require "./setup/query_util.pl";
+require "./setup/install_util.pl";
+require "./setup/setup_func.pl";
# We call mj_shell (which we make sure has the right permissions) to do the
# dirty work; it would be possible to include the routines directly, but
--- majordomo-20160404/setup/ask_basic.pl.orig 2017-10-12 19:44:12.105216424 +0200
+++ majordomo-20160404/setup/ask_basic.pl 2017-10-12 19:44:12.115216424 +0200
@@ -248,7 +248,7 @@
$config->{queue_mode} : 1;
$config->{queue_mode} = get_bool($msg, $def);
if ($config->{queue_mode}) {
- require "setup/ask_queueing.pl";
+ require "./setup/ask_queueing.pl";
ask_queueing($config);
}
@@ -273,19 +273,19 @@
$config->{'mta'} = get_enum($msg, $def, [qw(none sendmail exim qmail postfix)]);
if ($config->{'mta'} eq 'sendmail') {
- require "setup/mta_sendmail.pl";
+ require "./setup/mta_sendmail.pl";
ask_sendmail($config);
}
elsif ($config->{'mta'} eq 'exim') {
- require "setup/mta_exim.pl";
+ require "./setup/mta_exim.pl";
ask_exim($config);
}
elsif ($config->{'mta'} eq 'postfix') {
- require "setup/mta_postfix.pl";
+ require "./setup/mta_postfix.pl";
ask_postfix($config);
}
elsif ($config->{'mta'} eq 'qmail') {
- require "setup/mta_qmail.pl";
+ require "./setup/mta_qmail.pl";
ask_qmail($config);
}
@@ -295,7 +295,7 @@
[$Net::Config::NetConfig{'inet_domain'}] || undef;
$config->{'domains'} = get_list($msg, $def, 1);
- require "setup/ask_domain.pl";
+ require "./setup/ask_domain.pl";
for $i (@{$config->{'domains'}}) {
ask_domain($config, $i);
}
--- majordomo-20160404/setup/ask_domain.pl.orig 2017-10-12 19:44:12.125216424 +0200
+++ majordomo-20160404/setup/ask_domain.pl 2017-10-12 19:44:12.135216424 +0200
@@ -71,7 +71,7 @@
#---- Ask for qmail information
if ($config->{'mta'} eq 'qmail') {
- require "setup/mta_qmail.pl";
+ require "./setup/mta_qmail.pl";
ask_qmail_domain($config, $dom);
}
}
--- majordomo-20160404/setup/mta_exim.pl.orig 2017-10-12 19:44:12.145216424 +0200
+++ majordomo-20160404/setup/mta_exim.pl 2017-10-12 19:44:12.155216424 +0200
@@ -30,7 +30,7 @@
my ($config, $dom) = @_;
my $whereami = $config->{'domain'}{$dom}->{'whereami'};
- require "setup/mta_sendmail.pl";
+ require "./setup/mta_sendmail.pl";
setup_sendmail_domain($config, $dom);
#---- Suggest routers or directors for the exim configuration file.
--- majordomo-20160404/setup/mta_postfix.pl.orig 2017-10-12 19:44:12.165216424 +0200
+++ majordomo-20160404/setup/mta_postfix.pl 2017-10-12 19:44:12.175216424 +0200
@@ -22,7 +22,7 @@
sub setup_postfix_domain {
my($config, $dom) = @_;
- require "setup/mta_sendmail.pl";
+ require "./setup/mta_sendmail.pl";
setup_sendmail_domain($config, $dom);
}
--- majordomo-20160404/setup/newdomain.pl.orig 2017-10-12 19:44:12.185216424 +0200
+++ majordomo-20160404/setup/newdomain.pl 2017-10-12 19:44:12.195216424 +0200
@@ -8,11 +8,11 @@
use DirHandle;
use Data::Dumper;
-require "setup/ask_basic.pl";
-require "setup/ask_domain.pl";
-require "setup/query_util.pl";
-require "setup/install_util.pl";
-require "setup/setup_func.pl";
+require "./setup/ask_basic.pl";
+require "./setup/ask_domain.pl";
+require "./setup/query_util.pl";
+require "./setup/install_util.pl";
+require "./setup/setup_func.pl";
use vars qw($config $lang $nosep $sepclear);
my (@domains, $dom, $install, $newdomain);
@@ -106,7 +106,7 @@
no strict 'refs';
my $nhead = 0;
my @domains = get_domains();
- require "setup/mta_$config->{mta}.pl";
+ require "./setup/mta_$config->{mta}.pl";
# First do the generalized setup
&{"setup_$config->{mta}"}($config);
--- majordomo-20160404/setup/setup_func.pl.orig 2017-10-12 19:44:12.215216424 +0200
+++ majordomo-20160404/setup/setup_func.pl 2017-10-12 19:44:12.225216424 +0200
@@ -128,8 +128,8 @@
# Open the master defaults file, in lib/mj_cf_defs.pl
# open MASTER, 'lib/mj_cf_defs.pl';
- require 'lib/mj_cf_defs.pl';
- require 'lib/mj_cf_data.pl';
+ require './lib/mj_cf_defs.pl';
+ require './lib/mj_cf_data.pl';
$subs = {
'addr_strict_domain_check' => $config->{domain}{$dom}{addr_strict_domain_check},
@@ -404,7 +404,7 @@
sub mta_setup {
no strict 'refs';
my ($df, $gid, $i, $nhead, $uid);
- require "setup/mta_$config->{mta}.pl";
+ require "./setup/mta_$config->{mta}.pl";
# First do the generalized setup
&{"setup_$config->{mta}"}($config);
@@ -453,10 +453,10 @@
sub read_mj_config {
my $lang = shift;
my $msg;
- require 'setup/query_util.pl';
+ require './setup/query_util.pl';
my $destdir = $ENV{DESTDIR};
- $config = eval { require ".mj_config" };
+ $config = eval { require "./.mj_config" };
if (defined $config &&
defined $destdir . $config->{'install_dir'} &&
--- majordomo-20160404/setup/siteconfig.pl.orig 2017-10-12 19:44:12.235216424 +0200
+++ majordomo-20160404/setup/siteconfig.pl 2017-10-12 19:44:12.245216424 +0200
@@ -2,11 +2,11 @@
use DirHandle;
use Data::Dumper;
-require "setup/ask_basic.pl";
-require "setup/ask_domain.pl";
-require "setup/query_util.pl";
-require "setup/install_util.pl";
-require "setup/setup_func.pl";
+require "./setup/ask_basic.pl";
+require "./setup/ask_domain.pl";
+require "./setup/query_util.pl";
+require "./setup/install_util.pl";
+require "./setup/setup_func.pl";
use vars qw($config $lang $nosep $sepclear);
$config = read_mj_config($lang);
@@ -72,19 +72,19 @@
$config->{'mta'} = get_enum($msg, $def, [qw(none sendmail exim qmail postfix)]);
if ($config->{'mta'} eq 'sendmail') {
- require "setup/mta_sendmail.pl";
+ require "./setup/mta_sendmail.pl";
ask_sendmail($config);
}
elsif ($config->{'mta'} eq 'exim') {
- require "setup/mta_exim.pl";
+ require "./setup/mta_exim.pl";
ask_exim($config);
}
elsif ($config->{'mta'} eq 'postfix') {
- require "setup/mta_postfix.pl";
+ require "./setup/mta_postfix.pl";
ask_postfix($config);
}
elsif ($config->{'mta'} eq 'qmail') {
- require "setup/mta_qmail.pl";
+ require "./setup/mta_qmail.pl";
ask_qmail($config);
}
}
--- majordomo-20160404/installbin.orig 2017-10-12 20:02:58.623835995 +0200
+++ majordomo-20160404/installbin 2017-10-12 20:02:58.633835995 +0200
@@ -2,7 +2,7 @@
use Config;
use Fcntl qw(:flock :DEFAULT);
use File::Copy;
-$config = eval {require ".mj_config"};
+$config = eval {require "./.mj_config"};
die "Invalid .mj_config" unless $config;
my $uid = getpwnam($config->{'uid'});
--- majordomo-20160404/postinstall.orig 2017-10-12 20:02:58.673835995 +0200
+++ majordomo-20160404/postinstall 2017-10-12 20:02:58.683835995 +0200
@@ -17,7 +17,7 @@
# this makes sure that everything was installed correctly. It's better to
# bomb here than to let a bad installation slip by.
-$config = eval { require ".mj_config" };
+$config = eval { require "./.mj_config" };
die retr_msg('no_mj_config', $lang)
unless $config;
--- majordomo-20160404/t/core.t.orig 2017-10-12 20:02:58.773835995 +0200
+++ majordomo-20160404/t/core.t 2017-10-12 20:02:58.783835995 +0200
@@ -16,7 +16,7 @@
print "1..38\n";
print "Load the stashed configuration\n";
-eval('$config = require ".mj_config"');
+eval('$config = require "./.mj_config"');
$a = $config;
undef $a; # Quiet 'used only once' warning.
ok(1, !$@);
--- majordomo-20160404/t/shell.t.orig 2017-10-12 20:02:58.823835996 +0200
+++ majordomo-20160404/t/shell.t 2017-10-12 20:02:58.833835996 +0200
@@ -7,7 +7,7 @@
$counter = 1;
# 1
-eval('$config = require ".mj_config"');
+eval('$config = require "./.mj_config"');
$a = $config;
undef $a; # Quiet 'used only once' warning.
ok(1, !$@);
--+pHx0qQiF2pBVqBT--