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

pdebuild-cross fixes in wook-shed branch



I found some bugs in xapt yesterday and have fixed them. I've put them
in a 'wook-shed' branch of emdebian-crush as I've diverged a fair way from trunk.

The imediate bug-fixes are:
* Ensure that apt source files that aren't called *.list are skipped.
  There was some broken code there (mine) which said 'skipped' but
  failed to say which file and in fact used it anyway.
  (This was fatal when combined with a multistrap bug which put 'main'
on the end of an apt-ftp-archive flat URL so tha teven after you fixed
it by editing the file, xapt tried to use the sources in the
file.list~ backup file and thus failed every time. And it already bit
me before - ence the first failed attempt at a fix)

* 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.

* xapt-hook in pdebuild-cross: I also included Build-depends-indep as well as build-depnds-tools
and build-depends. I'm not actually sure if that is right, but I think
it is, and for xapt is best to err on side of more, rather than less
(aprt from speed issues).

* 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. 

* xapt prints the apt commands it is going to execute so one can
debug effectively. 

* 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 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
compatible with both. I've done that, deciding which is which by
checking the lsb_release 'Distribution' (and defaulting to Debian if
lsb_release not present). Depending on lsb_release bring in
python-minimal, which is annoying, although in a chroot this isn't
really a big deal. We will be installing piles of stuff anyway. Hard
to say whether it's worth making it a dependency. In practice most
chroots seem to end up having lsb-release in them anyway. 

The branch is almost identical to the package going into Ubuntu
maverick.

At least some of the above should get back into trunk. The bug-fixes,
the xapt-hook changes so it does something useful for normal
cross-builds. We can argue about the rest but I think xapt does need
to go back in it's own package, having tried quite hard to use it the
other way for a while before giving up and finding it _much_ more
satisfactory as a separate, installable package. Similarly the support
for different distro-defaults is neat and we should probably put it in
to avoid maintaining a delta between distros. It could be used
elsewhere too, even if the lsb-release thing is a bit heavyweight.

Hope that's useful. I'm setting a build of 100 packages off now so
we'll see if xapt is actually any use in the real world... (or I might
just find more bugs in it). 

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


Reply to: