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

More changes in emdebian-crush scripts (experimental)

The emdebian-tools binary package is to disappear in unstable (Provided
by a new emdebian-crush) - the renamed package has already gone through
NEW and is in experimental. Subsequent to the creation of that package,
I've also moved emdebuild out of emdebian-buildsupport (because the
recommended build method will now be dpkg-buildpackage -a or
pdebuild-cross) and into the new emdebian-crush package. The
recommended package for Emdebian Crush builds would then be
emdebian-buildsupport, at which point emdebian-buildsupport stops
depending on the Emdebian::Tools perl module and drops a load more
dependencies. i.e. Crush uses normal Debian source packages modified
with normal Debian source package tools and built using normal Debian
package building tools against our cross toolchains.

To replace the emdebuild --build-deps functionality, there's a new
script in emdebian-buildsupport called embuilddeps.

The emdebian-qa package is also disappearing - the bits still needed
for Crush are sufficiently small (the lintian checks) as to be
re-absorbed back into the relevant packages. 

emdebian-buildsupport will depend on pdebuild-cross as the new default
method for building packages for Emdebian Crush. pdebuild-cross is then
to gain support for reading the default architecture from the
dpkg-cross debconf questions, alongside existing support for specifying
the architecture directly in the pdebuild-cross config file
(the rest of the config file is compatible with pbuilder.rc). (Another
reason for multistrap not to complain if the config file contains
settings that it doesn't understand itself.)

pdebuild-cross is a wrapper around standard pbuilder and standard
pbuilder methods can be used with the cross building chroot - providing
you tell pbuilder to use the pdebuild-cross config file. (More on that
to appear on the Emdebian webpage(s) and manpages in due course.)

This allows "advanced" users - basically those who need to have more
than one cross-building toolchain in a pdebuild-cross chroot (i.e. me)
- to tweak their own cross chroot and preserve those changes for future

As these things start to converge towards possibly working, I've got
lots of changes heading into the website and I hope I'll have time to
update the Wiki too.

The old emdebian-tools (and emdebian-rootfs) sources have already been
moved aside in Emdebian SVN, from current/ into superceded/

The former branches have taken their place as trunk:

I'm unsure whether the scripts still in the emdebian-crush binary
package are that useful anymore. emsetup is largely pointless because
Crush doesn't use those methods anymore and the toolchain detection is
often broken. emsetup is broken because we're trying to get an
altogether better system running to get the toolchains into Debian and
toolchains other than those for Lenny suffer from various breakage
issues which emsetup cannot solve. emsource has been made redundant by
the change in direction within Crush. emdebuild is largely irrelevant
because the packages that are going to be cross-built within the
ongoing experiments for Crush don't need it and any scripts we need for
Emdebian Crush 3.0 will likely be based on pbuilder.

Note also that pdebuild-cross has integral support for changing away
from apt-cross and using Multiarch support in apt as and when it is
available, just by tweaking the pbuilder hooks and updating the cross

Therefore, I feel a summary is needed:

1. The recommended cross build environment for Debian would be
pdebuild-cross, whether you use any flavour of Emdebian or not. I'll be
promoting this as part of my talk at DebConf10, in the hope that
at least some maintainers will consider testing their own packages for
cross-build compatibility before uploading.

2. pdebuild-cross will produce the same Debian binary packages as when
pbuilder is used with a particular Debian source package, just
cross-built. (Needed for item 1.)

3. As a result of 1&2, Emdebian Crush, Grip and Baked flavours will all
be post-processed with emgrip - just as Grip is now. If you don't need
to change the binary files within the package, Grip it or Bake it. If
you want functional changes in the package binaries, modify the source
package in the normal Debian ways, cross-build it with pdebuild-cross
and then either Crush it or Bake it. The variations within the flavours
are implemented using DPKG_VENDOR which can also be used to create
bespoke variants.

4. I'll use Emdebian SVN to maintain my changes to the packages that
will be cross-built for my Emdebian Crush experiments and if those
work, we might get an Emdebian Crush 2.0 release on alpha, armel, mips,
mipsel, powerpc, sparc and s390 (i.e. the architectures for which we
have toolchains) - plus native builds on amd64 / a 32bit i386 chroot.
Most of this work is only likely to happen once Squeeze enters the
first part of the release freeze.

5. Local cross builds should either use dpkg-buildpackage -a (with a
toolchain installed on your main system) or pdebuild-cross. (Note, it
doesn't take much longer and it is a lot less painful to use

6. Most users won't need the emdebian-crush package - the recommended
start points for Emdebian will be:
	6.1 Emdebian Crush: emdebian-buildsupport & emdebian-grip
	6.2 Emdebian Grip : emdebian-grip

7. The recommended methods for preparing any Emdebian installation will
be Debian Installer (Grip) and multistrap (Grip, Crush & Baked).

8. The rest of the process that was used for Emdebian Crush 1.0 will

Hopefully, that will not just make sense, it could even work.


Neil Williams

Attachment: pgp2BFE6TrumS.pgp
Description: PGP signature

Reply to: