]> err.no Git - dpkg/commitdiff
* Honor LD_LIBRARY_PATH in dpkg-shlibdeps. Fixes a regression
authorFrank Lichtenheld <djpig@debian.org>
Fri, 27 Jan 2006 00:11:17 +0000 (00:11 +0000)
committerFrank Lichtenheld <djpig@debian.org>
Fri, 27 Jan 2006 00:11:17 +0000 (00:11 +0000)
  from 1.13.11 to .12.
* Don't recurse into package directories to search for local
  shlibs files since it is obviously a waste of time. Based
  on a suggestion by Steve Langasek. Closes: #338725

ChangeLog
debian/changelog
scripts/dpkg-shlibdeps.pl

index 6ec9cc330a7af04209313ea4954acd3cb28c7082..68468ed7ea8a8366fbf6dc0ee07cfe0ee0ddde11 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-01-27  Frank Lichtenheld  <djpig@debian.org>
+
+       * scripts/dpkg-shlibdeps.pl: Honor LD_LIBRARY_PATH when
+       searching for shared libraries.
+       * scripts/dpkg-shlibdeps.pl: Don't recurse into package
+       directories when searching for local shlibs files.
+
 2006-01-26  Zefram  <zefram@fysh.org>,
            Guillem Jover  <guillem@debian.org>
 
index a80d59d7c35a59da5a0d3ff3c671ba8856de0dfc..c76a18988ff19fe47ee2ba8d22a2eff644c7bca0 100644 (file)
@@ -5,6 +5,11 @@ dpkg (1.13.13~) unstable; urgency=low
     Correct info in the control file.
   * Bump Standards-Version to 3.6.2 (no changes).
   * Fix typo in dpkg-architecture man page. Closes: #334330
+  * Honor LD_LIBRARY_PATH in dpkg-shlibdeps. Fixes a regression
+    from 1.13.11 to .12.
+  * Don't recurse into package directories to search for local
+    shlibs files since it is obviously a waste of time. Based
+    on a suggestion by Steve Langasek. Closes: #338725
 
   [ Christian Perrier ]
   * Updated Translations:
index 382db16cf6345ccc4d843a4cec0fc767c48a53b6..e6c26cd4a77397f7ebfe82461c73c546c4534e97 100755 (executable)
@@ -105,14 +105,26 @@ sub isbin {
 }
 
 my @librarypaths = qw( /lib /usr/lib /lib64 /usr/lib64 );
-my %librarypaths = map { $_ => 1 } @librarypaths;
+my %librarypaths = map { $_ => 'default' } @librarypaths;
+
+if ($ENV{LD_LIBRARY_PATH}) {
+    foreach (reverse split( /:/, $ENV{LD_LIBRARY_PATH} )) {
+       s,/+$,,;
+       unless (exists $librarypaths{$_}) {
+           $librarypaths{$_} = 'env';
+           unshift @librarypaths, $_;
+       }
+    }
+}
+
 open CONF, '</etc/ld.so.conf' or
     warn( "couldn't open /etc/ld.so.conf: $!" );
 while( <CONF> ) {
     next if /^\s*$/;
     chomp;
     s,/+$,,;
-    unless ($librarypaths{$_}++) {
+    unless (exists $librarypaths{$_}) {
+       $librarypaths{$_} = 'conf';
        push @librarypaths, $_;
     }
 }
@@ -164,7 +176,8 @@ sub searchdir {
            if ( -f "$dir/$_/DEBIAN/shlibs" ) {
                push(@curshlibs, "$dir/$_/DEBIAN/shlibs");
                next;
-           } elsif ( $_ !~ /^\./ && -d "$dir/$_" && ! -l "$dir/$_" ) {
+           } elsif ( $_ !~ /^\./ && ! -e "$dir/$_/DEBIAN" &&
+                     -d "$dir/$_" && ! -l "$dir/$_" ) {
                &searchdir("$dir/$_");
            }
        }