+2007-04-28 Aaron M. Ucko <ucko@debian.org>
+
+ * scripts/dpkg-shlibdeps.pl (unique_libfiles): New variable. Do not
+ track duped libraries already on it.
+
2007-04-11 Guillem Jover <guillem@debian.org>
* scripts/dpkg-parsechangelog.pl: Use static and warnings. Declare
Thanks to Martin Weis.
* Properly sort Uploaders field in generated .dsc files.
* Reorder a bit fields in output files.
+ * Speed up dpkg-shlibdeps by avoiding doing a dpkg-query for duped
+ libraries. Thanks to Aaron M. Ucko. Closes: #421290
[ Updated dpkg translations ]
* Romanian (Eddy Petri?or).
}
close CONF;
-my (%rpaths, %format);
+my (%rpaths, %format, %unique_libfiles);
my (@libfiles, @libname, @libsoname, @libfield, @libexec);
for ($i=0;$i<=$#exec;$i++) {
if (!isbin ($exec[$i])) { next; }
$format{$exec[$i]} = $1;
} elsif (m,^\s*NEEDED\s+,) {
if (m,^\s*NEEDED\s+((\S+)\.so\.(\S+))$,) {
+ next if exists $unique_libfiles{$1};
push(@libname,$2); push(@libsoname,$3);
push(@libfield,$execfield[$i]);
push(@libfiles,$1);
push(@libexec,$exec[$i]);
+ $unique_libfiles{$1} = 1;
} elsif (m,^\s*NEEDED\s+((\S+)-(\S+)\.so)$,) {
+ next if exists $unique_libfiles{$1};
push(@libname,$2); push(@libsoname,$3);
push(@libfield,$execfield[$i]);
push(@libfiles,$1);
push(@libexec,$exec[$i]);
+ $unique_libfiles{$1} = 1;
} else {
m,^\s*NEEDED\s+(\S+)$,;
warning(sprintf(_g("format of 'NEEDED %s' not recognized"), $1));