From 859b245e93028ff72ae9f19dc5f49af7406e7ac8 Mon Sep 17 00:00:00 2001 From: Steve Langasek Date: Thu, 10 Mar 2011 22:28:24 -0800 Subject: Add support for multiarch. Open compat level 9, which incompatibly changes dh_auto_configure behavior to set --libdir and --libexecdir to the multiarch directory path. This requires dpkg-dev 1.16.0 (not yet released) for the multiarch directory variable, so bump the dependency to this version. Also set a new substvar, misc:Pre-Depends, to multiarch-support, a virtual package provided by versions of eglibc that support the multiarch library paths at runtime; this needs to be a pre-dependency to ensure unpacked but not-yet-configured libraries can still be found during upgrades, so library packages converting to multiarch (i.e., switching to compat 9) will need to add this substitution by hand to debian/control. --- dh_makeshlibs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'dh_makeshlibs') diff --git a/dh_makeshlibs b/dh_makeshlibs index a3c81e15..5d6f869c 100755 --- a/dh_makeshlibs +++ b/dh_makeshlibs @@ -122,6 +122,7 @@ init(options => { }); my $objdump=cross_command("objdump"); +my $multiarch=dpkg_architecture_value("DEB_HOST_MULTIARCH"); foreach my $package (@{$dh{DOPACKAGES}}) { next if is_udeb($package); @@ -130,6 +131,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { my %seen; my $need_ldconfig = 0; + my $is_multiarch = 0; doit("rm", "-f", "$tmp/DEBIAN/shlibs"); @@ -148,6 +150,9 @@ foreach my $package (@{$dh{DOPACKAGES}}) { while () { my ($library, $major); push @lib_files, $_; + if ($multiarch ne '' && $_ =~ m,/$multiarch/,) { + $is_multiarch=1; + } my $ret=`$objdump -p $_`; if ($ret=~m/\s+SONAME\s+(.+)\.so\.(.+)/) { # proper soname format @@ -240,6 +245,9 @@ foreach my $package (@{$dh{DOPACKAGES}}) { doit("rm", "-f", "$tmp/DEBIAN/symbols"); } } + if ($is_multiarch) { + addsubstvar($package, "misc:Pre-Depends", "multiarch-support"); + } } =head1 SEE ALSO -- cgit v1.2.3