Differences between revisions 9 and 10
Revision 9 as of 2011-03-21 06:00:00
Size: 7227
Editor: ?SteveLangasek
Comment:
Revision 10 as of 2011-03-23 01:08:56
Size: 7256
Editor: ?SteveLangasek
Comment:
Deletions are marked like this. Additions are marked like this.
Line 19: Line 19:
[[http://wiki.debian.org/Multiarch/Tuples|Tuple Naming Proposal]] <<BR>> Details of the naming scheme for Multiarch Tuples (used for install paths). [[http://wiki.debian.org/Multiarch/Tuples|Tuple Naming Proposal]] <<BR>> A proposal to implement a new tuple schema instead of GNU triplets for multiarch paths '''(ABANDONED)'''

Debian multiarch support

About

Multiarch is the term being used to refer to the capability of a system to install and run applications of multiple different binary targets on the same system. For example running a i386-linux-gnu application on an amd64-linux-gnu system. This example is the most common case, but many other working combinations are possible, such as armel and armhf.

Multiarch also simplifies cross-building, where foreign-architecture libraries and headers are needed on a system during building.

The existing proposals allow for the co-installation of libraries and headers for different architectures, but not (yet) binaries. So you can have either the i386 version of a binaries, or the amd64 version, but not both (on conventional /bin paths). All the dependencies will be installed and available for whatever programs are installed.

Multiarch is a significant and powerful development, and affect many processes and aspects of the system. The immediate practical effects are getting rid of the ia32-libs package, and allowing proper cross-architecture dependencies for cross-building.

It will first be working in Ubuntu Natty, and Debian Wheezy and the first used exclusively in the Debian armhf port.

Documentation

These documents define the implementation, and should contain everything you need to know.

Multiarch Specification
Main spec, detailing how files are laid out, how dependencies are defined, and how it works in combination with apt and dpkg

Tuple Naming Proposal
A proposal to implement a new tuple schema instead of GNU triplets for multiarch paths (ABANDONED)

Multiarch conversion howto
A maintainer-oriented document detailing how you can convert your library package over for multiarch paths.

Multiarch Cross-building Specification
How multiarch is used for cross-building, including the extensions to support cross- build-dependencies

Linker and multilib behaviour
Explanatory details on the linker, gcc, libc and multilib. Not strictly speaking part of the multiarch spec, but it explains why it works, and clarifies discussion on future developments.

There are many other now-superceded documents. Links exist below for anyone who cares about the history of development.

Resources

IRC channel: #multiarch on the oftc.net IRC network

There is no specific mailing list. Discussion is on lists/channels of affected packages and tools, such as dpkg, apt, gcc and general development lists (e.g. debian-devel)

Current Status

Debuting in Natty (and Wheezy).

Apt support is in Squeeze and Ubuntu Maverick

Gcc patches are here: https://code.launchpad.net/~vorlon/ubuntu/natty/gcc-4.5/multiarch

glibc patches are here: https://code.launchpad.net/~vorlon/ubuntu/natty/eglibc/multiarch

Dpkg support is available in alpha form here: git://git.debian.org/users/hertzog/dpkg.git

Tuple tool: https://code.launchpad.net/~vorlon/+junk/multiarch-tools

Future development

Adding support for co-installable binaries is a probable future extension, but is not part of the scope of the current multiarch work (in order for it only to take 7 years, not 15).

History

The genesis of Multiarch has been (very!) long, and the proposal has changed significantly along the way. Here are some of the dates when things happened, with links to the documents written at the time. These have all been superceded by the docs reference above.

  • 2011.02.22
  • 2011.02.15
  • 2010.09
    • Multiarch-ready apt (v0.8) has made it into squeeze. Dpkg wasn't quite ready unfortunately.
  • 2010.08.04
  • 2010.06.30
  • 2009.07.25
    • The info below is out of date and for historical value. See MultiarchSpec for the current cross-distro work.

  • 2008.06.23
    • Multiarch patches for dpkg 1.14.20 updated and uploaded to the Debian Multiarch Alioth Project patch tracker. Adds MA support except for dependency tracking.
  • 2006.02
    • FOSDEM Multiarch meeting
  • 2005.07
    • Multiarch talk at Debconf 5
  • 2004.05
    • Multiarch BOF at Debconf 4

Old Resources