Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package combustion for openSUSE:Factory checked in at 2024-08-22 18:10:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/combustion (Old) and /work/SRC/openSUSE:Factory/.combustion.new.2698 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "combustion" Thu Aug 22 18:10:30 2024 rev:34 rq:1195111 version:1.4+git8 Changes: -------- --- /work/SRC/openSUSE:Factory/combustion/combustion.changes 2024-08-13 13:22:51.493281933 +0200 +++ /work/SRC/openSUSE:Factory/.combustion.new.2698/combustion.changes 2024-08-22 18:10:33.934912494 +0200 @@ -1,0 +2,9 @@ +Wed Aug 21 12:12:40 UTC 2024 - Fabian Vogt <[email protected]> + +- Update to version 1.4+git8: + * Avoid misleading "Application returned with exit status 1" message + * CI: Add an ignition config which mounts /sysroot/home + * Bind mount API filesystems individually + * Check for leftover /sysroot mounts on combustion exit + +------------------------------------------------------------------- Old: ---- combustion-1.4+git4.obscpio New: ---- combustion-1.4+git8.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ combustion.spec ++++++ --- /var/tmp/diff_new_pack.UVALFO/_old 2024-08-22 18:10:34.442933593 +0200 +++ /var/tmp/diff_new_pack.UVALFO/_new 2024-08-22 18:10:34.442933593 +0200 @@ -17,7 +17,7 @@ Name: combustion -Version: 1.4+git4 +Version: 1.4+git8 Release: 0 Summary: System for initial configuration of appliances License: GPL-2.0-or-later ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.UVALFO/_old 2024-08-22 18:10:34.486935420 +0200 +++ /var/tmp/diff_new_pack.UVALFO/_new 2024-08-22 18:10:34.490935587 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/combustion.git</param> - <param name="changesrevision">ca13ffa33d710d93bd3b19ec5eda8762343ea7b7</param></service></servicedata> + <param name="changesrevision">4ad9eeaf43bf6eaf8268176e92ad3e4e1cc9fd91</param></service></servicedata> (No newline at EOF) ++++++ combustion-1.4+git4.obscpio -> combustion-1.4+git8.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/combustion-1.4+git4/combustion new/combustion-1.4+git8/combustion --- old/combustion-1.4+git4/combustion 2024-08-12 14:48:57.000000000 +0200 +++ new/combustion-1.4+git8/combustion 2024-08-21 14:08:27.000000000 +0200 @@ -170,6 +170,11 @@ while systemctl --quiet is-active sysroot.mount; do sleep 0.5; done fi fi + + if grep -w /sysroot /proc/*/mountinfo; then + echo "Warning: /sysroot still mounted somewhere" + fi + systemctl start sysroot.mount } @@ -214,13 +219,6 @@ systemctl start sysroot-usr.mount fi -# Care needs to be taken that umount -R /sysroot later works as expected, -# taking mount propagation and other processes in private mount namespaces into account. -# Ideally combustion runs in its own mount namespace, but the needed redesign breaks -# some subtle interactions with the outside. -# Make /sysroot private so that the next mounts are not visible in other namespaces. -mount --make-private /sysroot - # Have to take care of x-initrd.mount first and from the outside. # Note: ignition-kargs-helper calls combustion but already mounted those itself. awk '$1 !~ /^#/ && $4 ~ /(\<|,)x-initrd\.mount(\>|,)/ { if(system("findmnt /sysroot/" $2 " >/dev/null || mount --target-prefix /sysroot --fstab /sysroot/etc/fstab " $2) != 0) exit 1; }' /sysroot/etc/fstab @@ -238,10 +236,21 @@ fi ) -# Prepare chroot -for i in proc sys dev; do - # Make these rslave so that unmounting does not affect the real /$i - mount --make-rslave --rbind /$i /sysroot/$i +# Prepare chroot. +# Ideally this would just be --rbind /dev /sysroot/dev etc., but that has subtle downsides: +# By default, umount -R /sysroot would then propagate into the main /dev etc. and try to +# unmount /dev/shm/ etc. which must be avoided. Disabling mount propagation with +# --make-rslave interacts badly with other mount namespaces (used for PrivateMounts=true +# e.g. by systemd-udevd.service): The mounts propagate, but not all unmounts, leaving e.g. +# /sysroot/dev/shm/ mounted in udev's mnt context. To avoid all that, just bind mount +# everything individually, then it can be unmounted without caring about propagation. +# Alternatives are +# a) mount --bind --make-private /sysroot /sysroot on itself, but then e.g. udev doesn't +# see the same /sysroot as us +# b) Run combustion in its own mount namespace, but the needed redesign breaks some +# subtle interactions with the outside. +findmnt -nrvo TARGET | grep -E '^/(sys|proc|dev)(/|$)' | while read i; do + mount --bind "$i" "/sysroot/$i" done # Mount everything we can, errors deliberately ignored @@ -270,7 +279,7 @@ ./script echo \$? > "${exchangedir}/retval" # Snapshot got touched while the policy isn't active, needs relabeling again. - [ -e /etc/selinux/.relabelled ] && >> /etc/selinux/.autorelabel + if [ -e /etc/selinux/.relabelled ]; then >> /etc/selinux/.autorelabel; fi EOF echo "transactional-update failed" exit 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/combustion-1.4+git4/test/config.ign new/combustion-1.4+git8/test/config.ign --- old/combustion-1.4+git4/test/config.ign 1970-01-01 01:00:00.000000000 +0100 +++ new/combustion-1.4+git8/test/config.ign 2024-08-21 14:08:27.000000000 +0200 @@ -0,0 +1,18 @@ +{ + "ignition": { + "version": "3.2.0" + }, + "storage": { + "filesystems": [ + { + "device": "/dev/disk/by-label/ROOT", + "format": "btrfs", + "mountOptions": [ + "subvol=/@/home" + ], + "path": "/home", + "wipeFilesystem": false + } + ] + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/combustion-1.4+git4/test/test.sh new/combustion-1.4+git8/test/test.sh --- old/combustion-1.4+git4/test/test.sh 2024-08-12 14:48:57.000000000 +0200 +++ new/combustion-1.4+git8/test/test.sh 2024-08-21 14:08:27.000000000 +0200 @@ -37,7 +37,7 @@ # Prepare the temporary dir: Install combustion and copy resources. testdir="$(dirname "$0")" make -C "${testdir}/.." install "DESTDIR=${tmpdir}/install" -cp "${testdir}/testscript" "${tmpdir}" +cp "${testdir}/"{testscript,config.ign} "${tmpdir}" cd "$tmpdir" # Download latest MicroOS image @@ -82,7 +82,9 @@ mkdir -p configdrv/combustion/ cp testscript configdrv/combustion/script -/sbin/mkfs.ext4 -F -d configdrv -L IGNITION combustion.raw 16M +mkdir -p configdrv/ignition/ +cp config.ign configdrv/ignition/config.ign +/sbin/mkfs.ext4 -F -d configdrv -L ignition combustion.raw 16M timeout 300 qemu-system-x86_64 "${QEMU_BASEARGS[@]}" -drive if=virtio,file=openSUSE-MicroOS.x86_64-kvm-and-xen.qcow2 \ -kernel vmlinuz -initrd initrd -append "root=LABEL=ROOT console=ttyS0 quiet systemd.show_status=1 systemd.log_target=console systemd.journald.forward_to_console=1 rd.emergency=poweroff rd.shell=0" \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/combustion-1.4+git4/test/testscript new/combustion-1.4+git8/test/testscript --- old/combustion-1.4+git4/test/testscript 2024-08-12 14:48:57.000000000 +0200 +++ new/combustion-1.4+git8/test/testscript 2024-08-21 14:08:27.000000000 +0200 @@ -27,6 +27,9 @@ set -euxo pipefail exec &>/dev/ttyS0 trap '[ $? -eq 0 ] || poweroff -f' EXIT +if journalctl --no-pager | grep "/sysroot still mounted somewhere"; then + exit 1 +fi mount -t 9p -o trans=virtio tmpdir /mnt touch /mnt/done umount /mnt ++++++ combustion.obsinfo ++++++ --- /var/tmp/diff_new_pack.UVALFO/_old 2024-08-22 18:10:34.590939740 +0200 +++ /var/tmp/diff_new_pack.UVALFO/_new 2024-08-22 18:10:34.590939740 +0200 @@ -1,5 +1,5 @@ name: combustion -version: 1.4+git4 -mtime: 1723466937 -commit: ca13ffa33d710d93bd3b19ec5eda8762343ea7b7 +version: 1.4+git8 +mtime: 1724242107 +commit: 4ad9eeaf43bf6eaf8268176e92ad3e4e1cc9fd91
