Multiarch – a proposal and an implementation
Tollef Fog Heen
tfheen@debian.org
Contents
- What is multiarch
- dpkg FeatureDependencies
- Why multiarch
- Why not multiarch
- How to do multiarch
- Current state
- Questions (and hopefully answers)
What is multiarch
- Scope
- File system hierarchy
-
- /usr/lib/$arch-$os
- /usr/include/$arch-$os
- Package system implementation
dpkg FeatureDependencies
- Depend on features rather than versions
Build-Depends: debhelper:<dh_installman dh_desktop>
- System-provided packages
Package: system$
Features: amd64, i386, linux
- dpkg-shlibdeps adds special depends on system$:
Package: foo
Depends: system$:i386, libc6:i386
Why multiarch
- Non-portable programs (Openoffice.org)
- Embedded development/cross-compilation
- Proprietary plugins and software (flash plugins)
- Because we can, it's cool and elegant
Why not multiarch
- Complexity
- Core changes needed:
- dpkg
- toolchain (gcc, glibc, binutils
- dak/katie
How to do multiarch
- File system layout
./configure --prefix=/usr
--includedir=/usr/include/$(DEB_HOST_ARCH_CPU)-$(DEB_HOST_ARCH_OS) --libdir=/usr/lib/$(DEB_HOST_ARCH_CPU)-$(DEB_HOST_ARCH_OS)
- Split packages
Current status
Questions (and answers)