From e384911427a33f7758dbd91658b9c8a93af4b779 Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Wed, 9 May 2007 18:00:06 +0000 Subject: [PATCH] Properly create the generic name symlink in update-alternatives for new alternatives. Closes: #422979 --- ChangeLog | 5 +++++ debian/changelog | 2 ++ scripts/update-alternatives.pl | 17 +++++++++++------ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 36bebb2a..91b042c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-05-09 Guillem Jover + + * scripts/update-alternatives.pl: Create the generic name symlinks + when there's none, or when it differs to the current one. + 2007-05-09 Guillem Jover * scripts/update-alternatives.pl (config_message): Handle the case diff --git a/debian/changelog b/debian/changelog index a2a8649f..89917218 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,8 @@ dpkg (1.14.2) UNRELEASED; urgency=low * Handle case in update-alternatives when there's no existing alternative to configure. Closes: #260987, #353252, #367717, #392431 * Add solaris support to ostable and triplettable. Closes: #361866 + * Properly create the generic name symlink in update-alternatives for new + alternatives. Closes: #422979 -- Guillem Jover Tue, 08 May 2007 18:48:22 +0300 diff --git a/scripts/update-alternatives.pl b/scripts/update-alternatives.pl index 0fc26dea..3c6df44f 100755 --- a/scripts/update-alternatives.pl +++ b/scripts/update-alternatives.pl @@ -538,11 +538,13 @@ if ($manual eq 'auto') { &quit(sprintf(_g("unable to remove %s: %s"), "$admindir/$name", $!)); exit(0); } else { - if (!defined($linkname = readlink($link))) { + $linkname = readlink($link); + if (!defined($linkname) && $! != ENOENT) { &pr(sprintf(_g("warning: %s is supposed to be a symlink to %s\n". " (or nonexistent); however, readlink failed: %s"), $link, "$altdir/$name", $!)) - if $! != ENOENT && $verbosemode > 0; - } elsif ($linkname ne "$altdir/$name") { + if $verbosemode > 0; + } elsif (!defined($linkname) || + (defined($linkname) && $linkname ne "$altdir/$name")) { unlink("$link.dpkg-tmp") || $! == &ENOENT || &quit(sprintf(_g("unable to ensure %s nonexistent: %s"), "$link.dpkg-tmp", $!)); symlink("$altdir/$name","$link.dpkg-tmp") || @@ -572,11 +574,14 @@ if ($manual eq 'auto') { for (my $j = 0; $j <= $#slavenames; $j++) { $sname= $slavenames[$j]; $slink= $slavelinks[$j]; - if (!defined($linkname = readlink($slink))) { + + $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 $! != ENOENT && $verbosemode > 0; - } elsif ($linkname ne "$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") || -- 2.39.5