Compare commits

2 Commits
1.1 ... main

5 changed files with 171 additions and 16 deletions

14
journalmount.patch Normal file
View File

@@ -0,0 +1,14 @@
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");

Binary file not shown.

BIN
transactional-update-5.0.7.tar.gz LFS Normal file

Binary file not shown.

View File

@@ -1,3 +1,111 @@
-------------------------------------------------------------------
Wed Jul 23 10:54:17 UTC 2025 - Ignaz Forster <iforster@suse.com>
- Add journalmount.patch to bind mount systemd journal only when
available
-------------------------------------------------------------------
Mon Jul 21 10:06:43 UTC 2025 - Ignaz Forster <iforster@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
-------------------------------------------------------------------
Wed Jul 9 14:32:31 UTC 2025 - Ignaz Forster <iforster@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 <iforster@suse.com>
- Version 5.0.5
- Add support for kdump 2.1.0 [bsc#1243758]
- Integrate test to support `make check`
-------------------------------------------------------------------
Fri Jun 20 07:33:42 UTC 2025 - Ignaz Forster <iforster@suse.com>
- Add correct SELinux policy version dependency for SLE 16
-------------------------------------------------------------------
Thu Jun 12 14:05:51 UTC 2025 - Fabian Vogt <fvogt@suse.com>
- Version 5.0.4
- Don't override soft-reboot with hard reboot
- Fix stdio when returning from selfupdate [boo#1243910],
[gh#openSUSE/transactional-update#151]
-------------------------------------------------------------------
Thu Apr 24 12:16:53 UTC 2025 - Fabian Vogt <fvogt@suse.com>
- Version 5.0.3
- When continuing a transaction that was based on the running
system, sync new changes from /etc into the new snapshot.
This way it behaves as-if the snapshot was booted into
before continuing the transaction, which matches the
behaviour of versions < 5.0.
- Fix syncing of file times and ownership
- Do not sync /etc/etc.syncpoint/ into the running system
(or parent snapshot) when using --discard
-------------------------------------------------------------------
Thu Apr 17 10:58:57 UTC 2025 - Fabian Vogt <fvogt@suse.com>
- Version 5.0.2
- Fix continuing from an already booted snapshot
- Fix check for overlayfs when using tukit open with --discard
-------------------------------------------------------------------
Tue Apr 8 09:21:50 UTC 2025 - Fabian Vogt <fvogt@suse.com>
- Version 5.0.1
- Fix path to rebootmgrctl [bsc#1236908]
-------------------------------------------------------------------
Sun Jan 12 21:26:16 UTC 2025 - Ignaz Forster <iforster@suse.com>
- Version 5.0.0
- Rework /etc handling; instead of maintaining complex overlay
mount layers use a btrfs subvolume of the corresponding
snapshot instead.
Syncing changes before the reboot will be done by during boot
(or during apply) by transactional-update-sync-etc-state
instead. [jsc#SMO-367]
Also resolves: [boo#1140472],
[gh#openSUSE/transactional-update#117]
- Add EXPERIMENTAL support for performing updates using a
container image [gh#openSUSE/transactional-update#128]. Note
that this command is only available via
`transactional-update apply-oci ...` for now and cannot be
triggered from the API or D-Bus interface. Moreover the syntax
may and probably will change in future releases.
- Removed `status` command - it was disabled by default for a
long time already and unmaintained
- tukit: Fix snippet directory in man page
- t-u: Don't apply again if snapshot is current already
- t-u: Prevent self-updates between major t-u versions because
these usually require additional files
- Fix missing files when using `make dist`
- Unified Copyright headers
- Make Bash scripts shellcheck compatible
- Replace tabs with spaces in Shell scripts to avoid the complex
tab / space changes
- Various other minor internal optimizations and fixes
-------------------------------------------------------------------
Tue Sep 24 12:45:45 UTC 2024 - Ignaz Forster <iforster@suse.com>
@@ -151,6 +259,11 @@ Thu Jan 18 16:19:41 UTC 2024 - Ignaz Forster <iforster@suse.com>
- Use "up" instead of "dup" by default on ALP [bsc#1218861]
-------------------------------------------------------------------
Thu Jan 18 16:19:41 UTC 2024 - Ignaz Forster <iforster@suse.com>
- Use "up" instead of "dup" by default on ALP
-------------------------------------------------------------------
Mon Nov 20 17:12:20 UTC 2023 - Ignaz Forster <iforster@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package transactional-update
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2021 Neal Gompa
#
# All modifications and additions to the file contributed by third parties
@@ -26,7 +26,7 @@
%{!?_distconfdir: %global _distconfdir %{_prefix}%{_sysconfdir}}
Name: transactional-update
Version: 4.8.3
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,10 +34,14 @@ Group: System/Base
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
BuildRequires: autoconf
BuildRequires: autoconf-archive
BuildRequires: automake
BuildRequires: bats
BuildRequires: docbook-xsl-stylesheets
BuildRequires: fdupes
%if %{?suse_version} <= 1500
@@ -46,6 +50,7 @@ BuildRequires: gcc10-c++
BuildRequires: gcc-c++
%endif
BuildRequires: libtool
BuildRequires: libxml2-tools
BuildRequires: libzypp
BuildRequires: make
BuildRequires: suse-module-tools
@@ -60,7 +65,6 @@ BuildRequires: pkgconfig(rpm)
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(udev)
# Cannot use python3dist() names yet...
BuildRequires: libxml2-tools
BuildRequires: python3-lxml
BuildRequires: w3m
BuildRequires: xsltproc
@@ -74,11 +78,22 @@ Requires: lsof
Requires: psmisc
Requires: tukit = %{version}-%{release}
Requires: zypper
Requires: (tukit-snapper-plugin if (snapper and read-only-root-fs))
# Parameter --drop-if-no-change requires it
Recommends: inotify-tools
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
# Includes policy for the 50-etc snapper plugin
%if 0%{?suse_version} == 1600 && !0%{?is_opensuse}
Conflicts: selinux-policy < 20241031+git652.e1d5a07e
%else
Conflicts: selinux-policy < 20250411
%endif
%description
transactional-update is a tool to update a system in an atomic
@@ -101,16 +116,26 @@ License: GPL-2.0-or-later
Group: System/Boot
Supplements: (tukit and kernel)
Requires: tukit = %{version}-%{release}
BuildArch: noarch
Conflicts: transactional-update < 3.0.0
%description -n dracut-%{name}
This package contains the dracut modules for handling early boot aspects
for transactional updates.
%package -n tukit-snapper-plugin
Summary: Snapper plugin for creating r/w /etc subvolumes
License: GPL-2.0-or-later
Group: System/Fhs
Requires: tukit = %{version}-%{release}
BuildArch: noarch
%description -n tukit-snapper-plugin
This package contains the snapper plugin for creating /etc subvolumes on a
read-only system.
%package -n %{libname}
Summary: Library for doing transactional updates using Btrfs snapshots
License: LGPL-2.1-or-later
License: GPL-2.0-or-later OR LGPL-2.1-or-later
Group: System/Libraries
Requires: btrfsprogs
Requires: rsync
@@ -133,7 +158,7 @@ functionality to manage transactional systems.
%package -n %{devname}
Summary: Development files for tukit library
License: LGPL-2.1-or-later
License: GPL-2.0-or-later OR LGPL-2.1-or-later
Group: Development/Libraries/C and C++
Provides: tukit-devel = %{version}-%{release}
Provides: tukit-devel = %{version}-%{release}
@@ -145,7 +170,6 @@ transactional updates using btrfs snapshots.
%package zypp-config
Summary: Zypper rule to prevent uninstallation of transactional-update
License: GPL-2.0-or-later AND LGPL-2.1-or-later
Group: System/Base
BuildArch: noarch
Requires: transactional-update = %{version}-%{release}
@@ -266,7 +290,7 @@ done
%postun -n %{libname} -p /sbin/ldconfig
%files
%license COPYING
%license COPYING gpl-2.0.txt
%doc NEWS
%doc %{_docdir}/%{name}/transactional-update.txt
%if 0%{?suse_version} > 1500
@@ -279,9 +303,6 @@ done
%{_unitdir}/transactional-update-cleanup.service
%{_unitdir}/transactional-update-cleanup.timer
%{_sbindir}/transactional-update
%if %{?suse_version} <= 1500
%dir %{_distconfdir}
%endif
%{_distconfdir}/transactional-update.conf
%{_mandir}/man5/transactional-update.conf.5*
%{_mandir}/man8/transactional-update.8*
@@ -306,9 +327,16 @@ done
%dir %{_prefix}/lib/dracut
%dir %{_prefix}/lib/dracut/modules.d
%{_prefix}/lib/dracut/modules.d/50transactional-update/
%{_libexecdir}/transactional-update-sync-etc-state
%files -n tukit-snapper-plugin
%license COPYING gpl-2.0.txt
%dir %{_prefix}/lib/snapper
%dir %{_prefix}/lib/snapper/plugins
%{_prefix}/lib/snapper/plugins/50-etc
%files -n %{libname}
%license COPYING lgpl-2.1.txt
%license COPYING gpl-2.0.txt lgpl-2.1.txt
%{_libdir}/libtukit.so.%{somajor}{,.*}
%files -n tukitd
@@ -321,7 +349,7 @@ done
%{_prefix}/share/dbus-1/interfaces/org.opensuse.tukit.Transaction.xml
%files -n %{devname}
%license COPYING lgpl-2.1.txt
%license COPYING gpl-2.0.txt lgpl-2.1.txt
%{_includedir}/tukit/
%{_libdir}/libtukit.so
%{_libdir}/pkgconfig/tukit.pc