summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillem Jover <guillem@debian.org>2013-08-09 12:05:48 +0200
committerJoey Hess <joey@kitenet.net>2013-12-27 21:50:04 -0400
commit54bfb4207966f78b6412e84b12480e8a5c901cf6 (patch)
tree1fe013f155d9d4592d1f3a1e3657a14399812af0
parente8b2e6649b41084e10530347f8101d487e8db496 (diff)
dh_shlibdeps: Use new dpkg-shlibdeps -l option instead of LD_LIBRARY_PATH
Using LD_LIBRARY_PATH to pass additional private package library directories is problematic when cross-compiling, as the host and build directories get mixed in the run-time environment variable used by the dynamic linker. Depend on dpkg-dev (>= 1.17.0), the version that introduced dpkg-shlibdeps -l option. Closes: #717505
-rw-r--r--debian/control2
-rwxr-xr-xdh_shlibdeps39
2 files changed, 9 insertions, 32 deletions
diff --git a/debian/control b/debian/control
index 09135f45..477644fd 100644
--- a/debian/control
+++ b/debian/control
@@ -11,7 +11,7 @@ Homepage: http://kitenet.net/~joey/code/debhelper/
Package: debhelper
Architecture: all
-Depends: ${perl:Depends}, ${misc:Depends}, file (>= 3.23), dpkg (>= 1.16.2), dpkg-dev (>= 1.16.2), binutils, po-debconf, man-db (>= 2.5.1-1)
+Depends: ${perl:Depends}, ${misc:Depends}, file (>= 3.23), dpkg (>= 1.16.2), dpkg-dev (>= 1.17.0), binutils, po-debconf, man-db (>= 2.5.1-1)
Suggests: dh-make
Conflicts: dpkg-cross (<< 1.18), python-support (<< 0.5.3), python-central (<< 0.5.6), automake (<< 1.11.2)
Multi-Arch: foreign
diff --git a/dh_shlibdeps b/dh_shlibdeps
index 260a749a..b42c84a3 100755
--- a/dh_shlibdeps
+++ b/dh_shlibdeps
@@ -48,8 +48,9 @@ It is deprecated; use B<--> instead.
With recent versions of B<dpkg-shlibdeps>, this option is generally not
needed.
-Before B<dpkg-shlibdeps> is run, B<LD_LIBRARY_PATH> will have added to it the
-specified directory (or directories -- separate with colons). With recent
+It tells B<dpkg-shlibdeps> (via its B<-l> parameter), to look for private
+package libraries in the specified directory (or directories -- separate
+with colons). With recent
versions of B<dpkg-shlibdeps>, this is mostly only useful for packages that
build multiple flavors of the same library, or other situations where
the library is installed into a directory not on the regular library search
@@ -94,23 +95,6 @@ init(options => {
"l=s", => \$dh{L_PARAMS},
});
-if ($dh{L_PARAMS}) {
- my @paths=();
- # Add to existing paths, if set.
- push @paths, $ENV{'LD_LIBRARY_PATH'}
- if exists $ENV{'LD_LIBRARY_PATH'};
- foreach (split(/:/, $dh{L_PARAMS})) {
- # Force the path absolute.
- if (m:^/:) {
- push @paths, $_;
- }
- else {
- push @paths, "/$_";
- }
- }
- $dh{L_PARAMS}=join(':', @paths);
-}
-
if (defined $dh{V_FLAG}) {
warning("You probably wanted to pass -V to dh_makeshlibs, it has no effect on dh_shlibdeps");
}
@@ -152,23 +136,16 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
push @opts, "-tudeb" if is_udeb($package);
- my $ld_library_path_orig=$ENV{LD_LIBRARY_PATH};
if ($dh{L_PARAMS}) {
- $ENV{LD_LIBRARY_PATH}=$dh{L_PARAMS};
- verbose_print("LD_LIBRARY_PATH=$dh{L_PARAMS}");
+ foreach (split(/:/, $dh{L_PARAMS})) {
+ # Force the path absolute.
+ my $libdir = m:^/: ? $_ : "/$_";
+ push @opts, "-l$libdir";
+ }
}
doit("dpkg-shlibdeps","-Tdebian/${ext}substvars",
@opts,@{$dh{U_PARAMS}},@filelist);
-
- if ($dh{L_PARAMS}) {
- if (defined $ld_library_path_orig) {
- $ENV{LD_LIBRARY_PATH}=$ld_library_path_orig;
- }
- else {
- delete $ENV{LD_LIBRARY_PATH};
- }
- }
}
}