#!./perl
BEGIN {
- require 5.003_90;
+ require 5.004;
@INC = 'lib';
$ENV{PERL5LIB} = 'lib';
}
use File::Copy ();
use File::Path ();
use Config;
-use subs qw(unlink rename link chmod);
+use subs qw(unlink link chmod);
# override the ones in the rest of the script
sub mkpath {
if (! $versiononly || !($installprivlib =~ m/\Q$]/)) {
mkpath("${installprivlib}/pod", 1, 0777);
+
+ # If Perl 5.003's perldiag.pod is there, rename it.
+ if (open POD, "${installprivlib}/pod/perldiag.pod") {
+ read POD, $_, 4000;
+ close POD;
+ # Some of Perl 5.003's diagnostic messages ended with periods.
+ if (/^=.*\.$/m) {
+ my ($from, $to) = ("${installprivlib}/pod/perldiag.pod",
+ "${installprivlib}/pod/perldiag-5.003.pod");
+ print STDERR " rename $from $to";
+ rename($from, $to)
+ or warn "Couldn't rename $from to $to: $!\n"
+ unless $nonono;
+ }
+ }
+
foreach $file (@pods) {
# $file is a name like pod/perl.pod
copy_if_diff($file, "${installprivlib}/${file}");
}
+
+ # Link perldiag.pod into archlib
+ my ($from, $to) = ("${installprivlib}/pod/perldiag.pod",
+ "${installarchlib}/pod/perldiag.pod");
+ if (compare($from, $to) || $nonono) {
+ mkpath("${installarchlib}/pod", 1, 0777);
+ unlink($to);
+ link($from, $to);
+ }
}
# Check to make sure there aren't other perls around in installer's
if (-f $to and not unlink($to)) {
my($i);
for ($i = 1; $i < 50; $i++) {
- last if CORE::rename($to, "$to.$i");
+ last if rename($to, "$to.$i");
}
warn("Cannot rename to `$to.$i': $!"), return 0
if $i >= 50; # Give up!
eval {
CORE::link($from, $to)
? $success++
- : warn "Couldn't link $from to $to: $!\n"
+ : ($from =~ m#^/afs/# || $to =~ m#^/afs/#)
+ ? die "AFS" # okay inside eval {}
+ : warn "Couldn't link $from to $to: $!\n"
unless $nonono;
};
if ($@) {
}
if (-f $_) {
- if (/\.al$/ || /\.ix$/) {
+ if (/\.(?:al|ix)$/ && !($dir =~ m[^auto/(.*)$] && $archpms{$1})) {
$installlib = $installprivlib;
#We're installing *.al and *.ix files into $installprivlib,
#but we have to delete old *.al and *.ix files from the 5.000