The attached patch corrects a problem that can cause a build of RC4 to stop in its tracks under certain conditions. Recent VMS versions have an optional feature that preserves case in arguments passed on the command line. This can cause trouble when those arguments are generated automatically in a context that does not preserve case or when the code that processes them makes invalid assumptions about what a given case means.
The patch is the work of Mark Berryman and Peter Prymmer; I've just done some additional testing on several VMS versions and also on Mac OS X 10.2.6, where it causes no problems.
Apply with -p1.
diff -ru perl-5.8.1-RC3.orig/ext/Encode/bin/enc2xs perl-5.8.1-RC3/ext/Encode/bin/enc2xs
--- perl-5.8.1-RC3.orig/ext/Encode/bin/enc2xs 2003-07-10 02:10:42.000000000 -0400
+++ perl-5.8.1-RC3/ext/Encode/bin/enc2xs 2003-08-01 09:40:47.335001000 -0400
@@ -159,7 +159,7 @@
my ($doC,$doEnc,$doUcm,$doPet);
-if ($cname =~ /\.(c|xs)$/)
+if ($cname =~ /\.(c|xs)$/i) # VMS may have upcased filenames with
DECC$ARGV_PARSE_STYLE defined
{
$doC = 1;
$dname =~ s/(\.[^\.]*)?$/.exh/;
diff -ru perl-5.8.1-RC3.orig/pod/pod2usage.PL perl-5.8.1-RC3/pod/pod2usage.PL
--- perl-5.8.1-RC3.orig/pod/pod2usage.PL 2003-07-10 02:12:48.000000000 -0400
+++ perl-5.8.1-RC3/pod/pod2usage.PL 2003-08-01 09:42:56.421029000 -0400
@@ -15,9 +15,8 @@
# This is so that make depend always knows where to find PL derivatives.
$origdir = cwd;
chdir(dirname($0));
-($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos'); # "case-forgiving"
-$file =~ s/\.pl$/.com/ if ($^O eq 'VMS'); # "case-forgiving"
+($file = basename($0)) =~ s/\.PL$//i;
+$file .= '.COM' if ($^O eq 'VMS');
open OUT,">$file" or die "Can't create $file: $!";
diff -ru perl-5.8.1-RC3.orig/pod/podselect.PL perl-5.8.1-RC3/pod/podselect.PL
--- perl-5.8.1-RC3.orig/pod/podselect.PL 2003-07-10 02:12:48.000000000 -0400
+++ perl-5.8.1-RC3/pod/podselect.PL 2003-08-01 09:42:04.578003000 -0400
@@ -15,9 +15,8 @@
# This is so that make depend always knows where to find PL derivatives.
$origdir = cwd;
chdir(dirname($0));
-($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos'); # "case-forgiving"
-$file =~ s/\.pl$/.com/ if ($^O eq 'VMS'); # "case-forgiving"
+($file = basename($0)) =~ s/\.PL$//i;
+$file .= '.COM' if ($^O eq 'VMS');
open OUT,">$file" or die "Can't create $file: $!";
