Re: pdebuild-cross fixes in wook-shed branch
+++ Neil Williams [2010-09-14 08:43 +0100]:
> On Tue, 14 Sep 2010 02:28:12 +0100
> Wookey <email@example.com> wrote:
> > * xapt-hook in pdebuild-cross: Fall back to control when xcontrol is not present, and just use the
> > build-deps in there. This is in fact the usual case for normal
> > crossbuilding.
> xcontrol had some nice features but was never fully supportable - any
> changes we need in build-dependency listings need to be done inside
> Debian. We need to push that more firmly.
Definately. xdeb's solution of interenal blacklists and whitelists is
awful too. This issue is the biggest impediment to 'cross-building
that just works' IMHO.
> > * xapt uses --force-yes so that it works in the presence of
> > unauthenticated repositories. Without this it installs nothing. This
> > was previously not set when cross-installing. I don't understand why,
> > but there may be an issue here.
> Repositories which do not use SecureApt are not supported by pbuilder
> (at least in Lenny), so this needs some care.
I didn't realise that. I did wonder if there was a nice pbuilder way
of getting apt::noauth copied into the chroot as part of the setup. Or
for multistrap to leave a config setting if it created the config
As mrvn pointed out one might be able to have per-repo config for this
(which would be nice) by using the deb [key=val] sytnax used for
This issue is slowly going away, but for example to use PPAs needs a
diferent auth mechanism from keyring-packages (apt-key add a key from a
URL), so suppport for that (in multistrap, then passed on to pbuilder
config somehow) is also on the cards here.
> It needs to be
> configurable by having an option (default:off) in the pdebuild-cross
> config file which is then passes an option to xapt (again, not the
I guess so, although what will we break in a disposable chroot by
using --force-yes anyway? It already does some of the time.
> > * xapt prints the apt commands it is going to execute so one can
> > debug effectively.
> Needs to be configurable - these processes are sufficiently noisy
I guess so. It was very frustrating when it wasn;t working because simply
nothing appeared. When when it does work you get plenty of noise from
apt anyway. Perhaps what would be nice is printing the command if it
gets a failure code back :-)
> > * xapt has been put back in its own package. It doesn't really work
> > in practice as part of pdebuild-cross. In order to ensure it is
> > installed in the build chroot it needs to be an installable package.
> > The existing code trying to copy it out of
> > /usr/share/pdebuild-cross/xapt doesn't work unless pdebuild-cross is
> > installed in the chroot and that seems confusing and excessive. That
> > should only be installed outside the chroot. Having a seaparate
> > package is neat and works nicely without copying files about.
> There wasn't time to get xapt through NEW and into Squeeze as a
> separate package. My plan was always to do this for Wheezy.
> When this is done *apt-cross will be orphaned* and all reverse
> dependencies of apt-cross will be converted to use xapt.
I think we need a bit more evidence that it works at least as well. I
think it probably does but if not I'm happy to keep apt-cross going
in maintenance mode for a while. Changing things too fast is not
helpful to users.
> Unless someone is insane enough to adopt apt-cross,
Well I'm currently trying to grok code dealing with exactly the same
problem in xdeb so looking after both is probably not a big deal.
I expect soon to turn all this pain into a _big_ push to simply fix
the problem in the package metadata then all this crappy code can be
binned. We've faffed about for long enough without actually solving
the problem at root.
I guess there is still the problem that even with xcontrol splitting
the deps up there were still issues. We need to have our story clear
on that front. Talk on thursday perhaps?
> > * There are only two lines that change between debian and ubuntu in
> > xapt (default mirror and default suites) so it's easy to make the tool
> Better to make use of configuration here because the default mirror for
> Debian either needs to be ftp.cdn.debian.net or user-specific.
> I see no difference between Debian and Ubuntu for pdebuild-cross other
> than the choice of mirrors.
Well the list of suites that get tacked on to default lines is
different. That could come fro the config lines rather than being
hard-coded - that would work.
That's all I've found so far. There are structural differences in
terms of how repos are laid out and split up arcross arches, but they
all boil down to 'changes in iniital and default repo lists' so we
should be able to move all this into config, which is clearly good.
There might be some code changes elsewhere because there is no
hard-coded 'unstable' concept - the name of unstable changes every 6
months. That doesn't matter for pdebuild-cross but will for other
> These are disposable pbuilder chroots - the more stuff you put in, the
> longer they take to unpack and to update. That's bad!
agreed although it's faster than downloading packages and installing
them during the build, so if lsb-release gets pulled in for nearly
every build anyway.... (currently apt-cross and all its deps get
installed on every build, and that's a big waste of time - I need to
make a proper mechanism to choose apt-cross/xapt or xdeb building in
the chroot then install the right tool once and leave it.
> One bonus of xapt over apt-cross is that xapt is a lot faster.
I'm not sure about that. It thinks less but if it ends up bringing in
much larger dependency trees then that will dominate the time. For
'higher up the tree' packages, this could be an issue. A local cache
is _really_ helpful.
> > At least some of the above should get back into trunk.
> .... modified slightly. Please revisit the lsb stuff. I really don't
> want that in either version.
OK. I'll take a look.
> That's OK, nothing much is going to happen in the Debian package until
> Squeeze is released.
Right. I'm going to try using this for a while and see how well it
actually works. Then I'll have a much better idea of where to go next.
Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM