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.
package Debian::Debhelper::Buildsystem::autoconf;
use strict;
package Debian::Debhelper::Buildsystem::autoconf;
use strict;
-use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value sourcepackage);
+use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value sourcepackage compat);
use base 'Debian::Debhelper::Buildsystem::makefile';
sub DESCRIPTION {
use base 'Debian::Debhelper::Buildsystem::makefile';
sub DESCRIPTION {
push @opts, "--infodir=\${prefix}/share/info";
push @opts, "--sysconfdir=/etc";
push @opts, "--localstatedir=/var";
push @opts, "--infodir=\${prefix}/share/info";
push @opts, "--sysconfdir=/etc";
push @opts, "--localstatedir=/var";
- push @opts, "--libexecdir=\${prefix}/lib/" . sourcepackage();
+ if (! compat(8)) {
+ push @opts, "--libdir=\${prefix}/lib/" . dpkg_architecture_value("DEB_HOST_MULTIARCH");
+ push @opts, "--libexecdir=\${prefix}/lib/" . dpkg_architecture_value("DEB_HOST_MULTIARCH") . "/" . sourcepackage();
+ } else {
+ push @opts, "--libexecdir=\${prefix}/lib/" . sourcepackage();
+ }
push @opts, "--disable-maintainer-mode";
push @opts, "--disable-dependency-tracking";
# Provide --host only if different from --build, as recommended in
push @opts, "--disable-maintainer-mode";
push @opts, "--disable-dependency-tracking";
# Provide --host only if different from --build, as recommended in
&is_make_jobserver_unavailable &clean_jobserver_makeflags
&cross_command);
&is_make_jobserver_unavailable &clean_jobserver_makeflags
&cross_command);
sub init {
my %params=@_;
sub init {
my %params=@_;
Package: debhelper
Architecture: all
Package: debhelper
Architecture: all
-Depends: ${perl:Depends}, ${misc:Depends}, perl-base (>= 5.10), file (>= 3.23), dpkg-dev (>= 1.14.19), html2text, binutils, po-debconf, man-db (>= 2.5.1-1)
+Depends: ${perl:Depends}, ${misc:Depends}, perl-base (>= 5.10), file (>= 3.23), dpkg-dev (>= 1.16.0), html2text, 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)
Description: helper programs for debian/rules
Suggests: dh-make
Conflicts: dpkg-cross (<< 1.18), python-support (<< 0.5.3), python-central (<< 0.5.6)
Description: helper programs for debian/rules
});
my $objdump=cross_command("objdump");
});
my $objdump=cross_command("objdump");
+my $multiarch=dpkg_architecture_value("DEB_HOST_MULTIARCH");
foreach my $package (@{$dh{DOPACKAGES}}) {
next if is_udeb($package);
foreach my $package (@{$dh{DOPACKAGES}}) {
next if is_udeb($package);
my %seen;
my $need_ldconfig = 0;
my %seen;
my $need_ldconfig = 0;
doit("rm", "-f", "$tmp/DEBIAN/shlibs");
doit("rm", "-f", "$tmp/DEBIAN/shlibs");
while (<FIND>) {
my ($library, $major);
push @lib_files, $_;
while (<FIND>) {
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
my $ret=`$objdump -p $_`;
if ($ret=~m/\s+SONAME\s+(.+)\.so\.(.+)/) {
# proper soname format
doit("rm", "-f", "$tmp/DEBIAN/symbols");
}
}
doit("rm", "-f", "$tmp/DEBIAN/symbols");
}
}
+ if ($is_multiarch) {
+ addsubstvar($package, "misc:Pre-Depends", "multiarch-support");
+ }