Thanks Eric for reviewing the debdiffs. To answer your question I need to take a step back and explain how the supermin appliance is created and used, at least to the extend I've understood. Supermin appliances are tiny appliances similar to a virtual machines. Libguestfs tools depend on supermin to access and modify disk images. For example, in the test case of the bug description guestfish lunches a supermin appliance to mount the xenial disk image and operate on it.
The patch concerns the appliance and not the host system; it removes the resolved hook from the appliance tree. When libguestfs package is built some packages are copied from the host (along with their dependencies) to be included in the supermin appliance. Although systemd is not used inside the appliance it is listed into these packages and exists in the appliance. This is how we end up with the resolved hook in Ubuntu. Given that systemd is not used by the appliance removing the hook should not be an issue. AFAIK this hook exists only in Ubuntu, so on any other distro this patch will try to remove a non-existing file from the appliance, it will fail silently and execution will continue without affecting the functionality of the appliance. I tried to do what you suggest, first checking whether we run on Ubuntu and then remove the hook. However, this wouldn't work because the files which tell us the distro such as /etc/lsb-release is not present in the appliance. The appliance copies in some files from the build host and some from the host at runtime, however it does not copy in all of them. It is similar to the case in LP #1650740 where the /etc/fstab file was missing. -- You received this bug notification because you are a member of STS Sponsors, which is subscribed to the bug report. https://bugs.launchpad.net/bugs/1824236 Title: supermin/liguestfs fails to configure network Status in libguestfs package in Ubuntu: In Progress Status in supermin package in Ubuntu: Invalid Status in libguestfs source package in Bionic: In Progress Status in supermin source package in Bionic: Invalid Status in libguestfs source package in Cosmic: In Progress Status in supermin source package in Cosmic: Invalid Status in libguestfs source package in Disco: In Progress Status in supermin source package in Disco: Invalid Bug description: [Impact] libguestfs cannot configure network on Bionic onward. This bug is a combination of libguestfs/supermin package and /etc/dhcp/dhclient-enter-hooks.d/resolved script from systemd, present on Bionic onward. When supermin creates the appliance does chroot and executes its init script. If networking is enabled init will call dhclient sript to configure the network. On Bionic onward the make_resolv_conf function of dhclient_script is overwritten in /etc/dhcp/dhclient-eneter-hooks.d/resolved which before exiting restarts the systemd.resolved service. However, this happening in chroot environment fails with "System has not been booted with systemd as init system (PID 1). Can't operate." and network is left unconfigured. [Test Case] $ sudo guestfish -a xenial-server-cloudimg-amd64-disk1.img --network -v << EOF run mount /dev/sda1 / command 'apt update' EOF libguestfs: launch: program=guestfish libguestfs: launch: version=1.36.13 libguestfs: launch: backend registered: unix libguestfs: launch: backend registered: uml libguestfs: launch: backend registered: libvirt ... supermin: deleting initramfs files supermin: chroot Starting /init script ... ... + dhclient --version + dhclient eth0 System has not been booted with systemd as init system (PID 1). Can't operate. ... commandrvf: apt update WARNING: apt does not have a stable CLI interface. Use with caution in scripts. W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial/InRelease Temporary failure resolving 'archive.ubuntu.com' W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-updates/InRelease Temporary failure resolving 'archive.ubuntu.com' W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-backports/InRelease Temporary failure resolving 'archive.ubuntu.com' W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/xenial-security/InRelease Temporary failure resolving 'security.ubuntu.com' W: Some index files failed to download. They have been ignored, or old ones used instead. ... [Regression Potential] Minimal. The fix removes the /etc/dhcp/dhclient-eneter-hooks.d/resolved hook installed by systemd. systemd is not used inside the appliance so it should not cause any regression. [Other] Affects B,C,D,E. Upstream fix : https://github.com/libguestfs/libguestfs/commit/2bb6be333e6347d3f18856627d8ad8e50b8e5427 Workaround 1) Assume that libguestfs is installed, if not : $ sudo apt-get install libguestfs-tools 2) Move the base.tar.gz to a temp dir, extract and remove tarball $ sudo mv /usr/lib/x86_64-linux-gnu/guestfs/supermin.d/base.tar.gz ~/tempdir/ $ cd ~/tempdir $ sudo tar -xzvf base.tar.gz $ sudo rm base.tar.gz 3) Remove the etc/dhcp/dhclient-enter-hooks.d/resolved file $ sudo rm etc/dhcp/dhclient-enter-hooks.d/resolved 4) Create tarball again $ sudo tar -czvf base.tar.gz etc 5) Move it back to installation dir $ sudo mv base.tar.gz /usr/lib/x86_64-linux-gnu/guestfs/supermin.d/ 6) Clean cache $ sudo rm -rf /var/tmp/.guestfs* To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libguestfs/+bug/1824236/+subscriptions -- Mailing list: https://launchpad.net/~sts-sponsors Post to : [email protected] Unsubscribe : https://launchpad.net/~sts-sponsors More help : https://help.launchpad.net/ListHelp

