[debhelper-devel] [debhelper] 02/03: dh_shlibdeps: Use new dpkg-shlibdeps -l option instead of LD_LIBRARY_PATH
Joey Hess
joey at kitenet.net
Sat Dec 28 02:09:24 UTC 2013
This is an automated email from the git hooks/post-receive script.
joeyh pushed a commit to branch master
in repository debhelper.
commit 54bfb4207966f78b6412e84b12480e8a5c901cf6
Author: Guillem Jover <guillem at debian.org>
Date: Fri Aug 9 12:05:48 2013 +0200
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
---
debian/control | 2 +-
dh_shlibdeps | 39 ++++++++-------------------------------
2 files changed, 9 insertions(+), 32 deletions(-)
diff --git a/debian/control b/debian/control
index 09135f4..477644f 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 260a749..b42c84a 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}}, at 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};
- }
- }
}
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debhelper/debhelper.git
More information about the debhelper-devel
mailing list