Comment 8 for bug 1844504

Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote : Re: xenial buildd chroots shouldn't have makedev

Colin,

Thanks for the details and launchpad/livecd-rootfs comments.
That's very good info.

> In a chroot built with my changes:
>
> crw-rw-rw- 0/0 5,2 2019-09-19 12:30 chroot-autobuild/dev/ptmx
> drwxr-xr-x 0/0 0 2019-09-19 12:30 chroot-autobuild/dev/pts/

That does look better :-)

> (That said, I was building my test on bionic, so the different
> debootstrap version could affect things.)

Can you please clarify? I didn't follow how this livecd-rootfs
fix is for Xenial but the build happened on Bionic.

Doesn't the build uses the livecd-rootfs from the 'host'?

(Sorry, it's all new stuff to me; and I see there are wrapper tools,
scripts, so not sure I'm aware of the 'right/valid' build steps.)

> What release were you building the rootfs on? Was makedev present in
> the resulting rootfs? What did /dev/pt* look like in it?

I've been building on Xenial to use the livecd-rootfs package from Xenial.

With this fix from xenial-proposed, makedev is not present (ok), but /dev/ptmx is still a symlink:

    $ tar tvf livecd.ubuntu-base.rootfs.tar.gz | grep dev/pt
    lrwxrwxrwx 0/0 0 2019-09-24 17:45 chroot-autobuild/dev/ptmx -> pts/ptmx
    drwxr-xr-x 0/0 0 2019-09-24 17:45 chroot-autobuild/dev/pts/

    $ lsb_release -cs
    xenial

    $ dpkg -s livecd-rootfs | grep ^Version:
    Version: 2.408.53

    $ sudo <...> lb build
    ...
    [2019-09-24 17:47:43] lb_chroot_early_hooks
    ...
    Removing makedev (2.3.1-93ubuntu1) ...
    ...

    $ grep '^Package: makedev' chroot/var/lib/dpkg/status
    $

    $ grep makedev chroot/var/log/dpkg.log
    ...
    2019-09-24 17:47:44 remove makedev:all 2.3.1-93ubuntu1 <none>
    ...
    2019-09-24 17:47:44 status not-installed makedev:all <none>

Per your comment above I tried to build on Bionic + series Xenial,
but that failed/didn't complete.

    ...
    [2019-09-24 18:02:50] lb_chroot_install-packages install
    P: Begin installing packages (install pass)...
    ...
    E: Package 'gpg' has no installation candidate
    E: Unable to locate package gpg-agent
    P: Begin unmounting filesystems...
    ...

I'm using these build steps -- please let me know if that's missing something
or if standard/required practice is different (eg, '--backend=lxc' in build logs).

    sudo apt-get install -y livecd-rootfs.

    mkdir -p auto/functions
    ln -s /usr/share/livecd-rootfs/live-build/auto/{clean,config,build} auto/
    echo 'set -x' > auto/functions/debug.sh

    lb clean --purge
         PROJECT=ubuntu-base SUBPROJECT=buildd ARCH=amd64 SUITE=xenial IMAGEFORMAT=none MIRROR=http://archive.ubuntu.com/ubuntu lb config
    sudo PROJECT=ubuntu-base SUBPROJECT=buildd ARCH=amd64 SUITE=xenial IMAGEFORMAT=none MIRROR=http://archive.ubuntu.com/ubuntu lb build