The following commit has been merged in the master branch:
commit 5fd387999d92ef1f47560980cffb54565a72a96b
Author: Raphael Hertzog <[email protected]>
Date: Sun Mar 8 16:11:53 2009 +0100
dpkg-shlibdeps: don't fail on binaries outside of a package's dir
Dpkg 1.15.0 introduced a regression by trying to deduce the target
directory in order to adjust some warnings. This check failed when
dpkg-shlibdeps was run on files not (yet) installed in the package's
directory (debian/package/). Fix that and emit a warning so that
maintainers are encouraged to analyze the binaries once they have
been installed in their target directory.
diff --git a/debian/changelog b/debian/changelog
index 5804574..71fa2d9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,8 @@ dpkg (1.15.1) UNRELEASED; urgency=low
quilt).
* Call quilt only once to apply all patches instead of once per patch
when building 3.0 (quilt) source packages. Closes: #518453
+ * Fix dpkg-shlibdeps so that it works again when analyzing binaries
+ outside of package's directory. Closes: #518687
[ Updated dselect translations ]
* German (Sven Joachim).
diff --git a/scripts/dpkg-shlibdeps.pl b/scripts/dpkg-shlibdeps.pl
index 0483f12..8f4836d 100755
--- a/scripts/dpkg-shlibdeps.pl
+++ b/scripts/dpkg-shlibdeps.pl
@@ -280,8 +280,14 @@ foreach my $file (keys %exec) {
# Disable warnings about missing symbols when we have not been able to
# find all libs
my $disable_warnings = scalar(keys(%soname_notfound));
- my $parent_dir = "/" . dirname(relative_to_pkg_root($file));
- my $in_public_dir = (grep { $parent_dir eq $_ } @librarypaths) ? 1 : 0;
+ my $in_public_dir = 1;
+ if (my $relname = relative_to_pkg_root($file)) {
+ my $parent_dir = "/" . dirname($relname);
+ $in_public_dir = (grep { $parent_dir eq $_ } @librarypaths) ? 1 : 0;
+ } else {
+ warning(_g("binaries to analyze should already be " .
+ "installed in their package's directory."));
+ }
foreach my $sym ($obj->get_undefined_dynamic_symbols()) {
my $name = $sym->{name};
if ($sym->{version}) {
--
dpkg's main repository
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]