*** installperl.orig Mon Nov 20 09:55:08 1995 --- installperl Wed Nov 22 02:29:34 1995 *************** *** 4,9 **** --- 4,10 ---- use Config; $mainperldir = "/usr/bin"; + $exe_ext = $Config{exe_ext}; while (@ARGV) { $nonono = 1 if $ARGV[0] eq '-n'; *************** *** 61,68 **** -w $installbin || die "$installbin is not writable by you\n" unless $installbin =~ m#^/afs/# || $nonono; ! -x 'perl' || die "perl isn't executable!\n"; ! -x 'suidperl' || die "suidperl isn't executable!\n" if $d_dosuid; -x 't/TEST' || warn "WARNING: You've never run 'make test'!!!", " (Installing anyway.)\n"; --- 62,69 ---- -w $installbin || die "$installbin is not writable by you\n" unless $installbin =~ m#^/afs/# || $nonono; ! -x 'perl' . $exe_ext || die "perl isn't executable!\n"; ! -x 'suidperl' . $exe_ext|| die "suidperl isn't executable!\n" if $d_dosuid; -x 't/TEST' || warn "WARNING: You've never run 'make test'!!!", " (Installing anyway.)\n"; *************** *** 80,92 **** # First we install the version-numbered executables. ! &safe_unlink("$installbin/perl$ver"); ! &cmd("cp perl $installbin/perl$ver"); ! &safe_unlink("$installbin/sperl$ver"); if ($d_dosuid) { ! &cmd("cp suidperl $installbin/sperl$ver"); ! &chmod(04711, "$installbin/sperl$ver"); } exit 0 if $versiononly; --- 81,93 ---- # First we install the version-numbered executables. ! &safe_unlink("$installbin/perl$ver$exe_ext"); ! &cmd("cp perl$exe_ext $installbin/perl$ver$exe_ext"); ! &safe_unlink("$installbin/sperl$ver$exe_ext"); if ($d_dosuid) { ! &cmd("cp suidperl$exe_ext $installbin/sperl$ver$exe_ext"); ! &chmod(04711, "$installbin/sperl$ver$exe_ext"); } exit 0 if $versiononly; *************** *** 94,108 **** # Make links to ordinary names if installbin directory isn't current directory. if (! &samepath($installbin, '.')) { ! &safe_unlink("$installbin/perl", "$installbin/suidperl"); ! &link("$installbin/perl$ver", "$installbin/perl"); ! &link("$installbin/sperl$ver", "$installbin/suidperl") if $d_dosuid; } if (! &samepath($installbin, 'x2p')) { ! &safe_unlink("$installbin/a2p"); ! &cmd("cp x2p/a2p $installbin/a2p"); ! &chmod(0755, "$installbin/a2p"); } # Install scripts. --- 95,110 ---- # Make links to ordinary names if installbin directory isn't current directory. if (! &samepath($installbin, '.')) { ! &safe_unlink("$installbin/perl$exe_ext", "$installbin/suidperl$exe_ext"); ! &link("$installbin/perl$ver$exe_ext", "$installbin/perl$exe_ext"); ! &link("$installbin/sperl$ver$exe_ext", "$installbin/suidperl$exe_ext") ! if $d_dosuid; } if (! &samepath($installbin, 'x2p')) { ! &safe_unlink("$installbin/a2p$exe_ext"); ! &cmd("cp x2p/a2p$exe_ext $installbin/a2p$exe_ext"); ! &chmod(0755, "$installbin/a2p$exe_ext"); } # Install scripts. *************** *** 188,201 **** if (-w $mainperldir && ! &samepath($mainperldir, $installbin) && !$nonono) { # First make sure $mainperldir/perl is not already the same as # the perl we just installed ! if (-x "$mainperldir/perl") { # Try to be clever about mainperl being a symbolic link # to binexp/perl if binexp and installbin are different. $mainperl_is_instperl = ! &samepath("$mainperldir/perl", "$installbin/perl") || (($binexp ne $installbin) && ! (-l "$mainperldir/perl") && ! ((readlink "$mainperldir/perl") eq "$binexp/perl")); } if ((! $mainperl_is_instperl) && (&yn("Many scripts expect perl to be installed as " . --- 190,203 ---- if (-w $mainperldir && ! &samepath($mainperldir, $installbin) && !$nonono) { # First make sure $mainperldir/perl is not already the same as # the perl we just installed ! if (-x "$mainperldir/perl$exe_ext") { # Try to be clever about mainperl being a symbolic link # to binexp/perl if binexp and installbin are different. $mainperl_is_instperl = ! &samepath("$mainperldir/perl$exe_ext", "$installbin/perl$exe_ext") || (($binexp ne $installbin) && ! (-l "$mainperldir/perl$exe_ext") && ! ((readlink "$mainperldir/perl$exe_ext") eq "$binexp/perl$exe_ext")); } if ((! $mainperl_is_instperl) && (&yn("Many scripts expect perl to be installed as " . *************** *** 203,212 **** "Do you wish to have $mainperldir/perl be the same as\n" . "$binexp/perl? [y] "))) { ! unlink("$mainperldir/perl"); ! eval 'link("$installbin/perl", "$mainperldir/perl")' || ! eval 'symlink("$binexp/perl", "$mainperldir/perl")' || ! &cmd("cp $installbin/perl $mainperldir"); $mainperl_is_instperl = 1; } } --- 205,214 ---- "Do you wish to have $mainperldir/perl be the same as\n" . "$binexp/perl? [y] "))) { ! unlink("$mainperldir/perl$exe_ext"); ! eval 'link("$installbin/perl$exe_ext", "$mainperldir/perl$exe_ext")' || ! eval 'symlink("$binexp/perl$exe_ext", "$mainperldir/perl$exe_ext")' || ! &cmd("cp $installbin/perl$exe_ext $mainperldir$exe_ext"); $mainperl_is_instperl = 1; } } *************** *** 217,223 **** # Also skip $mainperl if the user opted to have it be a link to the # installed perl. ! @path = split(/:/, $ENV{"PATH"}); @otherperls = (); for (@path) { next unless m,^/,; --- 219,227 ---- # Also skip $mainperl if the user opted to have it be a link to the # installed perl. ! $dirsep = ($osname =~ m:^os/?2$:i) ? ';' : ':' ; ! ($path = $ENV{"PATH"}) =~ s:\\:/:g ; ! @path = split(/$dirsep/, $path); @otherperls = (); for (@path) { next unless m,^/,; *************** *** 225,231 **** # Use &samepath here because some systems have other dirs linked # to $mainperldir (like SunOS) next if ($mainperl_is_instperl && &samepath($_, $mainperldir)); ! push(@otherperls, "$_/perl") if (-x "$_/perl" && ! -d "$_/perl"); } if (@otherperls) { print STDERR "\nWarning: perl appears in your path in the following " . --- 229,236 ---- # Use &samepath here because some systems have other dirs linked # to $mainperldir (like SunOS) next if ($mainperl_is_instperl && &samepath($_, $mainperldir)); ! push(@otherperls, "$_/perl$exe_ext") ! if (-x "$_/perl$exe_ext" && ! -d "$_/perl$exe_ext"); } if (@otherperls) { print STDERR "\nWarning: perl appears in your path in the following " . *************** *** 258,263 **** --- 263,269 ---- foreach $name (@names) { next unless -e $name; print STDERR " unlink $name\n"; + chmod 0777, $name if $osname =~ m:^os/?2$:i ; unlink($name) || warn "Couldn't unlink $name: $!\n" unless $nonono; } } *************** *** 269,274 **** --- 275,281 ---- next unless -e $name; print STDERR " unlink $name\n"; next if $nonono; + chmod 0777, $name if $osname =~ m:^os/?2$:i ; next if unlink($name); warn "Couldn't unlink $name: $!\n"; if ($! =~ /busy/i) { *************** *** 304,310 **** local($from,$to) = @_; print STDERR " ln $from $to\n"; ! link($from,$to) || warn "Couldn't link $from to $to: $!\n" unless $nonono; } sub chmod { --- 311,323 ---- local($from,$to) = @_; print STDERR " ln $from $to\n"; ! eval { ! link($from,$to) || warn "Couldn't link $from to $to: $!\n" unless $nonono; ! }; ! if ($@) { ! system( $cp, $from, $to ) ! && warn "Couldn't copy $from to $to: $!\n" unless $nonono; ! } } sub chmod {