Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package systemd for openSUSE:Factory checked 
in at 2026-03-14 22:21:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd (Old)
 and      /work/SRC/openSUSE:Factory/.systemd.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "systemd"

Sat Mar 14 22:21:06 2026 rev:466 rq:1338788 version:259.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd/systemd.changes  2026-03-09 
16:11:07.940407628 +0100
+++ /work/SRC/openSUSE:Factory/.systemd.new.8177/systemd.changes        
2026-03-14 22:21:39.215288055 +0100
@@ -1,0 +2,59 @@
+Fri Mar 13 17:38:09 UTC 2026 - Franck Bui <[email protected]>
+
+- Import commit (merge of v259.5)
+
+  For a complete list of changes, visit:
+  
https://github.com/openSUSE/systemd/compare/e53173d15f11454a5770e7732e3eaed3105c11fc...58a9b1726da0e2c89665897ca7e107315b2389e0
+
+-------------------------------------------------------------------
+Fri Mar 13 14:26:39 UTC 2026 - Antonio Feijoo <[email protected]>
+
+- systemd-container: require libarchive instead of tar, since
+  
https://github.com/systemd/systemd/commit/a7c8f92d1f937113a279adbe62399f6f0773473f
+
+-------------------------------------------------------------------
+Fri Mar 13 08:33:43 UTC 2026 - Franck Bui <[email protected]>
+
+- systemd-update-helper: fix the clean-state command only removing
+  $STATE_DIR/system instead of $STATE_DIR/.
+
+- systemd-update-helper: add --root option for testing convenience
+
+  It allows the tests to redirect them under a temporary directory via --root
+  instead of patching the script with sed.
+
+-------------------------------------------------------------------
+Thu Mar 12 17:48:58 UTC 2026 - Franck Bui <[email protected]>
+
+- Import commit e53173d15f11454a5770e7732e3eaed3105c11fc (merge of v259.4)
+
+  For a complete list of changes, visit:
+  
https://github.com/openSUSE/systemd/compare/1e9dbf558f2578c5f0a38a20cd93950de5d7b648...e53173d15f11454a5770e7732e3eaed3105c11fc
+
+-------------------------------------------------------------------
+Thu Mar 12 17:34:09 UTC 2026 - Franck Bui <[email protected]>
+
+- systemd-update-helper: fix incorrect skipping of systemctl disable during
+  package removal (bsc#1245551)
+
+  This bug was caused by stale dont-disable markers left over from a previous
+  install transaction. Introduce a new command 'clean-state' for
+  systemd-update-helper, which is called once via a %transfiletriggerin in the
+  systemd package at the end of any transaction installing unit files, ensuring
+  markers cannot persist across transactions.
+
+-------------------------------------------------------------------
+Thu Mar 12 14:19:09 UTC 2026 - Franck Bui <[email protected]>
+
+- systemd.spec: introduce %bcond_without docs to allow skipping man pages and 
devel-doc
+
+  Add a new %bcond_without docs conditional that disables man page and HTML doc
+  generation (-Dman, -Dhtml meson options) when building with --without docs.
+
+-------------------------------------------------------------------
+Tue Mar 10 21:43:04 UTC 2026 - Franck Bui <[email protected]>
+
+- systemd-update-helper: fix do_install_units() incorrectly returning 1 when no
+  units need preset.
+
+-------------------------------------------------------------------

Old:
----
  systemd-259.3+suse.4.g1e9dbf558f.tar.xz

New:
----
  systemd-259.5+suse.6.g58a9b1726d.tar.xz

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

Other differences:
------------------
++++++ systemd.spec ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.387336573 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.387336573 +0100
@@ -1,7 +1,6 @@
 #
 # spec file for package systemd
 #
-# Copyright (c) 2026 SUSE LLC
 # Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
@@ -32,9 +31,9 @@
 %bcond_with obs_service_set_version
 
 %if %{without obs_service_set_version}
-%define systemd_version    259.3
+%define systemd_version    259.5
 %define systemd_release    0
-%define archive_version    +suse.4.g1e9dbf558f
+%define archive_version    +suse.6.g58a9b1726d
 %endif
 
 %define _testsuitedir %{_systemd_util_dir}/tests
@@ -60,6 +59,7 @@
 %else
 %global mini %nil
 %bcond_without  apparmor
+%bcond_without  docs
 %bcond_without  homed
 %bcond_without  importd
 %bcond_without  journal_remote
@@ -89,15 +89,19 @@
 %if %{without bootstrap}
 BuildRequires:  bpftool
 BuildRequires:  clang
-BuildRequires:  docbook-xsl-stylesheets
 %if %{with apparmor}
 BuildRequires:  libapparmor-devel
 %endif
 BuildRequires:  libgcrypt-devel
-BuildRequires:  libxslt-tools
 # python is only required for generating systemd.directives.xml
 BuildRequires:  python3-base
+%endif
+%if %{with docs}
+BuildRequires:  docbook-xsl-stylesheets
+BuildRequires:  libxslt-tools
 BuildRequires:  python3-lxml
+%endif
+%if %{without bootstrap}
 BuildRequires:  pkgconfig(audit)
 BuildRequires:  pkgconfig(libbpf)
 BuildRequires:  pkgconfig(libdw)
@@ -452,6 +456,7 @@
 [2] https://systemd.io/BOOT_LOADER_INTERFACE/
 %endif
 
+%if %{without bootstrap}
 %package container
 Summary:        Systemd tools for container management
 License:        LGPL-2.1-or-later
@@ -461,8 +466,8 @@
 BuildRequires:  pkgconfig(zlib)
 %endif
 Requires:       %{name} = %{version}-%{release}
-# import-tar needs tar and gpg
-Requires:       /usr/bin/tar
+# import-tar needs libarchive and gpg
+Requires:       libarchive13
 Requires:       /usr/bin/gpg
 %systemd_requires
 Obsoletes:      nss-mymachines < %{version}-%{release}
@@ -484,6 +489,7 @@
 
 To activate this NSS module, you will need to include it in /etc/nsswitch.conf,
 see nss-mymachines(8) manpage for more details.
+%endif
 
 %if %{with networkd}
 %package networkd
@@ -697,7 +703,9 @@
 
 %if %{without bootstrap}
 %lang_package
+%endif
 
+%if %{with docs}
 %package doc
 Summary:        Additional documentation or doc formats for systemd
 License:        LGPL-2.1-or-later
@@ -777,7 +785,6 @@
         -Dfdisk=%{disabled_with bootstrap} \
         -Dgcrypt=%{disabled_with bootstrap} \
         -Dgnutls=%{disabled_with bootstrap} \
-        -Dhtml=%{disabled_with bootstrap} \
         -Dima=%{when_not bootstrap} \
         -Dkernel-install=%{when_not bootstrap} \
         -Dlibarchive=%{disabled_with bootstrap} \
@@ -790,7 +797,6 @@
         -Dlibcryptsetup=%{disabled_with bootstrap} \
         -Dlibcryptsetup-plugins=%{disabled_with bootstrap} \
         -Dlibcurl=%{disabled_with bootstrap} \
-        -Dman=%{disabled_with bootstrap} \
         -Dmountfsd=%{when_not bootstrap} \
         -Dnsresourced=%{when_not bootstrap} \
         -Dmicrohttpd=%{enabled_with journal_remote} \
@@ -816,8 +822,10 @@
         -Dapparmor=%{enabled_with apparmor} \
         -Dcoredump=%{when_not bootstrap} \
         -Dhomed=%{enabled_with homed} \
+        -Dhtml=%{enabled_with docs} \
         -Dimportd=%{enabled_with importd} \
         -Dmachined=%{when machined} \
+        -Dman=%{enabled_with docs} \
         -Dnetworkd=%{when networkd} \
         -Dportabled=%{when portabled} \
         -Dremote=%{enabled_with journal_remote} \
@@ -873,8 +881,8 @@
 # Don't ship resolvconf symlink for now as it conflicts with the binary shipped
 # by openresolv and provides limited compatibility only.
 %if %{with resolved}
-rm %{buildroot}%{_sbindir}/resolvconf
-rm %{buildroot}%{_mandir}/man1/resolvconf.1*
+rm -f %{buildroot}%{_sbindir}/resolvconf
+rm -f %{buildroot}%{_mandir}/man1/resolvconf.1*
 %endif
 
 install -m0755 -D %{SOURCE3} 
%{buildroot}/%{_systemd_util_dir}/systemd-update-helper
@@ -1036,6 +1044,11 @@
 %find_lang systemd
 %else
 rm -f  %{buildroot}%{_journalcatalogdir}/*
+rm -f %{buildroot}%{_bindir}/systemd-nspawn
+rm -f %{buildroot}%{_systemd_util_dir}/*/[email protected]
+%endif
+
+%if %{without docs}
 rm -fr %{buildroot}%{_docdir}/systemd
 %endif
 
@@ -1149,6 +1162,7 @@
 %ldconfig_scriptlets -n libsystemd0%{?mini}
 %ldconfig_scriptlets -n libudev%{?mini}1
 
+%if %{without bootstrap}
 %pre container
 %systemd_pre systemd-mountfsd.socket
 %systemd_pre systemd-nsresourced.socket
@@ -1172,12 +1186,13 @@
 %endif
 
 %post container
-%if %{with machined}
-%ldconfig
 %systemd_post systemd-mountfsd.socket
 %systemd_post systemd-nsresourced.socket
+%if %{with machined}
+%ldconfig
 %systemd_post machines.target
 %endif
+%endif
 
 %if %{with journal_remote}
 %pre journal-remote
@@ -1295,8 +1310,10 @@
 %include %{SOURCE206}
 %endif
 
+%if %{without bootstrap}
 %files container
 %include %{SOURCE202}
+%endif
 
 %if %{with networkd}
 %files networkd
@@ -1330,7 +1347,9 @@
 %if %{without bootstrap}
 %files lang -f systemd.lang
 %include %{SOURCE210}
+%endif
 
+%if %{with docs}
 %files doc
 %{_docdir}/systemd/
 %include %{SOURCE213}

++++++ files.container ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.491340879 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.499341210 +0100
@@ -3,11 +3,11 @@
 #
 %dir %{_sysconfdir}/systemd/nspawn
 %{_bindir}/systemd-nspawn
-%if %{without bootstrap}
 %{_datadir}/bash-completion/completions/systemd-nspawn
 %{_datadir}/polkit-1/actions/io.systemd.mount-file-system.policy
 %{_datadir}/polkit-1/actions/io.systemd.namespace-resource.policy
 %{_datadir}/zsh/site-functions/_systemd-nspawn
+%if %{with docs}
 %{_mandir}/man1/systemd-nspawn.1.gz
 %{_mandir}/man5/systemd.nspawn.5.gz
 %{_mandir}/man8/libnss_mymachines.so.2.8.gz
@@ -29,22 +29,16 @@
 %{_systemd_util_dir}/network/80-namespace-ns-tun.link
 %{_systemd_util_dir}/network/80-namespace-ns-tun.network
 %endif
-%if %{without bootstrap}
 %{_systemd_util_dir}/systemd-mountfsd
 %{_systemd_util_dir}/systemd-mountwork
 %{_systemd_util_dir}/systemd-nsresourced
 %{_systemd_util_dir}/systemd-nsresourcework
-%endif
 %{_systemd_util_dir}/user/[email protected]
-%if %{without bootstrap}
 %{_unitdir}/systemd-mountfsd.service
 %{_unitdir}/systemd-mountfsd.socket
-%endif
 %{_unitdir}/[email protected]
-%if %{without bootstrap}
 %{_unitdir}/systemd-nsresourced.service
 %{_unitdir}/systemd-nsresourced.socket
-%endif
 
 %if %{with machined}
 %dir %{_unitdir}/machines.target.wants
@@ -53,7 +47,6 @@
 %{_datadir}/dbus-1/interfaces/org.freedesktop.machine1.Image.xml
 %{_datadir}/dbus-1/interfaces/org.freedesktop.machine1.Machine.xml
 %{_datadir}/dbus-1/interfaces/org.freedesktop.machine1.Manager.xml
-%{_datadir}/dbus-1/services/org.freedesktop.import1.service
 %{_datadir}/dbus-1/services/org.freedesktop.machine1.service
 %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service
 %{_datadir}/dbus-1/system.d/org.freedesktop.machine1.conf
@@ -61,19 +54,17 @@
 %{_datadir}/zsh/site-functions/_machinectl
 %{_datadir}/zsh/site-functions/_sd_machines
 %{_libdir}/libnss_mymachines.so.2
+%if %{with docs}
 %{_mandir}/man1/machinectl.1.gz
 %{_mandir}/man5/org.freedesktop.machine1.5.gz
 %{_mandir}/man8/systemd-machined.8.gz
 %{_mandir}/man8/systemd-machined.service.8.gz
+%endif
 %{_systemd_util_dir}/systemd-machined
-%{_systemd_util_dir}/user/dbus-org.freedesktop.import1.service
 %{_systemd_util_dir}/user/dbus-org.freedesktop.machine1.service
 %{_systemd_util_dir}/user/machine.slice
 %{_systemd_util_dir}/user/machines.target
-%{_systemd_util_dir}/user/sockets.target.wants/systemd-importd.socket
 %{_systemd_util_dir}/user/sockets.target.wants/systemd-machined.socket
-%{_systemd_util_dir}/user/systemd-importd.service
-%{_systemd_util_dir}/user/systemd-importd.socket
 %{_systemd_util_dir}/user/systemd-machined.service
 %{_systemd_util_dir}/user/systemd-machined.socket
 %{_tmpfilesdir}/systemd-nspawn.conf
@@ -93,14 +84,17 @@
 %{_datadir}/bash-completion/completions/importctl
 %{_datadir}/dbus-1/interfaces/org.freedesktop.import1.Manager.xml
 %{_datadir}/dbus-1/interfaces/org.freedesktop.import1.Transfer.xml
+%{_datadir}/dbus-1/services/org.freedesktop.import1.service
 %{_datadir}/dbus-1/system-services/org.freedesktop.import1.service
 %{_datadir}/dbus-1/system.d/org.freedesktop.import1.conf
 %{_datadir}/polkit-1/actions/org.freedesktop.import1.policy
+%if %{with docs}
 %{_mandir}/man1/importctl.1.gz
 %{_mandir}/man5/org.freedesktop.import1.5.gz
 %{_mandir}/man8/systemd-importd.8.gz
 %{_mandir}/man8/systemd-importd.service.8.gz
 %{_mandir}/man8/systemd-import-generator.8.gz
+%endif
 %{_systemd_util_dir}/import-pubring.pgp
 %{_systemd_util_dir}/systemd-export
 %{_systemd_util_dir}/systemd-import
@@ -108,6 +102,10 @@
 %{_systemd_util_dir}/systemd-importd
 %{_systemd_util_dir}/systemd-pull
 %{_systemdgeneratordir}/systemd-import-generator
+%{_systemd_util_dir}/user/dbus-org.freedesktop.import1.service
+%{_systemd_util_dir}/user/sockets.target.wants/systemd-importd.socket
+%{_systemd_util_dir}/user/systemd-importd.service
+%{_systemd_util_dir}/user/systemd-importd.socket
 %{_unitdir}/dbus-org.freedesktop.import1.service
 %{_unitdir}/sockets.target.wants/systemd-importd.socket
 %{_unitdir}/systemd-importd.service

++++++ files.devel-doc ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.531342535 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.535342700 +0100
@@ -1,7 +1,6 @@
 #
 # Keep the list sorted (with `LC_ALL=C sort`).
 #
-%if %{without bootstrap}
 %{_mandir}/man3/SD_ALERT.3.gz
 %{_mandir}/man3/SD_BUS_ERROR_ACCESS_DENIED.3.gz
 %{_mandir}/man3/SD_BUS_ERROR_ADDRESS_IN_USE.3.gz
@@ -847,5 +846,4 @@
 %{_mandir}/man3/udev_new.3.gz
 %{_mandir}/man3/udev_ref.3.gz
 %{_mandir}/man3/udev_unref.3.gz
-%endif
 

++++++ files.experimental ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.571344191 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.575344356 +0100
@@ -22,7 +22,6 @@
 %{_bindir}/oomctl
 %endif
 %if %{with upstream}
-%{_bindir}/systemd-mute-console
 %{_bindir}/systemd-mstack
 %endif
 %{_bindir}/systemd-mute-console
@@ -43,7 +42,7 @@
 %{_datadir}/zsh/site-functions/_oomctl
 %endif
 %{_distconfdir}/ssh/ssh_config.d/20-systemd-ssh-proxy.conf
-%if %{without bootstrap}
+%if %{with docs}
 %if %{with upstream}
 %{_mandir}/man1/mount.mstack.1.gz
 %endif

++++++ files.homed ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.595345184 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.599345350 +0100
@@ -12,6 +12,7 @@
 %{_datadir}/dbus-1/system.d/org.freedesktop.home1.conf
 %{_datadir}/polkit-1/actions/org.freedesktop.home1.policy
 %{_distconfdir}/ssh/sshd_config.d/20-systemd-userdb.conf
+%if %{with docs}
 %{_mandir}/man1/homectl.1.gz
 %{_mandir}/man1/systemd-homed-firstboot.service.1.gz
 %{_mandir}/man5/homed.conf.5.gz
@@ -20,6 +21,7 @@
 %{_mandir}/man8/pam_systemd_home.8.gz
 %{_mandir}/man8/systemd-homed.8.gz
 %{_mandir}/man8/systemd-homed.service.8.gz
+%endif
 %{_pam_moduledir}/pam_systemd_home.so
 %{_systemd_util_dir}/homed.conf
 %{_systemd_util_dir}/systemd-homed

++++++ files.journal-remote ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.623346343 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.627346509 +0100
@@ -8,6 +8,7 @@
 %ghost %{_sysconfdir}/systemd/journal-remote.conf
 %ghost %{_sysconfdir}/systemd/journal-upload.conf
 %{_datadir}/systemd/gatewayd/browse.html
+%if %{with docs}
 %{_mandir}/man5/journal-remote.conf.5.gz
 %{_mandir}/man5/journal-remote.conf.d.5.gz
 %{_mandir}/man5/journal-upload.conf.5.gz
@@ -20,6 +21,7 @@
 %{_mandir}/man8/systemd-journal-remote.socket.8.gz
 %{_mandir}/man8/systemd-journal-upload.8.gz
 %{_mandir}/man8/systemd-journal-upload.service.8.gz
+%endif
 %{_systemd_util_dir}/journal-remote.conf
 %{_systemd_util_dir}/journal-upload.conf
 %{_systemd_util_dir}/systemd-journal-gatewayd

++++++ files.networkd ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.667348165 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.671348331 +0100
@@ -19,6 +19,7 @@
 %{_datadir}/polkit-1/actions/org.freedesktop.network1.policy
 %{_datadir}/polkit-1/rules.d/60-systemd-networkd.rules
 %{_datadir}/zsh/site-functions/_networkctl
+%if %{with docs}
 %{_mandir}/man1/networkctl.1.gz
 %{_mandir}/man5/networkd.conf.5.gz
 %{_mandir}/man5/networkd.conf.d.5.gz
@@ -29,6 +30,7 @@
 %{_mandir}/man8/[email protected]
 %{_mandir}/man8/systemd-networkd.8.gz
 %{_mandir}/man8/systemd-networkd.service.8.gz
+%endif
 %{_systemd_util_dir}/network/80-6rd-tunnel.link
 %{_systemd_util_dir}/network/80-6rd-tunnel.network
 %{_systemd_util_dir}/network/80-auto-link-local.network.example

++++++ files.portable ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.695349324 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.699349489 +0100
@@ -11,10 +11,12 @@
 %{_datadir}/dbus-1/system-services/org.freedesktop.portable1.service
 %{_datadir}/dbus-1/system.d/org.freedesktop.portable1.conf
 %{_datadir}/polkit-1/actions/org.freedesktop.portable1.policy
+%if %{with docs}
 %{_mandir}/man1/portablectl.1.gz
 %{_mandir}/man5/org.freedesktop.portable1.5.gz
 %{_mandir}/man8/systemd-portabled.8.gz
 %{_mandir}/man8/systemd-portabled.service.8.gz
+%endif
 %{_systemd_util_dir}/portable
 %if %{with upstream}
 %{_systemd_util_dir}/user/dbus-org.freedesktop.portable1.service

++++++ files.resolved ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.723350483 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.727350648 +0100
@@ -15,6 +15,7 @@
 %{_datadir}/polkit-1/actions/org.freedesktop.resolve1.policy
 %{_datadir}/zsh/site-functions/_resolvectl
 %{_libdir}/libnss_resolve.so.2
+%if %{with docs}
 %{_mandir}/man1/resolvectl.1.gz
 %{_mandir}/man5/org.freedesktop.resolve1.5.gz
 %{_mandir}/man5/resolved.conf.5.gz
@@ -24,6 +25,7 @@
 %{_mandir}/man8/nss-resolve.8.gz
 %{_mandir}/man8/systemd-resolved.8.gz
 %{_mandir}/man8/systemd-resolved.service.8.gz
+%endif
 %{_systemd_util_dir}/resolv.conf
 %{_systemd_util_dir}/resolved.conf
 %{_systemd_util_dir}/systemd-resolved

++++++ files.systemd ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.755351808 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.759351974 +0100
@@ -242,17 +242,13 @@
 %{_datadir}/zsh/site-functions/_systemd
 %{_datadir}/zsh/site-functions/_systemd-analyze
 %{_datadir}/zsh/site-functions/_systemd-delta
-%if %{with upstream}
 %{_datadir}/zsh/site-functions/_systemd-id128
-%endif
 %{_datadir}/zsh/site-functions/_systemd-inhibit
 %{_datadir}/zsh/site-functions/_systemd-path
 %{_datadir}/zsh/site-functions/_systemd-run
 %{_datadir}/zsh/site-functions/_systemd-tmpfiles
 %{_datadir}/zsh/site-functions/_timedatectl
-%if %{with upstream}
 %{_datadir}/zsh/site-functions/_userdbctl
-%endif
 %{_datadir}/zsh/site-functions/_varlinkctl
 %endif
 %{_distconfdir}/profile.d/70-systemd-shell-extra.sh
@@ -263,7 +259,7 @@
 %endif
 %{_libdir}/systemd/libsystemd-core-%{base_version}-%{release}.so
 %{_libdir}/systemd/libsystemd-shared-%{base_version}-%{release}.so
-%if %{without bootstrap}
+%if %{with docs}
 %{_mandir}/man1/busctl.1.gz
 %{_mandir}/man1/coredumpctl.1.gz
 %{_mandir}/man1/hostnamectl.1.gz

++++++ files.sysvcompat ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.783352967 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.791353298 +0100
@@ -1,9 +1,11 @@
 #
 # Please keep the list sorted (with `LC_ALL=C sort`).
 #
+%if %{with docs}
 %{_mandir}/man8/rc-local.service.8.gz
 %{_mandir}/man8/systemd-rc-local-generator.8.gz
 %{_mandir}/man8/systemd-sysv-generator.8.gz
+%endif
 %{_systemd_util_dir}/systemd-sysv-install
 %{_systemdgeneratordir}/systemd-rc-local-generator
 %{_systemdgeneratordir}/systemd-sysv-generator

++++++ files.udev ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.815354291 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.819354457 +0100
@@ -76,6 +76,8 @@
 %{_libdir}/cryptsetup/libcryptsetup-token-systemd-fido2.so
 %{_libdir}/cryptsetup/libcryptsetup-token-systemd-pkcs11.so
 %{_libdir}/cryptsetup/libcryptsetup-token-systemd-tpm2.so
+%endif
+%if %{with docs}
 %{_mandir}/man1/bootctl.1.gz
 %{_mandir}/man1/systemd-cryptenroll.1.gz
 %{_mandir}/man5/crypttab.5.gz
@@ -177,6 +179,8 @@
 %{_mandir}/man8/systemd-volatile-root.8.gz
 %{_mandir}/man8/systemd-volatile-root.service.8.gz
 %{_mandir}/man8/udevadm.8.gz
+%endif
+%if %{without bootstrap}
 %{_prefix}/lib/kernel/install.conf
 %{_prefix}/lib/kernel/install.d/50-depmod.install
 %{_prefix}/lib/kernel/install.d/90-loaderentry.install
@@ -189,6 +193,7 @@
 
%{_prefix}/lib/pcrlock.d/700-action-efi-exit-boot-services.pcrlock.d/300-present.pcrlock
 
%{_prefix}/lib/pcrlock.d/700-action-efi-exit-boot-services.pcrlock.d/600-absent.pcrlock
 %{_prefix}/lib/pcrlock.d/750-enter-initrd.pcrlock
+%{_prefix}/lib/pcrlock.d/770-nvpcr-separator.pcrlock
 %{_prefix}/lib/pcrlock.d/800-leave-initrd.pcrlock
 %{_prefix}/lib/pcrlock.d/850-sysinit.pcrlock
 %{_prefix}/lib/pcrlock.d/900-ready.pcrlock

++++++ files.uefi-boot ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.843355451 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.851355782 +0100
@@ -3,7 +3,7 @@
 #
 %dir %{_systemd_util_dir}/boot
 %dir %{_systemd_util_dir}/boot/efi
-%if %{without bootstrap}
+%if %{with docs}
 %{_mandir}/man5/loader.conf.5.gz
 %{_mandir}/man7/linuxaa64.efi.stub.7.gz
 %{_mandir}/man7/linuxia32.efi.stub.7.gz

++++++ files.ukify ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:40.879356941 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:40.883357107 +0100
@@ -5,7 +5,9 @@
 %dir %{_systemd_util_dir}/boot/hwids/
 %endif
 %{_bindir}/ukify
+%if %{with docs}
 %{_mandir}/man1/ukify.1.gz
+%endif
 %{_prefix}/lib/kernel/install.d/60-ukify.install
 %{_prefix}/lib/kernel/uki.conf
 %if %{with upstream}

++++++ systemd-259.3+suse.4.g1e9dbf558f.tar.xz -> 
systemd-259.5+suse.6.g58a9b1726d.tar.xz ++++++
/work/SRC/openSUSE:Factory/systemd/systemd-259.3+suse.4.g1e9dbf558f.tar.xz 
/work/SRC/openSUSE:Factory/.systemd.new.8177/systemd-259.5+suse.6.g58a9b1726d.tar.xz
 differ: char 15, line 1

++++++ systemd-update-helper ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:41.415379130 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:41.447380455 +0100
@@ -7,37 +7,49 @@
 set -eu
 set -o pipefail
 
+# --root is accepted for testing convenience only. It redirects all state and
+# unit file paths under the given directory, allowing tests to run without
+# touching the real filesystem.
+root=""
+if [[ "${1:-}" == --root=* ]]; then
+    root="${1#--root=}"
+    shift
+fi
+
 command="${1:?}"
 shift
 
 command -v systemctl >/dev/null || exit 0
 
 UPDATE_HELPER_USER_TIMEOUT_SEC=15
+STATE_DIR="${root}/run/systemd/rpm"
+UNIT_DIR="${root}/usr/lib/systemd"
+RUNTIME_DIR="${root}/run/systemd"
 
 do_mark_install_units() {
     mode=$1
     shift
-    mkdir -p /run/systemd/rpm/$mode/{needs-preset,dont-disable}
+    mkdir -p $STATE_DIR/$mode/{needs-preset,dont-disable}
 
     for unit in "$@" ; do
         # Clean any leftovers that might remain from a previous transaction
         # which exited abnormally.
-        rm -f /run/systemd/rpm/$mode/*/"$unit"
+        rm -f $STATE_DIR/$mode/*/"$unit"
 
-        if [ ! -e /usr/lib/systemd/$mode/"$unit" ]; then
+        if [ ! -e $UNIT_DIR/$mode/"$unit" ]; then
             # The unit is being introduced: remember we need to apply preset on
             # this new unit regardless of whether it's a package update or
             # installation.
-            touch /run/systemd/rpm/$mode/needs-preset/"$unit"
+            touch $STATE_DIR/$mode/needs-preset/"$unit"
         fi
 
         # All passed units are part of a package being installed or updated and
         # therefore should not be disabled by the removal of a different 
package
         # part of the same rpm transaction. This can happen when the package
-        # shipping the unit is being renamed (e.g. from "A" to "B"), where "A"
-        # is installed first, followed by the removal "B". In that case, "B" is
-        # removed and its %preun scriptlet runs %systemd_preun on the unit.
-        touch /run/systemd/rpm/$mode/dont-disable/"$unit"
+        # shipping the unit is being renamed (e.g. from "A" to "B"), where "B"
+        # is installed first, followed by the removal of "A". In that case, "A"
+        # is removed and its %preun scriptlet runs %systemd_preun on the unit.
+        touch $STATE_DIR/$mode/dont-disable/"$unit"
     done
 }
 
@@ -47,20 +59,20 @@
     units=()
 
     for unit in "$@" ; do
-        if [ -e /run/systemd/rpm/$mode/needs-preset/"$unit" ]; then
-            rm  /run/systemd/rpm/$mode/needs-preset/"$unit"
+        if [ -e $STATE_DIR/$mode/needs-preset/"$unit" ]; then
+            rm  $STATE_DIR/$mode/needs-preset/"$unit"
             units+=("$unit")
         fi
     done
 
-    [ ${#units[*]} -gt 0 ] && {
-        case $mode in
-        system)
-            systemctl --no-reload preset "${units[@]}" ;;
-        user)
-            systemctl --no-reload preset --global "${units[@]}" ;;
-        esac
-    }
+    [ ${#units[@]} -eq 0 ] && return
+
+    case $mode in
+    system)
+        systemctl --no-reload preset "${units[@]}" ;;
+    user)
+        systemctl --no-reload preset --global "${units[@]}" ;;
+    esac
 }
 
 do_remove_units() {
@@ -69,18 +81,16 @@
     units=()
 
     for unit in "$@" ; do
-        if [ ! -e /run/systemd/rpm/$mode/dont-disable/"$unit" ]; then
+        if [ ! -e $STATE_DIR/$mode/dont-disable/"$unit" ]; then
             units+=("$unit")
-        else
-            rm /run/systemd/rpm/$mode/dont-disable/"$unit"
         fi
     done
 
-    [ ${#units[*]} -eq 0 ] && return
+    [ ${#units[@]} -eq 0 ] && return
 
     case $mode in
     system)
-        if [ -d /run/systemd/system ]; then
+        if [ -d $RUNTIME_DIR/system ]; then
             systemctl --no-reload disable --now --no-warn "${units[@]}"
         else
             systemctl --no-reload disable --no-warn "${units[@]}"
@@ -89,7 +99,7 @@
     user)
         systemctl --global disable --no-warn "${units[@]}"
 
-        [ -d /run/systemd/system ] || return
+        [ -d $RUNTIME_DIR/system ] || return
 
         users=$(systemctl list-units 'user@*' --legend=no | sed -n -r 
's/.*user@([0-9]+).service.*/\1/p')
         for user in $users; do
@@ -127,7 +137,7 @@
         ;;
 
     mark-restart-system-units) # called from %postun (on upgrade)
-        [ -d /run/systemd/system ] || exit 0
+        [ -d $RUNTIME_DIR/system ] || exit 0
 
         for unit in "$@"; do
             systemctl set-property "$unit" Markers=+needs-restart &
@@ -136,7 +146,7 @@
         ;;
 
     mark-restart-user-units)
-        [ -d /run/systemd/system ] || exit 0
+        [ -d $RUNTIME_DIR/system ] || exit 0
 
         users=$(systemctl list-units 'user@*' --legend=no | sed -n -r 
's/.*user@([0-9]+).service.*/\1/p')
         for user in $users; do
@@ -154,7 +164,7 @@
             exit 2
         fi
 
-        [ -d /run/systemd/system ] || exit 0
+        [ -d $RUNTIME_DIR/system ] || exit 0
 
         if [[ "$command" =~ reexec ]]; then
             systemctl daemon-reexec
@@ -175,7 +185,7 @@
             exit 2
         fi
 
-        [ -d /run/systemd/system ] || exit 0
+        [ -d $RUNTIME_DIR/system ] || exit 0
 
         if [[ "$command" =~ reexec|reload ]]; then
             SYSTEMD_BUS_TIMEOUT=${UPDATE_HELPER_USER_TIMEOUT_SEC}s systemctl 
reload "user@*.service"
@@ -192,8 +202,13 @@
         fi
         ;;
 
-    clean-state)
-        # Not used anymore, to be removed
+    clean-state) # called once from %transfiletriggerin
+
+        # Any dont-disable markers left at this point were created during this
+        # transaction but never consumed (i.e. no matching %preun ran), which
+        # means they are from a fresh install rather than a rename. Wipe them
+        # so they cannot interfere with a future removal transaction.
+        rm -rf $STATE_DIR
         ;;
 
     *)

++++++ triggers.systemd ++++++
--- /var/tmp/diff_new_pack.CKYJ5Y/_old  2026-03-14 22:21:41.895399002 +0100
+++ /var/tmp/diff_new_pack.CKYJ5Y/_new  2026-03-14 22:21:41.939400823 +0100
@@ -20,6 +20,13 @@
 %transfiletriggerin -P 900899 -p <lua> -- /usr/lib/systemd/user 
/etc/systemd/user
 assert(rpm.execute("/usr/lib/systemd/systemd-update-helper", 
"user-reload-restart"))
 
+%transfiletriggerin -P 900800 -p <lua> -- /usr/lib/systemd/system 
/usr/lib/systemd/user
+-- Clean up the rpm scriptlet state directory after all other 
%transfiletriggerin
+-- scriptlets have run. This removes stale dont-disable markers that were set 
by
+-- %pre during a fresh install (as opposed to a rename), preventing them from
+-- incorrectly suppressing disable in a future removal transaction 
(bsc#1245551).
+assert(rpm.execute("/usr/lib/systemd/systemd-update-helper", "clean-state"))
+
 %transfiletriggerpostun -P 1000100 -p <lua> -- /usr/lib/systemd/system 
/etc/systemd/system
 -- On removal, we need to run daemon-reload after any units have been
 -- removed.

Reply via email to