Bug#545464: dpkg-cross: multiarch support
Package: dpkg-cross
Version: 2.5.3+adhoc
Severity: normal
Tags: patch
Hi,
this patch implements basic multiarch support by simply copying files in
/usr/{include,lib}/$DEB_HOST_GNU_ARCH to the destination package.
I am not 100% sure this will be sufficient for all packages to work,
although I think that packages that would expect us to do some
transformation here would also fail when Debian switches to multiarch.
Severity "normal" since this is urgent to get into Debian before eglibc
switches.
The patch might apply at an offset, as I built it on top of the ad-hoc
architecture definition patch.
Simon
-- Package-specific info:
-- (/etc/dpkg-cross/cross-compile not submitted) --
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.30-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages dpkg-cross depends on:
ii binutils-multiarch 2.19.51.20090827-1 Binary utilities that support mult
ii debconf [debconf-2 1.5.27 Debian configuration management sy
ii dpkg-dev 1.15.3.1+adhoc Debian package development tools
ii libdebian-dpkgcros 2.5.3+adhoc+multiarch functions to aid cross-compiling D
ii perl 5.10.0-25 Larry Wall's Practical Extraction
Versions of packages dpkg-cross recommends:
ii fakeroot 1.13 Gives a fake root environment
dpkg-cross suggests no packages.
-- debconf information:
* dpkg-cross/default-arch: None
diff -Nru dpkg-cross-2.5.3+adhoc/Debian/DpkgCross.pm dpkg-cross-2.5.3+adhoc+multiarch/Debian/DpkgCross.pm
--- dpkg-cross-2.5.3+adhoc/Debian/DpkgCross.pm 2009-09-04 16:43:39.000000000 +0200
+++ dpkg-cross-2.5.3+adhoc+multiarch/Debian/DpkgCross.pm 2009-09-07 12:52:54.000000000 +0200
@@ -404,6 +404,7 @@
$crosslib64 ||= $crosslib . "64";
$crosslib32 ||= $crosslib . "32";
+ $config{'crosstype'} = $deb_host_gnu_type;
$config{'crossbase'} = $crossbase;
$config{'crossprefix'} = $crossprefix;
$config{'crossdir'} = $crossdir;
diff -Nru dpkg-cross-2.5.3+adhoc/debian/changelog dpkg-cross-2.5.3+adhoc+multiarch/debian/changelog
--- dpkg-cross-2.5.3+adhoc/debian/changelog 2009-09-04 16:40:09.000000000 +0200
+++ dpkg-cross-2.5.3+adhoc+multiarch/debian/changelog 2009-09-07 12:29:12.000000000 +0200
@@ -1,3 +1,9 @@
+dpkg-cross (2.5.3+adhoc+multiarch) unstable; urgency=low
+
+ * Add multiarch support patch
+
+ -- Simon Richter <sjr@debian.org> Mon, 07 Sep 2009 12:28:55 +0200
+
dpkg-cross (2.5.3+adhoc) unstable; urgency=low
* Add ad-hoc arch definition patch
diff -Nru dpkg-cross-2.5.3+adhoc/dpkg-cross dpkg-cross-2.5.3+adhoc+multiarch/dpkg-cross
--- dpkg-cross-2.5.3+adhoc/dpkg-cross 2009-09-04 16:41:18.000000000 +0200
+++ dpkg-cross-2.5.3+adhoc+multiarch/dpkg-cross 2009-09-07 12:52:02.000000000 +0200
@@ -215,7 +215,7 @@
@keepdeps $dpkg_statfile $progname $debname $anyway $cross2cross
$crossdir $crosslib $crosslib64 $crosslib32 $crossinc $data $len
$retval $dpkg_cmd $mode $pkg @exlist $conffile $removedeps $keepdeps
-$DPKGCROSSVERSION $keep_temp $gnuarch);
+$DPKGCROSSVERSION $keep_temp $gnuarch $crosstype);
$dpkg_statfile = "/var/lib/dpkg/status";
&read_config;
@@ -721,6 +721,7 @@
return 1;
}
my $config = &get_config;
+ $crosstype = $$config{'crosstype'};
$crossinc = $$config{'crossinc'};
$crossdir = $$config{'crossdir'};
$crosslib = $$config{'crosslib'};
@@ -765,6 +766,10 @@
}
close(FROM);
close(TO);
+ } elsif (m:^/usr/include/$crosstype/:) {
+ link_file("$src$_", "$dst$_") or goto fail;
+ } elsif (m:^/usr/lib/$crosstype/:) {
+ link_file("$src$_", "$dst$_") or goto fail;
} elsif (m:^/usr(/X11R6)?/include/:) {
# regular file under /usr/include or /usr/X11R6/include
link_file("$src$_", "$dst$crossinc/$'") or goto fail;
Reply to: