[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Cross-building transition breakage

At the Emdebian ARM sprint [0], cross-building experiments on a
Multi-Arch base are going fairly well. It is looking like the hacks in
dpkg-cross may finally be avoidable, possibly before Wheezy gets
released. Elsewhere, debhelper has been updated to allow dh_strip and
other tools to work directly with the binutils package from the
cross-building toolchain and not to need binutils-multiarch any more.
dpkg-cross has been updated to only Suggest binutils-multiarch, which
makes room for more architectures to be covered by binutils-multiarch
(which, therefore, will be getting quite a lot bigger quite soon).

Cross-building in Debian is therefore entering a period of transition
and the old ways of dpkg-cross - and the tools it has spawned like
apt-cross, xapt, pdebuild-cross and others - will be gradually
side-lined and finally rendered obsolete. Like all transitions, there
will be breakage, there will be pain, there will be things which don't
cross-build now and which have no prospect of being fixed until the
transition is deeply entrenched. There are packages which used to
cross-build and which will stop cross-building and, again, won't be
fixable for months. Sadly, Squeeze released with cross-building
breakage too, due to changes within apt during the release freeze. A
Lenny chroot is possibly the best place to do cross-building for now.

This is a major transition. It WILL break things. Badly and often.

What's more, just because we decide to implement stuff using one
method now does not mean that the same method will even exist in a
month or two.

In other words, if you've got a working cross-build chroot or
installation currently and you absolutely need it to continue working
*leave it alone*.

Don't go changing real packages to use the changes we're trying out!

If you enjoy fixing stuff, don't mind pain and fancy risking your
system as I've been doing (unlinking /etc/, deleting /lib64 on amd64
or forcing package installation such that no shared libraries are
accessible any longer) then you are: a) insane and b) welcome to join
the work.

Check out the current state of things via the #emdebian channel on
oftc.net and the *very risky* Emdebian multiarch SVN experiments [1]
along with the even more risky Emdebian Multiarch Mirror [2], courtesy
of Steve McIntyre and Phil Hands.

CHROOT* and even if you do, don't come crying to me when it breaks
your entire system (even when used inside a chroot). (And yes, that is
a *when* it bricks your system, not an *if*).

No warranty, no guarantees, no promises except pain and breakage, none
of this is fit for any purpose whatsoever and we'll say when we
finally have something which might actually be useful. It is likely to
be many months but hopefully in time for Wheezy. Even in Wheezy, it''s
quite possible that we'll have a sane cross-building system but only a
handful of packages which can use it. This is because the new system
requires *large* changes within every source package in Debian which
either needs to be cross-built or is a build-dependency or runtime
dependency of a package to be cross-built.

[0] http://wiki.debian.org/Sprints/2011/EmdebianSprint
[1] http://www.emdebian.org/trac/browser/current/multiarch
[2] ftp://ftp.uk.debian.org/emdebian-multiarch/


Neil Williams

Reply to: