]> err.no Git - dpkg/commitdiff
Properly create the generic name symlink in update-alternatives for new
authorGuillem Jover <guillem@debian.org>
Wed, 9 May 2007 18:00:06 +0000 (18:00 +0000)
committerGuillem Jover <guillem@debian.org>
Wed, 9 May 2007 18:00:06 +0000 (18:00 +0000)
alternatives. Closes: #422979

ChangeLog
debian/changelog
scripts/update-alternatives.pl

index 36bebb2a99b8863f7c26272cde06408b69f149c7..91b042c7045d0d87b0539ca4921f2ba027176d3d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-09  Guillem Jover  <guillem@debian.org>
+
+       * 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  <guillem@debian.org>
 
        * scripts/update-alternatives.pl (config_message): Handle the case
index a2a8649fd8d6b9c533400a043d710219035db69e..899172188d7981e5c2b6cd7cd995fa6c7680f4fd 100644 (file)
@@ -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 <guillem@debian.org>  Tue, 08 May 2007 18:48:22 +0300
 
index 0fc26deaeef610d59c119ad6dfbd29e5e8312350..3c6df44fe8f1c7884186b61bce3513e4f174ed19 100755 (executable)
@@ -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") ||