Mention the chdir("")/chdir(undef) deprecation.
[p5sagit/p5-mst-13.2.git] / installperl
index f36b4c0..9e06145 100755 (executable)
@@ -258,7 +258,7 @@ if (($Is_W32 and ! $Is_NetWare)  or $Is_Cygwin) {
       chmod(0755, "$installbin/ld2");
     };
   } else {
-    $perldll = 'perl57.' . $dlext;
+    $perldll = 'perl58.' . $dlext;
   }
 
   if ($dlsrc ne "dl_none.xs") {
@@ -386,6 +386,17 @@ foreach my $file (@corefiles) {
     }
 }
 
+# Switch in the 5.005-threads versions of he threadsafe queue and semaphore
+# modules if so needed.
+if ($Config{use5005threads}) {
+    for my $m (qw(Queue Semaphore)) {
+        my $t = "$installprivlib/Thread/$m.pm";
+        unlink $t;
+        copy("ext/Thread/$m.pmx", $t);
+        chmod(0444, $t);
+    }
+}
+
 # Install main perl executables
 # Make links to ordinary names if installbin directory isn't current directory.
 
@@ -744,7 +755,10 @@ sub installlib {
 
     # ignore patch backups, RCS files, emacs backup & temp files and the
     # .exists files, .PL files, and .t files.
-    return if $name =~ m{\.orig$|~$|^#.+#$|,v$|^\.exists|\.PL$|\.t$};
+    return if $name =~ m{\.orig$|~$|^#.+#$|,v$|^\.exists|\.PL$|\.t$} ||
+              $dir  =~ m{/t(?:/|$)};
+    # ignore the test extensions
+    return if $dir =~ m{ext/XS/(?:APItest|Typemap)/};
 
     $name = "$dir/$name" if $dir ne '';
 
@@ -813,13 +827,27 @@ sub installlib {
 sub copy_if_diff {
     my($from,$to)=@_;
     return 1 if (($^O eq 'VMS') && (-d $from));
-    -f $from || warn "$0: $from not found";
+    my $perlpodbadsymlink;
+    if ($from =~ m!^pod/perl[\w-]+\.pod$! &&
+       -l $from &&
+       ! -e $from) {
+       # Some Linux implementations have problems traversing over
+       # multiple symlinks (when going over NFS?) and fail to read
+       # the symlink target.  Combine this with the fact that some
+       # of the pod files (the perl$OS.pod) are symlinks (to ../README.$OS),
+       # and you end up with those pods not getting installed.
+       $perlpodbadsymlink = 1;
+    }
+    -f $from || $perlpodbadsymlink || warn "$0: $from not found";
     $packlist->{$to} = { type => 'file' };
     if (compare($from, $to) || $nonono) {
        safe_unlink($to);   # In case we don't have write permissions.
         if ($nonono) {
             $from = $depth . "/" . $from if $depth;
         }
+       if ($perlpodbadsymlink && $from =~ m!^pod/perl(.+)\.pod$!) {
+           $from = "README.$1";
+       }
        copy($from, $to);
        # Restore timestamps if it's a .a library or for OS/2.
        if (!$nonono && ($Is_OS2 || $to =~ /\.a$/)) {