Bug#30891: dpkg: Patch for update-alternatives to fix jdk problems
Package: dpkg
Version: 1.4.0.31
Severity: important
The Debian jdk1.1 and jdk1.1-dev packages are one of the heaviest users
of update-alternatives. Over the years, several versions of the jdk packages
have had bugs, resulting in stale entries in /var/lib/dpkg/alternatives.
Some of the stale entries are preventing the new jdk1.1 packages from
being installed on some systems that had the old buggy packages
installed.
Here's a simple patch against update-alternatives which removes stale
entries when update-alternatives is run. I'd really like to see this
fixed for slink, and it would solve some release-critical problems.
Cheers,
- Jim
--- update-alternatives.debian Sat Dec 19 12:04:25 1998
+++ update-alternatives Sat Dec 19 12:58:02 1998
@@ -110,14 +110,23 @@
}
while (($version= &gl("version")) ne '') {
defined($versionnum{$version}) && &badfmt("duplicate path $tver");
- push(@versions,$version);
- $versionnum{$version}= $i= $#versions;
- $priority= &gl("priority");
- $priority =~ m/^[-+]?\d+$/ || &badfmt("priority $version $priority");
- $priorities[$i]= $priority;
- for ($j=0; $j<=$#slavenames; $j++) {
- $slavepath{$i,$j}= &gl("spath");
- }
+ if ( -r $version ) {
+ push(@versions,$version);
+ $versionnum{$version}= $i= $#versions;
+ $priority= &gl("priority");
+ $priority =~ m/^[-+]?\d+$/ || &badfmt("priority $version $priority");
+ $priorities[$i]= $priority;
+ for ($j=0; $j<=$#slavenames; $j++) {
+ $slavepath{$i,$j}= &gl("spath");
+ }
+ } else {
+ # File not found - remove
+ &pr("Alternative for $name points to $version - which wasn't found. Removing from list of alternatives.");
+ &gl("priority");
+ for ($j=0; $j<=$#slavenames; $j++) {
+ &gl("spath");
+ }
+ }
}
close(AF);
$dataread=1;
-- System Information
Debian Release: slink
Kernel Version: Linux fleming 2.1.131 #1 SMP Wed Dec 2 18:48:33 PST 1998 i586 unknown
Versions of the packages dpkg depends on:
ii libc6 2.0.7u-7.1 The GNU C library version 2 (run-time files)
ii libncurses4 4.2-3 Shared libraries for terminal handling
ii libstdc++2.9 2.91.60-1 The GNU stdc++ library (egcs version)
Reply to: