Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package transactional-update for 
openSUSE:Factory checked in at 2025-07-10 23:14:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transactional-update (Old)
 and      /work/SRC/openSUSE:Factory/.transactional-update.new.7373 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "transactional-update"

Thu Jul 10 23:14:55 2025 rev:120 rq:1291508 version:5.0.6

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes    
    2025-06-20 16:48:28.805953275 +0200
+++ 
/work/SRC/openSUSE:Factory/.transactional-update.new.7373/transactional-update.changes
      2025-07-10 23:15:07.012710100 +0200
@@ -1,0 +2,18 @@
+Wed Jul  9 14:32:31 UTC 2025 - Ignaz Forster <ifors...@suse.com>
+
+- Version 5.0.6
+  - Fix missing x-initrd.mount in fstab on migration [boo#1246139]
+    When migrating overlayfs based /etc to btrfs subvolumes, then
+    the attribute was not set - this may result in failures from
+    services operating on /etc during initrd phase such as SELinux
+    relabelling
+  - Optimize execution time of tests
+
+-------------------------------------------------------------------
+Fri Jul  4 11:53:08 UTC 2025 - Ignaz Forster <ifors...@suse.com>
+
+- Version 5.0.5
+  - Add support for kdump 2.1.0 [bsc#1243758]
+  - Integrate test to support `make check`
+
+-------------------------------------------------------------------

Old:
----
  transactional-update-5.0.4.tar.gz

New:
----
  transactional-update-5.0.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.0jgGhp/_old  2025-07-10 23:15:07.496730261 +0200
+++ /var/tmp/diff_new_pack.0jgGhp/_new  2025-07-10 23:15:07.496730261 +0200
@@ -26,7 +26,7 @@
 %{!?_distconfdir: %global _distconfdir %{_prefix}%{_sysconfdir}}
 
 Name:           transactional-update
-Version:        5.0.4
+Version:        5.0.6
 Release:        0
 Summary:        Transactional Updates with btrfs and snapshots
 License:        GPL-2.0-or-later AND LGPL-2.1-or-later
@@ -35,10 +35,14 @@
 Source0:        %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
 Source1:        transactional-update.check
 
+BuildRequires:  acl
+BuildRequires:  attr
 BuildRequires:  autoconf
 BuildRequires:  autoconf-archive
 BuildRequires:  automake
+BuildRequires:  bats
 BuildRequires:  docbook-xsl-stylesheets
+BuildRequires:  fakeroot
 BuildRequires:  fdupes
 %if %{?suse_version} <= 1500
 BuildRequires:  gcc10-c++
@@ -80,6 +84,7 @@
 Recommends:     rebootmgr
 Suggests:       tukitd = %{version}-%{release}
 Conflicts:      health-checker < 1.8
+Conflicts:      kdump < 2.1.0
 # Support for /etc as subvolume
 Conflicts:      read-only-root-fs < 1.0+git20250410
 Conflicts:      sdbootutil < 1+git20250409
@@ -353,4 +358,8 @@
 %config(noreplace) %{_sysconfdir}/zypp/systemCheck.d/transactional-update.check
 
 %check
+if ! %{__make} check; then
+  cat tests/test-suite.log
+  exit 1
+fi
 

++++++ transactional-update-5.0.4.tar.gz -> transactional-update-5.0.6.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.4/.gitignore 
new/transactional-update-5.0.6/.gitignore
--- old/transactional-update-5.0.4/.gitignore   2025-06-12 16:03:48.000000000 
+0200
+++ new/transactional-update-5.0.6/.gitignore   2025-07-09 16:28:10.000000000 
+0200
@@ -30,8 +30,11 @@
 libtool
 ltmain.sh
 m4
+tap-driver.sh
 test-driver
 test-suite.log
+tests/*.log
+tests/*.trs
 check-output.*
 tukit.pc
 tukitd
@@ -51,6 +54,8 @@
 man/transactional-update.timer.8.html
 man/transactional-update.conf.5.html
 man/transactional-update.index.html
+man/tukit.conf.5
+man/tukit.conf.5.html
 transactional-update-*.tar.*
 doc/html/*
 doc/transactional-update.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.4/NEWS 
new/transactional-update-5.0.6/NEWS
--- old/transactional-update-5.0.4/NEWS 2025-06-12 16:03:48.000000000 +0200
+++ new/transactional-update-5.0.6/NEWS 2025-07-09 16:28:10.000000000 +0200
@@ -2,6 +2,17 @@
 
 Copyright (C) 2016-2025 Thorsten Kukuk, Ignaz Forster et al.
 
+Version 5.0.6 (2025-07-09)
+* Fix missing x-initrd.mount in fstab on migration [boo#1246139]
+  When migrating overlayfs based /etc to btrfs subvolumes, then the
+  attribute was not set - this may result in failures from services
+  operating on /etc during initrd phase such as SELinux relabelling
+* Optimize execution time of tests
+
+Version 5.0.5 (2025-07-04)
+* Add support for kdump 2.1.0 [bsc#1243758]
+* Integrate test to support `make check`
+
 Version 5.0.4 (2025-06-12)
 * Don't override soft-reboot with hard reboot
 * Fix stdio when returning from selfupdate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.4/configure.ac 
new/transactional-update-5.0.6/configure.ac
--- old/transactional-update-5.0.4/configure.ac 2025-06-12 16:03:48.000000000 
+0200
+++ new/transactional-update-5.0.6/configure.ac 2025-07-09 16:28:10.000000000 
+0200
@@ -1,14 +1,15 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT([transactional-update],[5.0.4])
+AC_INIT([transactional-update],[5.0.6])
 # Increase on any interface change and reset revision
 LIBTOOL_CURRENT=6
 # On interface change increase if backwards compatible, reset otherwise
 LIBTOOL_AGE=2
 # Increase on *any* C/C++ library code change, reset at interface change
-LIBTOOL_REVISION=7
+LIBTOOL_REVISION=8
 AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE([foreign])
 AC_CONFIG_FILES([tukit.pc])
+AC_REQUIRE_AUX_FILE([tap-driver.sh])
 AC_PREFIX_DEFAULT(/usr)
 
 AC_SUBST(PACKAGE)
@@ -47,6 +48,7 @@
 AC_SUBST(DBUSSYSTEMBUSSERVICEDIR)
 
 AC_PROG_CXX
+AC_PROG_AWK
 AX_CXX_COMPILE_STDCXX_17(, mandatory)
 AC_PROG_CC
 AC_PROG_INSTALL
@@ -111,6 +113,11 @@
 AM_CONDITIONAL(ENABLE_REGENERATE_MAN,
        test "x$enable_man" != "xno" -a "x$with_doc" != "xno")
 
+AC_PATH_PROG([BATS], [bats])
+AC_PATH_PROG([FAKEROOT], [fakeroot])
+AS_IF([test -z "$BATS" -o -z "$FAKEROOT"], [AC_MSG_WARN([To run tests please 
install
+       bats and fakeroot.])])
+
 AC_CONFIG_FILES([Makefile lib/Makefile tukit/Makefile sbin/Makefile 
man/Makefile \
        systemd/Makefile logrotate/Makefile dracut/Makefile doc/Makefile \
        etc/Makefile dbus/Makefile snapper/Makefile tests/Makefile \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.4/man/Makefile.am 
new/transactional-update-5.0.6/man/Makefile.am
--- old/transactional-update-5.0.4/man/Makefile.am      2025-06-12 
16:03:48.000000000 +0200
+++ new/transactional-update-5.0.6/man/Makefile.am      2025-07-09 
16:28:10.000000000 +0200
@@ -4,7 +4,7 @@
 CLEANFILES = $(MANS) $(DATA) transactional-update.index.xml
 
 EXTRA_DIST = $(MANS) $(XMLS) $(DATA) custom-html.xsl make-man-index.py \
-       xml_helper.py transactional-update.index.xml
+       xml_helper.py transactional-update.index.xml custom-man.xsl
 
 XMLS = transactional-update.8.xml transactional-update.conf.5.xml 
tukit.conf.5.xml
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-5.0.4/sbin/transactional-update.in 
new/transactional-update-5.0.6/sbin/transactional-update.in
--- old/transactional-update-5.0.4/sbin/transactional-update.in 2025-06-12 
16:03:48.000000000 +0200
+++ new/transactional-update-5.0.6/sbin/transactional-update.in 2025-07-09 
16:28:10.000000000 +0200
@@ -1287,25 +1287,21 @@
 
     if [ ${SETUP_KDUMP} -eq 1 ]; then
         if [ -z "${KDUMP_LOW}" ]; then
-            KDUMP_CALIBRATION="$(tukit -q call "${SNAPSHOT_ID}" kdumptool 
calibrate)"
-            KDUMP_LOW="$(echo "$KDUMP_CALIBRATION" | grep ^Low: | cut -d ' ' 
-f 2)"
-            KDUMP_HIGH="$(echo "$KDUMP_CALIBRATION" | grep ^High: | cut -d ' ' 
-f 2)"
-        fi
-
-        if [[ ${KDUMP_HIGH} -gt 0 ]]; then
-                KDUMP_PARAM="crashkernel=${KDUMP_LOW}M,low 
crashkernel=${KDUMP_HIGH}M,high"
+             KDUMP_PARAM="auto"
         else
-                KDUMP_PARAM="crashkernel=${KDUMP_LOW}M"
+            if [[ ${KDUMP_HIGH} -gt 0 ]]; then
+                 KDUMP_PARAM="crashkernel=${KDUMP_LOW}M,low 
crashkernel=${KDUMP_HIGH}M,high"
+            else
+                 KDUMP_PARAM="crashkernel=${KDUMP_LOW}M"
+            fi
         fi
+        tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" sed -i -e 
's/^KDUMP_CRASHKERNEL=.*/KDUMP_CRASHKERNEL="'"${KDUMP_PARAM}"'"/' 
/etc/sysconfig/kdump
 
-        if is_bls; then
-            tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" sed -i -e 's/ 
*crashkernel[^ "]\+//g' -e 's|$| '"${KDUMP_PARAM}"'|' /etc/kernel/cmdline
-        else
-            tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" sed -i -e 
'/^GRUB_CMDLINE_LINUX_DEFAULT=/s/ *crashkernel[^ "]\+//g' -e 
's|\(^GRUB_CMDLINE_LINUX_DEFAULT=.*\)"|\1 '"${KDUMP_PARAM}"'"|g' 
"/etc/default/grub"
-            REWRITE_GRUB_CFG=1
-        fi
+        # prevent kdump-commandline.service from trying to update bootloader
+        tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" sed -i -e 
's/^KDUMP_UPDATE_BOOTLOADER=.*/KDUMP_UPDATE_BOOTLOADER="false"/' 
/etc/sysconfig/kdump
 
         tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" systemctl enable kdump
+        tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" kdumptool commandline -u
     fi
 
     if [ ${REWRITE_INITRD} -eq 1 ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.4/snapper/50-etc 
new/transactional-update-5.0.6/snapper/50-etc
--- old/transactional-update-5.0.4/snapper/50-etc       2025-06-12 
16:03:48.000000000 +0200
+++ new/transactional-update-5.0.6/snapper/50-etc       2025-07-09 
16:28:10.000000000 +0200
@@ -75,12 +75,15 @@
 
     # Add entry for /etc
     sed -i '/^overlay[[:space:]]\+\/etc[[:space:]]/d' 
"/.snapshots/${snapshot}/snapshot/etc/fstab"
-    echo "/etc /etc none bind 0 0" >> 
"/.snapshots/${snapshot}/snapshot/etc/fstab"
+    echo "/etc /etc none bind,x-initrd.mount 0 0" >> 
"/.snapshots/${snapshot}/snapshot/etc/fstab"
 
     # Clean up potential conflicting overlay cruft
     rm -rf "/var/lib/overlay/${snapshot}"
   fi
 
+  # Bugfix: Older versions didn't include the x-initrd.mount flag
+  awk -i inplace '$2 == "/etc" && $4 !~ /x-initrd.mount/ { $4 = $4 
",x-initrd.mount" } { print }' /etc/fstab
+
   reset_snapshot_writability
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.4/tests/Makefile.am 
new/transactional-update-5.0.6/tests/Makefile.am
--- old/transactional-update-5.0.4/tests/Makefile.am    2025-06-12 
16:03:48.000000000 +0200
+++ new/transactional-update-5.0.6/tests/Makefile.am    2025-07-09 
16:28:10.000000000 +0200
@@ -1,7 +1,12 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 # SPDX-FileCopyrightText: Copyright SUSE LLC
 
-TESTS = etc_changes.sh
-check_SCRIPTS = etc_changes.sh
+BATS_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/tap-driver.sh
+AM_BATS_LOG_DRIVER_FLAGS = -- bats --tap --filter-tags '!needroot' --output
+ROOT_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/tap-driver.sh
+AM_ROOT_LOG_DRIVER_FLAGS = -- fakeroot bats --tap --filter-tags 'needroot' 
--output
 
-EXTRA_DIST = $(SCRIPTS)
+TEST_EXTENSIONS = .bats .root
+TESTS = etc_changes.bats etc_changes_as.root
+
+EXTRA_DIST = $(TESTS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.4/tests/etc_changes.bats 
new/transactional-update-5.0.6/tests/etc_changes.bats
--- old/transactional-update-5.0.4/tests/etc_changes.bats       2025-06-12 
16:03:48.000000000 +0200
+++ new/transactional-update-5.0.6/tests/etc_changes.bats       2025-07-09 
16:28:10.000000000 +0200
@@ -37,12 +37,9 @@
 }
 
 syncTimestamps() {
-       local referencefile
+       local referencedate="$(date -d "-10 seconds" +"%Y%m%d%H%M.%S")"
        for file in "$@"; do
-               if [ -z "${referencefile}" ]; then
-                       referencefile="${file}"
-               fi
-               touch --reference="${referencefile}" -- "$file"
+               touch --no-dereference -t "${referencedate}" -- "$file"
        done
 }
 
@@ -96,14 +93,12 @@
 
 @test "File contents and properties" {
        shopt -s globstar dotglob
-       FILES=(File0.txt File1.txt File2.txt File3.txt File4.txt File5.txt 
File6.txt File7.txt File8.txt)
+       FILES=(File0.txt File1.txt File2.txt File3.txt File4.txt File5.txt)
        createFilesIn "${mockdir_old_etc}" "${FILES[@]}"
        createFilesIn "${mockdir_new_etc}" "${FILES[@]}"
        createFilesIn "${mockdir_syncpoint}" "${FILES[@]}"
        syncTimestamps "${mockdir_old_etc}"/** "${mockdir_new_etc}"/** 
"${mockdir_syncpoint}"/**
 
-       sleep 2 # Sleep for one second to get different UNIX timestamps on file 
modifications
-
        # File contents (added)
        echo "more file contents" >> "${mockdir_old_etc}/${FILES[0]}"
        touch --reference="${mockdir_syncpoint}/${FILES[0]}" 
"${mockdir_old_etc}/${FILES[0]}"
@@ -122,10 +117,6 @@
        chmod 777 "${mockdir_old_etc}/${FILES[5]}"
        touch --reference="${mockdir_syncpoint}/${FILES[5]}" 
"${mockdir_new_etc}/${FILES[5]}"
 
-       # Ownership
-       chown :audio "${mockdir_old_etc}/${FILES[6]}"
-       touch --reference="${mockdir_syncpoint}/${FILES[6]}" 
"${mockdir_new_etc}/${FILES[6]}"
-
        run $totest --keep-syncpoint "${mockdir_old_etc}" "${mockdir_new_etc}" 
"${mockdir_syncpoint}"
 
        echo "# Verifying appending contents to 'File0.txt' is detected"
@@ -140,8 +131,6 @@
        [[ "${lines[*]}" != *'"./File4.txt"'* ]]
        echo "# Verifying changing permissions of 'File5.txt' is detected"
        [[ "${lines[*]}" == *'File changed: 
"'${mockdir_old_etc}'/./File5.txt"'* ]]
-       echo "# Verifying changing group of 'File6.txt' is detected"
-       [[ "${lines[*]}" == *'File changed: 
"'${mockdir_old_etc}'/./File6.txt"'* ]]
 
        echo "# Verify changes to just atime are ignored"
        # The human-readable %x/%y format has higher precision than %X/%Y
@@ -156,8 +145,27 @@
        [ "$(stat -c %y "${mockdir_new_etc}/${FILES[3]}")" != "$(stat -c %y 
"${mockdir_syncpoint}/${FILES[3]}")" ]
        echo "# Verify that mode changes are detected and applied properly"
        [ "$(stat -c %a "${mockdir_new_etc}/${FILES[5]}")" = "777" ]
+
+       rm -r "${mockdir_syncpoint}"
+}
+
+# bats test_tags=needroot
+@test "File contents and properties (with fakeroot)" {
+       shopt -s globstar dotglob
+       FILES=(File0.txt)
+       createFilesIn "${mockdir_old_etc}" "${FILES[@]}"
+       createFilesIn "${mockdir_new_etc}" "${FILES[@]}"
+       createFilesIn "${mockdir_syncpoint}" "${FILES[@]}"
+       syncTimestamps "${mockdir_old_etc}"/** "${mockdir_new_etc}"/** 
"${mockdir_syncpoint}"/**
+
+       # Ownership - running in fakeroot because the user may not be part of 
any non-default group
+       chown :audio "${mockdir_old_etc}/${FILES[0]}"
+       touch --reference="${mockdir_syncpoint}/${FILES[0]}" 
"${mockdir_new_etc}/${FILES[0]}"
+
+       run $totest --keep-syncpoint "${mockdir_old_etc}" "${mockdir_new_etc}" 
"${mockdir_syncpoint}"
+
        echo "# Verify that owner changes are detected and applied properly"
-       [ "$(stat -c %G "${mockdir_new_etc}/${FILES[6]}")" = "audio" ]
+       [ "$(stat -c %G "${mockdir_new_etc}/${FILES[0]}")" = "audio" ]
 
        rm -r "${mockdir_syncpoint}"
 }
@@ -168,7 +176,6 @@
        createFilesIn "${mockdir_new_etc}" "${FILES[@]}"
        createFilesIn "${mockdir_syncpoint}" "${FILES[@]}"
        syncTimestamps "${mockdir_old_etc}"/** "${mockdir_new_etc}"/** 
"${mockdir_syncpoint}"/**
-       sleep 2
 
        setfattr --name="user.test" --value="test" 
"${mockdir_old_etc}/${FILES[0]}"
        mkdir "${mockdir_old_etc}/Dir0"
@@ -198,8 +205,6 @@
        done
        syncTimestamps "${mockdir_old_etc}"/** "${mockdir_new_etc}"/** 
"${mockdir_syncpoint}"/**
 
-       sleep 2
-
        cd "${mockdir_old_etc}"
        echo "Test" > File1
        touch --no-dereference File3
@@ -239,8 +244,7 @@
                echo old > "${dir}/Dir7/ChangeInNew"
                echo old > "${dir}/Dir7/noChange"
        done
-
-       sleep 2
+       syncTimestamps "${mockdir_old_etc}"/** "${mockdir_new_etc}"/** 
"${mockdir_syncpoint}"/**
 
        # Create a new directory in both old and new
        mkdir "${mockdir_old_etc}/Dir2/DirInOld"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.4/tests/etc_changes_as.root 
new/transactional-update-5.0.6/tests/etc_changes_as.root
--- old/transactional-update-5.0.4/tests/etc_changes_as.root    1970-01-01 
01:00:00.000000000 +0100
+++ new/transactional-update-5.0.6/tests/etc_changes_as.root    2025-07-10 
23:15:07.564733094 +0200
@@ -0,0 +1 @@
+symbolic link to etc_changes.bats

Reply via email to