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
 

Reply via email to