1 Commits

Author SHA256 Message Date
14a882d8e3 Sync changes to SLFO-1.2 branch 2025-08-20 13:41:36 +02:00
22 changed files with 1098 additions and 729 deletions

View File

@@ -0,0 +1,538 @@
From 39bbd48fee33d820ba3a2ed52067234b623e13c4 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Fri, 13 Sep 2024 12:16:12 +0200
Subject: [PATCH] udev: restore some legacy symlinks to maintain backward
compatibility
Extracted from the openSUSE git repository, branch "compats/udev-compat-symlinks",
commit aa2d840a3b149497a0de95049482eb9f1c667a38.
- 2025-01-29: port to sd_device while trying to minimize the number of behavior changes.
---
rules.d/61-persistent-storage-compat.rules | 137 +++++++++
rules.d/meson.build | 1 +
src/udev/compat/meson.build | 8 +
src/udev/compat/path_id_compat.c | 329 +++++++++++++++++++++
src/udev/meson.build | 2 +
5 files changed, 477 insertions(+)
create mode 100644 rules.d/61-persistent-storage-compat.rules
create mode 100644 src/udev/compat/meson.build
create mode 100644 src/udev/compat/path_id_compat.c
diff --git a/rules.d/61-persistent-storage-compat.rules b/rules.d/61-persistent-storage-compat.rules
new file mode 100644
index 0000000000..bd229f619b
--- /dev/null
+++ b/rules.d/61-persistent-storage-compat.rules
@@ -0,0 +1,137 @@
+# Do not edit this file, it will be overwritten on update.
+
+# This file contains *depecrated* rules kept only for backward
+# compatibility reasons. Indeed upstream has the bad habit to change
+# symlink naming schemes hence breaking systems using the old schemes.
+#
+# If your system uses one of the symlinks generated by these compat
+# rules (usually in /etc/fstab), we encourage you to replace the
+# relevant paths with the new ones (symlinks generated by
+# 60-persistent-storage.rules).
+#
+# You might check if your system relies on one of those compat symlinks
+# by disabling their creation at boot time. To do so, append
+# "udev.compat_symlink_generation=0" to the kernel command line. If
+# your system works flawlessly, there's a good chance that your system
+# doesn't rely on them and they could be disabled permanently.
+#
+# Thanks !
+#
+# Note: this rules file can rely on all ID_* variables (set by
+# 60-persistent-storage.rule) but should not overwrite them, see
+# bsc#1048679 for details.
+
+ACTION=="remove", GOTO="persistent_storage_end"
+
+SUBSYSTEM!="block", GOTO="persistent_storage_end"
+KERNEL!="nvme*|sd*", GOTO="persistent_storage_end"
+
+# ignore partitions that span the entire disk
+TEST=="whole_disk", GOTO="persistent_storage_end"
+
+#
+# The compat symlink generation number can be specified through the kernel
+# command line and in that case it will take precedence.
+#
+# Note: any non-supported values (including "0") will disable all generations
+# whereas no values specified will be equivalent to a value "1" and therefore
+# will request the creation of all compat symlinks (whatever their age).
+#
+IMPORT{cmdline}="udev.compat_symlink_generation"
+ENV{COMPAT_SYMLINK_GENERATION}="$env{udev.compat_symlink_generation}"
+
+#
+# Systems without the compat-symlinks-generation file are systems
+# installed before compat rules were created. They might be using
+# one of those compat symlinks (can be any generation).
+#
+ENV{COMPAT_SYMLINK_GENERATION}!="?*", IMPORT{file}="/usr/lib/udev/compat-symlink-generation"
+ENV{COMPAT_SYMLINK_GENERATION}!="?*", ENV{COMPAT_SYMLINK_GENERATION}="1"
+
+#
+# Generation #1
+#
+ENV{COMPAT_SYMLINK_GENERATION}!="1", GOTO="generation_2"
+
+# NVMe symlinks were introduced by a SUSE specific commit (bsc#944132) which
+# relied on scsi_id (unfortunately) and hence used the NVMe SCSI translation
+# layer. Later upstream added (by-id) symlinks for NVMe as well but reads the
+# device properties from its sysfs attributes instead. The symlinks names
+# generated in both cases are not identical so we still have to generate the
+# old ones for backward compatibly reasons.
+#
+# The SCSI translation layer for NVMe devices has been removed from the kernel
+# since 4.13, therefore we had to drop the use of scsi_id and use the sysfs
+# interface to mimic scsi_id and continue to generate the old compat symlinks.
+#
+# The rules below hopefully mimics the main cases only as it's impossible to
+# re-implement the exact behavior of scsi_id via udev rules.
+#
+# scsi_id acted differently depending on the NVMe revision implemented by a
+# device, which can lead to problems if the device firmware is
+# updated. Therefore symlinks for all NVMe revisions are generated now.
+#
+# Extra care is needed for whitespace handling. For example we can't use
+# %s{model} to retrieve the model string because udev strips any trailing
+# whitespaces and some plateforms (QEMU does that) might append such chars. In
+# those cases scsi_id was replacing them with a single trailing '_'. Therefore
+# the currently code retrieves the model string manually making sure to
+# preserve all characters so trailing whitespaces are still converted when the
+# symlink is created.
+
+KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_NVME_EUI_COMPAT}!="?*", ATTRS{eui}=="?*", ATTRS{eui}!="0000000000000000", \
+ PROGRAM=="/bin/sh -c 'eui=\"%s{eui}\"; echo $${eui// /}", ENV{ID_NVME_EUI_COMPAT}="2%c"
+
+KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_NVME_NGUID_COMPAT}!="?*", ATTRS{nguid}=="?*", \
+ PROGRAM=="/bin/sh -c 'nguid=\"%s{nguid}\"; echo $${nguid//-/}", ENV{ID_NVME_NGUID_COMPAT}="%c"
+
+KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_NVME_SERIAL_COMPAT}!="?*", ATTRS{model}=="?*", ATTRS{serial}=="?*", \
+ PROGRAM=="/bin/sh -c ' \
+ cd /sys/%p; \
+ while ! [ -f model ]; do \
+ cd ..; \
+ [ $$(pwd) = %S ] && exit 1; \
+ done; \
+ cut -c 1-16 model'", ENV{ID_NVME_SERIAL_COMPAT}="SNVMe_%c%s{serial}"
+
+KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_NVME_EUI_COMPAT}=="?*", SYMLINK+="disk/by-id/nvme-$env{ID_NVME_EUI_COMPAT}"
+KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_NVME_NGUID_COMPAT}=="?*", SYMLINK+="disk/by-id/nvme-$env{ID_NVME_NGUID_COMPAT}"
+KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_NVME_SERIAL_COMPAT}=="?*", SYMLINK+="disk/by-id/nvme-$env{ID_NVME_SERIAL_COMPAT}"
+
+KERNEL=="nvme*", ENV{DEVTYPE}=="partition", ENV{ID_NVME_EUI_COMPAT}=="?*", SYMLINK+="disk/by-id/nvme-$env{ID_NVME_EUI_COMPAT}-part%n"
+KERNEL=="nvme*", ENV{DEVTYPE}=="partition", ENV{ID_NVME_NGUID_COMPAT}=="?*", SYMLINK+="disk/by-id/nvme-$env{ID_NVME_NGUID_COMPAT}-part%n"
+KERNEL=="nvme*", ENV{DEVTYPE}=="partition", ENV{ID_NVME_SERIAL_COMPAT}=="?*", SYMLINK+="disk/by-id/nvme-$env{ID_NVME_SERIAL_COMPAT}-part%n"
+
+# Leap 42.3 ISO has a version of udev which suffers from bsc#1048679
+# (ID_SERIAL is set by the upstream rules making ID_BUS empty instead
+# of "nvme"). This lead to those odd symlinks with the "nvme" prefix
+# missing (bsc#1063249).
+#
+# They are actually only used by systems with Leap 42.3 initially
+# installed and with NVMe encrypted partitions.
+KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/-$env{ID_SERIAL}"
+KERNEL=="nvme*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/-$env{ID_SERIAL}-part%n"
+
+# SCSI compat links for ATA devices, removed by f6ba1a468cea (boo#769002)
+KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM=="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}"
+KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n"
+
+# by-path (parent device path, compat version, only for ATA/NVMe/SAS bus) (bnc#916420)
+ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="ata|nvme|scsi", DEVPATH!="*/virtual/*", IMPORT{program}="path_id_compat --compat=1 %p"
+ENV{DEVTYPE}=="disk", ENV{ID_PATH_COMPAT1}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH_COMPAT1}"
+ENV{DEVTYPE}=="partition", ENV{ID_PATH_COMPAT1}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH_COMPAT1}-part%n"
+
+# This restores the symlinks for SAS disks removed by 66bba0e701b95dc42e (bsc#1040153)
+ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="ata|nvme|scsi", DEVPATH!="*/virtual/*", IMPORT{program}="path_id_compat --compat=2 %p"
+ENV{DEVTYPE}=="disk", ENV{ID_PATH_COMPAT2}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH_COMPAT2}"
+ENV{DEVTYPE}=="partition", ENV{ID_PATH_COMPAT2}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH_COMPAT2}-part%n"
+
+#
+# Generation #2
+#
+LABEL="generation_2"
+ENV{COMPAT_SYMLINK_GENERATION}!="1|2", GOTO="persistent_storage_end"
+
+# Currently no compat links of generation 2
+
+LABEL="persistent_storage_end"
diff --git a/rules.d/meson.build b/rules.d/meson.build
index 3040fae8a4..ca07be282c 100644
--- a/rules.d/meson.build
+++ b/rules.d/meson.build
@@ -21,6 +21,7 @@ rules = [
'60-persistent-v4l.rules',
'60-sensor.rules',
'60-serial.rules',
+ '61-persistent-storage-compat.rules',
'70-camera.rules',
'70-joystick.rules',
'70-mouse.rules',
diff --git a/src/udev/compat/meson.build b/src/udev/compat/meson.build
new file mode 100644
index 0000000000..d624229bd1
--- /dev/null
+++ b/src/udev/compat/meson.build
@@ -0,0 +1,8 @@
+executable('path_id_compat',
+ 'path_id_compat.c',
+ include_directories : includes,
+ dependencies : [userspace],
+ c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
+ link_with : libshared,
+ install : true,
+ install_dir : udevlibexecdir)
diff --git a/src/udev/compat/path_id_compat.c b/src/udev/compat/path_id_compat.c
new file mode 100644
index 0000000000..c5839916ea
--- /dev/null
+++ b/src/udev/compat/path_id_compat.c
@@ -0,0 +1,329 @@
+/*
+ * path_id_compat.c: compose persistent device path (compat version)
+ *
+ * Copyright (C) 2009 Kay Sievers <kay.sievers@vrfy.org>
+ *
+ * Logic based on Hannes Reinecke's shell script.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <getopt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <ctype.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <dirent.h>
+
+#include "device-util.h"
+#include "dirent-util.h"
+#include "fd-util.h"
+#include "parse-util.h"
+#include "sd-device.h"
+#include "string-util.h"
+
+#define PATH_SIZE 16384
+#define SYSFS_PATH "/sys"
+
+static const char *compat_version_str = NULL;
+static unsigned compat_version;
+
+static int path_prepend(char **path, const char *fmt, ...) {
+ va_list va;
+ char *old;
+ char *pre;
+ int err;
+
+ old = *path;
+
+ va_start(va, fmt);
+ err = vasprintf(&pre, fmt, va);
+ va_end(va);
+ if (err < 0)
+ return err;
+
+ if (old != NULL) {
+ err = asprintf(path, "%s-%s", pre, old);
+ if (err < 0)
+ return err;
+ free(pre);
+ } else {
+ *path = pre;
+ }
+
+ free(old);
+ return 0;
+}
+
+/*
+** Linux only supports 32 bit luns.
+** See drivers/scsi/scsi_scan.c::scsilun_to_int() for more details.
+*/
+static int format_lun_number(sd_device *dev, char **path) {
+ unsigned long lun;
+ const char *sysnum;
+
+ (void) sd_device_get_sysnum(dev, &sysnum);
+
+ lun = strtoul(sysnum, NULL, 10);
+ if (lun < 256) /* address method 0, peripheral device addressing with bus id of zero */
+ return path_prepend(path, "lun-%d", lun);
+
+ /* handle all other lun addressing methods by using a variant of the original lun format */
+ return path_prepend(path, "lun-0x%04x%04x00000000", (lun & 0xffff), (lun >> 16) & 0xffff);
+}
+
+static sd_device *skip_subsystem(sd_device *dev, const char *subsys) {
+ for (sd_device *parent = dev; ; ) {
+ if (!device_in_subsystem(parent, subsys))
+ break;
+
+ dev = parent;
+ if (sd_device_get_parent(dev, &parent) < 0)
+ break;
+ }
+
+ return dev;
+}
+
+static sd_device *handle_scsi_default(sd_device *parent, char **path) {
+ sd_device *hostdev;
+ int host, bus, target, lun;
+ const char *sysname, *base, *pos;
+ _cleanup_closedir_ DIR *dir = NULL;
+ int basenum = -1;
+
+ if (sd_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host", &hostdev) < 0)
+ return NULL;
+
+ if (sd_device_get_sysname(parent, &sysname) < 0)
+ return NULL;
+ if (sscanf(sysname, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4)
+ return NULL;
+
+ /* rebase host offset to get the local relative number */
+ if (sd_device_get_syspath(hostdev, &base) < 0)
+ return NULL;
+ pos = strrchr(base, '/');
+ if (!pos)
+ return NULL;
+
+ base = strndupa_safe(base, pos - base);
+ dir = opendir(base);
+ if (!dir)
+ return NULL;
+
+ FOREACH_DIRENT_ALL(dent, dir, break) {
+ char *rest;
+ int i;
+
+ if (dent->d_name[0] == '.')
+ continue;
+ if (dent->d_type != DT_DIR && dent->d_type != DT_LNK)
+ continue;
+ if (strncmp(dent->d_name, "host", 4) != 0)
+ continue;
+ i = strtoul(&dent->d_name[4], &rest, 10);
+ if (rest[0] != '\0')
+ continue;
+ if (basenum == -1 || i < basenum)
+ basenum = i;
+ }
+ if (basenum == -1)
+ return NULL;
+ host -= basenum;
+
+ path_prepend(path, "scsi-%u:%u:%u:%u", host, bus, target, lun);
+ return hostdev;
+}
+
+static sd_device *handle_ata(sd_device *parent, char **path) {
+ sd_device *hostdev;
+ int host, bus, target, lun;
+ const char *name;
+
+ if (sd_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host", &hostdev) < 0)
+ return NULL;
+
+ if (sd_device_get_sysname(parent, &name) < 0)
+ return NULL;
+ if (sscanf(name, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4)
+ return NULL;
+
+ path_prepend(path, "scsi-%u:%u:%u:%u", host, bus, target, lun);
+ return hostdev;
+}
+
+static sd_device *handle_scsi_sas(sd_device *parent, char **path) {
+ _cleanup_closedir_ DIR *dir = NULL;
+ _cleanup_(sd_device_unrefp) sd_device *sasdev = NULL;
+ sd_device *targetdev, *target_parent, *portdev;
+ const char *sas_address, *syspath, *sysname;
+ int tmp_phy_id, phy_id = 255;
+ _cleanup_free_ char *lun = NULL;
+
+ if (sd_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_target", &targetdev) < 0)
+ return NULL;
+
+ if (sd_device_get_parent(targetdev, &target_parent) < 0)
+ return NULL;
+
+ if (sd_device_get_parent(target_parent, &portdev) < 0)
+ return NULL;
+
+ if (sd_device_get_syspath(portdev, &syspath) < 0)
+ return NULL;
+ dir = opendir(syspath);
+ if (!dir)
+ return NULL;
+
+ FOREACH_DIRENT_ALL(dent, dir, break) {
+ const char *name = dent->d_name;
+ char *phy_id_str;
+
+ if (dent->d_type != DT_LNK)
+ continue;
+
+ if (strncmp(dent->d_name, "phy", 3) != 0)
+ continue;
+
+ phy_id_str = strstr(name, ":");
+ if (phy_id_str == NULL)
+ continue;
+
+ phy_id_str++;
+
+ tmp_phy_id = atoi(phy_id_str);
+ if (tmp_phy_id >= 0 && tmp_phy_id < phy_id)
+ phy_id = tmp_phy_id;
+ }
+
+ if (phy_id == 255)
+ return NULL;
+
+ if (sd_device_get_sysname(target_parent, &sysname) < 0)
+ return NULL;
+
+ if (sd_device_new_from_subsystem_sysname(&sasdev, "sas_device", sysname) < 0)
+ return NULL;
+
+ if (sd_device_get_sysattr_value(sasdev, "sas_address", &sas_address) < 0)
+ return NULL;
+
+ if (format_lun_number(parent, &lun) < 0)
+ return NULL;
+
+ switch (compat_version) {
+ case 1:
+ path_prepend(path, "sas-phy%d-%s-%s", phy_id, sas_address, lun);
+ break;
+ case 2:
+ path_prepend(path, "sas-%s-%s", sas_address, lun);
+ break;
+ }
+
+ return parent;
+}
+
+static sd_device *handle_scsi(sd_device *parent, char **path) {
+ const char *devtype;
+ const char *name;
+ int r;
+
+ r = sd_device_get_devtype(parent, &devtype);
+ if (r < 0 || strcmp(devtype, "scsi_device") != 0)
+ return parent;
+
+ /* lousy scsi sysfs does not have a "subsystem" for the transport */
+ (void) sd_device_get_syspath(parent, &name);
+
+ if (strstr(name, "/end_device-") != NULL)
+ return handle_scsi_sas(parent, path);
+
+ if (strstr(name, "/ata") != NULL)
+ return handle_ata(parent, path);
+
+ return handle_scsi_default(parent, path);
+}
+
+int main(int argc, char **argv) {
+ static const struct option options[] = {
+ { "compat", required_argument, NULL, 'V' },
+ };
+ _cleanup_(sd_device_unrefp) sd_device *dev = NULL;
+ _cleanup_free_ char *path = NULL;
+ char syspath[PATH_SIZE];
+ int r = 1;
+
+ for (;;) {
+ int option;
+
+ option = getopt_long(argc, argv, "v:", options, NULL);
+ if (option == -1)
+ break;
+
+ switch (option) {
+ case 'V':
+ compat_version_str = optarg;
+ break;
+ }
+ }
+
+ if (compat_version_str) {
+ if (safe_atou(compat_version_str, &compat_version) < 0) {
+ fprintf(stderr, "--compat takes an integer.\n");
+ return 1;
+ }
+ }
+
+ if (argv[optind] == NULL) {
+ fprintf(stderr, "No device specified\n");
+ return 2;
+ }
+
+ snprintf(syspath, PATH_SIZE, "%s%s", SYSFS_PATH, argv[optind]);
+ if (sd_device_new_from_syspath(&dev, syspath) < 0) {
+ fprintf(stderr, "unable to access '%s'\n", argv[optind]);
+ return 3;
+ }
+
+ /* walk up the chain of devices and compose path */
+ for (sd_device *parent = dev; parent; ) {
+ const char *sysname;
+
+ if (sd_device_get_sysname(parent, &sysname) < 0)
+ ;
+ else if (device_in_subsystem(parent, "scsi"))
+ parent = handle_scsi(parent, &path);
+ else if (device_in_subsystem(parent, "pci")) {
+ path_prepend(&path, "pci-%s", sysname);
+ parent = skip_subsystem(parent, "pci");
+ }
+
+ if (!parent)
+ break;
+ if (sd_device_get_parent(parent, &parent) < 0) /* return -ENOENT when no more parent */
+ break;
+ }
+
+ if (path) {
+ printf("ID_PATH_COMPAT%s=%s\n", strempty(compat_version_str), path);
+ r = 0;
+ }
+
+ return r;
+}
diff --git a/src/udev/meson.build b/src/udev/meson.build
index 3535551e74..59073f33d7 100644
--- a/src/udev/meson.build
+++ b/src/udev/meson.build
@@ -273,3 +273,5 @@ udev_pc = custom_target(
if install_sysconfdir
install_emptydir(sysconfdir / 'udev/rules.d')
endif
+
+subdir('compat')
--
2.43.0

View File

@@ -0,0 +1,67 @@
From 1c7f2d5dc44c0e2075bb7d1cc16f085589b5b5d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Tue, 9 Jan 2024 11:28:04 +0100
Subject: [PATCH 1001/1001] journal: again create user journals for users with
high uids
This effectively reverts a change in 115d5145a257c1a27330acf9f063b5f4d910ca4d
'journald: move uid_for_system_journal() to uid-alloc-range.h', which slipped
in an additional check of uid_is_container(uid). The problem is that that change
is not backwards-compatible at all and very hard for users to handle.
There is no common agreement on mappings of high-range uids. Systemd declares
ownership of a large range for container uids in https://systemd.io/UIDS-GIDS/,
but this is only a recent change and various sites allocated those ranges
in a different way, in particular FreeIPA uses (used?) uids from this range
for human users. On big sites with lots of users changing uids is obviously a
hard problem. We generally assume that uids cannot be "freed" and/or changed
and/or reused safely, so we shouldn't demand the same from others.
This is somewhat similar to the situation with SYSTEM_ALLOC_UID_MIN /
SYSTEM_UID_MAX, which we tried to define to a fixed value in our code, causing
huge problems for existing systems with were created with a different
definition and couldn't be easily updated. For that case, we added a
configuration time switch and we now parse /etc/login.defs to actually use the
value that is appropriate for the local system.
Unfortunately, login.defs doesn't have a concept of container allocation ranges
(and we don't have code to parse and use those nonexistent names either), so we
can't tell users to adjust logind.defs to work around the changed definition.
login.defs has SUB_UID_{MIN,MAX}, but those aren't really the same thing,
because they are used to define where the add allocations for subuids, which is
generally a much smaller range. Maybe we should talk with other folks about
the appropriate allocation ranges and define some new settings in login.defs.
But this would require discussion and coordination with other projects first.
Actualy, it seems that this change was needed at all. The code in the container
does not log to the outside journal. It talks to its own journald, which does
journal splitting using its internal logic based on shifted uids. So let's
revert the change to fix user systems.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2251843.
Upstream PR: https://github.com/systemd/systemd/pull/30846
rhel-only: bugfix
Resolves: RHEL-70103
[fbui: fixes bsc#1242938]
---
src/basic/uid-classification.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/basic/uid-classification.c b/src/basic/uid-classification.c
index e2d2cebc6d..2c8b06c0d3 100644
--- a/src/basic/uid-classification.c
+++ b/src/basic/uid-classification.c
@@ -127,5 +127,5 @@ bool uid_for_system_journal(uid_t uid) {
/* Returns true if the specified UID shall get its data stored in the system journal. */
- return uid_is_system(uid) || uid_is_dynamic(uid) || uid == UID_NOBODY || uid_is_container(uid);
+ return uid_is_system(uid) || uid_is_dynamic(uid) || uid == UID_NOBODY;
}
--
2.43.0

View File

@@ -0,0 +1,88 @@
From a0d557e0aebe9ad2e27e0f22822207f231c8e726 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Fri, 9 May 2025 16:32:19 +0200
Subject: udev: persistent net rules support
This patch reintroduces the ability to rename a NIC even if the new name is
currently in use by another NIC. In such cases, udev waits until the new name
becomes available, while the previously named NIC is renamed in turn.
This is needed to support upgrades from older systems relying on persistent net
rules.
[fbui: fixes bsc#1241190]
---
src/libsystemd/sd-netlink/netlink-util.c | 44 +++++++++++++++++++++++-
1 file changed, 43 insertions(+), 1 deletion(-)
diff --git a/src/libsystemd/sd-netlink/netlink-util.c b/src/libsystemd/sd-netlink/netlink-util.c
index 90616094bc..794e8983b1 100644
--- a/src/libsystemd/sd-netlink/netlink-util.c
+++ b/src/libsystemd/sd-netlink/netlink-util.c
@@ -1,5 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <linux/if.h>
+
#include "sd-netlink.h"
#include "fd-util.h"
@@ -159,7 +161,7 @@ int rtnl_resolve_ifname_full(
return -ENODEV;
}
-static int set_link_name(sd_netlink **rtnl, int ifindex, const char *name) {
+static int do_set_link_name(sd_netlink **rtnl, int ifindex, const char *name) {
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *message = NULL;
int r;
@@ -186,6 +188,46 @@ static int set_link_name(sd_netlink **rtnl, int ifindex, const char *name) {
return sd_netlink_call(*rtnl, message, 0, NULL);
}
+static int do_set_link_name_wait(sd_netlink **rtnl, int ifindex, const char *name) {
+ char tmp[IFNAMSIZ];
+ int r;
+
+ log_debug("ifindex %i: waiting for name %s to be released", ifindex, name);
+
+ /* free our own name, another process may wait for us */
+ snprintf(tmp, IFNAMSIZ, "rename%d", ifindex);
+ r = do_set_link_name(rtnl, ifindex, tmp);
+ if (r < 0)
+ return r;
+
+ log_debug("ifindex %i: while waiting, renamed to %s to release our own name", ifindex, tmp);
+
+ /* wait a maximum of 90 seconds for our target to become available */
+ for(int loop = 90 * 20; loop; loop--) {
+ const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 };
+
+ nanosleep(&duration, NULL);
+
+ r = do_set_link_name(rtnl, ifindex, name);
+ if (r >= 0)
+ break;
+ if (r != -EEXIST)
+ break;
+ }
+
+ return r;
+}
+
+static int set_link_name(sd_netlink **rtnl, int ifindex, const char *name) {
+ int r;
+
+ r = do_set_link_name(rtnl, ifindex, name);
+ if (r >= 0 || r != -EEXIST)
+ return r;
+
+ return do_set_link_name_wait(rtnl, ifindex, name);
+}
+
int rtnl_rename_link(sd_netlink **rtnl, const char *orig_name, const char *new_name) {
_cleanup_(sd_netlink_unrefp) sd_netlink *our_rtnl = NULL;
int r, ifindex;
--
2.43.0

View File

@@ -0,0 +1,73 @@
From 88d0e79a7e4de9df6460ed4af694f15caedc3014 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Wed, 24 Jul 2024 14:20:17 +0200
Subject: Disable session freeze
Freezing of user.slice is not reliable and it breaks regular suspend/resume
operations for users [1].
Disable the partial (user.slice) freezing (rely on kernel freezing of every
task upon suspend) since the benefit of user.slice freezing does not outweight
the breakage caused by cgroup freezing implementation.
[1] https://github.com/systemd/systemd/issues/33083
[fbui: rebased on top of v257]
---
src/home/homework.c | 7 ++++---
src/sleep/sleep.c | 8 +++++---
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/src/home/homework.c b/src/home/homework.c
index 00e74894b3..d1de98e7b6 100644
--- a/src/home/homework.c
+++ b/src/home/homework.c
@@ -1880,7 +1880,7 @@ static int user_session_freezer_new(uid_t uid, UnitFreezer **ret) {
r = getenv_bool("SYSTEMD_HOME_LOCK_FREEZE_SESSION");
if (r < 0 && r != -ENXIO)
log_warning_errno(r, "Cannot parse value of $SYSTEMD_HOME_LOCK_FREEZE_SESSION, ignoring: %m");
- else if (r == 0) {
+ else if (r == 0 || r == -ENXIO) { /* Do not freeze by default unless requested */
*ret = NULL;
return 0;
}
@@ -1922,8 +1922,9 @@ static int home_lock(UserRecord *h) {
if (r < 0)
return r;
} else
- log_notice("Session remains unfrozen on explicit request ($SYSTEMD_HOME_LOCK_FREEZE_SESSION=0).\n"
- "This is not recommended, and might result in unexpected behavior including data loss!");
+ log_notice("Session remains unfrozen (add $SYSTEMD_HOME_LOCK_FREEZE_SESSION=1 to override).\n"
+ "This is a temporary downstream workaround for https://github.com/systemd/systemd/issues/33083.\n"
+ "Home locking is thus experimental and might result in unexpected behavior including data loss!");
r = home_lock_luks(h, &setup);
if (r < 0) {
diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
index 181bb4ccef..0181bcabc9 100644
--- a/src/sleep/sleep.c
+++ b/src/sleep/sleep.c
@@ -612,6 +612,8 @@ static int run(int argc, char *argv[]) {
r = getenv_bool("SYSTEMD_SLEEP_FREEZE_USER_SESSIONS");
if (r < 0 && r != -ENXIO)
log_warning_errno(r, "Cannot parse value of $SYSTEMD_SLEEP_FREEZE_USER_SESSIONS, ignoring: %m");
+ if (r == -ENXIO)
+ r = 0; /* Do not freeze by default unless requested */
if (r != 0) {
r = unit_freezer_new(SPECIAL_USER_SLICE, &user_slice_freezer);
if (r < 0)
@@ -619,9 +621,9 @@ static int run(int argc, char *argv[]) {
(void) unit_freezer_freeze(user_slice_freezer);
} else
- log_notice("User sessions remain unfrozen on explicit request ($SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=0).\n"
- "This is not recommended, and might result in unexpected behavior, particularly\n"
- "in suspend-then-hibernate operations or setups with encrypted home directories.");
+ log_notice("User sessions remain unfrozen (add $SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=1 to override),\n"
+ "relying on kernel to perform the freeze.\n"
+ "This is a temporary downstream workaround for https://github.com/systemd/systemd/issues/33083.");
switch (arg_operation) {
--
2.43.0

View File

@@ -1,15 +1,16 @@
<!-- for more details on the syntax, see: -->
<!-- https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
<!-- https://github.com/openSUSE/obs-service-tar_scm/blob/master/tar_scm.service.in -->
<!-- https://github.com/openSUSE/obs-service-tar_scm?tab=readme-ov-file#services -->
<!-- See https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
<!-- for more details on the syntax -->
<services>
<service name="obs_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://github.com/openSUSE/systemd.git</param>
<param name="filename">systemd</param>
<param name="versionformat">@PARENT_TAG@+suse.@TAG_OFFSET@.g%h</param>
<param name="revision">openSUSE-Factory</param>
</service>
<service name="tar" mode="disabled"/>
<service name="tar_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://github.com/openSUSE/systemd.git</param>
<param name="filename">systemd</param>
<param name="versionformat">@PARENT_TAG@+suse.@TAG_OFFSET@.g%h</param>
<param name="revision">openSUSE-Factory</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*systemd-v243+suse.*.tar</param>
<param name="compression">xz</param>
</service>
</services>

View File

@@ -6,9 +6,6 @@
%if %{without bootstrap}
%{_datadir}/bash-completion/completions/systemd-nspawn
%{_datadir}/polkit-1/actions/io.systemd.mount-file-system.policy
%if %{with upstream}
%{_datadir}/polkit-1/actions/io.systemd.namespace-resource.policy
%endif
%{_datadir}/zsh/site-functions/_systemd-nspawn
%{_mandir}/man1/systemd-nspawn.1.gz
%{_mandir}/man5/systemd.nspawn.5.gz
@@ -28,24 +25,15 @@
%{_systemd_util_dir}/network/80-container-vz.network
%{_systemd_util_dir}/network/80-namespace-ns.link
%{_systemd_util_dir}/network/80-namespace-ns.network
%if %{with upstream}
%{_systemd_util_dir}/network/80-namespace-ns-tun.link
%{_systemd_util_dir}/network/80-namespace-ns-tun.network
%endif
%endif
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-mountfsd
%{_systemd_util_dir}/systemd-mountwork
%{_systemd_util_dir}/systemd-nsresourced
%{_systemd_util_dir}/systemd-nsresourcework
%if %{with upstream}
%{_systemd_util_dir}/user/systemd-nspawn@.service
%endif
%{_unitdir}/systemd-mountfsd.service
%{_unitdir}/systemd-mountfsd.socket
%endif
%{_unitdir}/systemd-nspawn@.service
%if %{without bootstrap}
%{_unitdir}/systemd-nsresourced.service
%{_unitdir}/systemd-nsresourced.socket
%endif
@@ -67,25 +55,15 @@
%{_mandir}/man5/org.freedesktop.machine1.5.gz
%{_mandir}/man8/systemd-machined.8.gz
%{_mandir}/man8/systemd-machined.service.8.gz
%{_systemd_util_dir}/rpm/fixlet-container-post.sh
%{_systemd_util_dir}/systemd-machined
%if %{with upstream}
%{_systemd_util_dir}/user/machine.slice
%{_systemd_util_dir}/user/machines.target
%{_systemd_util_dir}/user/systemd-nspawn@.service
%endif
%{_tmpfilesdir}/systemd-nspawn.conf
%{_unitdir}/dbus-org.freedesktop.machine1.service
%{_unitdir}/machine.slice
%{_unitdir}/machines.target
%{_unitdir}/machines.target.wants/var-lib-machines.mount
%{_unitdir}/remote-fs.target.wants/var-lib-machines.mount
%if %{with upstream}
%{_unitdir}/sockets.target.wants/systemd-machined.socket
%endif
%{_unitdir}/systemd-machined.service
%if %{with upstream}
%{_unitdir}/systemd-machined.socket
%endif
%{_unitdir}/var-lib-machines.mount
%endif
@@ -102,11 +80,7 @@
%{_mandir}/man8/systemd-importd.8.gz
%{_mandir}/man8/systemd-importd.service.8.gz
%{_mandir}/man8/systemd-import-generator.8.gz
%if %{without upstream}
%{_systemd_util_dir}/import-pubring.gpg
%else
%{_systemd_util_dir}/import-pubring.pgp
%endif
%{_systemd_util_dir}/systemd-export
%{_systemd_util_dir}/systemd-import
%{_systemd_util_dir}/systemd-import-fs

View File

@@ -284,9 +284,6 @@
%{_mandir}/man3/sd_bus_message_close_container.3.gz
%{_mandir}/man3/sd_bus_message_copy.3.gz
%{_mandir}/man3/sd_bus_message_dump.3.gz
%if %{with upstream}
%{_mandir}/man3/sd_bus_message_dump_json.3.gz
%endif
%{_mandir}/man3/sd_bus_message_enter_container.3.gz
%{_mandir}/man3/sd_bus_message_exit_container.3.gz
%{_mandir}/man3/sd_bus_message_get_allow_interactive_authorization.3.gz
@@ -440,22 +437,6 @@
%{_mandir}/man3/sd_bus_unref.3.gz
%{_mandir}/man3/sd_bus_unrefp.3.gz
%{_mandir}/man3/sd_bus_wait.3.gz
%if %{with upstream}
%{_mandir}/man3/sd_device_enumerator_add_all_parents.3.gz
%{_mandir}/man3/sd_device_enumerator_add_match_parent.3.gz
%{_mandir}/man3/sd_device_enumerator_add_match_property.3.gz
%{_mandir}/man3/sd_device_enumerator_add_match_property_required.3.gz
%{_mandir}/man3/sd_device_enumerator_add_match_subsystem.3.gz
%{_mandir}/man3/sd_device_enumerator_add_match_sysattr.3.gz
%{_mandir}/man3/sd_device_enumerator_add_match_sysname.3.gz
%{_mandir}/man3/sd_device_enumerator_add_match_tag.3.gz
%{_mandir}/man3/sd_device_enumerator_add_nomatch_sysname.3.gz
%{_mandir}/man3/sd_device_enumerator_allow_uninitialized.3.gz
%{_mandir}/man3/sd_device_enumerator_get_device_first.3.gz
%{_mandir}/man3/sd_device_enumerator_get_device_next.3.gz
%{_mandir}/man3/sd_device_enumerator_get_subsystem_first.3.gz
%{_mandir}/man3/sd_device_enumerator_get_subsystem_next.3.gz
%endif
%{_mandir}/man3/sd_device_enumerator_new.3.gz
%{_mandir}/man3/sd_device_enumerator_ref.3.gz
%{_mandir}/man3/sd_device_enumerator_unref.3.gz
@@ -709,9 +690,6 @@
%{_mandir}/man3/sd_pid_notifyf.3.gz
%{_mandir}/man3/sd_pid_notifyf_with_fds.3.gz
%{_mandir}/man3/sd_pidfd_get_cgroup.3.gz
%if %{with upstream}
%{_mandir}/man3/sd_pidfd_get_inode_id.3.gz
%endif
%{_mandir}/man3/sd_pidfd_get_machine_name.3.gz
%{_mandir}/man3/sd_pidfd_get_owner_uid.3.gz
%{_mandir}/man3/sd_pidfd_get_session.3.gz
@@ -746,15 +724,6 @@
%{_mandir}/man3/sd_uid_get_sessions.3.gz
%{_mandir}/man3/sd_uid_get_state.3.gz
%{_mandir}/man3/sd_uid_is_on_seat.3.gz
%if %{with upstream}
%{_mandir}/man3/sd_varlink_get_description.3.gz
%{_mandir}/man3/sd_varlink_push_dup_fd.3.gz
%{_mandir}/man3/sd_varlink_push_fd.3.gz
%{_mandir}/man3/sd_varlink_send.3.gz
%{_mandir}/man3/sd_varlink_sendb.3.gz
%{_mandir}/man3/sd_varlink_sendbo.3.gz
%{_mandir}/man3/sd_varlink_set_description.3.gz
%endif
%{_mandir}/man3/sd_watchdog_enabled.3.gz
%{_mandir}/man3/udev_device_get_action.3.gz
%{_mandir}/man3/udev_device_get_current_tags_list_entry.3.gz

View File

@@ -5,81 +5,52 @@
# the ssh proxy will likely be promoted to systemd-container
%dir %{_distconfdir}/ssh
%dir %{_distconfdir}/ssh/ssh_config.d
%if %{without bootstrap}
%dir %{_prefix}/lib/pcrlock.d
%dir %{_prefix}/lib/pcrlock.d/400-secureboot-separator.pcrlock.d
%dir %{_prefix}/lib/pcrlock.d/500-separator.pcrlock.d
%dir %{_prefix}/lib/pcrlock.d/700-action-efi-exit-boot-services.pcrlock.d
%dir %{_sysconfdir}/systemd/oomd.conf.d
%endif
%if %{with upstream}
%dir %{_unitdir}/factory-reset.target.wants
%endif
%if %{with sd_boot}
%dir %{_unitdir}/initrd.target.wants
%endif
%if %{with upstream}
%dir %{_unitdir}/storage-target-mode.target.wants
%endif
%if %{without bootstrap}
# Main config files have been replaced in favor of drop-ins.
%ghost %{_sysconfdir}/systemd/oomd.conf
%{_bindir}/oomctl
%endif
%if %{without bootstrap}
%if %{with upstream}
%{_bindir}/systemd-pty-forward
%endif
%{_bindir}/run0
%{_bindir}/systemd-vmspawn
%{_bindir}/updatectl
%if %{with sd_boot}
%{_bindir}/ukify
%endif
%{_datadir}/bash-completion/completions/oomctl
%{_datadir}/bash-completion/completions/run0
%{_datadir}/bash-completion/completions/systemd-vmspawn
%{_datadir}/dbus-1/interfaces/org.freedesktop.oom1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.portable1.Image.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.portable1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.sysupdate1.Job.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.sysupdate1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.sysupdate1.Target.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.oom1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.sysupdate1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.oom1.conf
%{_datadir}/dbus-1/system.d/org.freedesktop.sysupdate1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.sysupdate1.policy
%{_datadir}/zsh/site-functions/_oomctl
%endif
%{_datadir}/zsh/site-functions/_run0
%{_distconfdir}/ssh/ssh_config.d/20-systemd-ssh-proxy.conf
%if %{without bootstrap}
%{_mandir}/man1/oomctl.1.gz
%{_mandir}/man1/run0.1.gz
%{_mandir}/man1/systemd-keyutil.1.gz
%{_mandir}/man1/systemd-measure.1.gz
%if %{with upstream}
%{_mandir}/man1/systemd-pty-forward.1.gz
%endif
%{_mandir}/man1/systemd-sbsign.1.gz
%if %{with upstream}
%{_mandir}/man1/systemd-ssh-issue.1.gz
%endif
%{_mandir}/man1/systemd-ssh-proxy.1.gz
%{_mandir}/man1/systemd-vmspawn.1.gz
%{_mandir}/man1/updatectl.1.gz
%if %{with sd_boot}
%{_mandir}/man1/ukify.1.gz
%endif
%{_mandir}/man5/oomd.conf.5.gz
%{_mandir}/man5/oomd.conf.d.5.gz
%{_mandir}/man5/org.freedesktop.oom1.5.gz
%{_mandir}/man5/org.freedesktop.sysupdate1.5.gz
%{_mandir}/man5/systemd.pcrlock.5.gz
%{_mandir}/man5/systemd.pcrlock.d.5.gz
%{_mandir}/man5/sysupdate.d.5.gz
%{_mandir}/man5/sysupdate.features.5.gz
%{_mandir}/man8/systemd-bsod.8.gz
%{_mandir}/man8/systemd-bsod.service.8.gz
%if %{with upstream}
%{_mandir}/man8/systemd-factory-reset-complete.service.8.gz
%{_mandir}/man8/systemd-factory-reset-generator.8.gz
%{_mandir}/man8/systemd-factory-reset-request.service.8.gz
%{_mandir}/man8/systemd-factory-reset.8.gz
%{_mandir}/man8/systemd-factory-reset.socket.8.gz
%{_mandir}/man8/systemd-factory-reset@.service.8.gz
%endif
%{_mandir}/man8/systemd-oomd.8.gz
%{_mandir}/man8/systemd-oomd.service.8.gz
%if %{with sd_boot}
@@ -107,24 +78,17 @@
%{_mandir}/man8/systemd-sysupdate.8.gz
%{_mandir}/man8/systemd-sysupdate.service.8.gz
%{_mandir}/man8/systemd-sysupdate.timer.8.gz
%{_mandir}/man8/systemd-sysupdated.8.gz
%{_mandir}/man8/systemd-sysupdated.service.8.gz
%if %{with upstream}
%if %{with sd_boot}
%{_mandir}/man8/systemd-tpm2-clear.service.8.gz
%endif
%endif
%{_mandir}/man8/systemd-tpm2-generator.8.gz
%if %{with sd_boot}
%{_mandir}/man8/systemd-tpm2-setup-early.service.8.gz
%{_mandir}/man8/systemd-tpm2-setup.8.gz
%{_mandir}/man8/systemd-tpm2-setup.service.8.gz
%endif
%if %{with upstream}
%{_mandir}/man8/systemd-validatefs@.service.8.gz
%{_pam_vendordir}/systemd-run0
%if %{with sd_boot}
%{_prefix}/lib/kernel/install.d/60-ukify.install
%endif
%endif
%if %{without bootstrap}
%{_prefix}/lib/kernel/uki.conf
%{_prefix}/lib/pcrlock.d/350-action-efi-application.pcrlock
%{_prefix}/lib/pcrlock.d/400-secureboot-separator.pcrlock.d/300-0x00000000.pcrlock
%{_prefix}/lib/pcrlock.d/400-secureboot-separator.pcrlock.d/600-0xffffffff.pcrlock
@@ -140,9 +104,6 @@
%{_prefix}/lib/pcrlock.d/990-final.pcrlock
%{_systemd_util_dir}/oomd.conf
%{_systemd_util_dir}/systemd-bsod
%if %{with upstream}
%{_systemd_util_dir}/systemd-factory-reset
%endif
%{_systemd_util_dir}/systemd-keyutil
%{_systemd_util_dir}/systemd-measure
%{_systemd_util_dir}/systemd-oomd
@@ -151,55 +112,24 @@
%endif
%{_systemd_util_dir}/systemd-pcrlock
%{_systemd_util_dir}/systemd-sbsign
%if %{with upstream}
%{_systemd_util_dir}/systemd-ssh-issue
%endif
%endif
%{_systemd_util_dir}/systemd-ssh-proxy
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-storagetm
%{_systemd_util_dir}/systemd-sysupdate
%{_systemd_util_dir}/systemd-sysupdated
%if %{with sd_boot}
%if %{with upstream}
%{_systemd_util_dir}/systemd-tpm2-clear
%endif
%{_systemd_util_dir}/systemd-tpm2-setup
%if %{with upstream}
%{_systemd_util_dir}/systemd-validatefs
%endif
%endif
%if %{with upstream}
%{_systemd_util_dir}/user/systemd-vmspawn@.service
%{_systemdgeneratordir}/systemd-factory-reset-generator
%endif
%{_systemd_util_dir}/ukify
%endif
# ssh-generator: in the futur to be moved to the main package
%{_systemdgeneratordir}/systemd-ssh-generator
%{_systemdgeneratordir}/systemd-tpm2-generator
%if %{without bootstrap}
%{_sysusersdir}/systemd-oom.conf
%{_unitdir}/dbus-org.freedesktop.sysupdate1.service
%if %{with upstream}
%{_unitdir}/factory-reset-now.target
%{_unitdir}/factory-reset.target.wants/systemd-factory-reset-request.service
%{_unitdir}/factory-reset.target.wants/systemd-pcrphase-factory-reset.service
%endif
%{_unitdir}/initrd.target.wants/systemd-bsod.service
%if %{with sd_boot}
%{_unitdir}/initrd.target.wants/systemd-pcrphase-initrd.service
%endif
%if %{with upstream}
%{_unitdir}/sockets.target.wants/systemd-factory-reset.socket
%endif
%if %{with sd_boot}
%{_unitdir}/sockets.target.wants/systemd-pcrextend.socket
%{_unitdir}/sockets.target.wants/systemd-pcrlock.socket
%endif
%{_unitdir}/storage-target-mode.target
%if %{with upstream}
%{_unitdir}/storage-target-mode.target.wants/systemd-pcrphase-storage-target-mode.service
%endif
%if %{with sd_boot}
%{_unitdir}/sysinit.target.wants/systemd-pcrmachine.service
%{_unitdir}/sysinit.target.wants/systemd-pcrphase-sysinit.service
@@ -208,13 +138,6 @@
%{_unitdir}/sysinit.target.wants/systemd-tpm2-setup.service
%endif
%{_unitdir}/systemd-bsod.service
%if %{with upstream}
%{_unitdir}/systemd-factory-reset-complete.service
%{_unitdir}/systemd-factory-reset-reboot.service
%{_unitdir}/systemd-factory-reset-request.service
%{_unitdir}/systemd-factory-reset.socket
%{_unitdir}/systemd-factory-reset@.service
%endif
%{_unitdir}/systemd-oomd.service
%{_unitdir}/systemd-oomd.socket
%if %{with sd_boot}
@@ -232,13 +155,7 @@
%{_unitdir}/systemd-pcrlock.socket
%{_unitdir}/systemd-pcrlock@.service
%{_unitdir}/systemd-pcrmachine.service
%if %{with upstream}
%{_unitdir}/systemd-pcrphase-factory-reset.service
%endif
%{_unitdir}/systemd-pcrphase-initrd.service
%if %{with upstream}
%{_unitdir}/systemd-pcrphase-storage-target-mode.service
%endif
%{_unitdir}/systemd-pcrphase-sysinit.service
%{_unitdir}/systemd-pcrphase.service
%endif
@@ -247,21 +164,8 @@
%{_unitdir}/systemd-sysupdate-reboot.timer
%{_unitdir}/systemd-sysupdate.service
%{_unitdir}/systemd-sysupdate.timer
%{_unitdir}/systemd-sysupdated.service
%if %{with upstream}
%if %{with sd_boot}
%{_unitdir}/systemd-tpm2-clear.service
%endif
%endif
%if %{with sd_boot}
%{_unitdir}/systemd-tpm2-setup-early.service
%{_unitdir}/systemd-tpm2-setup.service
%endif
%if %{with upstream}
%{_unitdir}/systemd-validatefs@.service
%endif
%{_unitdir}/systemd-vmspawn@.service
%if %{with upstream}
/usr/etc/profile.d/80-systemd-osc-context.sh
%endif
%endif

View File

@@ -46,9 +46,6 @@
%{_sysusersdir}/systemd-network.conf
%{_tmpfilesdir}/systemd-network.conf
%{_unitdir}/systemd-networkd-persistent-storage.service
%if %{with upstream}
%{_unitdir}/systemd-networkd-varlink.socket
%endif
%{_unitdir}/systemd-networkd-wait-online.service
%{_unitdir}/systemd-networkd-wait-online@.service
%{_unitdir}/systemd-networkd.service

View File

@@ -6,9 +6,6 @@
%{_bindir}/systemd-resolve
%{_datadir}/bash-completion/completions/resolvectl
%{_datadir}/bash-completion/completions/systemd-resolve
%if %{with upstream}
%{_datadir}/dbus-1/interfaces/org.freedesktop.resolve1.DnsDelegate.xml
%endif
%{_datadir}/dbus-1/interfaces/org.freedesktop.resolve1.DnssdService.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.resolve1.Link.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.resolve1.Manager.xml
@@ -21,9 +18,6 @@
%{_mandir}/man5/org.freedesktop.resolve1.5.gz
%{_mandir}/man5/resolved.conf.5.gz
%{_mandir}/man5/resolved.conf.d.5.gz
%if %{with upstream}
%{_mandir}/man5/systemd.dns-delegate.5.gz
%endif
%{_mandir}/man8/libnss_resolve.so.2.8.gz
%{_mandir}/man8/nss-resolve.8.gz
%{_mandir}/man8/systemd-resolved.8.gz
@@ -34,7 +28,3 @@
%{_sysusersdir}/systemd-resolve.conf
%{_tmpfilesdir}/systemd-resolve.conf
%{_unitdir}/systemd-resolved.service
%if %{with upstream}
%{_unitdir}/systemd-resolved-monitor.socket
%{_unitdir}/systemd-resolved-varlink.socket
%endif

View File

@@ -47,9 +47,6 @@
%dir %{_systemd_system_env_generator_dir}
%dir %{_systemd_user_env_generator_dir}
%dir %{_systemd_util_dir}
%if %{with upstream}
%dir %{_systemd_util_dir}/initrd-preset
%endif
%dir %{_systemd_util_dir}/ntp-units.d
%dir %{_systemd_util_dir}/rpm
%dir %{_systemd_util_dir}/system-preset
@@ -110,7 +107,6 @@
%{_bindir}/journalctl
%{_bindir}/localectl
%{_bindir}/loginctl
%{_bindir}/run0
%{_bindir}/systemctl
%{_bindir}/systemd-ac-power
%{_bindir}/systemd-analyze
@@ -153,7 +149,6 @@
%{_datadir}/bash-completion/completions/localectl
%{_datadir}/bash-completion/completions/loginctl
%{_datadir}/bash-completion/completions/portablectl
%{_datadir}/bash-completion/completions/run0
%{_datadir}/bash-completion/completions/systemctl
%{_datadir}/bash-completion/completions/systemd-analyze
%{_datadir}/bash-completion/completions/systemd-cat
@@ -170,9 +165,6 @@
%{_datadir}/bash-completion/completions/systemd-sysext
%{_datadir}/bash-completion/completions/systemd-vpick
%{_datadir}/bash-completion/completions/timedatectl
%if %{with upstream}
%{_datadir}/bash-completion/completions/userdbctl
%endif
%endif
# dbus introspection data for code generators: https://github.com/systemd/systemd/pull/20294
%{_datadir}/dbus-1/interfaces/org.freedesktop.LogControl1.xml
@@ -216,9 +208,6 @@
%{_datadir}/polkit-1/actions/org.freedesktop.login1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy
%if %{with upstream}
%{_datadir}/polkit-1/rules.d/10-systemd-logind-root-ignore-inhibitors.rules.example
%endif
%{_datadir}/systemd/kbd-model-map
%{_datadir}/systemd/language-fallback-map
%if %{without bootstrap}
@@ -228,7 +217,6 @@
%{_datadir}/zsh/site-functions/_journalctl
%{_datadir}/zsh/site-functions/_localectl
%{_datadir}/zsh/site-functions/_loginctl
%{_datadir}/zsh/site-functions/_run0
%{_datadir}/zsh/site-functions/_sd_hosts_or_user_at_host
%{_datadir}/zsh/site-functions/_sd_outputmodes
%{_datadir}/zsh/site-functions/_sd_unit_files
@@ -249,8 +237,8 @@
%{_libdir}/libnss_myhostname.so.2
%{_libdir}/libnss_systemd.so.2
%endif
%{_libdir}/systemd/libsystemd-core-%{base_version}-%{release}.so
%{_libdir}/systemd/libsystemd-shared-%{base_version}-%{release}.so
%{_libdir}/systemd/libsystemd-core-%{systemd_major}.so
%{_libdir}/systemd/libsystemd-shared-%{systemd_major}.so
%if %{without bootstrap}
%{_mandir}/man1/busctl.1.gz
%{_mandir}/man1/coredumpctl.1.gz
@@ -260,7 +248,6 @@
%{_mandir}/man1/localectl.1.gz
%{_mandir}/man1/loginctl.1.gz
%{_mandir}/man1/mount.ddi.1.gz
%{_mandir}/man1/run0.1.gz
%{_mandir}/man1/systemctl.1.gz
%{_mandir}/man1/systemd-ac-power.1.gz
%{_mandir}/man1/systemd-analyze.1.gz
@@ -383,9 +370,6 @@
%{_mandir}/man8/systemd-binfmt.service.8.gz
%{_mandir}/man8/systemd-boot-check-no-failures.8.gz
%{_mandir}/man8/systemd-boot-check-no-failures.service.8.gz
%if %{with upstream}
%{_mandir}/man8/systemd-confext-initrd.service.8.gz
%endif
%{_mandir}/man8/systemd-confext.8.gz
%{_mandir}/man8/systemd-confext.service.8.gz
%{_mandir}/man8/systemd-coredump.8.gz
@@ -411,9 +395,6 @@
%{_mandir}/man8/systemd-localed.service.8.gz
%{_mandir}/man8/systemd-logind.8.gz
%{_mandir}/man8/systemd-logind.service.8.gz
%if %{with upstream}
%{_mandir}/man8/systemd-loop@.service.8.gz
%endif
%{_mandir}/man8/systemd-machine-id-commit.service.8.gz
%{_mandir}/man8/systemd-poweroff.service.8.gz
%{_mandir}/man8/systemd-reboot.service.8.gz
@@ -423,9 +404,6 @@
%{_mandir}/man8/systemd-soft-reboot.service.8.gz
%{_mandir}/man8/systemd-sysctl.8.gz
%{_mandir}/man8/systemd-sysctl.service.8.gz
%if %{with upstream}
%{_mandir}/man8/systemd-sysext-initrd.service.8.gz
%endif
%{_mandir}/man8/systemd-sysext.8.gz
%{_mandir}/man8/systemd-sysext.service.8.gz
%{_mandir}/man8/systemd-system-update-generator.8.gz
@@ -454,7 +432,6 @@
%{_modprobedir}/systemd.conf
%{_pam_moduledir}/pam_systemd.so
%{_pam_moduledir}/pam_systemd_loadkey.so
%{_pam_vendordir}/systemd-run0
%{_pam_vendordir}/systemd-user
%{_sbindir}/halt
%{_sbindir}/init
@@ -471,10 +448,6 @@
%if %{without bootstrap}
%{_systemd_util_dir}/coredump.conf
%endif
%if %{with upstream}
%{_systemd_util_dir}/initrd-preset/90-systemd.preset
%{_systemd_util_dir}/initrd-preset/99-default.preset
%endif
%{_systemd_util_dir}/journald.conf
%{_systemd_util_dir}/logind.conf
%{_systemd_util_dir}/rpm/fixlet-systemd-post.sh
@@ -483,9 +456,7 @@
%{_systemd_util_dir}/systemd
%{_systemd_util_dir}/systemd-binfmt
%{_systemd_util_dir}/systemd-boot-check-no-failures
%if %{without upstream}
%{_systemd_util_dir}/systemd-cgroups-agent
%endif
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-coredump
%endif
@@ -531,14 +502,7 @@
%{_systemd_util_dir}/user/shutdown.target
%{_systemd_util_dir}/user/smartcard.target
%{_systemd_util_dir}/user/sockets.target
%if %{with upstream}
%{_systemd_util_dir}/user/sockets.target.wants/systemd-ask-password.socket
%endif
%{_systemd_util_dir}/user/sound.target
%if %{with upstream}
%{_systemd_util_dir}/user/systemd-ask-password.socket
%{_systemd_util_dir}/user/systemd-ask-password@.service
%endif
%{_systemd_util_dir}/user/systemd-exit.service
%{_systemd_util_dir}/user/systemd-tmpfiles-clean.service
%{_systemd_util_dir}/user/systemd-tmpfiles-clean.timer
@@ -554,9 +518,6 @@
%{_sysusersdir}/systemd-coredump.conf
%endif
%{_sysusersdir}/systemd-journal.conf
%if %{with sd_boot}
%{_tmpfilesdir}/20-systemd-stub.conf
%endif
%{_tmpfilesdir}/credstore.conf
%{_tmpfilesdir}/journal-nocow.conf
%{_tmpfilesdir}/provision.conf
@@ -574,12 +535,6 @@
%{_unitdir}/blockdev@.target
%{_unitdir}/bluetooth.target
%{_unitdir}/boot-complete.target
%if %{with upstream}
%{_unitdir}/breakpoint-pre-basic.service
%{_unitdir}/breakpoint-pre-mount.service
%{_unitdir}/breakpoint-pre-switch-root.service
%{_unitdir}/breakpoint-pre-udev.service
%endif
%{_unitdir}/capsule.slice
%{_unitdir}/capsule@.service
%{_unitdir}/console-getty.service
@@ -604,10 +559,6 @@
%{_unitdir}/getty@.service
%{_unitdir}/graphical.target
%{_unitdir}/halt.target
%if %{with upstream}
%{_unitdir}/imports-pre.target
%{_unitdir}/imports.target
%endif
%{_unitdir}/initrd-cleanup.service
%{_unitdir}/initrd-fs.target
%{_unitdir}/initrd-parse-etc.service
@@ -617,10 +568,6 @@
%{_unitdir}/initrd-switch-root.target
%{_unitdir}/initrd-usr-fs.target
%{_unitdir}/initrd.target
%if %{with upstream}
%{_unitdir}/initrd.target.wants/systemd-confext-initrd.service
%{_unitdir}/initrd.target.wants/systemd-sysext-initrd.service
%endif
%{_unitdir}/kexec.target
%{_unitdir}/local-fs-pre.target
%{_unitdir}/local-fs.target
@@ -652,9 +599,6 @@
%{_unitdir}/slices.target
%{_unitdir}/smartcard.target
%{_unitdir}/sockets.target
%if %{with upstream}
%{_unitdir}/sockets.target.wants/systemd-ask-password.socket
%endif
%if %{without bootstrap}
%{_unitdir}/sockets.target.wants/systemd-coredump.socket
%endif
@@ -662,9 +606,6 @@
%{_unitdir}/sockets.target.wants/systemd-hostnamed.socket
%{_unitdir}/sockets.target.wants/systemd-journald-dev-log.socket
%{_unitdir}/sockets.target.wants/systemd-journald.socket
%if %{with upstream}
%{_unitdir}/sockets.target.wants/systemd-logind-varlink.socket
%endif
%{_unitdir}/sockets.target.wants/systemd-sysext.socket
%{_unitdir}/soft-reboot.target
%{_unitdir}/sound.target
@@ -691,9 +632,6 @@
%{_unitdir}/sysinit.target.wants/systemd-machine-id-commit.service
%{_unitdir}/sysinit.target.wants/systemd-sysctl.service
%{_unitdir}/sysinit.target.wants/systemd-sysusers.service
%if %{with upstream}
%{_unitdir}/sysinit.target.wants/imports.target
%endif
%{_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup.service
%{_unitdir}/sysinit.target.wants/systemd-update-done.service
%if %{with utmp}
@@ -707,15 +645,8 @@
%{_unitdir}/systemd-ask-password-console.service
%{_unitdir}/systemd-ask-password-wall.path
%{_unitdir}/systemd-ask-password-wall.service
%if %{with upstream}
%{_unitdir}/systemd-ask-password.socket
%{_unitdir}/systemd-ask-password@.service
%endif
%{_unitdir}/systemd-binfmt.service
%{_unitdir}/systemd-boot-check-no-failures.service
%if %{with upstream}
%{_unitdir}/systemd-confext-initrd.service
%endif
%{_unitdir}/systemd-confext.service
%if %{without bootstrap}
%{_unitdir}/systemd-coredump.socket
@@ -740,18 +671,11 @@
%{_unitdir}/systemd-kexec.service
%{_unitdir}/systemd-localed.service
%{_unitdir}/systemd-logind.service
%if %{with upstream}
%{_unitdir}/systemd-logind-varlink.socket
%{_unitdir}/systemd-loop@.service
%endif
%{_unitdir}/systemd-machine-id-commit.service
%{_unitdir}/systemd-poweroff.service
%{_unitdir}/systemd-reboot.service
%{_unitdir}/systemd-soft-reboot.service
%{_unitdir}/systemd-sysctl.service
%if %{with upstream}
%{_unitdir}/systemd-sysext-initrd.service
%endif
%{_unitdir}/systemd-sysext.service
%{_unitdir}/systemd-sysext.socket
%{_unitdir}/systemd-sysext@.service
@@ -767,9 +691,6 @@
%endif
%{_unitdir}/systemd-user-sessions.service
%if %{without bootstrap}
%if %{with upstream}
%{_unitdir}/systemd-userdb-load-credentials.service
%endif
%{_unitdir}/systemd-userdbd.service
%{_unitdir}/systemd-userdbd.socket
%endif

View File

@@ -1,23 +1,18 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%if %{without upstream}
%dir %{_unitdir}/runlevel1.target.wants
%dir %{_unitdir}/runlevel2.target.wants
%dir %{_unitdir}/runlevel3.target.wants
%dir %{_unitdir}/runlevel4.target.wants
%dir %{_unitdir}/runlevel5.target.wants
%endif
%{_mandir}/man8/rc-local.service.8.gz
%if %{without upstream}
%{_mandir}/man8/runlevel.8.gz
%{_mandir}/man8/systemd-initctl.8.gz
%{_mandir}/man8/systemd-initctl.service.8.gz
%{_mandir}/man8/systemd-initctl.socket.8.gz
%endif
%{_mandir}/man8/systemd-rc-local-generator.8.gz
%{_mandir}/man8/systemd-sysv-generator.8.gz
%if %{without upstream}
%if %{with utmp}
%{_mandir}/man8/systemd-update-utmp-runlevel.service.8.gz
%endif
@@ -25,18 +20,14 @@
%{_sbindir}/runlevel
%{_sbindir}/telinit
%{_systemd_util_dir}/systemd-initctl
%endif
%{_systemd_util_dir}/systemd-sysv-install
%{_systemdgeneratordir}/systemd-rc-local-generator
%{_systemdgeneratordir}/systemd-sysv-generator
%if %{without upstream}
%if %{with utmp}
%{_unitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service
%{_unitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service
%endif
%endif
%{_unitdir}/rc-local.service
%if %{without upstream}
%if %{with utmp}
%{_unitdir}/rescue.target.wants/systemd-update-utmp-runlevel.service
%endif
@@ -57,4 +48,3 @@
/sbin/runlevel
/sbin/telinit
%endif
%endif

View File

@@ -93,9 +93,6 @@
%{_mandir}/man5/veritytab.5.gz
%{_mandir}/man7/hwdb.7.gz
%{_mandir}/man7/smbios-type-11.7.gz
%if %{with upstream}
%{_mandir}/man7/systemd.image-filter.7.gz
%endif
%{_mandir}/man7/systemd.image-policy.7.gz
%{_mandir}/man7/udev.7.gz
%{_mandir}/man8/kernel-install.8.gz
@@ -134,12 +131,7 @@
%{_mandir}/man8/systemd-pstore.8.gz
%{_mandir}/man8/systemd-pstore.service.8.gz
%{_mandir}/man8/systemd-quotacheck.8.gz
%if %{with upstream}
%{_mandir}/man8/systemd-quotacheck@.service.8.gz
%{_mandir}/man8/systemd-quotacheck-root.service.8.gz
%else
%{_mandir}/man8/systemd-quotacheck.service.8.gz
%endif
%{_mandir}/man8/systemd-random-seed.8.gz
%{_mandir}/man8/systemd-random-seed.service.8.gz
%{_mandir}/man8/systemd-remount-fs.8.gz
@@ -159,9 +151,6 @@
%{_mandir}/man8/systemd-udev-settle.service.8.gz
%{_mandir}/man8/systemd-udevd-control.socket.8.gz
%{_mandir}/man8/systemd-udevd-kernel.socket.8.gz
%if %{with upstream}
%{_mandir}/man8/systemd-udevd-varlink.socket.8.gz
%endif
%{_mandir}/man8/systemd-udevd.8.gz
%{_mandir}/man8/systemd-udevd.service.8.gz
%{_mandir}/man8/systemd-vconsole-setup.8.gz
@@ -187,6 +176,7 @@
%{_prefix}/lib/udev/iocost
%{_prefix}/lib/udev/iocost.conf
%{_prefix}/lib/udev/mtd_probe
%{_prefix}/lib/udev/path_id_compat
%{_prefix}/lib/udev/scsi_id
%{_prefix}/lib/udev/udev.conf
%{_prefix}/lib/udev/v4l_id
@@ -277,9 +267,6 @@
%{_udevhwdbdir}/70-cameras.hwdb
%{_udevhwdbdir}/70-hardware-wallets.hwdb
%{_udevhwdbdir}/70-joystick.hwdb
%if %{with upstream}
%{_udevhwdbdir}/70-maker-tools.hwdb
%endif
%{_udevhwdbdir}/70-mouse.hwdb
%{_udevhwdbdir}/70-pda.hwdb
%{_udevhwdbdir}/70-pointingstick.hwdb
@@ -298,9 +285,6 @@
%{_udevrulesdir}/60-infiniband.rules
%{_udevrulesdir}/60-input-id.rules
%{_udevrulesdir}/60-persistent-alsa.rules
%if %{with upstream}
%{_udevrulesdir}/60-persistent-hidraw.rules
%endif
%{_udevrulesdir}/60-persistent-input.rules
%{_udevrulesdir}/60-persistent-storage-mtd.rules
%{_udevrulesdir}/60-persistent-storage-tape.rules
@@ -308,6 +292,7 @@
%{_udevrulesdir}/60-persistent-v4l.rules
%{_udevrulesdir}/60-sensor.rules
%{_udevrulesdir}/60-serial.rules
%{_udevrulesdir}/61-persistent-storage-compat.rules
%{_udevrulesdir}/64-btrfs.rules
%{_udevrulesdir}/70-camera.rules
%{_udevrulesdir}/70-joystick.rules
@@ -324,13 +309,7 @@
%{_udevrulesdir}/80-drivers.rules
%endif
%{_udevrulesdir}/80-net-setup-link.rules
%if %{with upstream}
%{_udevrulesdir}/81-net-bridge.rules
%endif
%{_udevrulesdir}/81-net-dhcp.rules
%if %{with upstream}
%{_udevrulesdir}/90-image-dissect.rules
%endif
%{_udevrulesdir}/90-iocost.rules
%{_udevrulesdir}/90-vconsole.rules
%if %{without bootstrap}
@@ -341,9 +320,6 @@
%{_unitdir}/hybrid-sleep.target
%if %{without bootstrap}
%{_unitdir}/initrd-root-device.target.wants/remote-cryptsetup.target
%if %{with upstream}
%{_unitdir}/initrd-root-device.target.wants/remote-integritysetup.target
%endif
%{_unitdir}/initrd-root-device.target.wants/remote-veritysetup.target
%endif
%{_unitdir}/initrd-udevadm-cleanup-db.service
@@ -357,9 +333,6 @@
%{_unitdir}/quotaon@.service
%if %{without bootstrap}
%{_unitdir}/remote-cryptsetup.target
%if %{with upstream}
%{_unitdir}/remote-integritysetup.target
%endif
%{_unitdir}/remote-veritysetup.target
%endif
%{_unitdir}/sleep.target
@@ -368,9 +341,6 @@
%endif
%{_unitdir}/sockets.target.wants/systemd-udevd-control.socket
%{_unitdir}/sockets.target.wants/systemd-udevd-kernel.socket
%if %{with upstream}
%{_unitdir}/sockets.target.wants/systemd-udevd-varlink.socket
%endif
%{_unitdir}/suspend-then-hibernate.target
%{_unitdir}/suspend.target
%if %{without bootstrap}
@@ -438,9 +408,6 @@
%{_unitdir}/systemd-udevd-control.socket
%{_unitdir}/systemd-udevd-kernel.socket
%{_unitdir}/systemd-udevd.service
%if %{with upstream}
%{_unitdir}/systemd-udevd-varlink.socket
%endif
%{_unitdir}/systemd-vconsole-setup.service
%{_unitdir}/systemd-volatile-root.service
%{_unitdir}/tpm2.target

View File

@@ -15,9 +15,6 @@
%{_mandir}/man8/systemd-bless-boot-generator.8.gz
%{_mandir}/man8/systemd-bless-boot.8.gz
%{_mandir}/man8/systemd-bless-boot.service.8.gz
%if %{with upstream}
%{_mandir}/man8/systemd-boot-clear-sysfail.service.8.gz
%endif
%{_mandir}/man8/systemd-boot-random-seed.service.8.gz
%endif
# These are the few exceptions where glob pattern is allowed.
@@ -26,10 +23,8 @@
%{_systemd_util_dir}/boot/efi/systemd-boot*.efi
%{_systemd_util_dir}/systemd-bless-boot
%{_systemdgeneratordir}/systemd-bless-boot-generator
%{_tmpfilesdir}/20-systemd-stub.conf
%{_unitdir}/sysinit.target.wants/systemd-boot-random-seed.service
%{_unitdir}/systemd-bless-boot.service
%if %{with upstream}
%{_unitdir}/systemd-boot-clear-sysfail.service
%endif
%{_unitdir}/systemd-boot-random-seed.service
%{_unitdir}/systemd-boot-update.service

View File

@@ -1,8 +0,0 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%{_bindir}/ukify
%{_mandir}/man1/ukify.1.gz
%{_prefix}/lib/kernel/install.d/60-ukify.install
%{_prefix}/lib/kernel/uki.conf
%{_systemd_util_dir}/ukify

146
fixlet-container-post.sh Normal file
View File

@@ -0,0 +1,146 @@
#! /bin/bash
#
# This script contains all the fixups run when systemd-container package is
# installed or updated.
#
warn() {
echo >&2 "warning: $@"
}
is_btrfs_subvolume() {
# On btrfs subvolumes always have the inode 256
test $(stat --format=%i "$1") -eq 256
}
# This assumes the directory/subvol is emptied by the caller.
rm_subvolume_or_directory() {
is_btrfs_subvolume "$1" && {
btrfs subvolume delete "$1"
return
}
rmdir "$1"
}
# On systems using BTRFS, convert /var/lib/machines into a subvolume suitable
# for snapper to perform snapshots, rollbacks.. in case it was not properly set
# up, see bsc#992573. The installer has been fixed to properly initialize it at
# installation time.
#
# The conversion might only be problematic for openSUSE distros (TW/Factory)
# where the subvolume was created at the wrong place (via tmpfiles for example)
# and it got populated before we had time to fix it. In this case we'll let the
# user fix it manually.
#
# On SLE12 this subvolume was only introduced during the upgrade from v210 to
# v228 (ie SLE12-SP[01] -> SLE12-SP2+ when we added this workaround hence no
# user should had time to populate it. Note that the subvolume is still created
# at the wrong place due to the call to tmpfiles_create macro in the %post
# section however it's empty so again we shouldn't face any issue to convert it.
#
# In order to avoid ugly dependencies added in systemd package, this function
# should only be called during package updates when mksubvolume(8) is
# available. During installation, /var/lib/machines is supposed to be created by
# the installer now.
#
# See bsc#992573
#
fix_machines_subvol() {
local tagfile=/var/lib/systemd/rpm/container-machines_subvol
if [ -e $tagfile ]; then
return 0
fi
touch $tagfile
#
# If there's already an entry in fstab for /var/lib/machines, it
# means that:
#
# - the installer initialized /var/lib/machines correctly (default)
# - we already fixed it
# - the sysadmin added it manually
#
# In any cases we should return.
#
# Note: we can't simply check if /var/lib/machines has been mounted
# because an update through a chroot might be in progress (see
# bsc#1030290).
#
if mount --fake /var/lib/machines 2>/dev/null; then
return
fi
#
# If there is already an entry in fstab for /var, it means that:
#
# - the system has a seperate /var subvolume (default from Feb 2018)
# - the system has a seperate /var partition
#
# In any case we should return.
#
if mount --fake /var 2>/dev/null; then
return
fi
#
# If something is already mounted don't try to fix anything, it's been
# done manually by the sysadmin.
#
if mountpoint -q /var/lib/machines; then
return
fi
#
# Let's try to figure out if the current filesystem uses a Snapper
# BTRFS specific layout. Note that TW uses a different layout than
# SLE...
#
# FIXME: not sure if it's correct, reliable or optimal.
#
case $(findmnt -nr -t btrfs -o FSROOT / 2>/dev/null) in
*.snapshots/*/snapshot*)
;;
*)
return 0
esac
if test -d /var/lib/machines; then
#
# Ok, we're on a system supporting rollbacks and
# /var/lib/machines is not a subvolume remotely mounted so it
# cannot be suitable for systems supporting rollback. Fix it.
#
echo "Making /var/lib/machines suitable for rollbacks..."
type mksubvolume >/dev/null 2>&1 || {
warn "mksubvolume(8) is not installed, aborting."
return 1
}
test "$(ls -A /var/lib/machines/)" && {
warn "/var/lib/machines is not empty, aborting."
return 1
}
echo "Deleting empty /var/lib/machines directory/subvolume"
rm_subvolume_or_directory /var/lib/machines || {
warn "fail to delete /var/lib/machines"
return 1
}
fi
# At this point /var/lib/machines shouldn't exist.
echo "Creating /var/lib/machines subvolume suitable for rollbacks."
mksubvolume /var/lib/machines
}
r=0
if [ $1 -gt 1 ]; then
# During upgrade
fix_machines_subvol || {
warn "Please fix /var/lib/machines manually."
r=1
}
fi
exit $r

View File

@@ -4,10 +4,6 @@
# updated.
#
warn() {
echo >&2 "warning: $@"
}
#
# /etc/machine-id might have been created writeable incorrectly (boo#1092269).
#
@@ -96,152 +92,10 @@ EOF
done
}
# On systems using the old btrfs layout, where /var was not a separate
# subvolume, convert /var/lib/machines into a subvolume suitable for snapper to
# perform snapshots, rollbacks, see bsc#992573.
#
# The conversion might only be problematic for openSUSE distros (TW/Factory)
# where the subvolume was created at the wrong place (via tmpfiles for example)
# and it got populated before we had time to fix it. In this case we'll let the
# user fix it manually.
#
# On SLE12 this subvolume was only introduced during the upgrade from v210 to
# v228 (ie SLE12-SP[01] -> SLE12-SP2+ when we added this workaround hence no
# user should had time to populate it. Note that the subvolume is still created
# at the wrong place due to the call to tmpfiles_create macro in the %post
# section however it's empty so again we shouldn't face any issue to convert it.
#
# In order to avoid ugly dependencies added in systemd package, this function
# should only be called during package updates when mksubvolume(8) is
# available. During installation, /var/lib/machines is supposed to be created by
# the installer now.
#
# See bsc#992573.
#
is_btrfs_subvolume() {
# On btrfs subvolumes always have the inode 256
test $(stat --format=%i "$1") -eq 256
}
# This assumes the directory/subvol to remove is empty.
rm_subvolume_or_directory() {
is_btrfs_subvolume "$1" && {
btrfs subvolume delete "$1"
return
}
rmdir "$1"
}
fix_machines_subvol() {
local tagfile=/var/lib/systemd/rpm/container-machines_subvol
#
# This test is probably redundant with the ones below but we don't want
# to run this on transactional systems since /var has always been a
# separate subvolume on such systems.
#
if [ -n "${TRANSACTIONAL_UPDATE}" ]; then
return 0
fi
if [ -e $tagfile ]; then
return 0
fi
touch $tagfile
#
# If there's already an entry in fstab for /var/lib/machines, it
# means that:
#
# - the installer initialized /var/lib/machines correctly (default)
# - we already fixed it
# - the sysadmin added it manually
#
# In any cases we should return.
#
# Note: we can't simply check if /var/lib/machines has been mounted
# because an offline update might be in progress (see bsc#1030290).
#
if mount --fake /var/lib/machines 2>/dev/null; then
return
fi
#
# If there is already an entry in fstab for /var, it means that:
#
# - the system has a seperate /var subvolume (default from Feb 2018)
# - the system has a seperate /var partition
#
# In any case we should return.
#
if mount --fake /var 2>/dev/null; then
return
fi
#
# If something is already mounted don't try to fix anything, it's been
# done manually by the sysadmin.
#
if mountpoint -q /var/lib/machines; then
return
fi
#
# Let's try to figure out if the current filesystem uses a Snapper
# BTRFS specific layout. Note that TW uses a different layout than
# SLE...
#
# FIXME: not sure if it's correct, reliable or optimal.
#
case $(findmnt -nr -t btrfs -o FSROOT / 2>/dev/null) in
*.snapshots/*/snapshot*)
;;
*)
return 0
esac
if test -d /var/lib/machines; then
#
# Ok, we're on a system supporting rollbacks and
# /var/lib/machines is not a subvolume remotely mounted so it
# cannot be suitable for systems supporting rollback. Fix it.
#
echo "Making /var/lib/machines suitable for rollbacks..."
type mksubvolume >/dev/null 2>&1 || {
warn "mksubvolume(8) is not installed, aborting."
return 1
}
test "$(ls -A /var/lib/machines/)" && {
warn "/var/lib/machines is not empty, aborting."
return 1
}
echo "Deleting empty /var/lib/machines directory/subvolume"
rm_subvolume_or_directory /var/lib/machines || {
warn "fail to delete /var/lib/machines"
return 1
}
fi
# At this point /var/lib/machines shouldn't exist.
echo "Creating /var/lib/machines subvolume suitable for rollbacks."
mksubvolume /var/lib/machines
}
r=0
fix_machine_id_perms || r=1
fix_bsc_1020601 || r=1
fix_issue_11329 || r=1
drop_after_local_support || r=1
if [ $1 -gt 1 ]; then
# During upgrade
fix_machines_subvol || {
warn "Please fix the initialization of /var/lib/machines manually."
r=1
}
fi
exit $r

View File

@@ -3,10 +3,6 @@
#
# Used by run0 session.
account include common-account
session required pam_selinux.so close
session required pam_selinux.so open
session required pam_loginuid.so
session optional pam_keyinit.so force revoke
session include common-session
account include common-account
session optional pam_keyinit.so force revoke
session include common-session

BIN
systemd-257.7+suse.19.ga0dfd5de4c.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:90077ff9a0c0dead188f4bd396948afe0d71e2e8c1f583037ac43b7c8269c369
size 11631444

View File

@@ -1,34 +1,5 @@
-------------------------------------------------------------------
Mon Aug 4 08:54:26 UTC 2025 - Franck Bui <fbui@suse.com>
- Move run0 from the experimental sub-package to the main package
-------------------------------------------------------------------
Mon Aug 4 07:44:57 UTC 2025 - Franck Bui <fbui@suse.com>
- Import commit 835af70f4e4fab4746319145d9fdb1a01e33f4c8
835af70f4e core/cgroup: Properly handle aborting a pending freeze operation
1f96f9da13 detect-virt: add bare-metal support for GCE (bsc#1244449)
----------------------------------------------------------------------------
Mon Aug 2 11:21:30 UTC 2025 - Franck Bui <fbui@suse.com>
- Update pam.systemd-run0 (in the experimental sub-package)
----------------------------------------------------------------------------
Sat Aug 2 10:40:37 UTC 2025 - Franck Bui <fbui@suse.com>
- Build the experimental package for the mini flavor too
Some tools in the experimental sub-package cannot be disabled at compile
time. Previously, these tools were manually deleted after installation to
prevent rpmbuild from reporting unpackaged files. However, as the number of such
tools continues to grow, it's simpler to include them in the mini-experimental
sub-package.
-------------------------------------------------------------------
Thu Jul 31 14:59:23 UTC 2025 - Franck Bui <fbui@suse.com>
Thu Jul 31 14:32:25 UTC 2025 - Franck Bui <fbui@suse.com>
- Remove the script used to help migrating the language and locale settings
located in /etc/sysconfig/language on old systems to the systemd default
@@ -36,20 +7,10 @@ Thu Jul 31 14:59:23 UTC 2025 - Franck Bui <fbui@suse.com>
The script was introduced more than 7 years ago and all systems running TW
should have been migrated since then. Moreover the installer supports the
systemd default locations since approximately SLE15.
systemd default locations since approximately SLE15.
-------------------------------------------------------------------
Mon Jul 21 08:53:43 UTC 2025 - Valentin Lefebvre <valentin.lefebvre@suse.com>
- systemd-testsuite: fix Requires to systemd-ukify
-------------------------------------------------------------------
Thu Jul 17 15:25:27 UTC 2025 - Fabian Vogt <fvogt@suse.com>
- Build systemd-boot for riscv64
-------------------------------------------------------------------
Tue Jul 15 17:25:48 UTC 2025 - Franck Bui <fbui@suse.com>
Tue Jul 15 17:44:09 UTC 2025 - Franck Bui <fbui@suse.com>
- systemd-update-helper: fix regression introduced when support for package
renaming/splitting was added (bsc#1245551)
@@ -57,57 +18,16 @@ Tue Jul 15 17:25:48 UTC 2025 - Franck Bui <fbui@suse.com>
The cleanup of the flags in /run/systemd/rpm was previously handled in the
%pretrans/%posttrans sections of the systemd main package. However, this
method was ineffective if systemd was not part of the transaction. The cleanup
is now run in %transfiletriggerin instead.
is now run in %transfiletriggerin instead.
-------------------------------------------------------------------
Tue Jul 15 07:23:37 UTC 2025 - Valentin Lefebvre <valentin.lefebvre@suse.com>
Fri Jul 4 12:50:39 UTC 2025 - Franck Bui <fbui@suse.com>
- Add sub-package for ukify binary.
move ukify from experimental package to a dedicated sub package.
- triggers.systemd: skip update of hwdb, journal-catalog if executed during an
offline update.
-------------------------------------------------------------------
Fri Jul 11 16:52:08 UTC 2025 - Franck Bui <fbui@suse.com>
- Import commit c3bcfc95582fd573e0b5686ce8115e3cf9a8122e
c3bcfc9558 uki.conf is used by the ukify tool to create an Unified Kernel Image [...]
-------------------------------------------------------------------
Fri Jul 11 14:44:12 UTC 2025 - Franck Bui <fbui@suse.com>
- Make sure that the ordering trick used to update the udev package as close as
as possible to the update of the systemd package also works with zypper.
We also need to add "Suggests: udev", which serves the same purpose as
"OrderWithRequires: udev" but is part of the repository metadata. It should
therefore hint zypper to install systemd and udev as close together as
possible (see bsc#1228659)
-------------------------------------------------------------------
Fri Jul 4 14:57:26 UTC 2025 - Franck Bui <fbui@suse.com>
- Move the workaround which consists in converting /var/lib/machines as a
separate subvolume in cases where it was incorrectly created inside a
snapshot.
Relocating the workaround from the systemd-container sub-package to the main
package ensures it's applied on old systems where it's still needed [1] even
if the systemd-container sub-package is not installed.
This change should allow us to eventually drop the workaround in the future.
[1] The workaround is required on legacy installations (those made more than
eight years ago) where /var was not a separate subvolume.
-------------------------------------------------------------------
Fri Jul 4 12:43:24 UTC 2025 - Franck Bui <fbui@suse.com>
- triggers.systemd: skip update of hwdb, journal-catalog if executed during
an offline update.
-------------------------------------------------------------------
Tue Jul 1 10:05:12 UTC 2025 - Franck Bui <fbui@suse.com>
Tue Jul 1 10:31:41 UTC 2025 - Franck Bui <fbui@suse.com>
- Import commit a0dfd5de4cdc3f97ef2ad23396904f3e20769317 (merge of v257.7)
@@ -115,7 +35,7 @@ Tue Jul 1 10:05:12 UTC 2025 - Franck Bui <fbui@suse.com>
https://github.com/openSUSE/systemd/compare/1e42ecf5a145589954df77da05937ee69619f3e5...a0dfd5de4cdc3f97ef2ad23396904f3e20769317
-------------------------------------------------------------------
Thu Jun 19 12:42:37 UTC 2025 - Franck Bui <fbui@suse.com>
Thu Jun 19 15:36:28 UTC 2025 - Franck Bui <fbui@suse.com>
- Import commit 1e42ecf5a145589954df77da05937ee69619f3e5
@@ -127,7 +47,7 @@ Thu Jun 19 12:42:37 UTC 2025 - Franck Bui <fbui@suse.com>
2b39393efa env-file: rework write_env_file() to make use of O_TMPFILE
-------------------------------------------------------------------
Mon Jun 2 06:51:45 UTC 2025 - Franck Bui <fbui@suse.com>
Mon Jun 2 08:17:20 UTC 2025 - Franck Bui <fbui@suse.com>
- Import commit c929295b4c1fb3cd6b9963bc7588fbc3e597ab86 (merge of v257.6)
@@ -139,7 +59,7 @@ Mon Jun 2 06:51:45 UTC 2025 - Franck Bui <fbui@suse.com>
https://github.com/openSUSE/systemd/compare/8e9840a2897e36ae3f926f8d10a2b0d7e4102c67...c929295b4c1fb3cd6b9963bc7588fbc3e597ab86
-------------------------------------------------------------------
Fri May 16 10:49:22 UTC 2025 - Franck Bui <fbui@suse.com>
Fri May 16 11:06:10 UTC 2025 - Franck Bui <fbui@suse.com>
- Import commit 8e9840a2897e36ae3f926f8d10a2b0d7e4102c67 (bsc#1243280)
@@ -153,23 +73,41 @@ Thu May 15 12:04:47 UTC 2025 - Fabian Vogt <fvogt@suse.com>
- systemd-update-helper: Fix invalid use of "break" in case statement
-------------------------------------------------------------------
Tue Apr 22 15:06:19 UTC 2025 - Franck Bui <fbui@suse.com>
Fri May 9 14:38:03 UTC 2025 - Franck Bui <fbui@suse.com>
- systemd-update-helper: do not stop or disable services when they are migrated
to other packages. This can occur during package renaming or splitting.
- Add 1002-udev-persistent-net-rules-support.patch (bsc#1241190)
This re-adds back the support for persistent net name rule. This is needed to
support upgrades from older systems relying on persistent net rules.
-------------------------------------------------------------------
Wed Apr 16 14:09:42 UTC 2025 - Franck Bui <fbui@suse.com>
Fri May 9 14:06:08 UTC 2025 - Franck Bui <fbui@suse.com>
- systemd-update-helper: do not stop or disable services when they are migrated
to other packages. This can occur during package renaming or splitting.
-------------------------------------------------------------------
Fri May 9 14:00:17 UTC 2025 - Franck Bui <fbui@suse.com>
- Add 1001-journal-again-create-user-journals-for-users-with-hi.patch (bsc#1242938)
Don't write messages sent from users with UID falling into the container UID
range to the system journal. Daemons in the container don't talk to the
outside journald as they talk to the inner one directly, which does its
journal splitting based on shifted uids.
-------------------------------------------------------------------
Wed Apr 16 14:21:26 UTC 2025 - Franck Bui <fbui@suse.com>
- Split systemd-network into two new sub-packages: systemd-networkd and
systemd-resolved (bsc#1224386 jsc#PED-12669)
-------------------------------------------------------------------
Fri Apr 4 08:43:26 UTC 2025 - Franck Bui <fbui@suse.com>
Thu Apr 10 13:07:55 UTC 2025 - Franck Bui <fbui@suse.com>
- Import commit c10a66fb4dd34b86d42fa92501bd88db63df479a (merge of v257.5)
This merge includes the following fixes:
This merge includes the following fix:
9b52c10986 test-network: replace symlink to 99-default.link with a copy
d7577221b8 man/pstore.conf: pstore.conf template is not always installed in /etc
@@ -180,12 +118,17 @@ Fri Apr 4 08:43:26 UTC 2025 - Franck Bui <fbui@suse.com>
https://github.com/openSUSE/systemd/compare/f133e5974e69708d7491d4823780690c913f7bda...c10a66fb4dd34b86d42fa92501bd88db63df479a
-------------------------------------------------------------------
Wed Mar 12 20:21:42 UTC 2025 - Franck Bui <fbui@suse.com>
Mon Mar 17 10:52:55 UTC 2025 - Franck Bui <fbui@suse.com>
- Maintain the network device naming scheme used on SLE15 (jsc#PED-12317)
-------------------------------------------------------------------
Thu Mar 13 13:24:50 UTC 2025 - Franck Bui <fbui@suse.com>
- triggers.systemd: more posix.fork() conversion (bsc#1238566)
-------------------------------------------------------------------
Wed Mar 12 14:41:02 UTC 2025 - Franck Bui <fbui@suse.com>
Wed Mar 12 17:46:55 UTC 2025 - Franck Bui <fbui@suse.com>
- Import commit f133e5974e69708d7491d4823780690c913f7bda (merge of v257.4)
@@ -193,34 +136,7 @@ Wed Mar 12 14:41:02 UTC 2025 - Franck Bui <fbui@suse.com>
https://github.com/openSUSE/systemd/compare/e03ffd74c4a30c1c75e05874ce18d31e503437b7...f133e5974e69708d7491d4823780690c913f7bda
-------------------------------------------------------------------
Mon Mar 3 09:56:53 UTC 2025 - Franck Bui <fbui@suse.com>
- Name libsystemd-{shared,core} based on the major version of systemd and the
package release number (bsc#1228081)
This way, both the old and new versions of these shared libraries will be
present during the update. This should prevent issues during package updates
when incompatible changes are introduced in the new versions of these shared
libraries.
Note: these libraries are private so only binaries shipped by systemd and its
sub-packages can be linked against them.
-------------------------------------------------------------------
Wed Feb 26 09:39:53 UTC 2025 - Luca Boccassi <luca.boccassi@gmail.com>
- Move 20-systemd-stub.conf tmpfiles.d from the systemd-boot
package to the systemd main package, as it is needed in the
initrd to copy stuff from /.extra to /run/systemd/stub.
Installing systemd-boot in the initrd is not the right approach,
as that pulls in the bootloader and other files that have no use
in the initrd and just take up space. The main package is always
in the initrd, so it's the right place to ensure that, if
systemd-boot is used, the snippet is present, and it will be a
no-op otherwise.
-------------------------------------------------------------------
Fri Feb 14 09:00:29 UTC 2025 - Franck Bui <fbui@suse.com>
Fri Feb 14 15:05:52 UTC 2025 - Franck Bui <fbui@suse.com>
- Import commit e03ffd74c4a30c1c75e05874ce18d31e503437b7 (merge of v257.3)
@@ -228,12 +144,7 @@ Fri Feb 14 09:00:29 UTC 2025 - Franck Bui <fbui@suse.com>
https://github.com/openSUSE/systemd/compare/47794646786ae4ddb6d3deb2030e2761447999ec...e03ffd74c4a30c1c75e05874ce18d31e503437b7
-------------------------------------------------------------------
Wed Feb 12 14:12:10 UTC 2025 - Thorsten Kukuk <kukuk@suse.com>
- Enable systemd-sysupdated and updatectl as experimental subpackage
-------------------------------------------------------------------
Fri Feb 7 14:14:01 UTC 2025 - Franck Bui <fbui@suse.com>
Fri Feb 14 13:38:22 UTC 2025 - Franck Bui <fbui@suse.com>
- Import commit 47794646786ae4ddb6d3deb2030e2761447999ec
@@ -241,30 +152,48 @@ Fri Feb 7 14:14:01 UTC 2025 - Franck Bui <fbui@suse.com>
2c8382881f systemd-pull: support .asc and .sha256.* signature (bsc#1236887)
-------------------------------------------------------------------
Tue Feb 4 17:12:46 UTC 2025 - Franck Bui <fbui@suse.com>
Thu Feb 6 08:20:18 UTC 2025 - Franck Bui <fbui@suse.com>
- triggers.systemd: convert posix.fork() and posix.exec() to rpm.execute() (bsc#1236741)
-------------------------------------------------------------------
Tue Feb 4 10:51:41 UTC 2025 - Franck Bui <fbui@suse.com>
Thu Feb 6 08:15:34 UTC 2025 - Franck Bui <fbui@suse.com>
- Update 0009-pid1-handle-console-specificities-weirdness-for-s390.patch to not
warn when "conmode=" is not specified on s390x (bsc#1236725).
-------------------------------------------------------------------
Tue Feb 4 09:05:34 UTC 2025 - Franck Bui <fbui@suse.com>
Tue Feb 4 09:01:53 UTC 2025 - Franck Bui <fbui@suse.com>
- Move systemd-userwork from the experimental sub-package to the main package (bsc#1236643)
It is likely an oversight from when systemd-userdb was migrated from the
experimental package to the main one.
experimental package to the main one.
-------------------------------------------------------------------
Thu Jan 30 15:28:33 UTC 2025 - Michal Koutný <mkoutny@suse.com>
Wed Jan 29 16:48:05 UTC 2025 - Franck Bui <fbui@suse.com>
- Drop 5004-disable-session-freeze.patch since the kernel fix commit
d96c77bd4eeba ("KVM: x86: switch hugepage recovery thread to vhost_task")
v6.13-rc1~97^2~3 is in Tumbleweed kernel
- Port path_id_compat to the sd_device API
-------------------------------------------------------------------
Thu Jan 9 10:37:48 UTC 2025 - Franck Bui <fbui@suse.com>
- Upgrade systemd with systemd v257.2 from Base:System (revision:1574)
- Rename 0001-udev-restore-some-legacy-symlinks-to-maintain-backwa.patch into
0003-udev-restore-some-legacy-symlinks-to-maintain-backwa.patch
Given that SLE16 will be based on SLFO, we have no choice but to continue
supporting these compat symlinks. This compatibility code is no longer
maintained in the Git repository though, as we primarily backport upstream
commits these days. Additionally, the compat code rarely changes and often
causes conflicts when merged into recent versions of systemd.
- Drop 5003-99-systemd.rules-rework-SYSTEMD_READY-logic-for-devi.patch, it's
part of systemd v256.
- Drop 5004-udev-allow-denylist-for-reading-sysfs-attributes-whe.patch, it's
part of systemd v256.
-------------------------------------------------------------------
Wed Jan 8 16:43:48 UTC 2025 - Franck Bui <fbui@suse.com>
@@ -308,11 +237,6 @@ Thu Dec 26 10:07:33 UTC 2024 - Franck Bui <fbui@suse.com>
for details. For running the testsuite, the systemd git repository has to be
cloned for now. We'll try to adapt the testsuite sub-package these changes.
-------------------------------------------------------------------
Tue Dec 24 08:43:42 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
- Fix systemd-network recommending libidn2-devel (boo#1234765)
-------------------------------------------------------------------
Sun Dec 22 17:31:07 UTC 2024 - Franck Bui <fbui@suse.com>

View File

@@ -1,5 +1,5 @@
#
# spec file for package systemd
# spec file
#
# Copyright (c) 2025 SUSE LLC
#
@@ -25,17 +25,14 @@
%define systemd_version %{?version_override}%{!?version_override:%(cat meson.version)}
%define systemd_release %{?release_override}%{!?release_override:0}
%define archive_version %{nil}
%endif
# Enable this feature if the package version is set by obs-service-set_version.
%bcond_with obs_service_set_version
%if %{without obs_service_set_version}
%else
%define systemd_version 257.7
%define systemd_release 0
%define archive_version +suse.22.g835af70f4e
%define archive_version +suse.19.ga0dfd5de4c
%endif
%define systemd_major 257
%define _testsuitedir %{_systemd_util_dir}/tests
%define xinitconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}/X11/xinit
@@ -66,13 +63,14 @@
%bcond_without networkd
%bcond_without portabled
%bcond_without resolved
%ifarch %{ix86} x86_64 aarch64 riscv64
%ifarch %{ix86} x86_64 aarch64
%bcond_without sd_boot
%else
%bcond_with sd_boot
%endif
%bcond_without selinux
%bcond_without sysvcompat
%bcond_without experimental
%bcond_without testsuite
%endif
@@ -84,8 +82,8 @@
Name: systemd%{?mini}
URL: http://www.freedesktop.org/wiki/Software/systemd
Version: %{?systemd_version}
Release: 0%{?systemd_release}
Version: %systemd_version
Release: %systemd_release
Summary: A System and Session Manager
License: LGPL-2.1-or-later
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -158,17 +156,14 @@ Requires(post): coreutils
Requires(post): findutils
Requires(post): systemd-presets-branding
Requires(post): pam-config >= 0.79-5
# See bsc#1228659
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
# These weak dependencies because some features are optional and enabled at
# runtime with the presence of the relevant libs.
Recommends: libpcre2-8-0
Recommends: libbpf1
%endif
# These 2 dependencies (the first for rpm the second for zypper) ensure that
# udev and systemd are updated as close together as possible in order to reduce
# the window during which libsystemd-shared.so has been updated but udev has not
# and still relies on the old version of the shared lib (see bsc#1228659).
OrderWithRequires(post): udev
Suggests: udev
Provides: group(systemd-journal)
Conflicts: filesystem < 11.5
Provides: sbin_init
@@ -187,7 +182,7 @@ Provides: systemd-analyze = %{version}-%{release}
Obsoletes: pm-utils <= 1.4.1
Obsoletes: suspend <= 1.0
Obsoletes: systemd-analyze < 201
Source0: systemd-%{version}%{?archive_version}.tar.xz
Source0: systemd-%{version}%{archive_version}.tar.xz
Source1: systemd-rpmlintrc
Source3: systemd-update-helper
%if %{with sysvcompat}
@@ -200,6 +195,7 @@ Source8: pam.systemd-user
Source9: pam.systemd-run0
Source14: kbd-model-map.legacy
Source100: fixlet-container-post.sh
Source101: fixlet-systemd-post.sh
Source200: files.systemd
@@ -216,7 +212,6 @@ Source210: files.lang
Source211: files.journal-remote
Source212: files.portable
Source213: files.devel-doc
Source214: files.ukify
#
# All changes backported from upstream are tracked by the git repository, which
@@ -233,11 +228,17 @@ Source214: files.ukify
#
%if %{without upstream}
Patch: 0001-Drop-support-for-efivar-SystemdOptions.patch
Patch: 0003-udev-restore-some-legacy-symlinks-to-maintain-backwa.patch
%if %{with sysvcompat}
Patch: 0002-rc-local-fix-ordering-startup-for-etc-init.d-boot.lo.patch
Patch: 0008-sysv-generator-translate-Required-Start-into-a-Wants.patch
%endif
Patch: 0009-pid1-handle-console-specificities-weirdness-for-s390.patch
# Patches listed below are SLE specific.
Patch: 1001-journal-again-create-user-journals-for-users-with-hi.patch
Patch: 1002-udev-persistent-net-rules-support.patch
# The patches listed below are in quarantine. Normally, all changes must be
# pushed to upstream first and then cherry-picked into the SUSE git
# repository. However, in few cases, some issues might take too much time to be
@@ -245,6 +246,7 @@ Patch: 0009-pid1-handle-console-specificities-weirdness-for-s390.patch
# and will be removed as soon as a proper fix is merged by upstream.
Patch: 5001-Revert-udev-update-devlink-with-the-newer-device-nod.patch
Patch: 5002-Revert-udev-revert-workarounds-for-issues-caused-by-.patch
Patch: 5004-disable-session-freeze.patch
%endif
%description
@@ -336,7 +338,7 @@ Requires: filesystem
%if %{without bootstrap}
# kmod executable is needed by kmod-static-nodes.service
Requires: kmod
# From v256 libkmod is dlopen()ed.
# By v256 libkmod will be dlopen()ed.
Requires: libkmod2
%endif
Requires: system-group-hardware
@@ -347,7 +349,7 @@ Requires: group(lp)
Requires(pre): group(kvm)
Requires(post): sed
Requires(post): coreutils
Requires(postun): coreutils
Requires(postun):coreutils
# 'regenerate_initrd_post' macro is expanded during build, hence this BR.
BuildRequires: suse-module-tools
%if %{without bootstrap}
@@ -487,10 +489,9 @@ Requires: %{name} = %{version}-%{release}
Obsoletes: systemd-network < %{version}-%{release}
Provides: systemd-network = %{version}-%{release}
Provides: systemd-network:/usr/lib/systemd/systemd-networkd
# Workaround for bsc#1241513 and libzypp: ensure systemd-resolved is always
# installed before systemd-network is being removed when the latter is replaced
# by both systemd-resolved and systemd-networkd. The systemd-update-helper
# script logic depends on it.
# Workaround for bsc#1241513: ensure systemd-resolved is always installed before
# systemd-network when the latter is replaced by both systemd-resolved and
# systemd-networkd. The systemd-update-helper script logic depends on that.
Suggests: systemd-resolved
%description networkd
@@ -509,7 +510,7 @@ License: LGPL-2.1-or-later
Requires: %{name} = %{version}-%{release}
%systemd_requires
# This Recommends because some symbols of libidn2 are dlopen()ed by resolved
Recommends: libidn2
Recommends: pkgconfig(libidn2)
BuildRequires: pkgconfig(libidn2)
BuildRequires: pkgconfig(openssl)
Obsoletes: nss-resolve < %{version}-%{release}
@@ -661,15 +662,19 @@ Requires: pkgconfig(libarchive)
Requires: pkgconfig(libfido2)
Requires: pkgconfig(libidn2)
Requires: pkgconfig(libkmod)
%if %{with experimental}
Requires: pkgconfig(libqrencode)
Requires: pkgconfig(pwquality)
%endif
Requires: pkgconfig(tss2-esys)
Requires: pkgconfig(tss2-mu)
Requires: pkgconfig(tss2-rc)
%if %{with sd_boot}
Requires: systemd-boot
%endif
%if %{with experimental}
Requires: systemd-experimental
%endif
%if %{with homed}
Requires: systemd-homed
%endif
@@ -682,9 +687,6 @@ Requires: systemd-networkd
%if %{with portabled}
Requires: systemd-portable
%endif
%if %{with sd_boot}
Requires: systemd-ukify
%endif
Requires: xz
%description testsuite
@@ -705,18 +707,15 @@ Or to run one specific integration test:
$ NO_BUILD=1 TEST_NESTED_VM=1 make -C %{_testsuitedir}/integration-tests/TEST-01-BASIC clean setup run
For more details on the available options to run the extended testsuite, please
refer to %{_testsuitedir}/integration-tests/README.testsuite.
refer to %{_testsuitedir}/integration-tests/README.md.
%endif
%if %{with experimental}
%package experimental
Summary: Experimental systemd features
License: LGPL-2.1-or-later
Requires: %{name} = %{version}-%{release}
%systemd_requires
%if %{with bootstrap}
Conflicts: systemd-experimental
Provides: systemd-experimental = %{version}-%{release}
%endif
%description experimental
This package contains optional extra services that are considered as previews
@@ -732,25 +731,10 @@ Components that turn out to be stable and considered as fully supported will be
merged into the main package or moved into a dedicated package.
Currently this package contains the following features : bsod, oomd, measure,
pcrextend, pcrlock, ssh-generator, storagetm, systemd-vmspawn, sysupdate,
tpm2-setup and userwork.
pcrextend, pcrlock, run0, ssh-generator, storagetm, systemd-vmspawn, sysupdate,
tpm2-setup, userwork and ukify.
Have fun (at your own risk).
%if %{with sd_boot}
%package ukify
Summary: Tool to build Unified Kernel Image
License: LGPL-2.1-or-later
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
Requires: python3-cryptography
Requires: python3-pefile
Requires: systemd-boot
%description ukify
This package provides ukify, a script that combines a kernel image, an initrd,
with a command line, and possibly PCR measurements and other metadata, into a
Unified Kernel Image (UKI).
%endif
%if %{without bootstrap}
@@ -767,19 +751,12 @@ for the C APIs.
%endif
%prep
%autosetup -p1 -n systemd-%{version}%{?archive_version}
# When building on OBS with version substitution, systemd_version is not
# defined, and the "Version:" field contains the base version plus the archive
# version. Therefore, recompute the base version so it can be used seamlessly to
# name the private shared libraries.
%global base_version %(v=%{version}; echo ${v%%+*})
%autosetup -p1 -n systemd-%{version}%{archive_version}
%build
%meson \
-Dmode=release \
-Dversion-tag=%{version}%{?archive_version} \
-Dshared-lib-tag=%{base_version}-%{release} \
-Dversion-tag=%{version}%{archive_version} \
-Ddocdir=%{_docdir}/systemd \
-Dconfigfiledir=/usr/lib \
-Dsplit-bin=true \
@@ -790,7 +767,10 @@ for the C APIs.
-Dwheel-group=false \
-Dgroup-render-mode=0660 \
-Dutmp=false \
-Ddefault-hierarchy=unified \
-Ddefault-kill-user-processes=false \
-Dextra-net-naming-schemes=sle15-sp3=v238+bridge_no_slot,sle15-sp4=sle15-sp3+slot_function_id+16bit_index \
-Ddefault-net-naming-scheme=sle15-sp4 \
-Dpamconfdir=no \
-Dpamlibdir=%{_pam_moduledir} \
-Dshellprofiledir=%{_distconfdir}/profile.d \
@@ -881,7 +861,6 @@ for the C APIs.
-Dbootloader=%{enabled_with sd_boot} \
-Defi=%{when sd_boot} \
-Defi-color-highlight="black,green" \
-Dukify=%{enabled_with sd_boot} \
\
-Dsbat-distro="%{?sbat_distro}" \
-Dsbat-distro-summary="%{?sbat_distro_summary}" \
@@ -895,13 +874,19 @@ for the C APIs.
-Ddns-over-tls=%{when resolved openssl} \
-Dresolve=%{when resolved} \
\
-Doomd=%{when_not bootstrap} \
-Doomd=%{when experimental} \
%if %{with experimental}
-Dsshdconfdir=%{_distconfdir}/ssh/sshd_config.d \
-Dsshconfdir=%{_distconfdir}/ssh/ssh_config.d \
-Dukify=%{enabled_with sd_boot} \
%else
-Dsshdconfdir=no \
-Dsshconfdir=no \
-Dukify=disabled \
%endif
-Dsshdprivsepdir=no \
-Dsysupdate=%{when_not bootstrap} \
-Dsysupdated=%{disabled_with bootstrap} \
-Dvmspawn=%{disabled_with bootstrap} \
-Dsysupdate=%{enabled_with experimental} \
-Dvmspawn=%{enabled_with experimental} \
\
-Dtests=%{when testsuite unsafe} \
-Dinstall-tests=%{when testsuite} \
@@ -917,14 +902,6 @@ for the C APIs.
%ifarch x86_64
export BRP_PESIGN_FILES="%{_systemd_util_dir}/boot/efi/systemd-bootx64.efi"
%endif
%if %{with upstream}
%ifarch aarch64
export BRP_PESIGN_FILES="%{_systemd_util_dir}/boot/efi/systemd-bootaa64.efi"
%endif
%ifarch riscv64
export BRP_PESIGN_FILES="%{_systemd_util_dir}/boot/efi/systemd-bootriscv64.efi"
%endif
%endif
%endif
# Don't ship resolvconf symlink for now as it conflicts with the binary shipped
@@ -941,6 +918,9 @@ install -m0755 -D %{SOURCE4} %{buildroot}/%{_systemd_util_dir}/systemd-sysv-inst
# Install the fixlets
mkdir -p %{buildroot}%{_systemd_util_dir}/rpm
%if %{with machined}
install -m0755 %{SOURCE100} %{buildroot}%{_systemd_util_dir}/rpm/
%endif
install -m0755 %{SOURCE101} %{buildroot}%{_systemd_util_dir}/rpm/
# Make sure /usr/lib/modules-load.d exists in udev(-mini)?, so other
@@ -954,7 +934,9 @@ rm -f %{buildroot}%{_sysconfdir}/systemd/system/default.target
# Replace upstream PAM configuration files with openSUSE ones.
install -m0644 -D %{SOURCE8} %{buildroot}%{_pam_vendordir}/systemd-user
%if %{with experimental}
install -m0644 -D %{SOURCE9} %{buildroot}%{_pam_vendordir}/systemd-run0
%endif
# Don't enable wall ask password service, it spams every console (bnc#747783).
rm %{buildroot}%{_unitdir}/multi-user.target.wants/systemd-ask-password-wall.path
@@ -1095,7 +1077,7 @@ cat %{SOURCE14} >>%{buildroot}%{_datarootdir}/systemd/kbd-model-map
# -Dinstall_test took care of installing the unit tests only (those in
# src/tests) and testdata directory. Here we copy the integration tests
# including also all related scripts used to prepare and run the integration
# tests in dedicated VMs.
# tests in a dedicated VMs.
mkdir -p %{buildroot}%{_testsuitedir}/integration-tests
tar -cO \
--exclude-vcs \
@@ -1108,6 +1090,11 @@ tar -cO \
%else
rm -f %{buildroot}%{_journalcatalogdir}/*
rm -fr %{buildroot}%{_docdir}/systemd
rm -f %{buildroot}%{_bindir}/run0
rm -f %{buildroot}%{_systemdgeneratordir}/systemd-ssh-generator
rm -f %{buildroot}%{_systemdgeneratordir}/systemd-tpm2-generator
rm -f %{buildroot}%{_unitdir}/systemd-nspawn@.service
rm -f %{buildroot}%{_systemd_util_dir}/systemd-ssh-proxy
%endif
# Don't drop the following 'pre' section even if it becomes empty: the build
@@ -1258,6 +1245,7 @@ fi
%systemd_post systemd-mountfsd.socket
%systemd_post systemd-nsresourced.socket
%systemd_post machines.target
%{_systemd_util_dir}/rpm/fixlet-container-post.sh $1 || :
%endif
%if %{with journal_remote}
@@ -1365,24 +1353,22 @@ fi
%systemd_postun_with_restart systemd-portabled.service
%endif
%if %{with experimental}
%pre experimental
%systemd_pre systemd-oomd.service systemd-oomd.socket
%post experimental
%if %{without filetriggers}
%if %{without bootstrap}
%sysusers_create systemd-oom.conf
%endif
%endif
%systemd_post systemd-oomd.service systemd-oomd.socket
# Keep the clean section until the following issue is solved:
# https://github.com/rpm-software-management/rpm/issues/3658
%clean
rm -rf \
$RPM_BUILD_ROOT \
%{name}.lang \
debugfiles.list \
debuglinks.list \
debugsourcefiles.list \
debugsources.list \
elfbins.list
%preun experimental
%systemd_preun systemd-oomd.service systemd-oomd.socket
%postun experimental
%systemd_postun systemd-oomd.service systemd-oomd.socket
%endif
# File trigger definitions
%if %{with filetriggers}
@@ -1441,9 +1427,6 @@ rm -rf \
%include %{SOURCE213}
%endif
%files experimental
%include %{SOURCE207}
%if %{with journal_remote}
%files journal-remote
%include %{SOURCE211}
@@ -1465,9 +1448,9 @@ rm -rf \
%{_testsuitedir}
%endif
%if %{with sd_boot}
%files ukify
%include %{SOURCE214}
%if %{with experimental}
%files experimental
%include %{SOURCE207}
%endif
%changelog