foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
$TMP=tmpdir($PACKAGE);
+ my %seen;
+
doit("rm", "-f", "$TMP/DEBIAN/shlibs");
open (FIND, "find $TMP -xtype f -name '*.so.*' |");
while (<FIND>) {
chomp;
- ($library, $major)=m#.*/(.*)\.so\.(\d*)\.?#;
+ # The second evil regexp is for db3, whose author should
+ # be shot.
+ if (m#.*/(.*)\.so\.(\d*)\.?# || m#.*/(.*)-(\S+)\.so$#) {
+ $library = $1;
+ $major = $2;
+ }
if (defined($dh{M_PARAMS}) && $dh{M_PARAMS} ne '') {
$major=$dh{M_PARAMS};
}
$deps="$PACKAGE (>= $dh{VERSION})";
}
}
- if (defined($library) && defined($major) && defined($deps) &&
+ if (defined($library) && defined($major) && defined($deps) &&
$library ne '' && $major ne '' && $deps ne '') {
- complex_doit("echo '$library $major $deps' >>$TMP/DEBIAN/shlibs");
+ # Prevent duplicate lines from entering the file.
+ my $line="$library $major $deps";
+ if (! $seen{$line}) {
+ $seen{$line}=1;
+ complex_doit("echo '$line' >>$TMP/DEBIAN/shlibs");
+ }
}
}
close FIND;