+2008-01-15 Raphael Hertzog <hertzog@debian.org>
+
+ * scripts/dpkg-shlibdeps.pl (filter_deps): Fix filtering of
+ duplicated dependencies in fields of lesser priority. Dependencies
+ coming from shlibs files have no associated version and this case
+ wasn't handled properly.
+
2008-01-14 Raphael Hertzog <hertzog@debian.org>
* scripts/dpkg-genchanges.pl, scripts/dpkg-gencontrol.pl,
is used. That way we're consistent with the definition of that variable
in deb-substvars(5). Closes: #433477
* Add support of Dm-Upload-Allowed field. Closes: #453400
+ * Fix dpkg-shlibdeps's filtering of duplicated dependencies in fields of
+ lesser priority (when -d is used).
[ Updated manpages translations ]
* Fix typo in French. Closes: #460021
}
# Don't include dependencies if they are already
# mentionned in a higher priority field
- if (not defined($depseen{$dep})) {
+ if (not exists($depseen{$dep})) {
$depseen{$dep} = $dependencies{$field}{$dep};
return 1;
} else {
# Since dependencies can be versionned, we have to
# verify if the dependency is stronger than the
# previously seen one
- if (compare_versions($depseen{$dep}, '>>', $dependencies{$field}{$dep})) {
- return 0;
+ my $stronger;
+ if ($depseen{$dep} eq $dependencies{$field}{$dep}) {
+ # If both versions are the same (possibly unversionned)
+ $stronger = 0;
+ } elsif ($dependencies{$field}{$dep} eq '') {
+ $stronger = 0; # If the dep is unversionned
+ } elsif ($depseen{$dep} eq '') {
+ $stronger = 1; # If the dep seen is unversionned
+ } elsif (compare_versions($depseen{$dep}, '>>', $dependencies{$field}{$dep})) {
+ # The version of the dep seen is stronger...
+ $stronger = 0;
} else {
- $depseen{$dep} = $dependencies{$field}{$dep};
- return 1;
+ $stronger = 1;
}
+ $depseen{$dep} = $dependencies{$field}{$dep} if $stronger;
+ return $stronger;
}
}
if (defined($dep)) {
print "Found $dep in $file\n" if $debug;
foreach (split(/,\s*/, $dep)) {
- $dependencies{$cur_field}{$_} = 1;
+ # Note: the value is empty for shlibs based dependency
+ # symbol based dependency will put a version as value
+ $dependencies{$cur_field}{$_} = '';
}
return 1;
}