Issues for tools using dpkg and/or apt
Enabling MultiArch support in tools using dpkg and / or apt can be problematic during the conversion as dpkg and apt are at different stages in the migration in Debian compared to Ubuntu. Currently, the version of dpkg in Debian (1.16.0.3) does not allow the multiarch configuration variable to be set, whereas the version in Ubuntu (1.16.0.3ubuntu3) and versions >= 1.16.0~ubuntu4 do allow the variable to be set.
With incompatible versions, dpkg fails entirely:
$ cat /etc/dpkg/dpkg.cfg.d/test foreign-architecture armel $ dpkg -l dpkg dpkg: error: configuration error: /etc/dpkg/dpkg.cfg.d/test:1: unknown option 'foreign-architecture' $ sudo rm /etc/dpkg/dpkg.cfg.d/test $ dpkg -l dpkg ... ======================= ii dpkg 1.16.0.3 Debian package management system
This means that tools wanting to implement multiarch support in chroots etc. will need to carefully check dpkg support which will involve checking versions based on the value retrieved from lsb_release -is or use dpkg-vendor. lsb_release is installed by default in Ubuntu, so if it is not present, tools can decide to assume Debian and then check the dpkg version appropriately.
Issues and confusion with native vs cross builds
MultiArch is a native build process - packages are to be built natively using the new paths internally and for the dependencies and will support installing natively built packages from multiple architectures side-by-side.
MultiArch is related to cross-building issues and is expected to make cross-building a lot easier because tools like apt will be able to calculate the dependency chains for installing cross dependencies.
However, there is no reason to delay implementing MultiArch on the basis of problems with cross-building. Indeed, in order to provide a cross-building method on a MultiArch base, a lot more packages need to be converted to MultiArch. The toolchains and tools used in cross-building need a critical mass of packages to be working in MultiArch before the changes to these tools themselves can be finalised.
Please do not confuse cross-building (supplying the --host argument to ./configure) with MultiArch (changing the paths in .install files etc.) - the two impact on each other but they are NOT the same problem.
Cross-building in multiarch will just do the right thing with regard to the paths - it was dpkg-cross which was doing the right thing in the wrong way and using different paths just because it got there first.
See also: http://lists.debian.org/debian-devel/2011/09/msg00277.html
