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-23 16:32:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transactional-update (Old)
 and      /work/SRC/openSUSE:Factory/.transactional-update.new.8875 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "transactional-update"

Wed Jul 23 16:32:18 2025 rev:121 rq:1295281 version:5.0.7

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes    
    2025-07-10 23:15:07.012710100 +0200
+++ 
/work/SRC/openSUSE:Factory/.transactional-update.new.8875/transactional-update.changes
      2025-07-23 16:32:40.505757981 +0200
@@ -1,0 +2,20 @@
+Wed Jul 23 10:54:17 UTC 2025 - Ignaz Forster <ifors...@suse.com>
+
+- Add journalmount.patch to bind mount systemd journal only when
+  available
+
+-------------------------------------------------------------------
+Mon Jul 21 10:06:43 UTC 2025 - Ignaz Forster <ifors...@suse.com>
+
+- Version 5.0.7
+  - Add sysext compatibility [bsc#1246140]
+  - Fix soft-reboot with btrfs subvolume based /etc
+  - Sync /etc layers also on soft-reboot
+  - Bind mount /run/systemd/journal to allow log calls
+    [gh#openSUSE/transactional-update#149]
+  - Use rootlesskit instead of fakeroot for tests
+  - Small coding style fixes
+- Temporarily disabling the testsuite because it doesn't run in
+  the build environment so far
+
+-------------------------------------------------------------------

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

New:
----
  journalmount.patch
  transactional-update-5.0.7.tar.gz

----------(New B)----------
  New:
- Add journalmount.patch to bind mount systemd journal only when
  available
----------(New E)----------

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

Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.m8pOvo/_old  2025-07-23 16:32:41.337792792 +0200
+++ /var/tmp/diff_new_pack.m8pOvo/_new  2025-07-23 16:32:41.337792792 +0200
@@ -26,7 +26,7 @@
 %{!?_distconfdir: %global _distconfdir %{_prefix}%{_sysconfdir}}
 
 Name:           transactional-update
-Version:        5.0.6
+Version:        5.0.7
 Release:        0
 Summary:        Transactional Updates with btrfs and snapshots
 License:        GPL-2.0-or-later AND LGPL-2.1-or-later
@@ -34,6 +34,7 @@
 URL:            https://github.com/openSUSE/transactional-update
 Source0:        %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
 Source1:        transactional-update.check
+Patch0:         journalmount.patch
 
 BuildRequires:  acl
 BuildRequires:  attr
@@ -42,7 +43,6 @@
 BuildRequires:  automake
 BuildRequires:  bats
 BuildRequires:  docbook-xsl-stylesheets
-BuildRequires:  fakeroot
 BuildRequires:  fdupes
 %if %{?suse_version} <= 1500
 BuildRequires:  gcc10-c++
@@ -50,6 +50,7 @@
 BuildRequires:  gcc-c++
 %endif
 BuildRequires:  libtool
+BuildRequires:  libxml2-tools
 BuildRequires:  libzypp
 BuildRequires:  make
 BuildRequires:  suse-module-tools
@@ -64,7 +65,6 @@
 BuildRequires:  pkgconfig(systemd)
 BuildRequires:  pkgconfig(udev)
 # Cannot use python3dist() names yet...
-BuildRequires:  libxml2-tools
 BuildRequires:  python3-lxml
 BuildRequires:  w3m
 BuildRequires:  xsltproc
@@ -358,8 +358,4 @@
 %config(noreplace) %{_sysconfdir}/zypp/systemCheck.d/transactional-update.check
 
 %check
-if ! %{__make} check; then
-  cat tests/test-suite.log
-  exit 1
-fi
 

++++++ journalmount.patch ++++++
diff --git a/lib/Transaction.cpp b/lib/Transaction.cpp
index 1977ea3..ebe96a7 100644
--- a/lib/Transaction.cpp
+++ b/lib/Transaction.cpp
@@ -177,7 +177,8 @@ void Transaction::impl::snapMount() {
     mntRun->setType("tmpfs");
     mntRun->setSource("tmpfs");
     dirsToMount.push_back(std::move(mntRun));
-    dirsToMount.push_back(std::make_unique<BindMount>("/run/systemd/journal"));
+    if (fs::exists("/run/systemd/journal"))
+        
dirsToMount.push_back(std::make_unique<BindMount>("/run/systemd/journal"));
     std::unique_ptr<Mount> mntVarTmp{new Mount{"/var/tmp"}};
     mntVarTmp->setType("tmpfs");
     mntVarTmp->setSource("tmpfs");

++++++ transactional-update-5.0.6.tar.gz -> transactional-update-5.0.7.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.6/ChangeLog 
new/transactional-update-5.0.7/ChangeLog
--- old/transactional-update-5.0.6/ChangeLog    1970-01-01 01:00:00.000000000 
+0100
+++ new/transactional-update-5.0.7/ChangeLog    2025-07-23 16:32:41.421796307 
+0200
@@ -0,0 +1 @@
+symbolic link to NEWS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.6/NEWS 
new/transactional-update-5.0.7/NEWS
--- old/transactional-update-5.0.6/NEWS 2025-07-09 16:28:10.000000000 +0200
+++ new/transactional-update-5.0.7/NEWS 2025-07-21 11:46:30.000000000 +0200
@@ -2,6 +2,15 @@
 
 Copyright (C) 2016-2025 Thorsten Kukuk, Ignaz Forster et al.
 
+Version 5.0.7 (2025-07-21)
+* Add sysext compatibility [bsc#1246140]
+* Fix soft-reboot with btrfs subvolume based /etc
+* Sync /etc layers also on soft-reboot
+* Bind mount /run/systemd/journal to allow log calls
+  [gh#openSUSE/transactional-update#149]
+* Use rootlesskit instead of fakeroot for tests
+* Small coding style fixes
+
 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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.6/configure.ac 
new/transactional-update-5.0.7/configure.ac
--- old/transactional-update-5.0.6/configure.ac 2025-07-09 16:28:10.000000000 
+0200
+++ new/transactional-update-5.0.7/configure.ac 2025-07-21 11:46:30.000000000 
+0200
@@ -1,11 +1,11 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT([transactional-update],[5.0.6])
+AC_INIT([transactional-update],[5.0.7])
 # 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=8
+LIBTOOL_REVISION=9
 AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE([foreign])
 AC_CONFIG_FILES([tukit.pc])
@@ -114,9 +114,9 @@
        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_PATH_PROG([ROOTLESSKIT], [rootlesskit])
+AS_IF([test -z "$BATS" -o -z "$ROOTLESSKIT"], [AC_MSG_WARN([To run tests 
please install
+       bats and rootlesskit.])])
 
 AC_CONFIG_FILES([Makefile lib/Makefile tukit/Makefile sbin/Makefile 
man/Makefile \
        systemd/Makefile logrotate/Makefile dracut/Makefile doc/Makefile \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.6/lib/Snapshot/Snapper.cpp 
new/transactional-update-5.0.7/lib/Snapshot/Snapper.cpp
--- old/transactional-update-5.0.6/lib/Snapshot/Snapper.cpp     2025-07-09 
16:28:10.000000000 +0200
+++ new/transactional-update-5.0.7/lib/Snapshot/Snapper.cpp     2025-07-21 
11:46:30.000000000 +0200
@@ -107,10 +107,14 @@
     std::smatch match;
 
     // snapper doesn't support the `apply` command for now, so use findmnt 
directly.
-    std::string id = Util::exec("findmnt --target /usr --raw --noheadings 
--output FSROOT --first-only --direction backward");
+    std::string id = Util::exec("findmnt --target /usr --raw --noheadings 
--output FSROOT --first-only --direction backward --types btrfs");
     bool found = std::regex_search(id, match, 
std::regex(".*.snapshots/(.*)/snapshot.*"));
-    if (!found)
-        throw std::runtime_error{"Couldn't determine current snapshot number"};
+    if (!found) {
+        id = Util::exec("findmnt --target / --raw --noheadings --output FSROOT 
--first-only --direction backward --types btrfs");
+        found = std::regex_search(id, match, 
std::regex(".*.snapshots/(.*)/snapshot.*"));
+        if (!found)
+            throw std::runtime_error{"Couldn't determine current snapshot 
number"};
+    }
     return match[1].str();
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.6/lib/Snapshot.hpp 
new/transactional-update-5.0.7/lib/Snapshot.hpp
--- old/transactional-update-5.0.6/lib/Snapshot.hpp     2025-07-09 
16:28:10.000000000 +0200
+++ new/transactional-update-5.0.7/lib/Snapshot.hpp     2025-07-21 
11:46:30.000000000 +0200
@@ -16,7 +16,7 @@
 
 class Snapshot {
 public:
-    Snapshot(std::string id): snapshotId{id} {};
+    Snapshot(std::string id): snapshotId{id} {}
     virtual ~Snapshot() = default;
     virtual void close() = 0;
     virtual void abort() = 0;
@@ -25,7 +25,7 @@
     virtual bool isReadOnly() = 0;
     virtual void setDefault() = 0;
     virtual void setReadOnly(bool readonly) = 0;
-    std::string getUid() { return snapshotId; };
+    std::string getUid() { return snapshotId; }
 protected:
     std::string snapshotId;
     std::string snapshotDate;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.6/lib/Transaction.cpp 
new/transactional-update-5.0.7/lib/Transaction.cpp
--- old/transactional-update-5.0.6/lib/Transaction.cpp  2025-07-09 
16:28:10.000000000 +0200
+++ new/transactional-update-5.0.7/lib/Transaction.cpp  2025-07-21 
11:46:30.000000000 +0200
@@ -177,6 +177,7 @@
     mntRun->setType("tmpfs");
     mntRun->setSource("tmpfs");
     dirsToMount.push_back(std::move(mntRun));
+    dirsToMount.push_back(std::make_unique<BindMount>("/run/systemd/journal"));
     std::unique_ptr<Mount> mntVarTmp{new Mount{"/var/tmp"}};
     mntVarTmp->setType("tmpfs");
     mntVarTmp->setSource("tmpfs");
@@ -524,8 +525,8 @@
             Util::exec("rsync --archive --inplace --xattrs --acls --exclude 
'fstab' --exclude 'etc.syncpoint' --delete --quiet '" + 
this->pImpl->bindDir.native() + "/etc/' " + targetRoot.native() + "/etc");
         }
 
-       TransactionalUpdate::Plugins plugins_without_transaction{nullptr};
-       plugins_without_transaction.run("finalize-post", 
pImpl->snapshot->getUid() + " " + "discarded");
+        TransactionalUpdate::Plugins plugins_without_transaction{nullptr};
+        plugins_without_transaction.run("finalize-post", 
pImpl->snapshot->getUid() + " " + "discarded");
         return;
     }
     if (fs::exists(getRoot() / "discardIfNoChange")) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-5.0.6/sbin/transactional-update.in 
new/transactional-update-5.0.7/sbin/transactional-update.in
--- old/transactional-update-5.0.6/sbin/transactional-update.in 2025-07-09 
16:28:10.000000000 +0200
+++ new/transactional-update-5.0.7/sbin/transactional-update.in 2025-07-21 
11:46:30.000000000 +0200
@@ -312,7 +312,7 @@
             log_error "ERROR during apply: Couldn't create mount directory."
         fi
 
-        sourcedevice="$(findmnt --target /usr --raw --noheadings --output 
SOURCE --nofsroot | tail -n 1)"
+        sourcedevice="$(findmnt --target / --raw --noheadings --output SOURCE 
--nofsroot --first-only)"
         # Mount new snapshot as base
         if ! mount "${sourcedevice}" "${APPLYWORKDIR}/mount"; then
             log_error "ERROR during apply: Mounting ${sourcedevice} to 
${APPLYWORKDIR}/mount failed."
@@ -362,6 +362,10 @@
             quit 2
         fi
 
+        if [ "$(systemd-sysext | tail -n +2 | grep " none " | wc -l)" -ne 2 ]; 
then
+            REFRESH_SYSEXTS=1
+        fi
+
         if [ -e /usr/libexec/transactional-update-sync-etc-state ] && [ -e 
"/.snapshots/${NEW_DEFAULT_SNAPSHOT_ID}/snapshot/etc/etc.syncpoint" ] ; then
             log_info "Syncing /etc state from old snapshot..."
             /usr/libexec/transactional-update-sync-etc-state /etc 
"/.snapshots/${NEW_DEFAULT_SNAPSHOT_ID}/snapshot/etc" 
"/.snapshots/${NEW_DEFAULT_SNAPSHOT_ID}/snapshot/etc/etc.syncpoint"
@@ -383,6 +387,11 @@
             rbinddir_done="${rbinddir_done} ${rbinddir}"
         done
 
+       if [ "${REFRESH_SYSEXTS}" ]; then
+            log_info "Refreshing sysexts..."
+            systemd-sysext refresh
+        fi
+
         umount --lazy "${APPLYWORKDIR}/mount"
         rmdir "${APPLYWORKDIR}/mount"
         rmdir "${APPLYWORKDIR}"
@@ -903,7 +912,10 @@
 fi
 
 BOOTED_SNAPSHOT_ID=$(grep subvol=/@/.snapshots/ /proc/mounts | grep "/ btrfs" 
| sed -e 's|.*.snapshots/\(.*\)/snapshot.*|\1|g')
-CURRENT_SNAPSHOT_ID=$(findmnt --target /usr --raw --noheadings --output FSROOT 
| tail -n 1 | sed -e 's|.*.snapshots/\(.*\)/snapshot.*|\1|g')
+CURRENT_SNAPSHOT_ID=$(findmnt --target /usr --raw --noheadings --output FSROOT 
--first-only --direction backward --types btrfs | sed -e 
's|.*.snapshots/\(.*\)/snapshot.*|\1|g')
+if [ -z "${CURRENT_SNAPSHOT_ID}" ]; then
+    CURRENT_SNAPSHOT_ID=$(findmnt --target / --raw --noheadings --output 
FSROOT --first-only --direction backward --types btrfs | sed -e 
's|.*.snapshots/\(.*\)/snapshot.*|\1|g')
+fi
 DEFAULT_SNAPSHOT_ID=$(btrfs subvolume get-default / | sed -e 
's|.*.snapshots/\(.*\)/snapshot|\1|g')
 RO_ROOT=$(btrfs property get / ro | sed -e 's|ro=||')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-5.0.6/systemd/prepare-nextroot-for-softreboot 
new/transactional-update-5.0.7/systemd/prepare-nextroot-for-softreboot
--- old/transactional-update-5.0.6/systemd/prepare-nextroot-for-softreboot      
2025-07-09 16:28:10.000000000 +0200
+++ new/transactional-update-5.0.7/systemd/prepare-nextroot-for-softreboot      
2025-07-21 11:46:30.000000000 +0200
@@ -20,7 +20,13 @@
 findmnt --noheadings / | awk '{ sub("subvol=/@/[^,]*", "", $4); 
sub("subvolid=[^,]*", "", $4); sub("\\[.*\\]", "", $2); system("mount -o \x27" 
$4 "\x27 " $2 " /run/nextroot") }'
 
 # Perform all mounts marked with x-initrd.mount inside /run/nextroot
-awk '$1 !~ /^#/ && $4 ~ /(\<|,)x-initrd\.mount(\>|,)/ {
+awk '$1 !~ /^#/ && $4 !~ /(\<|,)bind(\>|,)/ && $4 ~ 
/(\<|,)x-initrd\.mount(\>|,)/ {
        gsub(/sysroot\//,"run/nextroot/", $4); # The /etc overlay mount 
hardcodes /sysroot paths in options
        if(system("findmnt /run/nextroot" $2 " >/dev/null || mount 
--target-prefix /run/nextroot --fstab /run/nextroot/etc/fstab --options-mode 
ignore -o \x27" $4 "\x27 " $2) != 0) exit 1;
        }' /run/nextroot/etc/fstab
+
+if [ -d /run/nextroot/etc/etc.syncpoint ]; then
+  mount --bind /run/nextroot/etc /run/nextroot/etc
+  mount -o remount,rw /run/nextroot/etc
+  /usr/libexec/transactional-update-sync-etc-state /etc /run/nextroot/etc 
/run/nextroot/etc/etc.syncpoint
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transactional-update-5.0.6/systemd/prepare-nextroot-for-softreboot.service.in
 
new/transactional-update-5.0.7/systemd/prepare-nextroot-for-softreboot.service.in
--- 
old/transactional-update-5.0.6/systemd/prepare-nextroot-for-softreboot.service.in
   2025-07-09 16:28:10.000000000 +0200
+++ 
new/transactional-update-5.0.7/systemd/prepare-nextroot-for-softreboot.service.in
   2025-07-21 11:46:30.000000000 +0200
@@ -2,6 +2,7 @@
 Description=Mount next snapshot for soft-reboot
 DefaultDependencies=no
 Before=systemd-soft-reboot.service
+Before=basic.target
 
 [Service]
 ExecStart=@libexecdir@/prepare-nextroot-for-softreboot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.6/tests/Makefile.am 
new/transactional-update-5.0.7/tests/Makefile.am
--- old/transactional-update-5.0.6/tests/Makefile.am    2025-07-09 
16:28:10.000000000 +0200
+++ new/transactional-update-5.0.7/tests/Makefile.am    2025-07-21 
11:46:30.000000000 +0200
@@ -1,12 +1,9 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 # SPDX-FileCopyrightText: Copyright SUSE LLC
 
-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
+LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/tap-driver.sh
+LOG_DRIVER_FLAGS = -- rootlesskit bats --tap --output
 
-TEST_EXTENSIONS = .bats .root
-TESTS = etc_changes.bats etc_changes_as.root
+TESTS = etc_changes.bats
 
 EXTRA_DIST = $(TESTS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.6/tests/etc_changes.bats 
new/transactional-update-5.0.7/tests/etc_changes.bats
--- old/transactional-update-5.0.6/tests/etc_changes.bats       2025-07-09 
16:28:10.000000000 +0200
+++ new/transactional-update-5.0.7/tests/etc_changes.bats       2025-07-21 
11:46:30.000000000 +0200
@@ -150,7 +150,7 @@
 }
 
 # bats test_tags=needroot
-@test "File contents and properties (with fakeroot)" {
+@test "File contents and properties (needs root)" {
        shopt -s globstar dotglob
        FILES=(File0.txt)
        createFilesIn "${mockdir_old_etc}" "${FILES[@]}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-5.0.6/tests/etc_changes_as.root 
new/transactional-update-5.0.7/tests/etc_changes_as.root
--- old/transactional-update-5.0.6/tests/etc_changes_as.root    2025-07-23 
16:32:41.417796139 +0200
+++ new/transactional-update-5.0.7/tests/etc_changes_as.root    1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-symbolic link to etc_changes.bats

Reply via email to