Bootstrapping the archive for multiarch

This page documents the order in which certain steps need to happen when converting the Debian archive over to multiarch. The information is based on the experience with bootstrapping multiarch in Ubuntu natty.

  1. (./) Upload dpkg support for DEB_HOST_MULTIARCH (dpkg 1.16.0)

  2. Upload multiarch-aware versions of build tools:
    • (./) pkg-config (Bug 590992, Bug 482884)

    • (./) make-dfsg (Bug 618840)

    • (./) pmake (Bug 626877; needed LIBDIR change reverted, see Bug 628675, but this got superceded by eglibc multiarch-enabled upload)

    • (./) freebsd-buildutils (fixed in 8.2-1, but LIBDIR not switched yet).

    • (./) debhelper (Bug 617761)

    • cmake (Bug 618932 = Ubuntu bug 737137)

    • (./) openjdk-6 (Bug 620122, Ubuntu bug 737603)

    • (./) lintian warns about the unknown control field (Bug 617816) (lintian 2.5.0~rc2)

  3. Fix package management bugs:
  4. (./) Upload a "stage1" multiarch build of gcc-4.5, the default compiler *on i386* (not needed on other archs, where dpkg 1.16.0 does not change the multiarch path; so no additional upload is needed of other versions of gcc that are the default on other architectures)

  5. (./) Upload libffi to install headers to the right path on i386.

  6. Upload multiarch-enabled eglibc (uploaded, but failed to build on ia64 and hurd-i386).
  7. Upload freebsd-buildutils with switched LIBDIR to multiarch path.
  8. Upload libhwloc, liblouis, liblouisxml to install libs to the multiarch path on i386 to fix FTBFS of reverse-build-deps.
  9. Upload gnat-4.4 for full multiarch. (Must be uploaded before uploading gcc-4.4 because gnat-4.4 self-build-depends, and needs the symlinks from gcc-4.4-base to be functional). The new gnat-4.4 will not be usable until gcc-4.4 is updated. Uploaded, but waits on eglibc for ia64 and hurd-i386
  10. Upload gcc-4.6 (providing the runtime libraries). Keep symlinks for the original locations of the runtime libraries? Would be better to have not yet updated gcc-4.5 and gcc-4.4 packages working, or do live with shorten brokeness of the default compiler.
  11. Upload ecj for multiarch. (Must also be uploaded before gcc-4.4/gcj-4.4 because of a similar self-build-depends on those archs that use ecj1.)
  12. Upload gcc-4.5 and gcc-4.4 for full multiarch.
  13. Rebuild asis with the new gnat-4.4
  14. Upload gcj-4.6, gcj-4.4, and any other gcc frontends that don't self-build-depend, for full multiarch.
  15. Upload everything else :-)