for (my $j = 0; $j <= $#slavenames; $j++) {
$sname= $slavenames[$j];
$slink= $slavelinks[$j];
-
- $linkname = readlink($slink);
- if (!defined($linkname) && $! != ENOENT) {
- &pr(sprintf(_g("warning: %s is supposed to be a slave symlink to\n".
- " %s, or nonexistent; however, readlink failed: %s"), $slink, "$altdir/$sname", $!))
- if $verbosemode > 0;
- } elsif (!defined($linkname) ||
- (defined($linkname) && $linkname ne "$altdir/$sname")) {
- unlink("$slink.dpkg-tmp") || $! == &ENOENT ||
- &quit(sprintf(_g("unable to ensure %s nonexistent: %s"), "$slink.dpkg-tmp", $!));
- symlink("$altdir/$sname","$slink.dpkg-tmp") ||
- &quit(sprintf(_g("unable to make %s a symlink to %s: %s"), "$slink.dpkg-tmp", "$altdir/$sname", $!));
- rename_mv("$slink.dpkg-tmp",$slink) ||
- &quit(sprintf(_g("unable to install %s as %s: %s"), "$slink.dpkg-tmp", $slink, $!));
- }
$spath= $slavepath{$bestnum,$j};
unlink("$altdir/$sname.dpkg-tmp") || $! == &ENOENT ||
&quit(sprintf(_g("unable to ensure %s nonexistent: %s"), "$altdir/$sname.dpkg-tmp", $!));
unlink("$slink") || $! == &ENOENT ||
&quit(sprintf(_g("unable to remove %s: %s"), $slink, $!));
} else {
+ if (!defined($linkname= readlink($slink)) && $! != ENOENT) {
+ pr(sprintf(_g("warning: %s is supposed to be a slave symlink to\n".
+ " %s, or nonexistent; however, readlink failed: %s"),
+ $slink, "$altdir/$sname", $!))
+ if $verbosemode > 0;
+ } elsif ($linkname ne "$altdir/$sname") {
+ unlink("$slink.dpkg-tmp") || $! == ENOENT ||
+ quit(sprintf(_g("unable to ensure %s nonexistent: %s"),
+ "$slink.dpkg-tmp", $!));
+ symlink("$altdir/$sname","$slink.dpkg-tmp") ||
+ quit(sprintf(_g("unable to make %s a symlink to %s: %s"),
+ "$slink.dpkg-tmp", "$altdir/$sname", $!));
+ rename_mv("$slink.dpkg-tmp",$slink) ||
+ quit(sprintf(_g("unable to install %s as %s: %s"),
+ "$slink.dpkg-tmp", $slink, $!));
+ }
if (defined($linkname= readlink("$altdir/$sname")) && $linkname eq $spath) {
&pr(sprintf(_g("Leaving %s (%s) pointing to %s."), $sname, $slink, $spath))
if $verbosemode > 0;