Friday, 3 August 2018

Re: RFC: baseline requirements for Ubuntu rootfs: xattrs and fscaps

On Wed, Aug 01, 2018 at 05:58:56PM -0700, Steve Langasek wrote:
> This will require bugfixes in various places, but ideally on a one-time
> basis only. The primary areas of concern are:

I think launchpad-buildd needs a couple of fixes for this, but there are
some things to fix that aren't quite one-liners.

Firstly, we need to pass --xattrs-include=* when unpacking chroots.
That much is straightforward.

Secondly, the machinery that creates Launchpad build chroots needs to
pass --xattrs. That machinery is currently Adam Conrad's shell history,
but we're in the process of moving it into livecd-rootfs, and that will
need a minor adjustment.

The third problem is the one that isn't trivial. Some Launchpad builds
are run in LXD containers rather than in chroots, and in those cases we
first mangle the chroot tarball into a shape that can be imported by
LXD. We currently do this using Python 2.7's tarfile module, but as far
as I can see that doesn't quite support xattrs properly due to encoding
issues. I can think of a couple of options:

* We could take some approach like to
monkey-patch tarfile, or we could finish the upgrade of
launchpad-buildd to Python 3 (which is within reach). In either
case, we'd need to work out how to invoke tarfile correctly to
preserve xattrs; I think that's probably a fairly small change, but
it'll require some investigation and testing.

* Once we've completed the move of chroot creation into livecd-rootfs,
it may be practical to have that produce LXD containers too, and in
that case we could drop the Python-based mangling. In the long term
this would be preferable because it would save a minute or two at the
start of many builds.

None of this is super-urgent since I don't think there's anything in the
chroots that requires xattrs, but we should remember to fix it to avoid
future surprises.

Colin Watson []

ubuntu-devel mailing list
Modify settings or unsubscribe at: