Sync from SUSE:ALP:Source:Standard:1.0 systemd revision 157157b618b9838a9df6f017ae25a281

This commit is contained in:
Adrian Schröter 2024-02-10 20:15:31 +01:00
commit 1f88308a33
42 changed files with 19481 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,27 @@
From ddf3a821b51fbd3064914eb00a03bbecce9ee361 Mon Sep 17 00:00:00 2001
From: Thomas Blume <thomas.blume@suse.com>
Date: Tue, 25 Mar 2014 13:08:56 +0000
Subject: [PATCH 03/11] rc-local: fix ordering startup for
/etc/init.d/boot.local
[tblume: fixes bnc#869142]
---
units/rc-local.service.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/units/rc-local.service.in b/units/rc-local.service.in
index 55e83dfe00..8b20f8d1af 100644
--- a/units/rc-local.service.in
+++ b/units/rc-local.service.in
@@ -13,7 +13,7 @@
Description={{RC_LOCAL_PATH}} Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable={{RC_LOCAL_PATH}}
-After=network.target
+After=basic.target
[Service]
Type=forking
--
2.26.2

View File

@ -0,0 +1,42 @@
From 9e6a1f4b085b29abaf90ecd05859537b837b39fe Mon Sep 17 00:00:00 2001
From: Thomas Blume <Thomas.Blume@suse.com>
Date: Wed, 4 May 2016 17:40:04 +0200
Subject: [PATCH 8/8] sysv-generator: translate "Required-Start" into a "Wants"
dependency
'Required-Start:' used to be supported by insserv but this functionality was
dropped when insserv was rewritten into a compat perl wrapper (insserv-compat),
which happened when systemd was introduced in SUSE, I guess.
It's been decided to add back the support in systemd instead of insserv-compat,
see the comments in bsc#857204.
[tblume: Port of SLES12SP1 patch 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch]
[wfink: fixes bsc#857204]
---
src/sysv-generator/sysv-generator.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
index bf23c48662..c6e1953839 100644
--- a/src/sysv-generator/sysv-generator.c
+++ b/src/sysv-generator/sysv-generator.c
@@ -409,8 +409,13 @@ static int handle_dependencies(SysvStub *s, unsigned line, const char *full_text
return log_oom();
r = strv_extend(&s->wants, m);
- } else
+ } else {
r = strv_extend(is_before ? &s->before : &s->after, m);
+
+ if (startswith_no_case(full_text, "Required-Start:"))
+ r = strv_extend(&s->wants, m);
+ }
+
if (r < 0)
return log_oom();
}
--
2.31.1

View File

@ -0,0 +1,60 @@
From dedd52f920cf7ae718bb31ac7286d3f7314540c6 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Fri, 10 Jun 2016 15:19:57 +0200
Subject: [PATCH 09/11] pid1: handle console specificities/weirdness for s390
arch
The 3270 console on S/390 can do color but not the 3215 console.
Partial forward port of
0001-On_s390_con3270_disable_ANSI_colour_esc.patch from SLE12-SP1. A
bunch of the previous code has been dropped since some changes
imported from upsteam made them uneeded.
The remaining bits are probably hackish but at least they are now
minimal.
It was an attempt to address bnc#860937. And yes turning the console
color mode off by passing $TERM=dumb via the kernel command line would
have been much more easier and enough.
This is actually implemented by recent systemd. There's also another
command line option: systemd.log_color=off.
See also a short discussion which happened on @systemd-maintainers
whose $subject is "[PATCH] support conmode setting on command line".
[fbui: fixes bsc#860937]
---
src/basic/terminal-util.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/basic/terminal-util.c b/src/basic/terminal-util.c
index d769423d6e..1a65391146 100644
--- a/src/basic/terminal-util.c
+++ b/src/basic/terminal-util.c
@@ -779,7 +779,20 @@ bool tty_is_vc_resolve(const char *tty) {
}
const char *default_term_for_tty(const char *tty) {
- return tty && tty_is_vc_resolve(tty) ? "linux" : "vt220";
+ if (tty && tty_is_vc_resolve(tty))
+ return "linux";
+
+#if defined (__s390__) || defined (__s390x__)
+ if (tty && tty_is_console(tty)) {
+ _cleanup_free_ char *mode = NULL;
+
+ /* Simply return "dumb" in case of OOM. */
+ (void) proc_cmdline_get_key("conmode", 0, &mode);
+ (void) proc_cmdline_value_missing("conmode", mode);
+ return streq_ptr(mode, "3270") ? "ibm327x" : "dumb";
+ }
+#endif
+ return "vt220";
}
int fd_columns(int fd) {
--
2.26.2

View File

@ -0,0 +1,37 @@
From 323274d5e7545013b09c280254879dcbf1430fbf Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Fri, 12 Jan 2024 10:54:57 +0100
Subject: [PATCH 5001/5002] Revert "udev: update devlink with the newer device
node even when priority is equivalent"
This reverts commit 277cb24ffb7a520f640eb36d11340f11bf0c7c4f.
---
src/udev/udev-node.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c
index 74a70185bc..75845413cf 100644
--- a/src/udev/udev-node.c
+++ b/src/udev/udev-node.c
@@ -468,13 +468,13 @@ static int link_update(sd_device *dev, const char *slink, bool add) {
/* The devlink priority is downgraded. Another device may have a higher
* priority now. Let's find the device node with the highest priority. */
} else {
- if (current_prio > prio)
- /* The devlink with a higher priority already exists and is owned by
- * another device. Hence, it is not necessary to recreate it. */
+ if (current_prio >= prio)
+ /* The devlink with equal or higher priority already exists and is
+ * owned by another device. Hence, it is not necessary to recreate it. */
return 0;
- /* This device has the equal or a higher priority than the current. Let's
- * create the devlink to our device node. */
+ /* This device has a higher priority than the current. Let's create the
+ * devlink to our device node. */
return node_symlink(dev, NULL, slink);
}
--
2.35.3

View File

@ -0,0 +1,36 @@
From 65b0ae29194a335dc2cc1410d57acf7307251791 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Fri, 12 Jan 2024 10:55:17 +0100
Subject: [PATCH 5002/5002] Revert "udev: revert workarounds for issues caused
by the devlink creation optimization"
This reverts commit b8fa62589271a0a7552c6eb02e6beac3ca759ba7.
---
rules.d/60-persistent-storage.rules.in | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/rules.d/60-persistent-storage.rules.in b/rules.d/60-persistent-storage.rules.in
index 835263f3cb..d5e0f5f705 100644
--- a/rules.d/60-persistent-storage.rules.in
+++ b/rules.d/60-persistent-storage.rules.in
@@ -134,6 +134,17 @@ KERNEL!="sr*|mmcblk[0-9]boot[0-9]", IMPORT{builtin}="blkid"
LABEL="persistent_storage_blkid_probe_end"
{% endif %}
+# Decrease devlink priority for whole disk of ISO hybrid images, and make the
+# priority for partitions in the image relatively higher. This is for the case
+# that a disk and one of its partition have the same label or so.
+# See issue #28468.
+ENV{ID_FS_TYPE}=="iso9660", ENV{DEVTYPE}=="disk", OPTIONS+="link_priority=-10"
+
+# Decrease devlink priority for encrypted partitions, and make the priority for
+# decrypted DM devices relatively higher. This is for the case that an encrypted
+# partition and its decrypted DM device have the same label.
+ENV{ID_FS_USAGE}=="crypto", OPTIONS+="link_priority=-10"
+
# by-label/by-uuid links (filesystem metadata)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
--
2.35.3

View File

@ -0,0 +1,283 @@
From 14146f22cdcb6ecbf7d0f46a34843837a21aa118 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Tue, 23 Jan 2024 11:30:14 +0100
Subject: [PATCH 5003/5011] cgroup: rename TasksMax structure to CGroupTasksMax
Almost all our enums/structs/funcs carry the CGroup prefix if they are
defined in cgroup.h, TasksMax so far does not, even though it is
exclusively used in cgroup context.
Change that.
(cherry picked from commit 94f0b13b1623c083ece9c0381bd1e65500dc1363)
[mkoutny: Adjust for missing struct UnitDefaults + contexts]
---
src/core/cgroup.c | 16 ++++++++--------
src/core/cgroup.h | 12 ++++++------
src/core/dbus-cgroup.c | 10 +++++-----
src/core/load-fragment.c | 10 +++++-----
src/core/main.c | 4 ++--
src/core/manager.c | 2 +-
src/core/manager.h | 2 +-
src/test/test-cgroup-mask.c | 2 +-
8 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index 8a3059b042..5b7205a92e 100644
--- a/src/core/cgroup.c
+++ b/src/core/cgroup.c
@@ -51,7 +51,7 @@
* out specific attributes from us. */
#define LOG_LEVEL_CGROUP_WRITE(r) (IN_SET(abs(r), ENOENT, EROFS, EACCES, EPERM) ? LOG_DEBUG : LOG_WARNING)
-uint64_t tasks_max_resolve(const TasksMax *tasks_max) {
+uint64_t cgroup_tasks_max_resolve(const CGroupTasksMax *tasks_max) {
if (tasks_max->scale == 0)
return tasks_max->value;
@@ -170,7 +170,7 @@ void cgroup_context_init(CGroupContext *c) {
.blockio_weight = CGROUP_BLKIO_WEIGHT_INVALID,
.startup_blockio_weight = CGROUP_BLKIO_WEIGHT_INVALID,
- .tasks_max = TASKS_MAX_UNSET,
+ .tasks_max = CGROUP_TASKS_MAX_UNSET,
.moom_swap = MANAGED_OOM_AUTO,
.moom_mem_pressure = MANAGED_OOM_AUTO,
@@ -562,7 +562,7 @@ void cgroup_context_dump(Unit *u, FILE* f, const char *prefix) {
prefix, c->memory_zswap_max, format_cgroup_memory_limit_comparison(cdj, sizeof(cdj), u, "MemoryZSwapMax"),
prefix, c->startup_memory_zswap_max, format_cgroup_memory_limit_comparison(cdk, sizeof(cdk), u, "StartupMemoryZSwapMax"),
prefix, c->memory_limit,
- prefix, tasks_max_resolve(&c->tasks_max),
+ prefix, cgroup_tasks_max_resolve(&c->tasks_max),
prefix, cgroup_device_policy_to_string(c->device_policy),
prefix, strempty(disable_controllers_str),
prefix, delegate_str,
@@ -1760,9 +1760,9 @@ static void cgroup_context_apply(
* which is desirable so that there's an official way to release control of the sysctl from
* systemd: set the limit to unbounded and reload. */
- if (tasks_max_isset(&c->tasks_max)) {
+ if (cgroup_tasks_max_isset(&c->tasks_max)) {
u->manager->sysctl_pid_max_changed = true;
- r = procfs_tasks_set_limit(tasks_max_resolve(&c->tasks_max));
+ r = procfs_tasks_set_limit(cgroup_tasks_max_resolve(&c->tasks_max));
} else if (u->manager->sysctl_pid_max_changed)
r = procfs_tasks_set_limit(TASKS_MAX);
else
@@ -1775,10 +1775,10 @@ static void cgroup_context_apply(
/* The attribute itself is not available on the host root cgroup, and in the container case we want to
* leave it for the container manager. */
if (!is_local_root) {
- if (tasks_max_isset(&c->tasks_max)) {
+ if (cgroup_tasks_max_isset(&c->tasks_max)) {
char buf[DECIMAL_STR_MAX(uint64_t) + 1];
- xsprintf(buf, "%" PRIu64 "\n", tasks_max_resolve(&c->tasks_max));
+ xsprintf(buf, "%" PRIu64 "\n", cgroup_tasks_max_resolve(&c->tasks_max));
(void) set_attribute_and_warn(u, "pids", "pids.max", buf);
} else
(void) set_attribute_and_warn(u, "pids", "pids.max", "max\n");
@@ -1894,7 +1894,7 @@ static CGroupMask unit_get_cgroup_mask(Unit *u) {
mask |= CGROUP_MASK_DEVICES | CGROUP_MASK_BPF_DEVICES;
if (c->tasks_accounting ||
- tasks_max_isset(&c->tasks_max))
+ cgroup_tasks_max_isset(&c->tasks_max))
mask |= CGROUP_MASK_PIDS;
return CGROUP_MASK_EXTEND_JOINED(mask);
diff --git a/src/core/cgroup.h b/src/core/cgroup.h
index 9f1963b3f2..486957b545 100644
--- a/src/core/cgroup.h
+++ b/src/core/cgroup.h
@@ -9,20 +9,20 @@
#include "list.h"
#include "time-util.h"
-typedef struct TasksMax {
+typedef struct CGroupTasksMax {
/* If scale == 0, just use value; otherwise, value / scale.
* See tasks_max_resolve(). */
uint64_t value;
uint64_t scale;
-} TasksMax;
+} CGroupTasksMax;
-#define TASKS_MAX_UNSET ((TasksMax) { .value = UINT64_MAX, .scale = 0 })
+#define CGROUP_TASKS_MAX_UNSET ((CGroupTasksMax) { .value = UINT64_MAX, .scale = 0 })
-static inline bool tasks_max_isset(const TasksMax *tasks_max) {
+static inline bool cgroup_tasks_max_isset(const CGroupTasksMax *tasks_max) {
return tasks_max->value != UINT64_MAX || tasks_max->scale != 0;
}
-uint64_t tasks_max_resolve(const TasksMax *tasks_max);
+uint64_t cgroup_tasks_max_resolve(const CGroupTasksMax *tasks_max);
typedef struct CGroupContext CGroupContext;
typedef struct CGroupDeviceAllow CGroupDeviceAllow;
@@ -210,7 +210,7 @@ struct CGroupContext {
LIST_HEAD(CGroupSocketBindItem, socket_bind_deny);
/* Common */
- TasksMax tasks_max;
+ CGroupTasksMax tasks_max;
/* Settings for systemd-oomd */
ManagedOOMMode moom_swap;
diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
index 5347525844..3c35673779 100644
--- a/src/core/dbus-cgroup.c
+++ b/src/core/dbus-cgroup.c
@@ -25,7 +25,7 @@
#include "percent-util.h"
#include "socket-util.h"
-BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
+BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", CGroupTasksMax, cgroup_tasks_max_resolve);
BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_cgroup_pressure_watch, cgroup_pressure_watch, CGroupPressureWatch);
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_cgroup_device_policy, cgroup_device_policy, CGroupDevicePolicy);
@@ -994,7 +994,7 @@ static int bus_cgroup_set_cpu_weight(
static int bus_cgroup_set_tasks_max(
Unit *u,
const char *name,
- TasksMax *p,
+ CGroupTasksMax *p,
sd_bus_message *message,
UnitWriteFlags flags,
sd_bus_error *error) {
@@ -1013,7 +1013,7 @@ static int bus_cgroup_set_tasks_max(
"Value specified in %s is out of range", name);
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
- *p = (TasksMax) { .value = v, .scale = 0 }; /* When .scale==0, .value is the absolute value */
+ *p = (CGroupTasksMax) { .value = v, .scale = 0 }; /* When .scale==0, .value is the absolute value */
unit_invalidate_cgroup(u, CGROUP_MASK_PIDS);
if (v == CGROUP_LIMIT_MAX)
@@ -1030,7 +1030,7 @@ static int bus_cgroup_set_tasks_max(
static int bus_cgroup_set_tasks_max_scale(
Unit *u,
const char *name,
- TasksMax *p,
+ CGroupTasksMax *p,
sd_bus_message *message,
UnitWriteFlags flags,
sd_bus_error *error) {
@@ -1049,7 +1049,7 @@ static int bus_cgroup_set_tasks_max_scale(
"Value specified in %s is out of range", name);
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
- *p = (TasksMax) { v, UINT32_MAX }; /* .scale is not 0, so this is interpreted as v/UINT32_MAX. */
+ *p = (CGroupTasksMax) { v, UINT32_MAX }; /* .scale is not 0, so this is interpreted as v/UINT32_MAX. */
unit_invalidate_cgroup(u, CGROUP_MASK_PIDS);
uint32_t scaled = DIV_ROUND_UP((uint64_t) v * 100U, (uint64_t) UINT32_MAX);
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
index 86235fa5b6..18ba95a6c5 100644
--- a/src/core/load-fragment.c
+++ b/src/core/load-fragment.c
@@ -3934,23 +3934,23 @@ int config_parse_tasks_max(
void *userdata) {
const Unit *u = userdata;
- TasksMax *tasks_max = data;
+ CGroupTasksMax *tasks_max = data;
uint64_t v;
int r;
if (isempty(rvalue)) {
- *tasks_max = u ? u->manager->default_tasks_max : TASKS_MAX_UNSET;
+ *tasks_max = u ? u->manager->default_tasks_max : CGROUP_TASKS_MAX_UNSET;
return 0;
}
if (streq(rvalue, "infinity")) {
- *tasks_max = TASKS_MAX_UNSET;
+ *tasks_max = CGROUP_TASKS_MAX_UNSET;
return 0;
}
r = parse_permyriad(rvalue);
if (r >= 0)
- *tasks_max = (TasksMax) { r, 10000U }; /* r‱ */
+ *tasks_max = (CGroupTasksMax) { r, 10000U }; /* r‱ */
else {
r = safe_atou64(rvalue, &v);
if (r < 0) {
@@ -3963,7 +3963,7 @@ int config_parse_tasks_max(
return 0;
}
- *tasks_max = (TasksMax) { v };
+ *tasks_max = (CGroupTasksMax) { v };
}
return 0;
diff --git a/src/core/main.c b/src/core/main.c
index 14aa1f00c0..efe75d96b3 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -106,7 +106,7 @@
#include <sanitizer/lsan_interface.h>
#endif
-#define DEFAULT_TASKS_MAX ((TasksMax) { 15U, 100U }) /* 15% */
+#define DEFAULT_TASKS_MAX ((CGroupTasksMax) { 15U, 100U }) /* 15% */
static enum {
ACTION_RUN,
@@ -166,7 +166,7 @@ static bool arg_default_ip_accounting;
static bool arg_default_blockio_accounting;
static bool arg_default_memory_accounting;
static bool arg_default_tasks_accounting;
-static TasksMax arg_default_tasks_max;
+static CGroupTasksMax arg_default_tasks_max;
static usec_t arg_default_memory_pressure_threshold_usec;
static CGroupPressureWatch arg_default_memory_pressure_watch;
static sd_id128_t arg_machine_id;
diff --git a/src/core/manager.c b/src/core/manager.c
index 2ccb753888..5f4522392d 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -840,7 +840,7 @@ int manager_new(RuntimeScope runtime_scope, ManagerTestRunFlags test_run_flags,
.default_timer_accuracy_usec = USEC_PER_MINUTE,
.default_memory_accounting = MEMORY_ACCOUNTING_DEFAULT,
.default_tasks_accounting = true,
- .default_tasks_max = TASKS_MAX_UNSET,
+ .default_tasks_max = CGROUP_TASKS_MAX_UNSET,
.default_timeout_start_usec = manager_default_timeout(runtime_scope),
.default_timeout_stop_usec = manager_default_timeout(runtime_scope),
.default_restart_usec = DEFAULT_RESTART_USEC,
diff --git a/src/core/manager.h b/src/core/manager.h
index a6c87dc852..e4b2393d06 100644
--- a/src/core/manager.h
+++ b/src/core/manager.h
@@ -375,7 +375,7 @@ struct Manager {
bool default_tasks_accounting;
bool default_ip_accounting;
- TasksMax default_tasks_max;
+ CGroupTasksMax default_tasks_max;
usec_t default_timer_accuracy_usec;
OOMPolicy default_oom_policy;
diff --git a/src/test/test-cgroup-mask.c b/src/test/test-cgroup-mask.c
index c0bf585963..35b2599e86 100644
--- a/src/test/test-cgroup-mask.c
+++ b/src/test/test-cgroup-mask.c
@@ -58,7 +58,7 @@ TEST_RET(cgroup_mask, .sd_booted = true) {
m->default_blockio_accounting =
m->default_io_accounting =
m->default_tasks_accounting = false;
- m->default_tasks_max = TASKS_MAX_UNSET;
+ m->default_tasks_max = CGROUP_TASKS_MAX_UNSET;
assert_se(manager_startup(m, NULL, NULL, NULL) >= 0);
--
2.35.3

View File

@ -0,0 +1,31 @@
From c44ecd40ed4b4221dd9f03f5c2090d994889064c Mon Sep 17 00:00:00 2001
From: Mike Yuan <me@yhndnzj.com>
Date: Tue, 23 Jan 2024 11:30:15 +0100
Subject: [PATCH 5004/5011] bus-print-properties: ignore CGROUP_LIMIT_MAX for
Memory*{Current, Peak}
MemoryCurrent and MemoryAvailable are shown as "[not set]" when UINT64_MAX
(unset). Let's do the same for the newly-added Memory*{Current,Peak} properties.
(cherry picked from commit 3f362012ce0034dc14d3c1a1c2a3a64a11efa9da)
[mkoutny: Drop MemoryPeak=]
---
src/shared/bus-print-properties.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/shared/bus-print-properties.c b/src/shared/bus-print-properties.c
index db41ad2495..46724c98fa 100644
--- a/src/shared/bus-print-properties.c
+++ b/src/shared/bus-print-properties.c
@@ -158,6 +158,7 @@ static int bus_print_property(const char *name, const char *expected_value, sd_b
(STR_IN_SET(name, "CPUShares", "StartupCPUShares") && u == CGROUP_CPU_SHARES_INVALID) ||
(STR_IN_SET(name, "BlockIOWeight", "StartupBlockIOWeight") && u == CGROUP_BLKIO_WEIGHT_INVALID) ||
(STR_IN_SET(name, "MemoryCurrent", "TasksCurrent") && u == UINT64_MAX) ||
+ (startswith(name, "Memory") && ENDSWITH_SET(name, "Current") && u == CGROUP_LIMIT_MAX) ||
(endswith(name, "NSec") && u == UINT64_MAX))
bus_print_property_value(name, expected_value, flags, "[not set]");
--
2.35.3

View File

@ -0,0 +1,38 @@
From 278ef74e90a13821fc2209eb09de768035e14478 Mon Sep 17 00:00:00 2001
From: Mike Yuan <me@yhndnzj.com>
Date: Tue, 23 Jan 2024 11:30:16 +0100
Subject: [PATCH 5005/5011] bus-print-properties: prettify more unset
properties
(cherry picked from commit bfb6b1214a8da947cb82fed2eec3d7f2b1c6175f)
[mkoutny: Handle MemoryAvailable= separately.]
---
src/shared/bus-print-properties.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/shared/bus-print-properties.c b/src/shared/bus-print-properties.c
index 46724c98fa..f74d8994ad 100644
--- a/src/shared/bus-print-properties.c
+++ b/src/shared/bus-print-properties.c
@@ -157,13 +157,15 @@ static int bus_print_property(const char *name, const char *expected_value, sd_b
else if ((STR_IN_SET(name, "CPUWeight", "StartupCPUWeight", "IOWeight", "StartupIOWeight") && u == CGROUP_WEIGHT_INVALID) ||
(STR_IN_SET(name, "CPUShares", "StartupCPUShares") && u == CGROUP_CPU_SHARES_INVALID) ||
(STR_IN_SET(name, "BlockIOWeight", "StartupBlockIOWeight") && u == CGROUP_BLKIO_WEIGHT_INVALID) ||
- (STR_IN_SET(name, "MemoryCurrent", "TasksCurrent") && u == UINT64_MAX) ||
+ (STR_IN_SET(name, "MemoryCurrent", "MemoryAvailable", "TasksCurrent") && u == UINT64_MAX) ||
(startswith(name, "Memory") && ENDSWITH_SET(name, "Current") && u == CGROUP_LIMIT_MAX) ||
+ (startswith(name, "IO") && ENDSWITH_SET(name, "Bytes", "Operations") && u == UINT64_MAX) ||
(endswith(name, "NSec") && u == UINT64_MAX))
bus_print_property_value(name, expected_value, flags, "[not set]");
- else if ((STR_IN_SET(name, "DefaultMemoryLow", "DefaultMemoryMin", "MemoryLow", "MemoryHigh", "MemoryMax", "MemorySwapMax", "MemoryZSwapMax", "MemoryLimit", "MemoryAvailable") && u == CGROUP_LIMIT_MAX) ||
+ else if ((ENDSWITH_SET(name, "MemoryLow", "MemoryMin", "MemoryHigh", "MemoryMax", "MemorySwapMax", "MemoryZSwapMax", "MemoryLimit") &&
+ u == CGROUP_LIMIT_MAX) ||
(STR_IN_SET(name, "TasksMax", "DefaultTasksMax") && u == UINT64_MAX) ||
(startswith(name, "Limit") && u == UINT64_MAX) ||
(startswith(name, "DefaultLimit") && u == UINT64_MAX))
--
2.35.3

View File

@ -0,0 +1,607 @@
From 9c86b2c20823dce7f8303648f7e8a8d76342d1d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Tue, 23 Jan 2024 11:30:17 +0100
Subject: [PATCH 5006/5011] cgroup: Add EffectiveMemoryMax=,
EffectiveMemoryHigh= and EffectiveTasksMax= properties
Users become perplexed when they run their workload in a unit with no
explicit limits configured (moreover, listing the limit property would
even show it's infinity) but they experience unexpected resource
limitation.
The memory and pid limits come as the most visible, therefore add new
unit read-only properties:
- EffectiveMemoryMax=,
- EffectiveMemoryHigh=,
- EffectiveTasksMax=.
These properties represent the most stringent limit systemd is aware of
for the given unit -- and that is typically(*) the effective value.
Implement the properties by simply traversing all parents in the
leaf-slice tree and picking the minimum value. Note that effective
limits are thus defined even for units that don't enable explicit
accounting (because of the hierarchy).
(*) The evasive case is when systemd runs in a cgroupns and cannot
reason about outer setup. Complete solution would need kernel support.
(cherry picked from commit 4fb0d2dc140c9a2c01c236d2a8dc09a44157e896)
[mkoutny: adjust context, drop unapplicable XML]
[mkoutny: fixes jsc#PED-5659]
---
man/org.freedesktop.systemd1.xml | 108 ++++++++++++++++++++++++++++++
man/systemd.resource-control.xml | 11 ++-
src/core/cgroup.c | 48 +++++++++++++
src/core/cgroup.h | 13 ++++
src/core/dbus-unit.c | 25 +++++++
src/shared/bus-print-properties.c | 6 +-
6 files changed, 206 insertions(+), 5 deletions(-)
diff --git a/man/org.freedesktop.systemd1.xml b/man/org.freedesktop.systemd1.xml
index 2e357539fb..02db33626d 100644
--- a/man/org.freedesktop.systemd1.xml
+++ b/man/org.freedesktop.systemd1.xml
@@ -2716,6 +2716,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryHigh = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@@ -2724,6 +2728,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveTasksMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...;
@@ -3335,6 +3341,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<!--property MemoryCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!-->
+
+ <!--property EffectiveMemoryHigh is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -3343,6 +3353,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<!--property TasksCurrent is not documented!-->
+ <!--property EffectiveTasksMax is not documented!-->
+
<!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!-->
@@ -3963,6 +3975,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryMax"/>
+
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryHigh"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -3971,6 +3987,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveTasksMax"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -4748,6 +4766,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryHigh = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@@ -4756,6 +4778,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveTasksMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...;
@@ -5377,6 +5401,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<!--property MemoryCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!-->
+
+ <!--property EffectiveMemoryHigh is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -5385,6 +5413,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<!--property TasksCurrent is not documented!-->
+ <!--property EffectiveTasksMax is not documented!-->
+
<!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!-->
@@ -5983,6 +6013,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryMax"/>
+
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryHigh"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -5991,6 +6025,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveTasksMax"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -6643,6 +6679,10 @@ node /org/freedesktop/systemd1/unit/home_2emount {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryHigh = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@@ -6651,6 +6691,8 @@ node /org/freedesktop/systemd1/unit/home_2emount {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveTasksMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...;
@@ -7200,6 +7242,10 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<!--property MemoryCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!-->
+
+ <!--property EffectiveMemoryHigh is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -7208,6 +7254,8 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<!--property TasksCurrent is not documented!-->
+ <!--property EffectiveTasksMax is not documented!-->
+
<!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!-->
@@ -7724,6 +7772,10 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryMax"/>
+
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryHigh"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -7732,6 +7784,8 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveTasksMax"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -8511,6 +8565,10 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryHigh = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@@ -8519,6 +8577,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveTasksMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...;
@@ -9054,6 +9114,10 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<!--property MemoryCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!-->
+
+ <!--property EffectiveMemoryHigh is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -9062,6 +9126,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<!--property TasksCurrent is not documented!-->
+ <!--property EffectiveTasksMax is not documented!-->
+
<!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!-->
@@ -9564,6 +9630,10 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryMax"/>
+
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryHigh"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -9572,6 +9642,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveTasksMax"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -10210,6 +10282,10 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryHigh = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@@ -10218,6 +10294,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveTasksMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...;
@@ -10381,6 +10459,10 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<!--property MemoryCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!-->
+
+ <!--property EffectiveMemoryHigh is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -10389,6 +10471,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<!--property TasksCurrent is not documented!-->
+ <!--property EffectiveTasksMax is not documented!-->
+
<!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!-->
@@ -10557,6 +10641,10 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryMax"/>
+
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryHigh"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -10565,6 +10653,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveTasksMax"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -10759,6 +10849,10 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveMemoryHigh = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@@ -10767,6 +10861,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t EffectiveTasksMax = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...;
@@ -10950,6 +11046,10 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<!--property MemoryCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!-->
+
+ <!--property EffectiveMemoryHigh is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -10958,6 +11058,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<!--property TasksCurrent is not documented!-->
+ <!--property EffectiveTasksMax is not documented!-->
+
<!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!-->
@@ -11156,6 +11258,10 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryMax"/>
+
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryHigh"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -11164,6 +11270,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="EffectiveTasksMax"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
diff --git a/man/systemd.resource-control.xml b/man/systemd.resource-control.xml
index 3c17efbe16..5b7900af87 100644
--- a/man/systemd.resource-control.xml
+++ b/man/systemd.resource-control.xml
@@ -392,7 +392,9 @@ CPUWeight=20 DisableControllers=cpu / \
system. If assigned the
special value <literal>infinity</literal>, no memory throttling is applied. This controls the
<literal>memory.high</literal> control group attribute. For details about this control group attribute, see
- <ulink url="https://docs.kernel.org/admin-guide/cgroup-v2.html#memory-interface-files">Memory Interface Files</ulink>.</para>
+ <ulink url="https://docs.kernel.org/admin-guide/cgroup-v2.html#memory-interface-files">Memory Interface Files</ulink>.
+ The effective configuration is reported as <varname>EffectiveMemoryHigh=</varname>
+ (see also <varname>EffectiveMemoryMax=</varname>).</para>
<para>While <varname>StartupMemoryHigh=</varname> applies to the startup and shutdown phases of the system,
<varname>MemoryHigh=</varname> applies to normal runtime of the system, and if the former is not set also to
@@ -418,7 +420,9 @@ CPUWeight=20 DisableControllers=cpu / \
percentage value may be specified, which is taken relative to the installed physical memory on the system. If
assigned the special value <literal>infinity</literal>, no memory limit is applied. This controls the
<literal>memory.max</literal> control group attribute. For details about this control group attribute, see
- <ulink url="https://docs.kernel.org/admin-guide/cgroup-v2.html#memory-interface-files">Memory Interface Files</ulink>.</para>
+ <ulink url="https://docs.kernel.org/admin-guide/cgroup-v2.html#memory-interface-files">Memory Interface Files</ulink>.
+ The effective configuration is reported as <varname>EffectiveMemoryMax=</varname> (the value is
+ the most stringent limit of the unit and parent slices).</para>
<para>While <varname>StartupMemoryMax=</varname> applies to the startup and shutdown phases of the system,
<varname>MemoryMax=</varname> applies to normal runtime of the system, and if the former is not set also to
@@ -534,7 +538,8 @@ CPUWeight=20 DisableControllers=cpu / \
limit is applied. This controls the <literal>pids.max</literal> control group attribute. For
details about this control group attribute, the
<ulink url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#pid">pids controller
- </ulink>.</para>
+ </ulink>.
+ The effective configuration is reported as <varname>EffectiveTasksMax=</varname>.</para>
<para>The system default for this setting may be controlled with
<varname>DefaultTasksMax=</varname> in
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index 5b7205a92e..0842036559 100644
--- a/src/core/cgroup.c
+++ b/src/core/cgroup.c
@@ -4000,6 +4000,46 @@ int unit_get_ip_accounting(
return r;
}
+static uint64_t unit_get_effective_limit_one(Unit *u, CGroupLimitType type) {
+ CGroupContext *cc;
+
+ assert(u);
+ assert(UNIT_HAS_CGROUP_CONTEXT(u));
+
+ cc = unit_get_cgroup_context(u);
+ switch (type) {
+ /* Note: on legacy/hybrid hierarchies memory_max stays CGROUP_LIMIT_MAX unless configured
+ * explicitly. Effective value of MemoryLimit= (cgroup v1) is not implemented. */
+ case CGROUP_LIMIT_MEMORY_MAX:
+ return cc->memory_max;
+ case CGROUP_LIMIT_MEMORY_HIGH:
+ return cc->memory_high;
+ case CGROUP_LIMIT_TASKS_MAX:
+ return cgroup_tasks_max_resolve(&cc->tasks_max);
+ default:
+ assert_not_reached();
+ }
+}
+
+int unit_get_effective_limit(Unit *u, CGroupLimitType type, uint64_t *ret) {
+ uint64_t infimum;
+
+ assert(u);
+ assert(ret);
+ assert(type >= 0);
+ assert(type < _CGROUP_LIMIT_TYPE_MAX);
+
+ if (!UNIT_HAS_CGROUP_CONTEXT(u))
+ return -EINVAL;
+
+ infimum = unit_get_effective_limit_one(u, type);
+ for (Unit *slice = UNIT_GET_SLICE(u); slice; slice = UNIT_GET_SLICE(slice))
+ infimum = MIN(infimum, unit_get_effective_limit_one(slice, type));
+
+ *ret = infimum;
+ return 0;
+}
+
static int unit_get_io_accounting_raw(Unit *u, uint64_t ret[static _CGROUP_IO_ACCOUNTING_METRIC_MAX]) {
static const char *const field_names[_CGROUP_IO_ACCOUNTING_METRIC_MAX] = {
[CGROUP_IO_READ_BYTES] = "rbytes=",
@@ -4418,3 +4458,11 @@ static const char* const cgroup_pressure_watch_table[_CGROUP_PRESSURE_WATCH_MAX]
};
DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(cgroup_pressure_watch, CGroupPressureWatch, CGROUP_PRESSURE_WATCH_ON);
+
+static const char *const cgroup_limit_type_table[_CGROUP_LIMIT_TYPE_MAX] = {
+ [CGROUP_LIMIT_MEMORY_MAX] = "EffectiveMemoryMax",
+ [CGROUP_LIMIT_MEMORY_HIGH] = "EffectiveMemoryHigh",
+ [CGROUP_LIMIT_TASKS_MAX] = "EffectiveTasksMax",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(cgroup_limit_type, CGroupLimitType);
diff --git a/src/core/cgroup.h b/src/core/cgroup.h
index 486957b545..a19a2fffa3 100644
--- a/src/core/cgroup.h
+++ b/src/core/cgroup.h
@@ -245,6 +245,15 @@ typedef enum CGroupIOAccountingMetric {
_CGROUP_IO_ACCOUNTING_METRIC_INVALID = -EINVAL,
} CGroupIOAccountingMetric;
+/* Used for limits whose value sets have infimum */
+typedef enum CGroupLimitType {
+ CGROUP_LIMIT_MEMORY_MAX,
+ CGROUP_LIMIT_MEMORY_HIGH,
+ CGROUP_LIMIT_TASKS_MAX,
+ _CGROUP_LIMIT_TYPE_MAX,
+ _CGROUP_LIMIT_INVALID = -EINVAL,
+} CGroupLimitType;
+
typedef struct Unit Unit;
typedef struct Manager Manager;
@@ -337,6 +346,7 @@ int unit_get_tasks_current(Unit *u, uint64_t *ret);
int unit_get_cpu_usage(Unit *u, nsec_t *ret);
int unit_get_io_accounting(Unit *u, CGroupIOAccountingMetric metric, bool allow_cache, uint64_t *ret);
int unit_get_ip_accounting(Unit *u, CGroupIPAccountingMetric metric, uint64_t *ret);
+int unit_get_effective_limit(Unit *u, CGroupLimitType type, uint64_t *ret);
int unit_reset_cpu_accounting(Unit *u);
int unit_reset_ip_accounting(Unit *u);
@@ -378,3 +388,6 @@ FreezerAction freezer_action_from_string(const char *s) _pure_;
const char* cgroup_pressure_watch_to_string(CGroupPressureWatch a) _const_;
CGroupPressureWatch cgroup_pressure_watch_from_string(const char *s) _pure_;
+
+const char* cgroup_limit_type_to_string(CGroupLimitType m) _const_;
+CGroupLimitType cgroup_limit_type_from_string(const char *s) _pure_;
diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c
index ed376cec87..b4509a990e 100644
--- a/src/core/dbus-unit.c
+++ b/src/core/dbus-unit.c
@@ -1438,6 +1438,28 @@ static int property_get_io_counter(
return sd_bus_message_append(reply, "t", value);
}
+static int property_get_effective_limit(
+ sd_bus *bus,
+ const char *path,
+ const char *interface,
+ const char *property,
+ sd_bus_message *reply,
+ void *userdata,
+ sd_bus_error *error) {
+
+ uint64_t value = CGROUP_LIMIT_MAX;
+ Unit *u = ASSERT_PTR(userdata);
+ ssize_t type;
+
+ assert(bus);
+ assert(reply);
+ assert(property);
+
+ assert_se((type = cgroup_limit_type_from_string(property)) >= 0);
+ (void) unit_get_effective_limit(u, type, &value);
+ return sd_bus_message_append(reply, "t", value);
+}
+
int bus_unit_method_attach_processes(sd_bus_message *message, void *userdata, sd_bus_error *error) {
_cleanup_(sd_bus_creds_unrefp) sd_bus_creds *creds = NULL;
@@ -1557,10 +1579,13 @@ const sd_bus_vtable bus_unit_cgroup_vtable[] = {
SD_BUS_PROPERTY("ControlGroupId", "t", NULL, offsetof(Unit, cgroup_id), 0),
SD_BUS_PROPERTY("MemoryCurrent", "t", property_get_current_memory, 0, 0),
SD_BUS_PROPERTY("MemoryAvailable", "t", property_get_available_memory, 0, 0),
+ SD_BUS_PROPERTY("EffectiveMemoryMax", "t", property_get_effective_limit, 0, 0),
+ SD_BUS_PROPERTY("EffectiveMemoryHigh", "t", property_get_effective_limit, 0, 0),
SD_BUS_PROPERTY("CPUUsageNSec", "t", property_get_cpu_usage, 0, 0),
SD_BUS_PROPERTY("EffectiveCPUs", "ay", property_get_cpuset_cpus, 0, 0),
SD_BUS_PROPERTY("EffectiveMemoryNodes", "ay", property_get_cpuset_mems, 0, 0),
SD_BUS_PROPERTY("TasksCurrent", "t", property_get_current_tasks, 0, 0),
+ SD_BUS_PROPERTY("EffectiveTasksMax", "t", property_get_effective_limit, 0, 0),
SD_BUS_PROPERTY("IPIngressBytes", "t", property_get_ip_counter, 0, 0),
SD_BUS_PROPERTY("IPIngressPackets", "t", property_get_ip_counter, 0, 0),
SD_BUS_PROPERTY("IPEgressBytes", "t", property_get_ip_counter, 0, 0),
diff --git a/src/shared/bus-print-properties.c b/src/shared/bus-print-properties.c
index f74d8994ad..62bbc598bb 100644
--- a/src/shared/bus-print-properties.c
+++ b/src/shared/bus-print-properties.c
@@ -164,9 +164,11 @@ static int bus_print_property(const char *name, const char *expected_value, sd_b
bus_print_property_value(name, expected_value, flags, "[not set]");
- else if ((ENDSWITH_SET(name, "MemoryLow", "MemoryMin", "MemoryHigh", "MemoryMax", "MemorySwapMax", "MemoryZSwapMax", "MemoryLimit") &&
+ else if ((ENDSWITH_SET(name, "MemoryLow", "MemoryMin",
+ "MemoryHigh", "MemoryMax",
+ "MemorySwapMax", "MemoryZSwapMax", "MemoryLimit") &&
u == CGROUP_LIMIT_MAX) ||
- (STR_IN_SET(name, "TasksMax", "DefaultTasksMax") && u == UINT64_MAX) ||
+ (endswith(name, "TasksMax") && u == UINT64_MAX) ||
(startswith(name, "Limit") && u == UINT64_MAX) ||
(startswith(name, "DefaultLimit") && u == UINT64_MAX))
--
2.35.3

View File

@ -0,0 +1,97 @@
From 46451a18828473edaf7e9873a084f26f0c827a3d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Tue, 23 Jan 2024 11:30:18 +0100
Subject: [PATCH 5007/5011] test: Convert rlimit test to subtest of generic
limit testing
No functional change intended. Preparation for new tests.
(cherry picked from commit 834ca54624ae1d61ec4fcf3a63b10271c38c4860)
[mkoutny: fixes jsc#PED-5659]
---
test/units/testsuite-05.rlimit.sh | 25 +++++++++++++++++++++++++
test/units/testsuite-05.service | 2 +-
test/units/testsuite-05.sh | 22 +++-------------------
3 files changed, 29 insertions(+), 20 deletions(-)
create mode 100755 test/units/testsuite-05.rlimit.sh
diff --git a/test/units/testsuite-05.rlimit.sh b/test/units/testsuite-05.rlimit.sh
new file mode 100755
index 0000000000..bbf3adbe65
--- /dev/null
+++ b/test/units/testsuite-05.rlimit.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+set -eux
+set -o pipefail
+
+P=/run/systemd/system.conf.d
+mkdir $P
+
+cat >$P/rlimits.conf <<EOF
+[Manager]
+DefaultLimitNOFILE=10000:16384
+EOF
+
+systemctl daemon-reload
+
+[[ "$(systemctl show -P DefaultLimitNOFILESoft)" = "10000" ]]
+[[ "$(systemctl show -P DefaultLimitNOFILE)" = "16384" ]]
+
+[[ "$(systemctl show -P LimitNOFILESoft testsuite-05.service)" = "10000" ]]
+[[ "$(systemctl show -P LimitNOFILE testsuite-05.service)" = "16384" ]]
+
+# shellcheck disable=SC2016
+systemd-run --wait -t bash -c '[[ "$(ulimit -n -S)" = "10000" ]]'
+# shellcheck disable=SC2016
+systemd-run --wait -t bash -c '[[ "$(ulimit -n -H)" = "16384" ]]'
diff --git a/test/units/testsuite-05.service b/test/units/testsuite-05.service
index ab72d8fe27..cf32accb8c 100644
--- a/test/units/testsuite-05.service
+++ b/test/units/testsuite-05.service
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Unit]
-Description=TEST-05-RLIMITS
+Description=TEST-05-LIMITS
[Service]
ExecStartPre=rm -f /failed /testok
diff --git a/test/units/testsuite-05.sh b/test/units/testsuite-05.sh
index 870845d14b..9c2a033aa9 100755
--- a/test/units/testsuite-05.sh
+++ b/test/units/testsuite-05.sh
@@ -3,25 +3,9 @@
set -eux
set -o pipefail
-P=/run/systemd/system.conf.d
-mkdir $P
+# shellcheck source=test/units/test-control.sh
+. "$(dirname "$0")"/test-control.sh
-cat >$P/rlimits.conf <<EOF
-[Manager]
-DefaultLimitNOFILE=10000:16384
-EOF
-
-systemctl daemon-reload
-
-[[ "$(systemctl show -P DefaultLimitNOFILESoft)" = "10000" ]]
-[[ "$(systemctl show -P DefaultLimitNOFILE)" = "16384" ]]
-
-[[ "$(systemctl show -P LimitNOFILESoft testsuite-05.service)" = "10000" ]]
-[[ "$(systemctl show -P LimitNOFILE testsuite-05.service)" = "16384" ]]
-
-# shellcheck disable=SC2016
-systemd-run --wait -t bash -c '[[ "$(ulimit -n -S)" = "10000" ]]'
-# shellcheck disable=SC2016
-systemd-run --wait -t bash -c '[[ "$(ulimit -n -H)" = "16384" ]]'
+run_subtests
touch /testok
--
2.35.3

View File

@ -0,0 +1,111 @@
From d0c92dae23e409f6a29f70f039455c08610c943f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Tue, 23 Jan 2024 11:30:19 +0100
Subject: [PATCH 5008/5011] test: Add effective cgroup limits testing
(cherry picked from commit ce35bb95c7b6fe9a48d2b8628bd690279b17fffa)
[mkoutny: fixes jsc#PED-5659]
---
test/units/testsuite-05.effective-limit.sh | 68 ++++++++++++++++++++++
test/units/util.sh | 9 +++
2 files changed, 77 insertions(+)
create mode 100755 test/units/testsuite-05.effective-limit.sh
diff --git a/test/units/testsuite-05.effective-limit.sh b/test/units/testsuite-05.effective-limit.sh
new file mode 100755
index 0000000000..3ff8e83140
--- /dev/null
+++ b/test/units/testsuite-05.effective-limit.sh
@@ -0,0 +1,68 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+set -eux
+set -o pipefail
+
+# shellcheck source=test/units/util.sh
+. "$(dirname "$0")"/util.sh
+
+pre=test05
+cat >/run/systemd/system/"$pre"alpha.slice <<EOF
+[Slice]
+MemoryMax=40M
+MemoryHigh=40M
+TasksMax=400
+EOF
+
+cat >/run/systemd/system/"$pre"alpha-beta.slice <<EOF
+[Slice]
+MemoryMax=10M
+MemoryHigh=10M
+TasksMax=100
+EOF
+
+cat >/run/systemd/system/"$pre"alpha-beta-gamma.slice <<EOF
+[Slice]
+MemoryMax=20M
+MemoryHigh=20M
+TasksMax=200
+EOF
+
+systemctl daemon-reload
+
+srv=probe.service
+slc0="$pre"alpha.slice
+slc="$pre"alpha-beta-gamma.slice
+
+systemd-run --unit "$srv" --slice "$slc" \
+ -p MemoryMax=5M \
+ -p MemoryHigh=5M \
+ -p TasksMax=50 \
+ sleep inf
+
+# Compare with inequality because test can run in a constrained container
+assert_le "$(systemctl show -P EffectiveMemoryMax "$srv")" "5242880"
+assert_le "$(systemctl show -P EffectiveMemoryHigh "$srv")" "5242880"
+assert_le "$(systemctl show -P EffectiveTasksMax "$srv")" "50"
+
+systemctl stop "$srv"
+
+systemd-run --unit "$srv" --slice "$slc" \
+ sleep inf
+
+assert_le "$(systemctl show -P EffectiveMemoryMax "$srv")" "10485760"
+assert_le "$(systemctl show -P EffectiveMemoryHigh "$srv")" "10485760"
+assert_le "$(systemctl show -P EffectiveTasksMax "$srv")" "100"
+
+systemctl set-property "$slc0" \
+ MemoryMax=5M \
+ MemoryHigh=5M \
+ TasksMax=50
+
+assert_le "$(systemctl show -P EffectiveMemoryMax "$srv")" "5242880"
+assert_le "$(systemctl show -P EffectiveMemoryHigh "$srv")" "5242880"
+assert_le "$(systemctl show -P EffectiveTasksMax "$srv")" "50"
+
+systemctl stop "$srv"
+
+rm -f /run/systemd/system/"$pre"* || :
diff --git a/test/units/util.sh b/test/units/util.sh
index 932fe1e603..7af98bb45e 100755
--- a/test/units/util.sh
+++ b/test/units/util.sh
@@ -26,6 +26,15 @@ assert_eq() {(
fi
)}
+assert_le() {(
+ set +ex
+
+ if [[ "${1:?}" -gt "${2:?}" ]]; then
+ echo "FAIL: '$1' > '$2'" >&2
+ exit 1
+ fi
+)}
+
assert_in() {(
set +ex
--
2.35.3

View File

@ -0,0 +1,56 @@
From edfd70ab2c5490131fcf5a4348e31c19251d3479 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Tue, 23 Jan 2024 11:30:20 +0100
Subject: [PATCH 5009/5011] cgroup: Restrict effective limits with global
resource provision
Global resource (whole system or root cg's (e.g. in a container)) is
also a well-defined limit for memory and tasks, take it into account
when calculating effective limits.
(cherry picked from commit 93f8e88d23bd383b5134f32c1e2ee315ac3a38c8)
[mkoutny: fixes jsc#PED-5659]
---
man/systemd.resource-control.xml | 2 +-
src/core/cgroup.c | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/man/systemd.resource-control.xml b/man/systemd.resource-control.xml
index 5b7900af87..ded4722e7a 100644
--- a/man/systemd.resource-control.xml
+++ b/man/systemd.resource-control.xml
@@ -422,7 +422,7 @@ CPUWeight=20 DisableControllers=cpu / \
<literal>memory.max</literal> control group attribute. For details about this control group attribute, see
<ulink url="https://docs.kernel.org/admin-guide/cgroup-v2.html#memory-interface-files">Memory Interface Files</ulink>.
The effective configuration is reported as <varname>EffectiveMemoryMax=</varname> (the value is
- the most stringent limit of the unit and parent slices).</para>
+ the most stringent limit of the unit and parent slices and it is capped by physical memory).</para>
<para>While <varname>StartupMemoryMax=</varname> applies to the startup and shutdown phases of the system,
<varname>MemoryMax=</varname> applies to normal runtime of the system, and if the former is not set also to
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index 0842036559..a53d90486c 100644
--- a/src/core/cgroup.c
+++ b/src/core/cgroup.c
@@ -4006,6 +4006,17 @@ static uint64_t unit_get_effective_limit_one(Unit *u, CGroupLimitType type) {
assert(u);
assert(UNIT_HAS_CGROUP_CONTEXT(u));
+ if (unit_has_name(u, SPECIAL_ROOT_SLICE))
+ switch (type) {
+ case CGROUP_LIMIT_MEMORY_MAX:
+ case CGROUP_LIMIT_MEMORY_HIGH:
+ return physical_memory();
+ case CGROUP_LIMIT_TASKS_MAX:
+ return system_tasks_max();
+ default:
+ assert_not_reached();
+ }
+
cc = unit_get_cgroup_context(u);
switch (type) {
/* Note: on legacy/hybrid hierarchies memory_max stays CGROUP_LIMIT_MAX unless configured
--
2.35.3

View File

@ -0,0 +1,64 @@
From 0c3448f0e341e3e1f23722e4275c4fdd4062d280 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Tue, 23 Jan 2024 11:30:21 +0100
Subject: [PATCH 5010/5011] cgroup: Rename effective limits internal table
Post-merge fixup of commit 4fb0d2dc14 ("cgroup: Add EffectiveMemoryMax=,
EffectiveMemoryHigh= and EffectiveTasksMax= properties"), no functional
change intended.
(cherry picked from commit 8ad614890bba66b5f6b590d6a3e1b8b04a920126)
[mkoutny: adjust context]
[mkoutny: fixes jsc#PED-5659]
---
src/core/cgroup.c | 4 ++--
src/core/cgroup.h | 4 ++--
src/core/dbus-unit.c | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index a53d90486c..2d8d61a26d 100644
--- a/src/core/cgroup.c
+++ b/src/core/cgroup.c
@@ -4470,10 +4470,10 @@ static const char* const cgroup_pressure_watch_table[_CGROUP_PRESSURE_WATCH_MAX]
DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(cgroup_pressure_watch, CGroupPressureWatch, CGROUP_PRESSURE_WATCH_ON);
-static const char *const cgroup_limit_type_table[_CGROUP_LIMIT_TYPE_MAX] = {
+static const char *const cgroup_effective_limit_type_table[_CGROUP_LIMIT_TYPE_MAX] = {
[CGROUP_LIMIT_MEMORY_MAX] = "EffectiveMemoryMax",
[CGROUP_LIMIT_MEMORY_HIGH] = "EffectiveMemoryHigh",
[CGROUP_LIMIT_TASKS_MAX] = "EffectiveTasksMax",
};
-DEFINE_STRING_TABLE_LOOKUP(cgroup_limit_type, CGroupLimitType);
+DEFINE_STRING_TABLE_LOOKUP(cgroup_effective_limit_type, CGroupLimitType);
diff --git a/src/core/cgroup.h b/src/core/cgroup.h
index a19a2fffa3..9ff650abcf 100644
--- a/src/core/cgroup.h
+++ b/src/core/cgroup.h
@@ -389,5 +389,5 @@ FreezerAction freezer_action_from_string(const char *s) _pure_;
const char* cgroup_pressure_watch_to_string(CGroupPressureWatch a) _const_;
CGroupPressureWatch cgroup_pressure_watch_from_string(const char *s) _pure_;
-const char* cgroup_limit_type_to_string(CGroupLimitType m) _const_;
-CGroupLimitType cgroup_limit_type_from_string(const char *s) _pure_;
+const char* cgroup_effective_limit_type_to_string(CGroupLimitType m) _const_;
+CGroupLimitType cgroup_effective_limit_type_from_string(const char *s) _pure_;
diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c
index b4509a990e..da22e8f524 100644
--- a/src/core/dbus-unit.c
+++ b/src/core/dbus-unit.c
@@ -1455,7 +1455,7 @@ static int property_get_effective_limit(
assert(reply);
assert(property);
- assert_se((type = cgroup_limit_type_from_string(property)) >= 0);
+ assert_se((type = cgroup_effective_limit_type_from_string(property)) >= 0);
(void) unit_get_effective_limit(u, type, &value);
return sd_bus_message_append(reply, "t", value);
}
--
2.35.3

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>mini</package>
</multibuild>

16
_service Normal file
View File

@ -0,0 +1,16 @@
<!-- See https://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService -->
<!-- for more details on the syntax -->
<services>
<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>

10
baselibs.conf Normal file
View File

@ -0,0 +1,10 @@
#
# https://en.opensuse.org/openSUSE:Build_Service_baselibs.conf#Quickstart
#
systemd
supplements "(systemd and pam-<targettype>)"
-/lib/systemd/system/
-/usr/lib/systemd
-/usr/lib/cryptsetup
libsystemd0
libudev1

62
files.container Normal file
View File

@ -0,0 +1,62 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_sysconfdir}/systemd/nspawn
%{_bindir}/systemd-nspawn
%if %{without bootstrap}
%{_datadir}/bash-completion/completions/systemd-nspawn
%{_datadir}/zsh/site-functions/_systemd-nspawn
%{_mandir}/man1/systemd-nspawn.1.gz
%{_mandir}/man5/systemd.nspawn.5.gz
%{_mandir}/man8/libnss_mymachines.so.2.8.gz
%{_mandir}/man8/nss-mymachines.8.gz
%endif
%{_unitdir}/systemd-nspawn@.service
%if %{with machined}
%dir %{_unitdir}/machines.target.wants
%{_bindir}/machinectl
%{_datadir}/bash-completion/completions/machinectl
%{_datadir}/dbus-1/interfaces/org.freedesktop.machine1.Image.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.machine1.Machine.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.machine1.Manager.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.machine1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy
%{_datadir}/zsh/site-functions/_machinectl
%{_datadir}/zsh/site-functions/_sd_machines
%{_libdir}/libnss_mymachines.so.2
%{_mandir}/man1/machinectl.1.gz
%{_mandir}/man5/org.freedesktop.machine1.5.gz
%{_mandir}/man8/systemd-machined.8.gz
%{_mandir}/man8/systemd-machined.service.8.gz
%{_systemd_util_dir}/rpm/fixlet-container-post.sh
%{_systemd_util_dir}/systemd-machined
%{_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
%{_unitdir}/systemd-machined.service
%{_unitdir}/var-lib-machines.mount
%endif
%if %{with importd}
%{_datadir}/dbus-1/interfaces/org.freedesktop.import1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.import1.Transfer.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.import1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.import1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.import1.policy
%{_mandir}/man5/org.freedesktop.import1.5.gz
%{_mandir}/man8/systemd-importd.8.gz
%{_mandir}/man8/systemd-importd.service.8.gz
%{_systemd_util_dir}/import-pubring.gpg
%{_systemd_util_dir}/systemd-export
%{_systemd_util_dir}/systemd-import
%{_systemd_util_dir}/systemd-import-fs
%{_systemd_util_dir}/systemd-importd
%{_systemd_util_dir}/systemd-pull
%{_unitdir}/dbus-org.freedesktop.import1.service
%{_unitdir}/systemd-importd.service
%endif

23
files.coredump Normal file
View File

@ -0,0 +1,23 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_localstatedir}/lib/systemd/coredump
%dir %{_sysconfdir}/systemd/coredump.conf.d
%{_bindir}/coredumpctl
%if %{without bootstrap}
%{_datadir}/bash-completion/completions/coredumpctl
%{_datadir}/zsh/site-functions/_coredumpctl
%{_mandir}/man1/coredumpctl.1.gz
%{_mandir}/man5/coredump.conf.5.gz
%{_mandir}/man5/coredump.conf.d.5.gz
%{_mandir}/man8/systemd-coredump.8.gz
%{_mandir}/man8/systemd-coredump.socket.8.gz
%{_mandir}/man8/systemd-coredump@.service.8.gz
%endif
%{_sysctldir}/50-coredump.conf
%{_systemd_util_dir}/coredump.conf
%{_systemd_util_dir}/systemd-coredump
%{_sysusersdir}/systemd-coredump.conf
%{_unitdir}/sockets.target.wants/systemd-coredump.socket
%{_unitdir}/systemd-coredump.socket
%{_unitdir}/systemd-coredump@.service

788
files.devel Normal file
View File

@ -0,0 +1,788 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%{_includedir}/libudev.h
%{_includedir}/systemd/
%{_libdir}/libsystemd.so
%{_libdir}/libudev.so
%{_libdir}/pkgconfig/libsystemd.pc
%{_libdir}/pkgconfig/libudev.pc
%if %{without bootstrap}
%{_mandir}/man3/SD_ALERT.3.gz
%{_mandir}/man3/SD_BUS_ERROR_ACCESS_DENIED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_ADDRESS_IN_USE.3.gz
%{_mandir}/man3/SD_BUS_ERROR_AUTH_FAILED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_BAD_ADDRESS.3.gz
%{_mandir}/man3/SD_BUS_ERROR_DISCONNECTED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_END.3.gz
%{_mandir}/man3/SD_BUS_ERROR_FAILED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_FILE_EXISTS.3.gz
%{_mandir}/man3/SD_BUS_ERROR_FILE_NOT_FOUND.3.gz
%{_mandir}/man3/SD_BUS_ERROR_INCONSISTENT_MESSAGE.3.gz
%{_mandir}/man3/SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_INVALID_ARGS.3.gz
%{_mandir}/man3/SD_BUS_ERROR_INVALID_FILE_CONTENT.3.gz
%{_mandir}/man3/SD_BUS_ERROR_INVALID_SIGNATURE.3.gz
%{_mandir}/man3/SD_BUS_ERROR_IO_ERROR.3.gz
%{_mandir}/man3/SD_BUS_ERROR_LIMITS_EXCEEDED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_MAKE_CONST.3.gz
%{_mandir}/man3/SD_BUS_ERROR_MAP.3.gz
%{_mandir}/man3/SD_BUS_ERROR_MATCH_RULE_INVALID.3.gz
%{_mandir}/man3/SD_BUS_ERROR_MATCH_RULE_NOT_FOUND.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NAME_HAS_NO_OWNER.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NOT_SUPPORTED.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NO_MEMORY.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NO_NETWORK.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NO_REPLY.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NO_SERVER.3.gz
%{_mandir}/man3/SD_BUS_ERROR_NULL.3.gz
%{_mandir}/man3/SD_BUS_ERROR_OBJECT_PATH_IN_USE.3.gz
%{_mandir}/man3/SD_BUS_ERROR_PROPERTY_READ_ONLY.3.gz
%{_mandir}/man3/SD_BUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN.3.gz
%{_mandir}/man3/SD_BUS_ERROR_SERVICE_UNKNOWN.3.gz
%{_mandir}/man3/SD_BUS_ERROR_TIMED_OUT.3.gz
%{_mandir}/man3/SD_BUS_ERROR_TIMEOUT.3.gz
%{_mandir}/man3/SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN.3.gz
%{_mandir}/man3/SD_BUS_ERROR_UNKNOWN_INTERFACE.3.gz
%{_mandir}/man3/SD_BUS_ERROR_UNKNOWN_METHOD.3.gz
%{_mandir}/man3/SD_BUS_ERROR_UNKNOWN_OBJECT.3.gz
%{_mandir}/man3/SD_BUS_ERROR_UNKNOWN_PROPERTY.3.gz
%{_mandir}/man3/SD_BUS_MESSAGE_METHOD_CALL.3.gz
%{_mandir}/man3/SD_BUS_MESSAGE_METHOD_ERROR.3.gz
%{_mandir}/man3/SD_BUS_MESSAGE_METHOD_RETURN.3.gz
%{_mandir}/man3/SD_BUS_MESSAGE_SIGNAL.3.gz
%{_mandir}/man3/SD_BUS_METHOD.3.gz
%{_mandir}/man3/SD_BUS_METHOD_WITH_NAMES.3.gz
%{_mandir}/man3/SD_BUS_METHOD_WITH_NAMES_OFFSET.3.gz
%{_mandir}/man3/SD_BUS_METHOD_WITH_OFFSET.3.gz
%{_mandir}/man3/SD_BUS_PARAM.3.gz
%{_mandir}/man3/SD_BUS_PROPERTY.3.gz
%{_mandir}/man3/SD_BUS_SIGNAL.3.gz
%{_mandir}/man3/SD_BUS_SIGNAL_WITH_NAMES.3.gz
%{_mandir}/man3/SD_BUS_VTABLE_CAPABILITY.3.gz
%{_mandir}/man3/SD_BUS_VTABLE_END.3.gz
%{_mandir}/man3/SD_BUS_VTABLE_START.3.gz
%{_mandir}/man3/SD_BUS_WRITABLE_PROPERTY.3.gz
%{_mandir}/man3/SD_CRIT.3.gz
%{_mandir}/man3/SD_DEBUG.3.gz
%{_mandir}/man3/SD_EMERG.3.gz
%{_mandir}/man3/SD_ERR.3.gz
%{_mandir}/man3/SD_EVENT_ARMED.3.gz
%{_mandir}/man3/SD_EVENT_EXITING.3.gz
%{_mandir}/man3/SD_EVENT_FINISHED.3.gz
%{_mandir}/man3/SD_EVENT_INITIAL.3.gz
%{_mandir}/man3/SD_EVENT_OFF.3.gz
%{_mandir}/man3/SD_EVENT_ON.3.gz
%{_mandir}/man3/SD_EVENT_ONESHOT.3.gz
%{_mandir}/man3/SD_EVENT_PENDING.3.gz
%{_mandir}/man3/SD_EVENT_PREPARING.3.gz
%{_mandir}/man3/SD_EVENT_PRIORITY_IDLE.3.gz
%{_mandir}/man3/SD_EVENT_PRIORITY_IMPORTANT.3.gz
%{_mandir}/man3/SD_EVENT_PRIORITY_NORMAL.3.gz
%{_mandir}/man3/SD_EVENT_RUNNING.3.gz
%{_mandir}/man3/SD_EVENT_SIGNAL_PROCMASK.3.gz
%{_mandir}/man3/SD_HWDB_FOREACH_PROPERTY.3.gz
%{_mandir}/man3/SD_ID128_ALLF.3.gz
%{_mandir}/man3/SD_ID128_CONST_STR.3.gz
%{_mandir}/man3/SD_ID128_FORMAT_STR.3.gz
%{_mandir}/man3/SD_ID128_FORMAT_VAL.3.gz
%{_mandir}/man3/SD_ID128_MAKE.3.gz
%{_mandir}/man3/SD_ID128_MAKE_STR.3.gz
%{_mandir}/man3/SD_ID128_MAKE_UUID_STR.3.gz
%{_mandir}/man3/SD_ID128_NULL.3.gz
%{_mandir}/man3/SD_ID128_STRING_MAX.3.gz
%{_mandir}/man3/SD_ID128_TO_STRING.3.gz
%{_mandir}/man3/SD_ID128_TO_UUID_STRING.3.gz
%{_mandir}/man3/SD_ID128_UUID_FORMAT_STR.3.gz
%{_mandir}/man3/SD_ID128_UUID_STRING_MAX.3.gz
%{_mandir}/man3/SD_INFO.3.gz
%{_mandir}/man3/SD_JOURNAL_ALL_NAMESPACES.3.gz
%{_mandir}/man3/SD_JOURNAL_APPEND.3.gz
%{_mandir}/man3/SD_JOURNAL_CURRENT_USER.3.gz
%{_mandir}/man3/SD_JOURNAL_FOREACH.3.gz
%{_mandir}/man3/SD_JOURNAL_FOREACH_BACKWARDS.3.gz
%{_mandir}/man3/SD_JOURNAL_FOREACH_DATA.3.gz
%{_mandir}/man3/SD_JOURNAL_FOREACH_FIELD.3.gz
%{_mandir}/man3/SD_JOURNAL_FOREACH_UNIQUE.3.gz
%{_mandir}/man3/SD_JOURNAL_INCLUDE_DEFAULT_NAMESPACE.3.gz
%{_mandir}/man3/SD_JOURNAL_INVALIDATE.3.gz
%{_mandir}/man3/SD_JOURNAL_LOCAL_ONLY.3.gz
%{_mandir}/man3/SD_JOURNAL_NOP.3.gz
%{_mandir}/man3/SD_JOURNAL_OS_ROOT.3.gz
%{_mandir}/man3/SD_JOURNAL_RUNTIME_ONLY.3.gz
%{_mandir}/man3/SD_JOURNAL_SUPPRESS_LOCATION.3.gz
%{_mandir}/man3/SD_JOURNAL_SYSTEM.3.gz
%{_mandir}/man3/SD_JOURNAL_TAKE_DIRECTORY_FD.3.gz
%{_mandir}/man3/SD_LISTEN_FDS_START.3.gz
%{_mandir}/man3/SD_NOTICE.3.gz
%{_mandir}/man3/SD_WARNING.3.gz
%{_mandir}/man3/libsystemd.3.gz
%{_mandir}/man3/libudev.3.gz
%{_mandir}/man3/sd-bus-errors.3.gz
%{_mandir}/man3/sd-bus.3.gz
%{_mandir}/man3/sd-daemon.3.gz
%{_mandir}/man3/sd-device.3.gz
%{_mandir}/man3/sd-event.3.gz
%{_mandir}/man3/sd-hwdb.3.gz
%{_mandir}/man3/sd-id128.3.gz
%{_mandir}/man3/sd-journal.3.gz
%{_mandir}/man3/sd-login.3.gz
%{_mandir}/man3/sd_booted.3.gz
%{_mandir}/man3/sd_bus_add_fallback.3.gz
%{_mandir}/man3/sd_bus_add_fallback_vtable.3.gz
%{_mandir}/man3/sd_bus_add_filter.3.gz
%{_mandir}/man3/sd_bus_add_match.3.gz
%{_mandir}/man3/sd_bus_add_match_async.3.gz
%{_mandir}/man3/sd_bus_add_node_enumerator.3.gz
%{_mandir}/man3/sd_bus_add_object.3.gz
%{_mandir}/man3/sd_bus_add_object_manager.3.gz
%{_mandir}/man3/sd_bus_add_object_vtable.3.gz
%{_mandir}/man3/sd_bus_attach_event.3.gz
%{_mandir}/man3/sd_bus_call.3.gz
%{_mandir}/man3/sd_bus_call_async.3.gz
%{_mandir}/man3/sd_bus_call_method.3.gz
%{_mandir}/man3/sd_bus_call_method_async.3.gz
%{_mandir}/man3/sd_bus_call_method_asyncv.3.gz
%{_mandir}/man3/sd_bus_call_methodv.3.gz
%{_mandir}/man3/sd_bus_can_send.3.gz
%{_mandir}/man3/sd_bus_close.3.gz
%{_mandir}/man3/sd_bus_close_unref.3.gz
%{_mandir}/man3/sd_bus_close_unrefp.3.gz
%{_mandir}/man3/sd_bus_creds_get_audit_login_uid.3.gz
%{_mandir}/man3/sd_bus_creds_get_audit_session_id.3.gz
%{_mandir}/man3/sd_bus_creds_get_augmented_mask.3.gz
%{_mandir}/man3/sd_bus_creds_get_cgroup.3.gz
%{_mandir}/man3/sd_bus_creds_get_cmdline.3.gz
%{_mandir}/man3/sd_bus_creds_get_comm.3.gz
%{_mandir}/man3/sd_bus_creds_get_description.3.gz
%{_mandir}/man3/sd_bus_creds_get_egid.3.gz
%{_mandir}/man3/sd_bus_creds_get_euid.3.gz
%{_mandir}/man3/sd_bus_creds_get_exe.3.gz
%{_mandir}/man3/sd_bus_creds_get_fsgid.3.gz
%{_mandir}/man3/sd_bus_creds_get_fsuid.3.gz
%{_mandir}/man3/sd_bus_creds_get_gid.3.gz
%{_mandir}/man3/sd_bus_creds_get_mask.3.gz
%{_mandir}/man3/sd_bus_creds_get_owner_uid.3.gz
%{_mandir}/man3/sd_bus_creds_get_pid.3.gz
%{_mandir}/man3/sd_bus_creds_get_ppid.3.gz
%{_mandir}/man3/sd_bus_creds_get_selinux_context.3.gz
%{_mandir}/man3/sd_bus_creds_get_session.3.gz
%{_mandir}/man3/sd_bus_creds_get_sgid.3.gz
%{_mandir}/man3/sd_bus_creds_get_slice.3.gz
%{_mandir}/man3/sd_bus_creds_get_suid.3.gz
%{_mandir}/man3/sd_bus_creds_get_supplementary_gids.3.gz
%{_mandir}/man3/sd_bus_creds_get_tid.3.gz
%{_mandir}/man3/sd_bus_creds_get_tid_comm.3.gz
%{_mandir}/man3/sd_bus_creds_get_tty.3.gz
%{_mandir}/man3/sd_bus_creds_get_uid.3.gz
%{_mandir}/man3/sd_bus_creds_get_unique_name.3.gz
%{_mandir}/man3/sd_bus_creds_get_unit.3.gz
%{_mandir}/man3/sd_bus_creds_get_user_slice.3.gz
%{_mandir}/man3/sd_bus_creds_get_user_unit.3.gz
%{_mandir}/man3/sd_bus_creds_get_well_known_names.3.gz
%{_mandir}/man3/sd_bus_creds_has_bounding_cap.3.gz
%{_mandir}/man3/sd_bus_creds_has_effective_cap.3.gz
%{_mandir}/man3/sd_bus_creds_has_inheritable_cap.3.gz
%{_mandir}/man3/sd_bus_creds_has_permitted_cap.3.gz
%{_mandir}/man3/sd_bus_creds_new_from_pid.3.gz
%{_mandir}/man3/sd_bus_creds_ref.3.gz
%{_mandir}/man3/sd_bus_creds_unref.3.gz
%{_mandir}/man3/sd_bus_creds_unrefp.3.gz
%{_mandir}/man3/sd_bus_default.3.gz
%{_mandir}/man3/sd_bus_default_flush_close.3.gz
%{_mandir}/man3/sd_bus_default_system.3.gz
%{_mandir}/man3/sd_bus_default_user.3.gz
%{_mandir}/man3/sd_bus_destroy_t.3.gz
%{_mandir}/man3/sd_bus_detach_event.3.gz
%{_mandir}/man3/sd_bus_emit_interfaces_added.3.gz
%{_mandir}/man3/sd_bus_emit_interfaces_added_strv.3.gz
%{_mandir}/man3/sd_bus_emit_interfaces_removed.3.gz
%{_mandir}/man3/sd_bus_emit_interfaces_removed_strv.3.gz
%{_mandir}/man3/sd_bus_emit_object_added.3.gz
%{_mandir}/man3/sd_bus_emit_object_removed.3.gz
%{_mandir}/man3/sd_bus_emit_properties_changed.3.gz
%{_mandir}/man3/sd_bus_emit_properties_changed_strv.3.gz
%{_mandir}/man3/sd_bus_emit_signal.3.gz
%{_mandir}/man3/sd_bus_emit_signal_to.3.gz
%{_mandir}/man3/sd_bus_emit_signal_tov.3.gz
%{_mandir}/man3/sd_bus_emit_signalv.3.gz
%{_mandir}/man3/sd_bus_enqueue_for_read.3.gz
%{_mandir}/man3/sd_bus_error.3.gz
%{_mandir}/man3/sd_bus_error_add_map.3.gz
%{_mandir}/man3/sd_bus_error_copy.3.gz
%{_mandir}/man3/sd_bus_error_free.3.gz
%{_mandir}/man3/sd_bus_error_get_errno.3.gz
%{_mandir}/man3/sd_bus_error_has_name.3.gz
%{_mandir}/man3/sd_bus_error_has_names.3.gz
%{_mandir}/man3/sd_bus_error_has_names_sentinel.3.gz
%{_mandir}/man3/sd_bus_error_is_set.3.gz
%{_mandir}/man3/sd_bus_error_map.3.gz
%{_mandir}/man3/sd_bus_error_move.3.gz
%{_mandir}/man3/sd_bus_error_set.3.gz
%{_mandir}/man3/sd_bus_error_set_const.3.gz
%{_mandir}/man3/sd_bus_error_set_errno.3.gz
%{_mandir}/man3/sd_bus_error_set_errnof.3.gz
%{_mandir}/man3/sd_bus_error_set_errnofv.3.gz
%{_mandir}/man3/sd_bus_error_setf.3.gz
%{_mandir}/man3/sd_bus_error_setfv.3.gz
%{_mandir}/man3/sd_bus_flush.3.gz
%{_mandir}/man3/sd_bus_flush_close_unref.3.gz
%{_mandir}/man3/sd_bus_flush_close_unrefp.3.gz
%{_mandir}/man3/sd_bus_get_address.3.gz
%{_mandir}/man3/sd_bus_get_allow_interactive_authorization.3.gz
%{_mandir}/man3/sd_bus_get_bus_id.3.gz
%{_mandir}/man3/sd_bus_get_close_on_exit.3.gz
%{_mandir}/man3/sd_bus_get_connected_signal.3.gz
%{_mandir}/man3/sd_bus_get_creds_mask.3.gz
%{_mandir}/man3/sd_bus_get_current_handler.3.gz
%{_mandir}/man3/sd_bus_get_current_message.3.gz
%{_mandir}/man3/sd_bus_get_current_slot.3.gz
%{_mandir}/man3/sd_bus_get_current_userdata.3.gz
%{_mandir}/man3/sd_bus_get_description.3.gz
%{_mandir}/man3/sd_bus_get_event.3.gz
%{_mandir}/man3/sd_bus_get_events.3.gz
%{_mandir}/man3/sd_bus_get_exit_on_disconnect.3.gz
%{_mandir}/man3/sd_bus_get_fd.3.gz
%{_mandir}/man3/sd_bus_get_method_call_timeout.3.gz
%{_mandir}/man3/sd_bus_get_n_queued_read.3.gz
%{_mandir}/man3/sd_bus_get_n_queued_write.3.gz
%{_mandir}/man3/sd_bus_get_name_creds.3.gz
%{_mandir}/man3/sd_bus_get_name_machine_id.3.gz
%{_mandir}/man3/sd_bus_get_owner_creds.3.gz
%{_mandir}/man3/sd_bus_get_property.3.gz
%{_mandir}/man3/sd_bus_get_property_string.3.gz
%{_mandir}/man3/sd_bus_get_property_strv.3.gz
%{_mandir}/man3/sd_bus_get_property_trivial.3.gz
%{_mandir}/man3/sd_bus_get_scope.3.gz
%{_mandir}/man3/sd_bus_get_sender.3.gz
%{_mandir}/man3/sd_bus_get_tid.3.gz
%{_mandir}/man3/sd_bus_get_timeout.3.gz
%{_mandir}/man3/sd_bus_get_unique_name.3.gz
%{_mandir}/man3/sd_bus_get_watch_bind.3.gz
%{_mandir}/man3/sd_bus_interface_name_is_valid.3.gz
%{_mandir}/man3/sd_bus_is_anonymous.3.gz
%{_mandir}/man3/sd_bus_is_bus_client.3.gz
%{_mandir}/man3/sd_bus_is_monitor.3.gz
%{_mandir}/man3/sd_bus_is_open.3.gz
%{_mandir}/man3/sd_bus_is_ready.3.gz
%{_mandir}/man3/sd_bus_is_server.3.gz
%{_mandir}/man3/sd_bus_is_trusted.3.gz
%{_mandir}/man3/sd_bus_list_names.3.gz
%{_mandir}/man3/sd_bus_match_signal.3.gz
%{_mandir}/man3/sd_bus_match_signal_async.3.gz
%{_mandir}/man3/sd_bus_member_name_is_valid.3.gz
%{_mandir}/man3/sd_bus_message_append.3.gz
%{_mandir}/man3/sd_bus_message_append_array.3.gz
%{_mandir}/man3/sd_bus_message_append_array_iovec.3.gz
%{_mandir}/man3/sd_bus_message_append_array_memfd.3.gz
%{_mandir}/man3/sd_bus_message_append_array_space.3.gz
%{_mandir}/man3/sd_bus_message_append_basic.3.gz
%{_mandir}/man3/sd_bus_message_append_string_iovec.3.gz
%{_mandir}/man3/sd_bus_message_append_string_memfd.3.gz
%{_mandir}/man3/sd_bus_message_append_string_space.3.gz
%{_mandir}/man3/sd_bus_message_append_strv.3.gz
%{_mandir}/man3/sd_bus_message_appendv.3.gz
%{_mandir}/man3/sd_bus_message_at_end.3.gz
%{_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
%{_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
%{_mandir}/man3/sd_bus_message_get_auto_start.3.gz
%{_mandir}/man3/sd_bus_message_get_bus.3.gz
%{_mandir}/man3/sd_bus_message_get_cookie.3.gz
%{_mandir}/man3/sd_bus_message_get_creds.3.gz
%{_mandir}/man3/sd_bus_message_get_destination.3.gz
%{_mandir}/man3/sd_bus_message_get_errno.3.gz
%{_mandir}/man3/sd_bus_message_get_error.3.gz
%{_mandir}/man3/sd_bus_message_get_expect_reply.3.gz
%{_mandir}/man3/sd_bus_message_get_interface.3.gz
%{_mandir}/man3/sd_bus_message_get_member.3.gz
%{_mandir}/man3/sd_bus_message_get_monotonic_usec.3.gz
%{_mandir}/man3/sd_bus_message_get_path.3.gz
%{_mandir}/man3/sd_bus_message_get_realtime_usec.3.gz
%{_mandir}/man3/sd_bus_message_get_reply_cookie.3.gz
%{_mandir}/man3/sd_bus_message_get_sender.3.gz
%{_mandir}/man3/sd_bus_message_get_seqnum.3.gz
%{_mandir}/man3/sd_bus_message_get_signature.3.gz
%{_mandir}/man3/sd_bus_message_get_type.3.gz
%{_mandir}/man3/sd_bus_message_has_signature.3.gz
%{_mandir}/man3/sd_bus_message_is_empty.3.gz
%{_mandir}/man3/sd_bus_message_is_method_call.3.gz
%{_mandir}/man3/sd_bus_message_is_method_error.3.gz
%{_mandir}/man3/sd_bus_message_is_signal.3.gz
%{_mandir}/man3/sd_bus_message_new.3.gz
%{_mandir}/man3/sd_bus_message_new_method_call.3.gz
%{_mandir}/man3/sd_bus_message_new_method_errno.3.gz
%{_mandir}/man3/sd_bus_message_new_method_errnof.3.gz
%{_mandir}/man3/sd_bus_message_new_method_error.3.gz
%{_mandir}/man3/sd_bus_message_new_method_errorf.3.gz
%{_mandir}/man3/sd_bus_message_new_method_return.3.gz
%{_mandir}/man3/sd_bus_message_new_signal.3.gz
%{_mandir}/man3/sd_bus_message_new_signal_to.3.gz
%{_mandir}/man3/sd_bus_message_open_container.3.gz
%{_mandir}/man3/sd_bus_message_peek_type.3.gz
%{_mandir}/man3/sd_bus_message_read.3.gz
%{_mandir}/man3/sd_bus_message_read_array.3.gz
%{_mandir}/man3/sd_bus_message_read_basic.3.gz
%{_mandir}/man3/sd_bus_message_read_strv.3.gz
%{_mandir}/man3/sd_bus_message_read_strv_extend.3.gz
%{_mandir}/man3/sd_bus_message_readv.3.gz
%{_mandir}/man3/sd_bus_message_ref.3.gz
%{_mandir}/man3/sd_bus_message_rewind.3.gz
%{_mandir}/man3/sd_bus_message_seal.3.gz
%{_mandir}/man3/sd_bus_message_send.3.gz
%{_mandir}/man3/sd_bus_message_sensitive.3.gz
%{_mandir}/man3/sd_bus_message_set_allow_interactive_authorization.3.gz
%{_mandir}/man3/sd_bus_message_set_auto_start.3.gz
%{_mandir}/man3/sd_bus_message_set_destination.3.gz
%{_mandir}/man3/sd_bus_message_set_expect_reply.3.gz
%{_mandir}/man3/sd_bus_message_set_sender.3.gz
%{_mandir}/man3/sd_bus_message_skip.3.gz
%{_mandir}/man3/sd_bus_message_unref.3.gz
%{_mandir}/man3/sd_bus_message_unrefp.3.gz
%{_mandir}/man3/sd_bus_message_verify_type.3.gz
%{_mandir}/man3/sd_bus_negotiate_creds.3.gz
%{_mandir}/man3/sd_bus_negotiate_fds.3.gz
%{_mandir}/man3/sd_bus_negotiate_timestamp.3.gz
%{_mandir}/man3/sd_bus_new.3.gz
%{_mandir}/man3/sd_bus_object_path_is_valid.3.gz
%{_mandir}/man3/sd_bus_open.3.gz
%{_mandir}/man3/sd_bus_open_system.3.gz
%{_mandir}/man3/sd_bus_open_system_machine.3.gz
%{_mandir}/man3/sd_bus_open_system_remote.3.gz
%{_mandir}/man3/sd_bus_open_system_with_description.3.gz
%{_mandir}/man3/sd_bus_open_user.3.gz
%{_mandir}/man3/sd_bus_open_user_machine.3.gz
%{_mandir}/man3/sd_bus_open_user_with_description.3.gz
%{_mandir}/man3/sd_bus_open_with_description.3.gz
%{_mandir}/man3/sd_bus_path_decode.3.gz
%{_mandir}/man3/sd_bus_path_decode_many.3.gz
%{_mandir}/man3/sd_bus_path_encode.3.gz
%{_mandir}/man3/sd_bus_path_encode_many.3.gz
%{_mandir}/man3/sd_bus_process.3.gz
%{_mandir}/man3/sd_bus_query_sender_creds.3.gz
%{_mandir}/man3/sd_bus_query_sender_privilege.3.gz
%{_mandir}/man3/sd_bus_ref.3.gz
%{_mandir}/man3/sd_bus_release_name.3.gz
%{_mandir}/man3/sd_bus_release_name_async.3.gz
%{_mandir}/man3/sd_bus_reply_method_errno.3.gz
%{_mandir}/man3/sd_bus_reply_method_errnof.3.gz
%{_mandir}/man3/sd_bus_reply_method_errnofv.3.gz
%{_mandir}/man3/sd_bus_reply_method_error.3.gz
%{_mandir}/man3/sd_bus_reply_method_errorf.3.gz
%{_mandir}/man3/sd_bus_reply_method_errorfv.3.gz
%{_mandir}/man3/sd_bus_reply_method_return.3.gz
%{_mandir}/man3/sd_bus_reply_method_returnv.3.gz
%{_mandir}/man3/sd_bus_request_name.3.gz
%{_mandir}/man3/sd_bus_request_name_async.3.gz
%{_mandir}/man3/sd_bus_send.3.gz
%{_mandir}/man3/sd_bus_send_to.3.gz
%{_mandir}/man3/sd_bus_service_name_is_valid.3.gz
%{_mandir}/man3/sd_bus_set_address.3.gz
%{_mandir}/man3/sd_bus_set_allow_interactive_authorization.3.gz
%{_mandir}/man3/sd_bus_set_anonymous.3.gz
%{_mandir}/man3/sd_bus_set_bus_client.3.gz
%{_mandir}/man3/sd_bus_set_close_on_exit.3.gz
%{_mandir}/man3/sd_bus_set_connected_signal.3.gz
%{_mandir}/man3/sd_bus_set_description.3.gz
%{_mandir}/man3/sd_bus_set_exec.3.gz
%{_mandir}/man3/sd_bus_set_exit_on_disconnect.3.gz
%{_mandir}/man3/sd_bus_set_fd.3.gz
%{_mandir}/man3/sd_bus_set_method_call_timeout.3.gz
%{_mandir}/man3/sd_bus_set_monitor.3.gz
%{_mandir}/man3/sd_bus_set_property.3.gz
%{_mandir}/man3/sd_bus_set_propertyv.3.gz
%{_mandir}/man3/sd_bus_set_sender.3.gz
%{_mandir}/man3/sd_bus_set_server.3.gz
%{_mandir}/man3/sd_bus_set_trusted.3.gz
%{_mandir}/man3/sd_bus_set_watch_bind.3.gz
%{_mandir}/man3/sd_bus_slot_get_bus.3.gz
%{_mandir}/man3/sd_bus_slot_get_current_handler.3.gz
%{_mandir}/man3/sd_bus_slot_get_current_message.3.gz
%{_mandir}/man3/sd_bus_slot_get_current_userdata.3.gz
%{_mandir}/man3/sd_bus_slot_get_description.3.gz
%{_mandir}/man3/sd_bus_slot_get_destroy_callback.3.gz
%{_mandir}/man3/sd_bus_slot_get_floating.3.gz
%{_mandir}/man3/sd_bus_slot_get_userdata.3.gz
%{_mandir}/man3/sd_bus_slot_ref.3.gz
%{_mandir}/man3/sd_bus_slot_set_description.3.gz
%{_mandir}/man3/sd_bus_slot_set_destroy_callback.3.gz
%{_mandir}/man3/sd_bus_slot_set_floating.3.gz
%{_mandir}/man3/sd_bus_slot_set_userdata.3.gz
%{_mandir}/man3/sd_bus_slot_unref.3.gz
%{_mandir}/man3/sd_bus_slot_unrefp.3.gz
%{_mandir}/man3/sd_bus_start.3.gz
%{_mandir}/man3/sd_bus_track_add_name.3.gz
%{_mandir}/man3/sd_bus_track_add_sender.3.gz
%{_mandir}/man3/sd_bus_track_contains.3.gz
%{_mandir}/man3/sd_bus_track_count.3.gz
%{_mandir}/man3/sd_bus_track_count_name.3.gz
%{_mandir}/man3/sd_bus_track_count_sender.3.gz
%{_mandir}/man3/sd_bus_track_first.3.gz
%{_mandir}/man3/sd_bus_track_get_bus.3.gz
%{_mandir}/man3/sd_bus_track_get_destroy_callback.3.gz
%{_mandir}/man3/sd_bus_track_get_recursive.3.gz
%{_mandir}/man3/sd_bus_track_get_userdata.3.gz
%{_mandir}/man3/sd_bus_track_new.3.gz
%{_mandir}/man3/sd_bus_track_next.3.gz
%{_mandir}/man3/sd_bus_track_ref.3.gz
%{_mandir}/man3/sd_bus_track_remove_name.3.gz
%{_mandir}/man3/sd_bus_track_remove_sender.3.gz
%{_mandir}/man3/sd_bus_track_set_destroy_callback.3.gz
%{_mandir}/man3/sd_bus_track_set_recursive.3.gz
%{_mandir}/man3/sd_bus_track_set_userdata.3.gz
%{_mandir}/man3/sd_bus_track_unref.3.gz
%{_mandir}/man3/sd_bus_track_unrefp.3.gz
%{_mandir}/man3/sd_bus_unref.3.gz
%{_mandir}/man3/sd_bus_unrefp.3.gz
%{_mandir}/man3/sd_bus_wait.3.gz
%{_mandir}/man3/sd_device_get_devname.3.gz
%{_mandir}/man3/sd_device_get_devnum.3.gz
%{_mandir}/man3/sd_device_get_devpath.3.gz
%{_mandir}/man3/sd_device_get_devtype.3.gz
%{_mandir}/man3/sd_device_get_diskseq.3.gz
%{_mandir}/man3/sd_device_get_driver.3.gz
%{_mandir}/man3/sd_device_get_ifindex.3.gz
%{_mandir}/man3/sd_device_get_subsystem.3.gz
%{_mandir}/man3/sd_device_get_sysname.3.gz
%{_mandir}/man3/sd_device_get_sysnum.3.gz
%{_mandir}/man3/sd_device_get_syspath.3.gz
%{_mandir}/man3/sd_device_ref.3.gz
%{_mandir}/man3/sd_device_unref.3.gz
%{_mandir}/man3/sd_device_unrefp.3.gz
%{_mandir}/man3/sd_event.3.gz
%{_mandir}/man3/sd_event_add_child.3.gz
%{_mandir}/man3/sd_event_add_child_pidfd.3.gz
%{_mandir}/man3/sd_event_add_defer.3.gz
%{_mandir}/man3/sd_event_add_exit.3.gz
%{_mandir}/man3/sd_event_add_inotify.3.gz
%{_mandir}/man3/sd_event_add_inotify_fd.3.gz
%{_mandir}/man3/sd_event_add_io.3.gz
%{_mandir}/man3/sd_event_add_memory_pressure.3.gz
%{_mandir}/man3/sd_event_add_post.3.gz
%{_mandir}/man3/sd_event_add_signal.3.gz
%{_mandir}/man3/sd_event_add_time.3.gz
%{_mandir}/man3/sd_event_add_time_relative.3.gz
%{_mandir}/man3/sd_event_child_handler_t.3.gz
%{_mandir}/man3/sd_event_default.3.gz
%{_mandir}/man3/sd_event_destroy_t.3.gz
%{_mandir}/man3/sd_event_dispatch.3.gz
%{_mandir}/man3/sd_event_exit.3.gz
%{_mandir}/man3/sd_event_get_exit_code.3.gz
%{_mandir}/man3/sd_event_get_fd.3.gz
%{_mandir}/man3/sd_event_get_iteration.3.gz
%{_mandir}/man3/sd_event_get_state.3.gz
%{_mandir}/man3/sd_event_get_tid.3.gz
%{_mandir}/man3/sd_event_get_watchdog.3.gz
%{_mandir}/man3/sd_event_handler_t.3.gz
%{_mandir}/man3/sd_event_inotify_handler_t.3.gz
%{_mandir}/man3/sd_event_io_handler_t.3.gz
%{_mandir}/man3/sd_event_loop.3.gz
%{_mandir}/man3/sd_event_new.3.gz
%{_mandir}/man3/sd_event_now.3.gz
%{_mandir}/man3/sd_event_prepare.3.gz
%{_mandir}/man3/sd_event_ref.3.gz
%{_mandir}/man3/sd_event_run.3.gz
%{_mandir}/man3/sd_event_set_signal_exit.3.gz
%{_mandir}/man3/sd_event_set_watchdog.3.gz
%{_mandir}/man3/sd_event_signal_handler_t.3.gz
%{_mandir}/man3/sd_event_source.3.gz
%{_mandir}/man3/sd_event_source_disable_unref.3.gz
%{_mandir}/man3/sd_event_source_disable_unrefp.3.gz
%{_mandir}/man3/sd_event_source_get_child_pid.3.gz
%{_mandir}/man3/sd_event_source_get_child_pidfd.3.gz
%{_mandir}/man3/sd_event_source_get_child_pidfd_own.3.gz
%{_mandir}/man3/sd_event_source_get_child_process_own.3.gz
%{_mandir}/man3/sd_event_source_get_description.3.gz
%{_mandir}/man3/sd_event_source_get_destroy_callback.3.gz
%{_mandir}/man3/sd_event_source_get_enabled.3.gz
%{_mandir}/man3/sd_event_source_get_event.3.gz
%{_mandir}/man3/sd_event_source_get_exit_on_failure.3.gz
%{_mandir}/man3/sd_event_source_get_floating.3.gz
%{_mandir}/man3/sd_event_source_get_inotify_mask.3.gz
%{_mandir}/man3/sd_event_source_get_io_events.3.gz
%{_mandir}/man3/sd_event_source_get_io_fd.3.gz
%{_mandir}/man3/sd_event_source_get_io_fd_own.3.gz
%{_mandir}/man3/sd_event_source_get_io_revents.3.gz
%{_mandir}/man3/sd_event_source_get_pending.3.gz
%{_mandir}/man3/sd_event_source_get_priority.3.gz
%{_mandir}/man3/sd_event_source_get_ratelimit.3.gz
%{_mandir}/man3/sd_event_source_get_signal.3.gz
%{_mandir}/man3/sd_event_source_get_time.3.gz
%{_mandir}/man3/sd_event_source_get_time_accuracy.3.gz
%{_mandir}/man3/sd_event_source_get_time_clock.3.gz
%{_mandir}/man3/sd_event_source_get_userdata.3.gz
%{_mandir}/man3/sd_event_source_is_ratelimited.3.gz
%{_mandir}/man3/sd_event_source_leave_ratelimit.3.gz
%{_mandir}/man3/sd_event_source_ref.3.gz
%{_mandir}/man3/sd_event_source_send_child_signal.3.gz
%{_mandir}/man3/sd_event_source_set_child_pidfd_own.3.gz
%{_mandir}/man3/sd_event_source_set_child_process_own.3.gz
%{_mandir}/man3/sd_event_source_set_description.3.gz
%{_mandir}/man3/sd_event_source_set_destroy_callback.3.gz
%{_mandir}/man3/sd_event_source_set_enabled.3.gz
%{_mandir}/man3/sd_event_source_set_exit_on_failure.3.gz
%{_mandir}/man3/sd_event_source_set_floating.3.gz
%{_mandir}/man3/sd_event_source_set_io_events.3.gz
%{_mandir}/man3/sd_event_source_set_io_fd.3.gz
%{_mandir}/man3/sd_event_source_set_io_fd_own.3.gz
%{_mandir}/man3/sd_event_source_set_memory_pressure_period.3.gz
%{_mandir}/man3/sd_event_source_set_memory_pressure_type.3.gz
%{_mandir}/man3/sd_event_source_set_prepare.3.gz
%{_mandir}/man3/sd_event_source_set_priority.3.gz
%{_mandir}/man3/sd_event_source_set_ratelimit.3.gz
%{_mandir}/man3/sd_event_source_set_ratelimit_expire_callback.3.gz
%{_mandir}/man3/sd_event_source_set_time.3.gz
%{_mandir}/man3/sd_event_source_set_time_accuracy.3.gz
%{_mandir}/man3/sd_event_source_set_time_relative.3.gz
%{_mandir}/man3/sd_event_source_set_userdata.3.gz
%{_mandir}/man3/sd_event_source_unref.3.gz
%{_mandir}/man3/sd_event_source_unrefp.3.gz
%{_mandir}/man3/sd_event_time_handler_t.3.gz
%{_mandir}/man3/sd_event_trim_memory.3.gz
%{_mandir}/man3/sd_event_unref.3.gz
%{_mandir}/man3/sd_event_unrefp.3.gz
%{_mandir}/man3/sd_event_wait.3.gz
%{_mandir}/man3/sd_get_machine_names.3.gz
%{_mandir}/man3/sd_get_seats.3.gz
%{_mandir}/man3/sd_get_sessions.3.gz
%{_mandir}/man3/sd_get_uids.3.gz
%{_mandir}/man3/sd_hwdb_enumerate.3.gz
%{_mandir}/man3/sd_hwdb_get.3.gz
%{_mandir}/man3/sd_hwdb_new.3.gz
%{_mandir}/man3/sd_hwdb_new_from_path.3.gz
%{_mandir}/man3/sd_hwdb_ref.3.gz
%{_mandir}/man3/sd_hwdb_seek.3.gz
%{_mandir}/man3/sd_hwdb_unref.3.gz
%{_mandir}/man3/sd_id128_equal.3.gz
%{_mandir}/man3/sd_id128_from_string.3.gz
%{_mandir}/man3/sd_id128_get_boot.3.gz
%{_mandir}/man3/sd_id128_get_boot_app_specific.3.gz
%{_mandir}/man3/sd_id128_get_invocation.3.gz
%{_mandir}/man3/sd_id128_get_machine.3.gz
%{_mandir}/man3/sd_id128_get_machine_app_specific.3.gz
%{_mandir}/man3/sd_id128_in_set.3.gz
%{_mandir}/man3/sd_id128_in_set_sentinel.3.gz
%{_mandir}/man3/sd_id128_in_setv.3.gz
%{_mandir}/man3/sd_id128_is_allf.3.gz
%{_mandir}/man3/sd_id128_is_null.3.gz
%{_mandir}/man3/sd_id128_randomize.3.gz
%{_mandir}/man3/sd_id128_string_equal.3.gz
%{_mandir}/man3/sd_id128_t.3.gz
%{_mandir}/man3/sd_id128_to_string.3.gz
%{_mandir}/man3/sd_id128_to_uuid_string.3.gz
%{_mandir}/man3/sd_is_fifo.3.gz
%{_mandir}/man3/sd_is_mq.3.gz
%{_mandir}/man3/sd_is_socket.3.gz
%{_mandir}/man3/sd_is_socket_inet.3.gz
%{_mandir}/man3/sd_is_socket_sockaddr.3.gz
%{_mandir}/man3/sd_is_socket_unix.3.gz
%{_mandir}/man3/sd_is_special.3.gz
%{_mandir}/man3/sd_journal.3.gz
%{_mandir}/man3/sd_journal_add_conjunction.3.gz
%{_mandir}/man3/sd_journal_add_disjunction.3.gz
%{_mandir}/man3/sd_journal_add_match.3.gz
%{_mandir}/man3/sd_journal_close.3.gz
%{_mandir}/man3/sd_journal_enumerate_available_data.3.gz
%{_mandir}/man3/sd_journal_enumerate_available_unique.3.gz
%{_mandir}/man3/sd_journal_enumerate_data.3.gz
%{_mandir}/man3/sd_journal_enumerate_fields.3.gz
%{_mandir}/man3/sd_journal_enumerate_unique.3.gz
%{_mandir}/man3/sd_journal_flush_matches.3.gz
%{_mandir}/man3/sd_journal_get_catalog.3.gz
%{_mandir}/man3/sd_journal_get_catalog_for_message_id.3.gz
%{_mandir}/man3/sd_journal_get_cursor.3.gz
%{_mandir}/man3/sd_journal_get_cutoff_monotonic_usec.3.gz
%{_mandir}/man3/sd_journal_get_cutoff_realtime_usec.3.gz
%{_mandir}/man3/sd_journal_get_data.3.gz
%{_mandir}/man3/sd_journal_get_data_threshold.3.gz
%{_mandir}/man3/sd_journal_get_events.3.gz
%{_mandir}/man3/sd_journal_get_fd.3.gz
%{_mandir}/man3/sd_journal_get_monotonic_usec.3.gz
%{_mandir}/man3/sd_journal_get_realtime_usec.3.gz
%{_mandir}/man3/sd_journal_get_seqnum.3.gz
%{_mandir}/man3/sd_journal_get_timeout.3.gz
%{_mandir}/man3/sd_journal_get_usage.3.gz
%{_mandir}/man3/sd_journal_has_persistent_files.3.gz
%{_mandir}/man3/sd_journal_has_runtime_files.3.gz
%{_mandir}/man3/sd_journal_next.3.gz
%{_mandir}/man3/sd_journal_next_skip.3.gz
%{_mandir}/man3/sd_journal_open.3.gz
%{_mandir}/man3/sd_journal_open_directory.3.gz
%{_mandir}/man3/sd_journal_open_directory_fd.3.gz
%{_mandir}/man3/sd_journal_open_files.3.gz
%{_mandir}/man3/sd_journal_open_files_fd.3.gz
%{_mandir}/man3/sd_journal_open_namespace.3.gz
%{_mandir}/man3/sd_journal_perror.3.gz
%{_mandir}/man3/sd_journal_perror_with_location.3.gz
%{_mandir}/man3/sd_journal_previous.3.gz
%{_mandir}/man3/sd_journal_previous_skip.3.gz
%{_mandir}/man3/sd_journal_print.3.gz
%{_mandir}/man3/sd_journal_print_with_location.3.gz
%{_mandir}/man3/sd_journal_printv.3.gz
%{_mandir}/man3/sd_journal_printv_with_location.3.gz
%{_mandir}/man3/sd_journal_process.3.gz
%{_mandir}/man3/sd_journal_query_unique.3.gz
%{_mandir}/man3/sd_journal_reliable_fd.3.gz
%{_mandir}/man3/sd_journal_restart_data.3.gz
%{_mandir}/man3/sd_journal_restart_fields.3.gz
%{_mandir}/man3/sd_journal_restart_unique.3.gz
%{_mandir}/man3/sd_journal_seek_cursor.3.gz
%{_mandir}/man3/sd_journal_seek_head.3.gz
%{_mandir}/man3/sd_journal_seek_monotonic_usec.3.gz
%{_mandir}/man3/sd_journal_seek_realtime_usec.3.gz
%{_mandir}/man3/sd_journal_seek_tail.3.gz
%{_mandir}/man3/sd_journal_send.3.gz
%{_mandir}/man3/sd_journal_send_with_location.3.gz
%{_mandir}/man3/sd_journal_sendv.3.gz
%{_mandir}/man3/sd_journal_sendv_with_location.3.gz
%{_mandir}/man3/sd_journal_set_data_threshold.3.gz
%{_mandir}/man3/sd_journal_step_one.3.gz
%{_mandir}/man3/sd_journal_stream_fd.3.gz
%{_mandir}/man3/sd_journal_test_cursor.3.gz
%{_mandir}/man3/sd_journal_wait.3.gz
%{_mandir}/man3/sd_listen_fds.3.gz
%{_mandir}/man3/sd_listen_fds_with_names.3.gz
%{_mandir}/man3/sd_login_monitor.3.gz
%{_mandir}/man3/sd_login_monitor_flush.3.gz
%{_mandir}/man3/sd_login_monitor_get_events.3.gz
%{_mandir}/man3/sd_login_monitor_get_fd.3.gz
%{_mandir}/man3/sd_login_monitor_get_timeout.3.gz
%{_mandir}/man3/sd_login_monitor_new.3.gz
%{_mandir}/man3/sd_login_monitor_unref.3.gz
%{_mandir}/man3/sd_login_monitor_unrefp.3.gz
%{_mandir}/man3/sd_machine_get_class.3.gz
%{_mandir}/man3/sd_machine_get_ifindices.3.gz
%{_mandir}/man3/sd_notify.3.gz
%{_mandir}/man3/sd_notify_barrier.3.gz
%{_mandir}/man3/sd_notifyf.3.gz
%{_mandir}/man3/sd_path_lookup.3.gz
%{_mandir}/man3/sd_path_lookup_strv.3.gz
%{_mandir}/man3/sd_peer_get_cgroup.3.gz
%{_mandir}/man3/sd_peer_get_machine_name.3.gz
%{_mandir}/man3/sd_peer_get_owner_uid.3.gz
%{_mandir}/man3/sd_peer_get_session.3.gz
%{_mandir}/man3/sd_peer_get_slice.3.gz
%{_mandir}/man3/sd_peer_get_unit.3.gz
%{_mandir}/man3/sd_peer_get_user_slice.3.gz
%{_mandir}/man3/sd_peer_get_user_unit.3.gz
%{_mandir}/man3/sd_pid_get_cgroup.3.gz
%{_mandir}/man3/sd_pid_get_machine_name.3.gz
%{_mandir}/man3/sd_pid_get_owner_uid.3.gz
%{_mandir}/man3/sd_pid_get_session.3.gz
%{_mandir}/man3/sd_pid_get_slice.3.gz
%{_mandir}/man3/sd_pid_get_unit.3.gz
%{_mandir}/man3/sd_pid_get_user_slice.3.gz
%{_mandir}/man3/sd_pid_get_user_unit.3.gz
%{_mandir}/man3/sd_pid_notify.3.gz
%{_mandir}/man3/sd_pid_notify_barrier.3.gz
%{_mandir}/man3/sd_pid_notify_with_fds.3.gz
%{_mandir}/man3/sd_pid_notifyf.3.gz
%{_mandir}/man3/sd_pid_notifyf_with_fds.3.gz
%{_mandir}/man3/sd_pidfd_get_cgroup.3.gz
%{_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
%{_mandir}/man3/sd_pidfd_get_slice.3.gz
%{_mandir}/man3/sd_pidfd_get_unit.3.gz
%{_mandir}/man3/sd_pidfd_get_user_slice.3.gz
%{_mandir}/man3/sd_pidfd_get_user_unit.3.gz
%{_mandir}/man3/sd_seat_can_graphical.3.gz
%{_mandir}/man3/sd_seat_can_tty.3.gz
%{_mandir}/man3/sd_seat_get_active.3.gz
%{_mandir}/man3/sd_seat_get_sessions.3.gz
%{_mandir}/man3/sd_session_get_class.3.gz
%{_mandir}/man3/sd_session_get_desktop.3.gz
%{_mandir}/man3/sd_session_get_display.3.gz
%{_mandir}/man3/sd_session_get_leader.3.gz
%{_mandir}/man3/sd_session_get_remote_host.3.gz
%{_mandir}/man3/sd_session_get_remote_user.3.gz
%{_mandir}/man3/sd_session_get_seat.3.gz
%{_mandir}/man3/sd_session_get_service.3.gz
%{_mandir}/man3/sd_session_get_start_time.3.gz
%{_mandir}/man3/sd_session_get_state.3.gz
%{_mandir}/man3/sd_session_get_tty.3.gz
%{_mandir}/man3/sd_session_get_type.3.gz
%{_mandir}/man3/sd_session_get_uid.3.gz
%{_mandir}/man3/sd_session_get_username.3.gz
%{_mandir}/man3/sd_session_get_vt.3.gz
%{_mandir}/man3/sd_session_is_active.3.gz
%{_mandir}/man3/sd_session_is_remote.3.gz
%{_mandir}/man3/sd_uid_get_display.3.gz
%{_mandir}/man3/sd_uid_get_login_time.3.gz
%{_mandir}/man3/sd_uid_get_seats.3.gz
%{_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
%{_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
%{_mandir}/man3/udev_device_get_devlinks_list_entry.3.gz
%{_mandir}/man3/udev_device_get_devnode.3.gz
%{_mandir}/man3/udev_device_get_devnum.3.gz
%{_mandir}/man3/udev_device_get_devpath.3.gz
%{_mandir}/man3/udev_device_get_devtype.3.gz
%{_mandir}/man3/udev_device_get_driver.3.gz
%{_mandir}/man3/udev_device_get_is_initialized.3.gz
%{_mandir}/man3/udev_device_get_parent.3.gz
%{_mandir}/man3/udev_device_get_parent_with_subsystem_devtype.3.gz
%{_mandir}/man3/udev_device_get_properties_list_entry.3.gz
%{_mandir}/man3/udev_device_get_property_value.3.gz
%{_mandir}/man3/udev_device_get_subsystem.3.gz
%{_mandir}/man3/udev_device_get_sysattr_list_entry.3.gz
%{_mandir}/man3/udev_device_get_sysattr_value.3.gz
%{_mandir}/man3/udev_device_get_sysname.3.gz
%{_mandir}/man3/udev_device_get_sysnum.3.gz
%{_mandir}/man3/udev_device_get_syspath.3.gz
%{_mandir}/man3/udev_device_get_tags_list_entry.3.gz
%{_mandir}/man3/udev_device_get_udev.3.gz
%{_mandir}/man3/udev_device_has_current_tag.3.gz
%{_mandir}/man3/udev_device_has_tag.3.gz
%{_mandir}/man3/udev_device_new_from_device_id.3.gz
%{_mandir}/man3/udev_device_new_from_devnum.3.gz
%{_mandir}/man3/udev_device_new_from_environment.3.gz
%{_mandir}/man3/udev_device_new_from_subsystem_sysname.3.gz
%{_mandir}/man3/udev_device_new_from_syspath.3.gz
%{_mandir}/man3/udev_device_ref.3.gz
%{_mandir}/man3/udev_device_set_sysattr_value.3.gz
%{_mandir}/man3/udev_device_unref.3.gz
%{_mandir}/man3/udev_enumerate_add_match_is_initialized.3.gz
%{_mandir}/man3/udev_enumerate_add_match_parent.3.gz
%{_mandir}/man3/udev_enumerate_add_match_property.3.gz
%{_mandir}/man3/udev_enumerate_add_match_subsystem.3.gz
%{_mandir}/man3/udev_enumerate_add_match_sysattr.3.gz
%{_mandir}/man3/udev_enumerate_add_match_sysname.3.gz
%{_mandir}/man3/udev_enumerate_add_match_tag.3.gz
%{_mandir}/man3/udev_enumerate_add_nomatch_subsystem.3.gz
%{_mandir}/man3/udev_enumerate_add_nomatch_sysattr.3.gz
%{_mandir}/man3/udev_enumerate_add_syspath.3.gz
%{_mandir}/man3/udev_enumerate_get_list_entry.3.gz
%{_mandir}/man3/udev_enumerate_get_udev.3.gz
%{_mandir}/man3/udev_enumerate_new.3.gz
%{_mandir}/man3/udev_enumerate_ref.3.gz
%{_mandir}/man3/udev_enumerate_scan_devices.3.gz
%{_mandir}/man3/udev_enumerate_scan_subsystems.3.gz
%{_mandir}/man3/udev_enumerate_unref.3.gz
%{_mandir}/man3/udev_list_entry.3.gz
%{_mandir}/man3/udev_list_entry_get_by_name.3.gz
%{_mandir}/man3/udev_list_entry_get_name.3.gz
%{_mandir}/man3/udev_list_entry_get_next.3.gz
%{_mandir}/man3/udev_list_entry_get_value.3.gz
%{_mandir}/man3/udev_monitor_enable_receiving.3.gz
%{_mandir}/man3/udev_monitor_filter_add_match_subsystem_devtype.3.gz
%{_mandir}/man3/udev_monitor_filter_add_match_tag.3.gz
%{_mandir}/man3/udev_monitor_filter_remove.3.gz
%{_mandir}/man3/udev_monitor_filter_update.3.gz
%{_mandir}/man3/udev_monitor_get_fd.3.gz
%{_mandir}/man3/udev_monitor_get_udev.3.gz
%{_mandir}/man3/udev_monitor_new_from_netlink.3.gz
%{_mandir}/man3/udev_monitor_receive_device.3.gz
%{_mandir}/man3/udev_monitor_ref.3.gz
%{_mandir}/man3/udev_monitor_set_receive_buffer_size.3.gz
%{_mandir}/man3/udev_monitor_unref.3.gz
%{_mandir}/man3/udev_new.3.gz
%{_mandir}/man3/udev_ref.3.gz
%{_mandir}/man3/udev_unref.3.gz
%endif

84
files.experimental Normal file
View File

@ -0,0 +1,84 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_sysconfdir}/systemd/oomd.conf.d
%if %{with sd_boot}
%dir %{_unitdir}/initrd.target.wants
%endif
%{_bindir}/oomctl
%{_bindir}/systemd-repart
%{_datadir}/bash-completion/completions/oomctl
%{_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/system-services/org.freedesktop.oom1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.oom1.conf
%{_datadir}/zsh/site-functions/_oomctl
%{_mandir}/man1/oomctl.1.gz
%if %{with sd_boot}
%{_mandir}/man1/systemd-measure.1.gz
%{_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/repart.d.5.gz
%{_mandir}/man5/sysupdate.d.5.gz
%{_mandir}/man8/systemd-oomd.8.gz
%{_mandir}/man8/systemd-oomd.service.8.gz
%if %{with sd_boot}
%{_mandir}/man8/systemd-pcrfs-root.service.8.gz
%{_mandir}/man8/systemd-pcrfs@.service.8.gz
%{_mandir}/man8/systemd-pcrmachine.service.8.gz
%{_mandir}/man8/systemd-pcrphase-initrd.service.8.gz
%{_mandir}/man8/systemd-pcrphase-sysinit.service.8.gz
%{_mandir}/man8/systemd-pcrphase.8.gz
%{_mandir}/man8/systemd-pcrphase.service.8.gz
%endif
%{_mandir}/man8/systemd-repart.8.gz
%{_mandir}/man8/systemd-repart.service.8.gz
%{_mandir}/man8/systemd-sysupdate-reboot.service.8.gz
%{_mandir}/man8/systemd-sysupdate-reboot.timer.8.gz
%{_mandir}/man8/systemd-sysupdate.8.gz
%{_mandir}/man8/systemd-sysupdate.service.8.gz
%{_mandir}/man8/systemd-sysupdate.timer.8.gz
%if %{with sd_boot}
%{_prefix}/lib/kernel/install.d/60-ukify.install
%endif
%{_systemd_util_dir}/oomd.conf
%{_systemd_util_dir}/system/initrd-root-fs.target.wants/systemd-repart.service
%{_systemd_util_dir}/system/sysinit.target.wants/systemd-repart.service
%if %{with sd_boot}
%{_systemd_util_dir}/systemd-measure
%endif
%{_systemd_util_dir}/systemd-oomd
%if %{with sd_boot}
%{_systemd_util_dir}/systemd-pcrphase
%endif
%{_systemd_util_dir}/systemd-sysupdate
%{_systemd_util_dir}/systemd-userwork
%if %{with sd_boot}
%{_systemd_util_dir}/ukify
%endif
%{_sysusersdir}/systemd-oom.conf
%if %{with sd_boot}
%{_unitdir}/initrd.target.wants/systemd-pcrphase-initrd.service
%{_unitdir}/sysinit.target.wants/systemd-pcrmachine.service
%{_unitdir}/sysinit.target.wants/systemd-pcrphase-sysinit.service
%{_unitdir}/sysinit.target.wants/systemd-pcrphase.service
%endif
%{_unitdir}/systemd-oomd.service
%{_unitdir}/systemd-oomd.socket
%if %{with sd_boot}
%{_unitdir}/systemd-pcrfs-root.service
%{_unitdir}/systemd-pcrfs@.service
%{_unitdir}/systemd-pcrmachine.service
%{_unitdir}/systemd-pcrphase-initrd.service
%{_unitdir}/systemd-pcrphase-sysinit.service
%{_unitdir}/systemd-pcrphase.service
%endif
%{_unitdir}/systemd-repart.service
%{_unitdir}/systemd-sysupdate-reboot.service
%{_unitdir}/systemd-sysupdate-reboot.timer
%{_unitdir}/systemd-sysupdate.service
%{_unitdir}/systemd-sysupdate.timer

23
files.homed Normal file
View File

@ -0,0 +1,23 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%{_bindir}/homectl
%{_datadir}/bash-completion/completions/homectl
%{_datadir}/dbus-1/interfaces/org.freedesktop.home1.Home.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.home1.Manager.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.home1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.home1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.home1.policy
%{_mandir}/man1/homectl.1.gz
%{_mandir}/man5/homed.conf.5.gz
%{_mandir}/man5/homed.conf.d.5.gz
%{_mandir}/man5/org.freedesktop.home1.5.gz
%{_mandir}/man8/pam_systemd_home.8.gz
%{_mandir}/man8/systemd-homed.8.gz
%{_mandir}/man8/systemd-homed.service.8.gz
%{_pam_moduledir}/pam_systemd_home.so
%{_systemd_util_dir}/homed.conf
%{_systemd_util_dir}/systemd-homed
%{_systemd_util_dir}/systemd-homework
%{_unitdir}/systemd-homed-activate.service
%{_unitdir}/systemd-homed.service

31
files.journal-remote Normal file
View File

@ -0,0 +1,31 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_sysconfdir}/systemd/journal-remote.conf.d
%dir %{_sysconfdir}/systemd/journal-upload.conf.d
%ghost %dir %{_localstatedir}/log/journal/remote
%{_datadir}/systemd/gatewayd
%{_datadir}/systemd/gatewayd/browse.html
%{_mandir}/man5/journal-remote.conf.5.gz
%{_mandir}/man5/journal-remote.conf.d.5.gz
%{_mandir}/man5/journal-upload.conf.5.gz
%{_mandir}/man5/journal-upload.conf.d.5.gz
%{_mandir}/man8/systemd-journal-gatewayd.8.gz
%{_mandir}/man8/systemd-journal-gatewayd.service.8.gz
%{_mandir}/man8/systemd-journal-gatewayd.socket.8.gz
%{_mandir}/man8/systemd-journal-remote.8.gz
%{_mandir}/man8/systemd-journal-remote.service.8.gz
%{_mandir}/man8/systemd-journal-remote.socket.8.gz
%{_mandir}/man8/systemd-journal-upload.8.gz
%{_mandir}/man8/systemd-journal-upload.service.8.gz
%{_systemd_util_dir}/journal-remote.conf
%{_systemd_util_dir}/journal-upload.conf
%{_systemd_util_dir}/systemd-journal-gatewayd
%{_systemd_util_dir}/systemd-journal-remote
%{_systemd_util_dir}/systemd-journal-upload
%{_sysusersdir}/systemd-remote.conf
%{_unitdir}/systemd-journal-gatewayd.service
%{_unitdir}/systemd-journal-gatewayd.socket
%{_unitdir}/systemd-journal-remote.service
%{_unitdir}/systemd-journal-remote.socket
%{_unitdir}/systemd-journal-upload.service

19
files.lang Normal file
View File

@ -0,0 +1,19 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%lang(be) %{_journalcatalogdir}/systemd.be.catalog
%lang(be@latin) %{_journalcatalogdir}/systemd.be@latin.catalog
%lang(bg) %{_journalcatalogdir}/systemd.bg.catalog
%lang(da) %{_journalcatalogdir}/systemd.da.catalog
%lang(de) %{_journalcatalogdir}/systemd.de.catalog
%lang(fr) %{_journalcatalogdir}/systemd.fr.catalog
%lang(hr) %{_journalcatalogdir}/systemd.hr.catalog
%lang(hu) %{_journalcatalogdir}/systemd.hu.catalog
%lang(it) %{_journalcatalogdir}/systemd.it.catalog
%lang(ko) %{_journalcatalogdir}/systemd.ko.catalog
%lang(pl) %{_journalcatalogdir}/systemd.pl.catalog
%lang(pt_BR) %{_journalcatalogdir}/systemd.pt_BR.catalog
%lang(ru) %{_journalcatalogdir}/systemd.ru.catalog
%lang(sr) %{_journalcatalogdir}/systemd.sr.catalog
%lang(zh_CN) %{_journalcatalogdir}/systemd.zh_CN.catalog
%lang(zh_TW) %{_journalcatalogdir}/systemd.zh_TW.catalog

78
files.network Normal file
View File

@ -0,0 +1,78 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%if %{with networkd}
%dir %{_sysconfdir}/systemd/network
%dir %{_sysconfdir}/systemd/networkd.conf.d
%dir %{_systemd_util_dir}/network
%{_bindir}/networkctl
%{_datadir}/bash-completion/completions/networkctl
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.DHCPServer.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.Link.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.Network.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.network1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.network1.policy
%{_datadir}/polkit-1/rules.d/60-systemd-networkd.rules
%{_datadir}/zsh/site-functions/_networkctl
%{_mandir}/man1/networkctl.1.gz
%{_mandir}/man5/networkd.conf.5.gz
%{_mandir}/man5/networkd.conf.d.5.gz
%{_mandir}/man5/org.freedesktop.network1.5.gz
%{_mandir}/man5/systemd.network.5.gz
%{_mandir}/man8/systemd-networkd-wait-online.8.gz
%{_mandir}/man8/systemd-networkd-wait-online.service.8.gz
%{_mandir}/man8/systemd-networkd-wait-online@.service.8.gz
%{_mandir}/man8/systemd-networkd.8.gz
%{_mandir}/man8/systemd-networkd.service.8.gz
%{_systemd_util_dir}/network/80-6rd-tunnel.network
%{_systemd_util_dir}/network/80-container-host0.network
%{_systemd_util_dir}/network/80-container-vb.network
%{_systemd_util_dir}/network/80-container-ve.network
%{_systemd_util_dir}/network/80-container-vz.network
%{_systemd_util_dir}/network/80-ethernet.network.example
%{_systemd_util_dir}/network/80-vm-vt.network
%{_systemd_util_dir}/network/80-wifi-adhoc.network
%{_systemd_util_dir}/network/80-wifi-ap.network.example
%{_systemd_util_dir}/network/80-wifi-station.network.example
%{_systemd_util_dir}/networkd.conf
%{_systemd_util_dir}/systemd-networkd
%{_systemd_util_dir}/systemd-networkd-wait-online
%{_sysusersdir}/systemd-network.conf
%{_tmpfilesdir}/systemd-network.conf
%{_unitdir}/systemd-networkd-wait-online.service
%{_unitdir}/systemd-networkd-wait-online@.service
%{_unitdir}/systemd-networkd.service
%{_unitdir}/systemd-networkd.socket
%endif
%if %{with resolved}
%dir %{_sysconfdir}/systemd/resolved.conf.d
%{_bindir}/resolvectl
%{_bindir}/systemd-resolve
%{_datadir}/bash-completion/completions/resolvectl
%{_datadir}/bash-completion/completions/systemd-resolve
%{_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
%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.resolve1.policy
%{_datadir}/zsh/site-functions/_resolvectl
%{_libdir}/libnss_resolve.so.2
%{_mandir}/man1/resolvectl.1.gz
%{_mandir}/man5/org.freedesktop.resolve1.5.gz
%{_mandir}/man5/resolved.conf.5.gz
%{_mandir}/man5/resolved.conf.d.5.gz
%{_mandir}/man8/libnss_resolve.so.2.8.gz
%{_mandir}/man8/nss-resolve.8.gz
%{_mandir}/man8/systemd-resolved.8.gz
%{_mandir}/man8/systemd-resolved.service.8.gz
%{_systemd_util_dir}/resolv.conf
%{_systemd_util_dir}/resolved.conf
%{_systemd_util_dir}/systemd-resolved
%{_sysusersdir}/systemd-resolve.conf
%{_tmpfilesdir}/systemd-resolve.conf
%{_unitdir}/systemd-resolved.service
%endif

15
files.portable Normal file
View File

@ -0,0 +1,15 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%{_bindir}/portablectl
%{_datadir}/dbus-1/system-services/org.freedesktop.portable1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.portable1.conf
%{_datadir}/polkit-1/actions/org.freedesktop.portable1.policy
%{_mandir}/man1/portablectl.1.gz
%{_mandir}/man8/systemd-portabled.8.gz
%{_mandir}/man8/systemd-portabled.service.8.gz
%{_systemd_util_dir}/portable
%{_systemd_util_dir}/systemd-portabled
%{_tmpfilesdir}/portables.conf
%{_unitdir}/dbus-org.freedesktop.portable1.service
%{_unitdir}/systemd-portabled.service

645
files.systemd Normal file
View File

@ -0,0 +1,645 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_binfmtdir}
%if %{without bootstrap}
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%endif
%dir %{_datadir}/dbus-1
%dir %{_datadir}/dbus-1/interfaces
%dir %{_datadir}/dbus-1/services
%dir %{_datadir}/dbus-1/system-services
%dir %{_datadir}/dbus-1/system.d
%dir %{_datadir}/factory
%dir %{_datadir}/polkit-1
%dir %{_datadir}/polkit-1/actions
%dir %{_datadir}/systemd
%if %{without bootstrap}
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions
%endif
%dir %{_environmentdir}
%dir %{_journalcatalogdir}
%dir %{_libdir}/systemd
%dir %{_localstatedir}/lib/systemd
%dir %{_localstatedir}/lib/systemd/catalog
%dir %{_localstatedir}/lib/systemd/rpm
%dir %{_modprobedir}
%dir %{_sysconfdir}/X11/xorg.conf.d
%dir %{_sysconfdir}/binfmt.d
%dir %{_sysconfdir}/sysctl.d
%dir %{_sysconfdir}/systemd
%dir %{_sysconfdir}/systemd/journald.conf.d
%dir %{_sysconfdir}/systemd/logind.conf.d
%dir %{_sysconfdir}/systemd/system
%dir %{_sysconfdir}/systemd/system.conf.d
%dir %{_sysconfdir}/systemd/user
%dir %{_sysconfdir}/systemd/user.conf.d
%dir %{_sysconfdir}/tmpfiles.d
%dir %{_sysconfdir}/xdg/systemd
%dir %{_sysctldir}
%dir %{_systemd_system_env_generator_dir}
%dir %{_systemd_user_env_generator_dir}
%dir %{_systemd_util_dir}
%dir %{_systemd_util_dir}/ntp-units.d
%dir %{_systemd_util_dir}/rpm
%dir %{_systemd_util_dir}/system-preset
%dir %{_systemd_util_dir}/system-shutdown
%dir %{_systemd_util_dir}/user
%dir %{_systemd_util_dir}/user-preset
%dir %{_systemdgeneratordir}
%dir %{_systemdusergeneratordir}
%dir %{_sysusersdir}
%dir %{_tmpfilesdir}
%dir %{_unitdir}
%dir %{_unitdir}/basic.target.wants
%dir %{_unitdir}/dbus.target.wants
%dir %{_unitdir}/default.target.wants
%dir %{_unitdir}/graphical.target.wants
%dir %{_unitdir}/halt.target.wants
%dir %{_unitdir}/initrd-root-device.target.wants
%dir %{_unitdir}/initrd-root-fs.target.wants
%dir %{_unitdir}/kexec.target.wants
%dir %{_unitdir}/local-fs.target.wants
%dir %{_unitdir}/multi-user.target.wants
%dir %{_unitdir}/poweroff.target.wants
%dir %{_unitdir}/reboot.target.wants
%dir %{_unitdir}/remote-fs.target.wants
%dir %{_unitdir}/rescue.target.wants
%dir %{_unitdir}/shutdown.target.wants
%dir %{_unitdir}/sockets.target.wants
%dir %{_unitdir}/sysinit.target.wants
%dir %{_unitdir}/timers.target.wants
%dir %{_unitdir}/user-.slice.d
%dir %{_unitdir}/user@.service.d
%dir %{_unitdir}/user@0.service.d
%dir %{xinitconfdir}
%dir %{xinitconfdir}/xinitrc.d
%doc %{_modprobedir}/README
%doc %{_sysctldir}/README
%doc %{_sysusersdir}/README
%doc %{_tmpfilesdir}/README
%exclude %{_sysconfdir}/sysctl.conf
%ghost %attr(0444,root,root) %config(noreplace) %{_sysconfdir}/machine-id
%ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf
%ghost %config(noreplace) %{_sysconfdir}/locale.conf
%ghost %config(noreplace) %{_sysconfdir}/machine-info
%ghost %dir %attr(2755, root, systemd-journal) %{_localstatedir}/log/journal
%ghost %{_localstatedir}/lib/systemd/catalog/database
%license LICENSE.GPL2
%license LICENSE.LGPL2.1
%{_bindir}/busctl
%{_bindir}/hostnamectl
%{_bindir}/journalctl
%{_bindir}/localectl
%{_bindir}/loginctl
%{_bindir}/systemctl
%{_bindir}/systemd-ac-power
%{_bindir}/systemd-analyze
%{_bindir}/systemd-ask-password
%{_bindir}/systemd-cat
%{_bindir}/systemd-cgls
%{_bindir}/systemd-cgtop
%{_bindir}/systemd-confext
%{_bindir}/systemd-creds
%{_bindir}/systemd-delta
%{_bindir}/systemd-detect-virt
%{_bindir}/systemd-dissect
%{_bindir}/systemd-escape
%{_bindir}/systemd-firstboot
%{_bindir}/systemd-id128
%{_bindir}/systemd-inhibit
%{_bindir}/systemd-machine-id-setup
%{_bindir}/systemd-mount
%{_bindir}/systemd-notify
%{_bindir}/systemd-path
%{_bindir}/systemd-run
%{_bindir}/systemd-socket-activate
%{_bindir}/systemd-stdio-bridge
%{_bindir}/systemd-sysext
%{_bindir}/systemd-sysusers
%{_bindir}/systemd-tmpfiles
%{_bindir}/systemd-tty-ask-password-agent
%{_bindir}/systemd-umount
%{_bindir}/timedatectl
%if %{without bootstrap}
%{_bindir}/userdbctl
%{_datadir}/bash-completion/completions/busctl
%{_datadir}/bash-completion/completions/hostnamectl
%{_datadir}/bash-completion/completions/journalctl
%{_datadir}/bash-completion/completions/localectl
%{_datadir}/bash-completion/completions/loginctl
%{_datadir}/bash-completion/completions/portablectl
%{_datadir}/bash-completion/completions/systemctl
%{_datadir}/bash-completion/completions/systemd-analyze
%{_datadir}/bash-completion/completions/systemd-cat
%{_datadir}/bash-completion/completions/systemd-cgls
%{_datadir}/bash-completion/completions/systemd-cgtop
%{_datadir}/bash-completion/completions/systemd-delta
%{_datadir}/bash-completion/completions/systemd-detect-virt
%{_datadir}/bash-completion/completions/systemd-dissect
%{_datadir}/bash-completion/completions/systemd-id128
%{_datadir}/bash-completion/completions/systemd-path
%{_datadir}/bash-completion/completions/systemd-run
%{_datadir}/bash-completion/completions/systemd-sysext
%{_datadir}/bash-completion/completions/timedatectl
%endif
# dbus introspection data for code generators: https://github.com/systemd/systemd/pull/20294
%{_datadir}/dbus-1/interfaces/org.freedesktop.LogControl1.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.login1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.login1.Seat.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.login1.Session.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.login1.User.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Automount.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Device.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Job.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Mount.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Path.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Scope.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Service.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Slice.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Socket.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Swap.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Target.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Timer.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.Unit.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml
%{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf
%{_datadir}/dbus-1/system.d/org.freedesktop.locale1.conf
%{_datadir}/dbus-1/system.d/org.freedesktop.login1.conf
%{_datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf
%{_datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf
%{_datadir}/pkgconfig/systemd.pc
%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.login1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy
%{_datadir}/systemd/kbd-model-map
%{_datadir}/systemd/language-fallback-map
%if %{without bootstrap}
%{_datadir}/zsh/site-functions/_busctl
%{_datadir}/zsh/site-functions/_hostnamectl
%{_datadir}/zsh/site-functions/_journalctl
%{_datadir}/zsh/site-functions/_localectl
%{_datadir}/zsh/site-functions/_loginctl
%{_datadir}/zsh/site-functions/_sd_hosts_or_user_at_host
%{_datadir}/zsh/site-functions/_sd_outputmodes
%{_datadir}/zsh/site-functions/_sd_unit_files
%{_datadir}/zsh/site-functions/_systemctl
%{_datadir}/zsh/site-functions/_systemd
%{_datadir}/zsh/site-functions/_systemd-analyze
%{_datadir}/zsh/site-functions/_systemd-delta
%{_datadir}/zsh/site-functions/_systemd-inhibit
%{_datadir}/zsh/site-functions/_systemd-path
%{_datadir}/zsh/site-functions/_systemd-run
%{_datadir}/zsh/site-functions/_systemd-tmpfiles
%{_datadir}/zsh/site-functions/_timedatectl
%{_journalcatalogdir}/systemd.catalog
%{_libdir}/libnss_myhostname.so.2
%{_libdir}/libnss_systemd.so.2
%endif
%{_libdir}/systemd/libsystemd-core-254.so
%{_libdir}/systemd/libsystemd-shared-254.so
%if %{without bootstrap}
%{_mandir}/man1/busctl.1.gz
%{_mandir}/man1/hostnamectl.1.gz
%{_mandir}/man1/init.1.gz
%{_mandir}/man1/journalctl.1.gz
%{_mandir}/man1/localectl.1.gz
%{_mandir}/man1/loginctl.1.gz
%{_mandir}/man1/mount.ddi.1.gz
%{_mandir}/man1/systemctl.1.gz
%{_mandir}/man1/systemd-ac-power.1.gz
%{_mandir}/man1/systemd-analyze.1.gz
%{_mandir}/man1/systemd-ask-password.1.gz
%{_mandir}/man1/systemd-cat.1.gz
%{_mandir}/man1/systemd-cgls.1.gz
%{_mandir}/man1/systemd-cgtop.1.gz
%{_mandir}/man1/systemd-creds.1.gz
%{_mandir}/man1/systemd-delta.1.gz
%{_mandir}/man1/systemd-detect-virt.1.gz
%{_mandir}/man1/systemd-dissect.1.gz
%{_mandir}/man1/systemd-escape.1.gz
%{_mandir}/man1/systemd-firstboot.1.gz
%{_mandir}/man1/systemd-firstboot.service.1.gz
%{_mandir}/man1/systemd-id128.1.gz
%{_mandir}/man1/systemd-inhibit.1.gz
%{_mandir}/man1/systemd-machine-id-setup.1.gz
%{_mandir}/man1/systemd-mount.1.gz
%{_mandir}/man1/systemd-notify.1.gz
%{_mandir}/man1/systemd-path.1.gz
%{_mandir}/man1/systemd-run.1.gz
%{_mandir}/man1/systemd-socket-activate.1.gz
%{_mandir}/man1/systemd-stdio-bridge.1.gz
%{_mandir}/man1/systemd-tty-ask-password-agent.1.gz
%{_mandir}/man1/systemd-umount.1.gz
%{_mandir}/man1/systemd.1.gz
%{_mandir}/man1/timedatectl.1.gz
%{_mandir}/man1/userdbctl.1.gz
%{_mandir}/man5/binfmt.d.5.gz
%{_mandir}/man5/dnssec-trust-anchors.d.5.gz
%{_mandir}/man5/environment.d.5.gz
%{_mandir}/man5/extension-release.5.gz
%{_mandir}/man5/hostname.5.gz
%{_mandir}/man5/initrd-release.5.gz
%{_mandir}/man5/journald.conf.5.gz
%{_mandir}/man5/journald.conf.d.5.gz
%{_mandir}/man5/journald@.conf.5.gz
%{_mandir}/man5/locale.conf.5.gz
%{_mandir}/man5/localtime.5.gz
%{_mandir}/man5/logind.conf.5.gz
%{_mandir}/man5/logind.conf.d.5.gz
%{_mandir}/man5/machine-id.5.gz
%{_mandir}/man5/machine-info.5.gz
%{_mandir}/man5/org.freedesktop.LogControl1.5.gz
%{_mandir}/man5/org.freedesktop.hostname1.5.gz
%{_mandir}/man5/org.freedesktop.locale1.5.gz
%{_mandir}/man5/org.freedesktop.login1.5.gz
%{_mandir}/man5/org.freedesktop.portable1.5.gz
%{_mandir}/man5/org.freedesktop.systemd1.5.gz
%{_mandir}/man5/org.freedesktop.timedate1.5.gz
%{_mandir}/man5/os-release.5.gz
%{_mandir}/man5/sysctl.d.5.gz
%{_mandir}/man5/system.conf.d.5.gz
%{_mandir}/man5/systemd-system.conf.5.gz
%{_mandir}/man5/systemd-user-runtime-dir.5.gz
%{_mandir}/man5/systemd-user.conf.5.gz
%{_mandir}/man5/systemd.automount.5.gz
%{_mandir}/man5/systemd.device.5.gz
%{_mandir}/man5/systemd.dnssd.5.gz
%{_mandir}/man5/systemd.exec.5.gz
%{_mandir}/man5/systemd.kill.5.gz
%{_mandir}/man5/systemd.link.5.gz
%{_mandir}/man5/systemd.mount.5.gz
%{_mandir}/man5/systemd.negative.5.gz
%{_mandir}/man5/systemd.netdev.5.gz
%{_mandir}/man5/systemd.path.5.gz
%{_mandir}/man5/systemd.positive.5.gz
%{_mandir}/man5/systemd.preset.5.gz
%{_mandir}/man5/systemd.resource-control.5.gz
%{_mandir}/man5/systemd.scope.5.gz
%{_mandir}/man5/systemd.service.5.gz
%{_mandir}/man5/systemd.slice.5.gz
%{_mandir}/man5/systemd.socket.5.gz
%{_mandir}/man5/systemd.swap.5.gz
%{_mandir}/man5/systemd.target.5.gz
%{_mandir}/man5/systemd.timer.5.gz
%{_mandir}/man5/systemd.unit.5.gz
%{_mandir}/man5/sysusers.d.5.gz
%{_mandir}/man5/tmpfiles.d.5.gz
%{_mandir}/man5/user-runtime-dir@.service.5.gz
%{_mandir}/man5/user.conf.d.5.gz
%{_mandir}/man5/user@.service.5.gz
%{_mandir}/man7/bootup.7.gz
%{_mandir}/man7/daemon.7.gz
%{_mandir}/man7/file-hierarchy.7.gz
%{_mandir}/man7/kernel-command-line.7.gz
%{_mandir}/man7/systemd.directives.7.gz
%{_mandir}/man7/systemd.environment-generator.7.gz
%{_mandir}/man7/systemd.generator.7.gz
%{_mandir}/man7/systemd.index.7.gz
%{_mandir}/man7/systemd.journal-fields.7.gz
%{_mandir}/man7/systemd.net-naming-scheme.7.gz
%{_mandir}/man7/systemd.offline-updates.7.gz
%{_mandir}/man7/systemd.special.7.gz
%{_mandir}/man7/systemd.syntax.7.gz
%{_mandir}/man7/systemd.system-credentials.7.gz
%{_mandir}/man7/systemd.time.7.gz
%{_mandir}/man8/30-systemd-environment-d-generator.8.gz
%{_mandir}/man8/halt.8.gz
%{_mandir}/man8/libnss_myhostname.so.2.8.gz
%{_mandir}/man8/libnss_systemd.so.2.8.gz
%{_mandir}/man8/nss-myhostname.8.gz
%{_mandir}/man8/nss-systemd.8.gz
%{_mandir}/man8/pam_systemd.8.gz
%{_mandir}/man8/poweroff.8.gz
%{_mandir}/man8/reboot.8.gz
%{_mandir}/man8/shutdown.8.gz
%{_mandir}/man8/systemd-ask-password-console.path.8.gz
%{_mandir}/man8/systemd-ask-password-console.service.8.gz
%{_mandir}/man8/systemd-ask-password-wall.path.8.gz
%{_mandir}/man8/systemd-ask-password-wall.service.8.gz
%{_mandir}/man8/systemd-binfmt.8.gz
%{_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
%{_mandir}/man8/systemd-confext.8.gz
%{_mandir}/man8/systemd-confext.service.8.gz
%{_mandir}/man8/systemd-debug-generator.8.gz
%{_mandir}/man8/systemd-environment-d-generator.8.gz
%{_mandir}/man8/systemd-getty-generator.8.gz
%{_mandir}/man8/systemd-halt.service.8.gz
%{_mandir}/man8/systemd-hibernate-resume.service.8.gz
%{_mandir}/man8/systemd-hostnamed.8.gz
%{_mandir}/man8/systemd-hostnamed.service.8.gz
%{_mandir}/man8/systemd-journald-audit.socket.8.gz
%{_mandir}/man8/systemd-journald-dev-log.socket.8.gz
%{_mandir}/man8/systemd-journald-varlink@.socket.8.gz
%{_mandir}/man8/systemd-journald.8.gz
%{_mandir}/man8/systemd-journald.service.8.gz
%{_mandir}/man8/systemd-journald.socket.8.gz
%{_mandir}/man8/systemd-journald@.service.8.gz
%{_mandir}/man8/systemd-journald@.socket.8.gz
%{_mandir}/man8/systemd-kexec.service.8.gz
%{_mandir}/man8/systemd-localed.8.gz
%{_mandir}/man8/systemd-localed.service.8.gz
%{_mandir}/man8/systemd-logind.8.gz
%{_mandir}/man8/systemd-logind.service.8.gz
%{_mandir}/man8/systemd-machine-id-commit.service.8.gz
%{_mandir}/man8/systemd-poweroff.service.8.gz
%{_mandir}/man8/systemd-reboot.service.8.gz
%{_mandir}/man8/systemd-run-generator.8.gz
%{_mandir}/man8/systemd-shutdown.8.gz
%{_mandir}/man8/systemd-socket-proxyd.8.gz
%{_mandir}/man8/systemd-soft-reboot.service.8.gz
%{_mandir}/man8/systemd-sysctl.8.gz
%{_mandir}/man8/systemd-sysctl.service.8.gz
%{_mandir}/man8/systemd-sysext.8.gz
%{_mandir}/man8/systemd-sysext.service.8.gz
%{_mandir}/man8/systemd-system-update-generator.8.gz
%{_mandir}/man8/systemd-sysusers.8.gz
%{_mandir}/man8/systemd-sysusers.service.8.gz
%{_mandir}/man8/systemd-time-wait-sync.8.gz
%{_mandir}/man8/systemd-time-wait-sync.service.8.gz
%{_mandir}/man8/systemd-timedated.8.gz
%{_mandir}/man8/systemd-timedated.service.8.gz
%{_mandir}/man8/systemd-tmpfiles-clean.service.8.gz
%{_mandir}/man8/systemd-tmpfiles-clean.timer.8.gz
%{_mandir}/man8/systemd-tmpfiles-setup.service.8.gz
%{_mandir}/man8/systemd-tmpfiles.8.gz
%{_mandir}/man8/systemd-update-done.8.gz
%{_mandir}/man8/systemd-update-done.service.8.gz
%if %{with utmp}
%{_mandir}/man8/systemd-update-utmp.8.gz
%{_mandir}/man8/systemd-update-utmp.service.8.gz
%endif
%{_mandir}/man8/systemd-user-sessions.8.gz
%{_mandir}/man8/systemd-user-sessions.service.8.gz
%{_mandir}/man8/systemd-userdbd.8.gz
%{_mandir}/man8/systemd-userdbd.service.8.gz
%{_mandir}/man8/systemd-xdg-autostart-generator.8.gz
%endif
%{_modprobedir}/systemd.conf
%{_pam_moduledir}/pam_systemd.so
%{_pam_vendordir}/systemd-user
%{_sbindir}/halt
%{_sbindir}/init
%{_sbindir}/mount.ddi
%{_sbindir}/poweroff
%{_sbindir}/reboot
%{_sbindir}/shutdown
%{_sysconfdir}/xdg/systemd/user
%{_sysctldir}/99-sysctl.conf
%{_systemd_user_env_generator_dir}/30-systemd-environment-d-generator
%{_systemd_util_dir}/journald.conf
%{_systemd_util_dir}/logind.conf
%{_systemd_util_dir}/rpm/fixlet-systemd-post.sh
%{_systemd_util_dir}/system-preset/99-default.preset
%{_systemd_util_dir}/system.conf
%{_systemd_util_dir}/systemd
%{_systemd_util_dir}/systemd-binfmt
%{_systemd_util_dir}/systemd-boot-check-no-failures
%{_systemd_util_dir}/systemd-cgroups-agent
%{_systemd_util_dir}/systemd-hostnamed
%{_systemd_util_dir}/systemd-journald
%{_systemd_util_dir}/systemd-localed
%{_systemd_util_dir}/systemd-logind
%{_systemd_util_dir}/systemd-reply-password
%{_systemd_util_dir}/systemd-shutdown
%{_systemd_util_dir}/systemd-socket-proxyd
%{_systemd_util_dir}/systemd-sulogin-shell
%{_systemd_util_dir}/systemd-sysctl
%{_systemd_util_dir}/systemd-sysroot-fstab-check
%{_systemd_util_dir}/systemd-time-wait-sync
%{_systemd_util_dir}/systemd-timedated
%{_systemd_util_dir}/systemd-update-done
%{_systemd_util_dir}/systemd-update-helper
%if %{with utmp}
%{_systemd_util_dir}/systemd-update-utmp
%endif
%{_systemd_util_dir}/systemd-user-runtime-dir
%{_systemd_util_dir}/systemd-user-sessions
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-userdbd
%endif
%{_systemd_util_dir}/systemd-xdg-autostart-condition
%{_systemd_util_dir}/user-preset/90-systemd.preset
%{_systemd_util_dir}/user-preset/99-default.preset
%{_systemd_util_dir}/user.conf
%{_systemd_util_dir}/user/app.slice
%{_systemd_util_dir}/user/background.slice
%{_systemd_util_dir}/user/basic.target
%{_systemd_util_dir}/user/bluetooth.target
%{_systemd_util_dir}/user/default.target
%{_systemd_util_dir}/user/exit.target
%{_systemd_util_dir}/user/graphical-session-pre.target
%{_systemd_util_dir}/user/graphical-session.target
%{_systemd_util_dir}/user/paths.target
%{_systemd_util_dir}/user/printer.target
%{_systemd_util_dir}/user/session.slice
%{_systemd_util_dir}/user/shutdown.target
%{_systemd_util_dir}/user/smartcard.target
%{_systemd_util_dir}/user/sockets.target
%{_systemd_util_dir}/user/sound.target
%{_systemd_util_dir}/user/systemd-exit.service
%{_systemd_util_dir}/user/systemd-tmpfiles-clean.service
%{_systemd_util_dir}/user/systemd-tmpfiles-clean.timer
%{_systemd_util_dir}/user/systemd-tmpfiles-setup.service
%{_systemd_util_dir}/user/timers.target
%{_systemd_util_dir}/user/xdg-desktop-autostart.target
%{_systemdgeneratordir}/systemd-debug-generator
%{_systemdgeneratordir}/systemd-getty-generator
%{_systemdgeneratordir}/systemd-run-generator
%{_systemdgeneratordir}/systemd-system-update-generator
%{_systemdusergeneratordir}/systemd-xdg-autostart-generator
%{_sysusersdir}/systemd-journal.conf
%{_tmpfilesdir}/credstore.conf
%{_tmpfilesdir}/journal-nocow.conf
%{_tmpfilesdir}/provision.conf
%{_tmpfilesdir}/systemd-nologin.conf
%{_tmpfilesdir}/systemd-suse.conf
%{_tmpfilesdir}/systemd-tmp.conf
%{_tmpfilesdir}/systemd.conf
%{_tmpfilesdir}/x11.conf
%{_udevrulesdir}/70-uaccess.rules
%{_udevrulesdir}/71-seat.rules
%{_udevrulesdir}/73-seat-late.rules
%{_udevrulesdir}/99-systemd.rules
%{_unitdir}/autovt@.service
%{_unitdir}/basic.target
%{_unitdir}/blockdev@.target
%{_unitdir}/bluetooth.target
%{_unitdir}/boot-complete.target
%{_unitdir}/console-getty.service
%{_unitdir}/container-getty@.service
%{_unitdir}/ctrl-alt-del.target
%{_unitdir}/dbus-org.freedesktop.hostname1.service
%{_unitdir}/dbus-org.freedesktop.locale1.service
%{_unitdir}/dbus-org.freedesktop.login1.service
%{_unitdir}/dbus-org.freedesktop.timedate1.service
%{_unitdir}/debug-shell.service
%{_unitdir}/default.target
%{_unitdir}/dev-hugepages.mount
%{_unitdir}/dev-mqueue.mount
%{_unitdir}/emergency.service
%{_unitdir}/emergency.target
%{_unitdir}/exit.target
%{_unitdir}/factory-reset.target
%{_unitdir}/final.target
%{_unitdir}/first-boot-complete.target
%{_unitdir}/getty-pre.target
%{_unitdir}/getty.target
%{_unitdir}/getty@.service
%{_unitdir}/graphical.target
%{_unitdir}/halt.target
%{_unitdir}/initrd-cleanup.service
%{_unitdir}/initrd-fs.target
%{_unitdir}/initrd-parse-etc.service
%{_unitdir}/initrd-root-device.target
%{_unitdir}/initrd-root-fs.target
%{_unitdir}/initrd-switch-root.service
%{_unitdir}/initrd-switch-root.target
%{_unitdir}/initrd-usr-fs.target
%{_unitdir}/initrd.target
%{_unitdir}/kexec.target
%{_unitdir}/local-fs-pre.target
%{_unitdir}/local-fs.target
%{_unitdir}/local-fs.target.wants/tmp.mount
%{_unitdir}/modprobe@.service
%{_unitdir}/multi-user.target
%{_unitdir}/multi-user.target.wants/getty.target
%{_unitdir}/multi-user.target.wants/systemd-logind.service
%{_unitdir}/multi-user.target.wants/systemd-user-sessions.service
%{_unitdir}/network-online.target
%{_unitdir}/network-pre.target
%{_unitdir}/network.target
%{_unitdir}/nss-lookup.target
%{_unitdir}/nss-user-lookup.target
%{_unitdir}/paths.target
%{_unitdir}/poweroff.target
%{_unitdir}/printer.target
%{_unitdir}/proc-sys-fs-binfmt_misc.automount
%{_unitdir}/proc-sys-fs-binfmt_misc.mount
%{_unitdir}/quotaon.service
%{_unitdir}/reboot.target
%{_unitdir}/remote-fs-pre.target
%{_unitdir}/remote-fs.target
%{_unitdir}/rescue.service
%{_unitdir}/rescue.target
%{_unitdir}/rpcbind.target
%{_unitdir}/serial-getty@.service
%{_unitdir}/shutdown.target
%{_unitdir}/sigpwr.target
%{_unitdir}/slices.target
%{_unitdir}/smartcard.target
%{_unitdir}/sockets.target
%{_unitdir}/sockets.target.wants/systemd-journald-dev-log.socket
%{_unitdir}/sockets.target.wants/systemd-journald.socket
%{_unitdir}/soft-reboot.target
%{_unitdir}/sound.target
%{_unitdir}/swap.target
%{_unitdir}/sys-fs-fuse-connections.mount
%{_unitdir}/sys-kernel-config.mount
%{_unitdir}/sys-kernel-debug.mount
%{_unitdir}/sys-kernel-tracing.mount
%{_unitdir}/sysinit.target
%{_unitdir}/sysinit.target.wants/dev-hugepages.mount
%{_unitdir}/sysinit.target.wants/dev-mqueue.mount
%{_unitdir}/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount
%{_unitdir}/sysinit.target.wants/sys-fs-fuse-connections.mount
%{_unitdir}/sysinit.target.wants/sys-kernel-config.mount
%{_unitdir}/sysinit.target.wants/sys-kernel-debug.mount
%{_unitdir}/sysinit.target.wants/sys-kernel-tracing.mount
%{_unitdir}/sysinit.target.wants/systemd-ask-password-console.path
%{_unitdir}/sysinit.target.wants/systemd-binfmt.service
%{_unitdir}/sysinit.target.wants/systemd-firstboot.service
%{_unitdir}/sysinit.target.wants/systemd-journal-catalog-update.service
%{_unitdir}/sysinit.target.wants/systemd-journal-flush.service
%{_unitdir}/sysinit.target.wants/systemd-journald.service
%{_unitdir}/sysinit.target.wants/systemd-machine-id-commit.service
%{_unitdir}/sysinit.target.wants/systemd-sysctl.service
%{_unitdir}/sysinit.target.wants/systemd-sysusers.service
%{_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup.service
%{_unitdir}/sysinit.target.wants/systemd-update-done.service
%if %{with utmp}
%{_unitdir}/sysinit.target.wants/systemd-update-utmp.service
%endif
%{_unitdir}/syslog.socket
%{_unitdir}/system-update-cleanup.service
%{_unitdir}/system-update-pre.target
%{_unitdir}/system-update.target
%{_unitdir}/systemd-ask-password-console.path
%{_unitdir}/systemd-ask-password-console.service
%{_unitdir}/systemd-ask-password-wall.path
%{_unitdir}/systemd-ask-password-wall.service
%{_unitdir}/systemd-binfmt.service
%{_unitdir}/systemd-boot-check-no-failures.service
%{_unitdir}/systemd-confext.service
%{_unitdir}/systemd-exit.service
%{_unitdir}/systemd-halt.service
%{_unitdir}/systemd-hostnamed.service
%{_unitdir}/systemd-journal-catalog-update.service
%{_unitdir}/systemd-journal-flush.service
%{_unitdir}/systemd-journald-audit.socket
%{_unitdir}/systemd-journald-dev-log.socket
%{_unitdir}/systemd-journald-varlink@.socket
%{_unitdir}/systemd-journald.service
%{_unitdir}/systemd-journald.socket
%{_unitdir}/systemd-journald@.service
%{_unitdir}/systemd-journald@.socket
%{_unitdir}/systemd-kexec.service
%{_unitdir}/systemd-localed.service
%{_unitdir}/systemd-logind.service
%{_unitdir}/systemd-machine-id-commit.service
%{_unitdir}/systemd-poweroff.service
%{_unitdir}/systemd-soft-reboot.service
%{_unitdir}/systemd-sysctl.service
%{_unitdir}/systemd-sysext.service
%{_unitdir}/systemd-sysusers.service
%{_unitdir}/systemd-time-wait-sync.service
%{_unitdir}/systemd-timedated.service
%{_unitdir}/systemd-tmpfiles-clean.service
%{_unitdir}/systemd-tmpfiles-clean.timer
%{_unitdir}/systemd-tmpfiles-setup.service
%{_unitdir}/systemd-update-done.service
%if %{with utmp}
%{_unitdir}/systemd-update-utmp.service
%endif
%{_unitdir}/systemd-user-sessions.service
%if %{without bootstrap}
%{_unitdir}/systemd-userdbd.service
%{_unitdir}/systemd-userdbd.socket
%endif
%{_unitdir}/time-set.target
%{_unitdir}/time-sync.target
%{_unitdir}/timers.target
%{_unitdir}/timers.target.wants/systemd-tmpfiles-clean.timer
%{_unitdir}/tmp.mount
%{_unitdir}/umount.target
%{_unitdir}/usb-gadget.target
%{_unitdir}/user-.slice.d/10-defaults.conf
%{_unitdir}/user-runtime-dir@.service
%{_unitdir}/user.slice
%{_unitdir}/user@.service
%{_unitdir}/user@.service.d/10-login-barrier.conf
%{_unitdir}/user@0.service.d/10-login-barrier.conf
%{xinitconfdir}/xinitrc.d/50-systemd-user.sh
%if %{with split_usr}
/bin/systemctl
/sbin/halt
/sbin/init
/sbin/poweroff
/sbin/reboot
/sbin/shutdown
%endif

50
files.sysvcompat Normal file
View File

@ -0,0 +1,50 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%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
%{_mandir}/man8/rc-local.service.8.gz
%{_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
%{_mandir}/man8/systemd-rc-local-generator.8.gz
%{_mandir}/man8/systemd-sysv-generator.8.gz
%if %{with utmp}
%{_mandir}/man8/systemd-update-utmp-runlevel.service.8.gz
%endif
%{_mandir}/man8/telinit.8.gz
%{_sbindir}/runlevel
%{_sbindir}/telinit
%{_systemd_util_dir}/systemd-initctl
%{_systemd_util_dir}/systemd-sysv-install
%{_systemdgeneratordir}/systemd-rc-local-generator
%{_systemdgeneratordir}/systemd-sysv-generator
%if %{with utmp}
%{_unitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service
%{_unitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service
%endif
%{_unitdir}/rc-local.service
%if %{with utmp}
%{_unitdir}/rescue.target.wants/systemd-update-utmp-runlevel.service
%endif
%{_unitdir}/runlevel0.target
%{_unitdir}/runlevel1.target
%{_unitdir}/runlevel2.target
%{_unitdir}/runlevel3.target
%{_unitdir}/runlevel4.target
%{_unitdir}/runlevel5.target
%{_unitdir}/runlevel6.target
%{_unitdir}/sockets.target.wants/systemd-initctl.socket
%{_unitdir}/systemd-initctl.service
%{_unitdir}/systemd-initctl.socket
%if %{with utmp}
%{_unitdir}/systemd-update-utmp-runlevel.service
%endif
%if %{with split_usr}
/sbin/runlevel
/sbin/telinit
%endif

350
files.udev Normal file
View File

@ -0,0 +1,350 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%config(noreplace) %{_sysconfdir}/udev/udev.conf
%if %{without bootstrap}
%dir %{_libdir}/cryptsetup
%endif
%dir %{_modulesloaddir}
%if %{without bootstrap}
%dir %{_prefix}/lib/kernel
%dir %{_prefix}/lib/kernel/install.d
%endif
%dir %{_prefix}/lib/udev
%if %{without bootstrap}
%dir %{_sysconfdir}/modules-load.d
%endif
%dir %{_sysconfdir}/systemd/network
%dir %{_sysconfdir}/systemd/pstore.conf.d
%dir %{_sysconfdir}/systemd/sleep.conf.d
%dir %{_sysconfdir}/systemd/timesyncd.conf.d
%dir %{_sysconfdir}/udev
%dir %{_sysconfdir}/udev/iocost.conf.d
%dir %{_sysconfdir}/udev/rules.d
%dir %{_systemd_util_dir}/network
%dir %{_systemd_util_dir}/system-sleep
%dir %{_udevhwdbdir}
%dir %{_udevrulesdir}
%dir %{_unitdir}/initrd.target.wants
%doc %{_udevhwdbdir}/README
%doc %{_udevrulesdir}/README
%ghost %attr(0600,root,root) %{_localstatedir}/lib/systemd/random-seed
%ghost %attr(444, root, root) %{_sysconfdir}/udev/hwdb.bin
%ghost %attr(644, root, root) %{_prefix}/lib/udev/compat-symlink-generation
%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf
%ghost %{_localstatedir}/lib/systemd/backlight
%if %{without bootstrap}
%{_bindir}/kernel-install
%{_bindir}/systemd-cryptenroll
%endif
%{_bindir}/systemd-hwdb
%{_bindir}/udevadm
%if %{without bootstrap}
%{_datadir}/bash-completion/completions/kernel-install
%{_datadir}/bash-completion/completions/systemd-cryptenroll
%{_datadir}/bash-completion/completions/udevadm
%endif
%{_datadir}/dbus-1/system-services/org.freedesktop.timesync1.service
%{_datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf
%{_datadir}/pkgconfig/udev.pc
%{_datadir}/polkit-1/actions/org.freedesktop.timesync1.policy
%if %{without bootstrap}
%{_datadir}/zsh/site-functions/_kernel-install
%{_datadir}/zsh/site-functions/_udevadm
%{_libdir}/cryptsetup/libcryptsetup-token-systemd-fido2.so
%{_libdir}/cryptsetup/libcryptsetup-token-systemd-pkcs11.so
%{_libdir}/cryptsetup/libcryptsetup-token-systemd-tpm2.so
%{_mandir}/man1/systemd-cryptenroll.1.gz
%{_mandir}/man5/crypttab.5.gz
%{_mandir}/man5/integritytab.5.gz
%{_mandir}/man5/iocost.conf.5.gz
%{_mandir}/man5/modules-load.d.5.gz
%{_mandir}/man5/pstore.conf.5.gz
%{_mandir}/man5/pstore.conf.d.5.gz
%{_mandir}/man5/sleep.conf.d.5.gz
%{_mandir}/man5/systemd-sleep.conf.5.gz
%{_mandir}/man5/timesyncd.conf.5.gz
%{_mandir}/man5/timesyncd.conf.d.5.gz
%{_mandir}/man5/udev.conf.5.gz
%{_mandir}/man5/vconsole.conf.5.gz
%{_mandir}/man5/veritytab.5.gz
%{_mandir}/man7/hwdb.7.gz
%{_mandir}/man7/smbios-type-11.7.gz
%{_mandir}/man7/systemd.image-policy.7.gz
%{_mandir}/man7/udev.7.gz
%{_mandir}/man8/kernel-install.8.gz
%{_mandir}/man8/systemd-backlight.8.gz
%{_mandir}/man8/systemd-backlight@.service.8.gz
%{_mandir}/man8/systemd-battery-check.8.gz
%{_mandir}/man8/systemd-battery-check.service.8.gz
%{_mandir}/man8/systemd-cryptsetup-generator.8.gz
%{_mandir}/man8/systemd-cryptsetup.8.gz
%{_mandir}/man8/systemd-cryptsetup@.service.8.gz
%{_mandir}/man8/systemd-fsck-root.service.8.gz
%{_mandir}/man8/systemd-fsck-usr.service.8.gz
%{_mandir}/man8/systemd-fsck.8.gz
%{_mandir}/man8/systemd-fsck@.service.8.gz
%{_mandir}/man8/systemd-fstab-generator.8.gz
%{_mandir}/man8/systemd-gpt-auto-generator.8.gz
%{_mandir}/man8/systemd-growfs-root.service.8.gz
%{_mandir}/man8/systemd-growfs.8.gz
%{_mandir}/man8/systemd-growfs@.service.8.gz
%{_mandir}/man8/systemd-hibernate-resume-generator.8.gz
%{_mandir}/man8/systemd-hibernate-resume.8.gz
%{_mandir}/man8/systemd-hibernate.service.8.gz
%{_mandir}/man8/systemd-hwdb.8.gz
%{_mandir}/man8/systemd-hybrid-sleep.service.8.gz
%{_mandir}/man8/systemd-integritysetup-generator.8.gz
%{_mandir}/man8/systemd-integritysetup.8.gz
%{_mandir}/man8/systemd-integritysetup@.service.8.gz
%{_mandir}/man8/systemd-makefs.8.gz
%{_mandir}/man8/systemd-makefs@.service.8.gz
%{_mandir}/man8/systemd-mkswap@.service.8.gz
%{_mandir}/man8/systemd-modules-load.8.gz
%{_mandir}/man8/systemd-modules-load.service.8.gz
%{_mandir}/man8/systemd-network-generator.8.gz
%{_mandir}/man8/systemd-network-generator.service.8.gz
%{_mandir}/man8/systemd-pstore.8.gz
%{_mandir}/man8/systemd-pstore.service.8.gz
%{_mandir}/man8/systemd-quotacheck.8.gz
%{_mandir}/man8/systemd-quotacheck.service.8.gz
%{_mandir}/man8/systemd-random-seed.8.gz
%{_mandir}/man8/systemd-random-seed.service.8.gz
%{_mandir}/man8/systemd-remount-fs.8.gz
%{_mandir}/man8/systemd-remount-fs.service.8.gz
%{_mandir}/man8/systemd-rfkill.8.gz
%{_mandir}/man8/systemd-rfkill.service.8.gz
%{_mandir}/man8/systemd-rfkill.socket.8.gz
%{_mandir}/man8/systemd-sleep.8.gz
%{_mandir}/man8/systemd-suspend-then-hibernate.service.8.gz
%{_mandir}/man8/systemd-suspend.service.8.gz
%{_mandir}/man8/systemd-timesyncd.8.gz
%{_mandir}/man8/systemd-timesyncd.service.8.gz
%{_mandir}/man8/systemd-tmpfiles-setup-dev-early.service.8.gz
%{_mandir}/man8/systemd-tmpfiles-setup-dev.service.8.gz
%{_mandir}/man8/systemd-udev-settle.service.8.gz
%{_mandir}/man8/systemd-udevd-control.socket.8.gz
%{_mandir}/man8/systemd-udevd-kernel.socket.8.gz
%{_mandir}/man8/systemd-udevd.8.gz
%{_mandir}/man8/systemd-udevd.service.8.gz
%{_mandir}/man8/systemd-vconsole-setup.8.gz
%{_mandir}/man8/systemd-vconsole-setup.service.8.gz
%{_mandir}/man8/systemd-veritysetup-generator.8.gz
%{_mandir}/man8/systemd-veritysetup.8.gz
%{_mandir}/man8/systemd-veritysetup@.service.8.gz
%{_mandir}/man8/systemd-volatile-root.8.gz
%{_mandir}/man8/systemd-volatile-root.service.8.gz
%{_mandir}/man8/udevadm.8.gz
%{_prefix}/lib/kernel/install.conf
%{_prefix}/lib/kernel/install.d/50-depmod.install
%{_prefix}/lib/kernel/install.d/90-loaderentry.install
%{_prefix}/lib/kernel/install.d/90-uki-copy.install
%endif
%{_prefix}/lib/udev/ata_id
%{_prefix}/lib/udev/cdrom_id
%ifarch %{arm} aarch64 %{ix86} x86_64 ia64 mips
# dmi_memory_id is only relevant on arches with DMI
%{_prefix}/lib/udev/dmi_memory_id
%endif
%{_prefix}/lib/udev/fido_id
%{_prefix}/lib/udev/iocost
%{_prefix}/lib/udev/iocost.conf
%{_prefix}/lib/udev/mtd_probe
%{_prefix}/lib/udev/scsi_id
%{_prefix}/lib/udev/v4l_id
%{_systemd_util_dir}/network/99-default.link
%{_systemd_util_dir}/ntp-units.d/80-systemd-timesync.list
%{_systemd_util_dir}/pstore.conf
%{_systemd_util_dir}/sleep.conf
%{_systemd_util_dir}/systemd-backlight
%{_systemd_util_dir}/systemd-battery-check
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-cryptsetup
%endif
%{_systemd_util_dir}/systemd-fsck
%{_systemd_util_dir}/systemd-growfs
%{_systemd_util_dir}/systemd-hibernate-resume
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-integritysetup
%endif
%{_systemd_util_dir}/systemd-makefs
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-modules-load
%endif
%{_systemd_util_dir}/systemd-network-generator
%{_systemd_util_dir}/systemd-pstore
%{_systemd_util_dir}/systemd-quotacheck
%{_systemd_util_dir}/systemd-random-seed
%{_systemd_util_dir}/systemd-remount-fs
%{_systemd_util_dir}/systemd-rfkill
%{_systemd_util_dir}/systemd-sleep
%{_systemd_util_dir}/systemd-timesyncd
%{_systemd_util_dir}/systemd-udevd
%{_systemd_util_dir}/systemd-vconsole-setup
%if %{without bootstrap}
%{_systemd_util_dir}/systemd-veritysetup
%endif
%{_systemd_util_dir}/systemd-volatile-root
%{_systemd_util_dir}/timesyncd.conf
%if %{without bootstrap}
%{_systemdgeneratordir}/systemd-cryptsetup-generator
%endif
%{_systemdgeneratordir}/systemd-fstab-generator
%{_systemdgeneratordir}/systemd-gpt-auto-generator
%{_systemdgeneratordir}/systemd-hibernate-resume-generator
%if %{without bootstrap}
%{_systemdgeneratordir}/systemd-integritysetup-generator
%{_systemdgeneratordir}/systemd-veritysetup-generator
%endif
%{_sysusersdir}/systemd-timesync.conf
%{_tmpfilesdir}/static-nodes-permissions.conf
%{_tmpfilesdir}/systemd-pstore.conf
%{_udevhwdbdir}/20-OUI.hwdb
%{_udevhwdbdir}/20-acpi-vendor.hwdb
%{_udevhwdbdir}/20-bluetooth-vendor-product.hwdb
%{_udevhwdbdir}/20-dmi-id.hwdb
%{_udevhwdbdir}/20-net-ifname.hwdb
%{_udevhwdbdir}/20-pci-classes.hwdb
%{_udevhwdbdir}/20-pci-vendor-model.hwdb
%{_udevhwdbdir}/20-sdio-classes.hwdb
%{_udevhwdbdir}/20-sdio-vendor-model.hwdb
%{_udevhwdbdir}/20-usb-classes.hwdb
%{_udevhwdbdir}/20-usb-vendor-model.hwdb
%{_udevhwdbdir}/20-vmbus-class.hwdb
%{_udevhwdbdir}/60-autosuspend-chromiumos.hwdb
%{_udevhwdbdir}/60-autosuspend-fingerprint-reader.hwdb
%{_udevhwdbdir}/60-autosuspend.hwdb
%{_udevhwdbdir}/60-evdev.hwdb
%{_udevhwdbdir}/60-input-id.hwdb
%{_udevhwdbdir}/60-keyboard.hwdb
%{_udevhwdbdir}/60-seat.hwdb
%{_udevhwdbdir}/60-sensor.hwdb
%{_udevhwdbdir}/70-analyzers.hwdb
%{_udevhwdbdir}/70-av-production.hwdb
%{_udevhwdbdir}/70-cameras.hwdb
%{_udevhwdbdir}/70-joystick.hwdb
%{_udevhwdbdir}/70-mouse.hwdb
%{_udevhwdbdir}/70-pda.hwdb
%{_udevhwdbdir}/70-pointingstick.hwdb
%{_udevhwdbdir}/70-sound-card.hwdb
%{_udevhwdbdir}/70-touchpad.hwdb
%{_udevhwdbdir}/80-ieee1394-unit-function.hwdb
%{_udevrulesdir}/50-udev-default.rules
%{_udevrulesdir}/60-autosuspend.rules
%{_udevrulesdir}/60-block.rules
%{_udevrulesdir}/60-cdrom_id.rules
%{_udevrulesdir}/60-dmi-id.rules
%{_udevrulesdir}/60-drm.rules
%{_udevrulesdir}/60-evdev.rules
%{_udevrulesdir}/60-fido-id.rules
%{_udevrulesdir}/60-infiniband.rules
%{_udevrulesdir}/60-input-id.rules
%{_udevrulesdir}/60-persistent-alsa.rules
%{_udevrulesdir}/60-persistent-input.rules
%{_udevrulesdir}/60-persistent-storage-tape.rules
%{_udevrulesdir}/60-persistent-storage.rules
%{_udevrulesdir}/60-persistent-v4l.rules
%{_udevrulesdir}/60-sensor.rules
%{_udevrulesdir}/60-serial.rules
%{_udevrulesdir}/64-btrfs.rules
%{_udevrulesdir}/70-camera.rules
%{_udevrulesdir}/70-joystick.rules
%ifarch %{arm} aarch64 %{ix86} x86_64 ia64 mips
%{_udevrulesdir}/70-memory.rules
%endif
%{_udevrulesdir}/70-mouse.rules
%{_udevrulesdir}/70-power-switch.rules
%{_udevrulesdir}/70-touchpad.rules
%{_udevrulesdir}/75-net-description.rules
%{_udevrulesdir}/75-probe_mtd.rules
%{_udevrulesdir}/78-sound-card.rules
%if %{without bootstrap}
%{_udevrulesdir}/80-drivers.rules
%endif
%{_udevrulesdir}/80-net-setup-link.rules
%{_udevrulesdir}/81-net-dhcp.rules
%{_udevrulesdir}/90-iocost.rules
%{_udevrulesdir}/90-vconsole.rules
%if %{without bootstrap}
%{_unitdir}/cryptsetup-pre.target
%{_unitdir}/cryptsetup.target
%endif
%{_unitdir}/hibernate.target
%{_unitdir}/hybrid-sleep.target
%if %{without bootstrap}
%{_unitdir}/initrd-root-device.target.wants/remote-cryptsetup.target
%{_unitdir}/initrd-root-device.target.wants/remote-veritysetup.target
%endif
%{_unitdir}/initrd-udevadm-cleanup-db.service
%{_unitdir}/initrd.target.wants/systemd-battery-check.service
%if %{without bootstrap}
%{_unitdir}/integritysetup-pre.target
%{_unitdir}/integritysetup.target
%{_unitdir}/kmod-static-nodes.service
%{_unitdir}/remote-cryptsetup.target
%{_unitdir}/remote-veritysetup.target
%endif
%{_unitdir}/sleep.target
%{_unitdir}/sockets.target.wants/systemd-udevd-control.socket
%{_unitdir}/sockets.target.wants/systemd-udevd-kernel.socket
%{_unitdir}/suspend-then-hibernate.target
%{_unitdir}/suspend.target
%if %{without bootstrap}
%{_unitdir}/sysinit.target.wants/cryptsetup.target
%{_unitdir}/sysinit.target.wants/integritysetup.target
%{_unitdir}/sysinit.target.wants/kmod-static-nodes.service
%endif
%{_unitdir}/sysinit.target.wants/systemd-hwdb-update.service
%if %{without bootstrap}
%{_unitdir}/sysinit.target.wants/systemd-modules-load.service
%endif
%{_unitdir}/sysinit.target.wants/systemd-random-seed.service
%{_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup-dev-early.service
%{_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup-dev.service
%{_unitdir}/sysinit.target.wants/systemd-udev-trigger.service
%{_unitdir}/sysinit.target.wants/systemd-udevd.service
%if %{without bootstrap}
%{_unitdir}/sysinit.target.wants/veritysetup.target
%{_unitdir}/system-systemd\x2dcryptsetup.slice
%{_unitdir}/system-systemd\x2dveritysetup.slice
%endif
%{_unitdir}/systemd-backlight@.service
%{_unitdir}/systemd-battery-check.service
%{_unitdir}/systemd-firstboot.service
%{_unitdir}/systemd-fsck-root.service
%{_unitdir}/systemd-fsck@.service
%{_unitdir}/systemd-growfs-root.service
%{_unitdir}/systemd-growfs@.service
%{_unitdir}/systemd-hibernate.service
%{_unitdir}/systemd-hwdb-update.service
%{_unitdir}/systemd-hybrid-sleep.service
%if %{without bootstrap}
%{_unitdir}/systemd-modules-load.service
%endif
%{_unitdir}/systemd-network-generator.service
%{_unitdir}/systemd-pstore.service
%{_unitdir}/systemd-quotacheck.service
%{_unitdir}/systemd-random-seed.service
%{_unitdir}/systemd-reboot.service
%{_unitdir}/systemd-remount-fs.service
%{_unitdir}/systemd-rfkill.service
%{_unitdir}/systemd-rfkill.socket
%{_unitdir}/systemd-suspend-then-hibernate.service
%{_unitdir}/systemd-suspend.service
%{_unitdir}/systemd-timesyncd.service
%{_unitdir}/systemd-tmpfiles-setup-dev-early.service
%{_unitdir}/systemd-tmpfiles-setup-dev.service
%{_unitdir}/systemd-udev-settle.service
%{_unitdir}/systemd-udev-trigger.service
%{_unitdir}/systemd-udevd-control.socket
%{_unitdir}/systemd-udevd-kernel.socket
%{_unitdir}/systemd-udevd.service
%{_unitdir}/systemd-vconsole-setup.service
%{_unitdir}/systemd-volatile-root.service
%if %{without bootstrap}
%{_unitdir}/veritysetup-pre.target
%{_unitdir}/veritysetup.target
%endif
%if %{with split_usr}
/sbin/udevadm
%endif

33
files.uefi-boot Normal file
View File

@ -0,0 +1,33 @@
#
# Please keep the list sorted (with `LC_ALL=C sort`).
#
%dir %{_systemd_util_dir}/boot
%dir %{_systemd_util_dir}/boot/efi
%{_bindir}/bootctl
%if %{without bootstrap}
%{_datadir}/bash-completion/completions/bootctl
%{_datadir}/zsh/site-functions/_bootctl
%{_mandir}/man1/bootctl.1.gz
%{_mandir}/man5/loader.conf.5.gz
%{_mandir}/man7/linuxaa64.efi.stub.7.gz
%{_mandir}/man7/linuxia32.efi.stub.7.gz
%{_mandir}/man7/linuxx64.efi.stub.7.gz
%{_mandir}/man7/sd-boot.7.gz
%{_mandir}/man7/sd-stub.7.gz
%{_mandir}/man7/systemd-boot.7.gz
%{_mandir}/man7/systemd-stub.7.gz
%{_mandir}/man8/systemd-bless-boot-generator.8.gz
%{_mandir}/man8/systemd-bless-boot.8.gz
%{_mandir}/man8/systemd-bless-boot.service.8.gz
%{_mandir}/man8/systemd-boot-random-seed.service.8.gz
%endif
# These are the few exceptions where glob pattern is allowed.
%{_systemd_util_dir}/boot/efi/addon*.efi.stub
%{_systemd_util_dir}/boot/efi/linux*.efi.stub
%{_systemd_util_dir}/boot/efi/systemd-boot*.efi
%{_systemd_util_dir}/systemd-bless-boot
%{_systemdgeneratordir}/systemd-bless-boot-generator
%{_unitdir}/sysinit.target.wants/systemd-boot-random-seed.service
%{_unitdir}/systemd-bless-boot.service
%{_unitdir}/systemd-boot-random-seed.service
%{_unitdir}/systemd-boot-update.service

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

287
fixlet-systemd-post.sh Normal file
View File

@ -0,0 +1,287 @@
#! /bin/bash
#
# This script contains all the fixups run when systemd package is installed or
# updated.
#
# /etc/sysconfig/console | /etc/vconsole.conf
# -------------------------+---------------------
# CONSOLE_FONT | FONT
# CONSOLE_SCREENMAP | FONT_MAP
# CONSOLE_UNICODEMAP | FONT_UNIMAP
migrate_locale () {
local migrated=""
if ! test -f /etc/sysconfig/console; then
return
fi
source /etc/sysconfig/console || return
if test -f /etc/vconsole.conf; then
source /etc/vconsole.conf || return
fi
if test -n "$CONSOLE_FONT" && test -z "$FONT"; then
echo "FONT=$CONSOLE_FONT" >>/etc/vconsole.conf
migrated+="CONSOLE_FONT "
fi
if test -n "$CONSOLE_SCREENMAP" && test -z "$FONT_MAP"; then
echo "FONT_MAP=$CONSOLE_SCREENMAP" >>/etc/vconsole.conf
migrated+="CONSOLE_SCREENMAP "
fi
if test -n "$CONSOLE_UNICODEMAP" && test -z "$FONT_UNIMAP"; then
echo "FONT_UNIMAP=$CONSOLE_UNICODEMAP" >>/etc/vconsole.conf
migrated+="CONSOLE_UNICODEMAP "
fi
if test -n "$migrated"; then
echo >&2 "The following variables from /etc/sysconfig/console have been migrated"
echo >&2 "into /etc/vconsole.conf:"
echo >&2
for v in $migrated; do echo " - $v=${!v}"; done
echo >&2
echo >&2 "Please edit /etc/vconsole.conf if you need to tune these settings"
echo >&2 "as /etc/sysconfig/console won't be considered anymore."
echo >&2
fi
}
# /etc/sysconfig/keyboard | /etc/vconsole.conf
# -------------------------+---------------------
# KEYTABLE | KEYMAP
migrate_keyboard () {
local migrated=""
if ! test -f /etc/sysconfig/keyboard; then
return
fi
source /etc/sysconfig/keyboard || return
if test -f /etc/vconsole.conf; then
source /etc/vconsole.conf || return
fi
if test -n "$KEYTABLE" && test -z "$KEYMAP"; then
echo "KEYMAP=$KEYTABLE" >>/etc/vconsole.conf
migrated+="KEYTABLE "
fi
if test -n "$migrated"; then
echo >&2 "The following variables from /etc/sysconfig/keyboard have been migrated"
echo >&2 "into /etc/vconsole.conf:"
echo >&2
for v in $migrated; do echo " - $v=${!v}"; done
echo >&2
echo >&2 "Please use localectl(1) if you need to tune these settings since"
echo >&2 "/etc/sysconfig/keyboard won't be considered anymore."
echo >&2
fi
}
# According to
# https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_suse_l10n.html,
# variables in /etc/sysconfig/language are supposed to be passed to the users'
# shell *only*. However it seems that there has been some confusion and they
# ended up configuring the system-wide locale as well. The logic followed by
# systemd was implemented in commit 01c4b6f4f0d951d17f6873f68156ecd7763429c6,
# which was reverted. The code below follows the same logic to migrate content
# of /etc/sysconfig/language into locale.conf.
migrate_language () {
local lang=
local migrated=false
if ! test -f /etc/sysconfig/language; then
return
fi
source /etc/sysconfig/language || return
lang=$(grep ^LANG= /etc/locale.conf 2>/dev/null)
lang=${lang#LANG=}
case "$ROOT_USES_LANG" in
yes)
if test -z "$lang" && test -n "$RC_LANG"; then
echo "LANG=$RC_LANG" >>/etc/locale.conf
migrated=true
fi
;;
ctype)
if ! grep -q ^LC_CTYPE= /etc/locale.conf 2>/dev/null; then
: ${lc_ctype:="$lang"}
: ${lc_ctype:="$RC_LC_CTYPE"}
: ${lc_ctype:="$RC_LANG"}
if test -n "$lc_ctype"; then
echo "LC_CTYPE=$lc_ctype" >>/etc/locale.conf
migrated=true
fi
fi
;;
esac
if $migrated; then
echo >&2 "The content of /etc/sysconfig/language has been migrated into"
echo >&2 "/etc/locale.conf. The former file is now only used for setting"
echo >&2 "the locale used by user's shells. The system-wide locale is"
echo >&2 "only read from /etc/locale.conf since now."
echo >&2
echo >&2 "Please only use localectl(1) or YaST if you need to change the"
echo >&2 "settings of the *system-wide* locale from now."
fi
}
#
# Migrate old i18n settings previously configured in /etc/sysconfig to the new
# locations used by systemd (/etc/locale.conf, /etc/vconsole.conf, ...). Recent
# versions of systemd parse the new locations only.
#
# This is needed both at package updates and package installations because we
# might be upgrading from a system which was running SysV init (systemd package
# is being installed).
#
# Note: run only once.
#
migrate_sysconfig_i18n() {
local tagfile=/var/lib/systemd/rpm/systemd-i18n_migrated
local -i rv=0
if [ -e $tagfile ]; then
return 0
fi
# The marker could have been incorrectly put in /usr/lib.
mv /usr/lib/systemd/scripts/.migrate-sysconfig-i18n.sh~done $tagfile &>/dev/null
# The tag files have been moved to /var/lib/systemd/rpm later.
mv /var/lib/systemd/i18n-migrated $tagfile &>/dev/null
if [ -e $tagfile ]; then
return 0
fi
touch $tagfile
migrate_locale; rv+=$?
migrate_keyboard; rv+=$?
migrate_language; rv+=$?
if [ $rv -gt 0 ]; then
echo >&2 "Failed to migrate i18n settings from /etc/sysconfig, ignoring."
fi
return $rv
}
#
# This function is supposed to be called from the %post section of the main
# package. It contains all the fixups needed when the system was running a
# version of systemd older than v210.
#
# All hacks can potentially break the admin settings since they work in /etc.
#
fix_pre_210() {
local tagfile=/var/lib/systemd/rpm/systemd-pre_210_fixed
if [ -e $tagfile ]; then
return 0
fi
touch $tagfile
#
# During migration from sysvinit to systemd, we used to set the systemd
# default target to one of the 'runlevel*.target' after reading the
# default runlevel from /etc/inittab. We don't do that anymore because
# in most cases using the graphical.target target, which is the default,
# will do the right thing. Moreover the runlevel targets are considered
# as deprecated, so we convert them into "true" systemd targets instead
# here.
#
if target=$(readlink /etc/systemd/system/default.target); then
target=$(basename $target)
case "$target" in
runlevel?.target)
echo "Default target is '$target' but use of runlevels is deprecated, converting"
systemctl --no-reload set-default $target
esac
fi
#
# Migrate any symlink which may refer to the old path (ie /lib/systemd).
#
for f in $(find /etc/systemd/system -type l -xtype l); do
new_target="/usr$(readlink $f)"
[ -f "$new_target" ] && ln -s -f "$new_target" "$f"
done
}
#
# /etc/machine-id might have been created writeable incorrectly (boo#1092269).
#
# Note: run at each package update.
#
fix_machine_id_perms() {
if [ "$(stat -c%a /etc/machine-id)" != 444 ]; then
echo "Incorrect file mode bits for /etc/machine-id which should be 0444, fixing..."
chmod 444 /etc/machine-id
fi
}
#
# v228 wrongly set world writable suid root permissions on timestamp files used
# by permanent timers. Fix the timestamps that might have been created by the
# affected versions of systemd (bsc#1020601).
#
# Note: run at each package update.
#
fix_bsc_1020601() {
for stamp in $(ls /var/lib/systemd/timers/stamp-*.timer 2>/dev/null); do
chmod 0644 $stamp
done
# Same for user lingering created by logind.
for username in $(ls /var/lib/systemd/linger/* 2>/dev/null); do
chmod 0644 $username
done
}
#
# Due to the fact that DynamicUser= was turned ON during v235 and then switched
# back to off in v240, /var/lib/systemd/timesync might be a symlink pointing to
# /var/lib/private/systemd/timesync, which is inaccessible for systemd-timesync
# user as /var/lib/private is 0700 root:root, see
# https://github.com/systemd/systemd/issues/11329 for details.
#
# Note: only TW might be affected by this bug.
# Note: run at each package update.
#
fix_issue_11329() {
if [ -L /var/lib/systemd/timesync ]; then
rm /var/lib/systemd/timesync
mv /var/lib/private/systemd/timesync /var/lib/systemd/timesync
fi
}
#
# We don't ship after-local.service anymore however as a courtesy we install a
# copy in /etc for users who are relying on it.
#
# Note: should run only once since it is conditionalized on the presence of
# %{_unitdir}/after-local.service
#
drop_after_local_support() {
if [ -x /etc/init.d/after.local ] &&
[ -f /usr/lib/systemd/system/after-local.service ]; then
echo "after-local.service is no more provided by systemd but a copy has been installed in /etc"
cp /usr/lib/systemd/system/after-local.service /etc/systemd/system/
ln -s ../after-local.service /etc/systemd/system/multi-user.target.wants/after-local.service
fi
}
r=0
fix_machine_id_perms || r=1
fix_pre_210 || r=1
migrate_sysconfig_i18n || r=1
fix_bsc_1020601 || r=1
fix_issue_11329 || r=1
drop_after_local_support || r=1
exit $r

7
kbd-model-map.legacy Normal file
View File

@ -0,0 +1,7 @@
# Additional layouts offered by YaST arabic and ir (Iran) have never had a
# console layout, they are symlinks to 'us', but they are needed as YaST uses
# the console layout as a primary key for picking the X11 layout
arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
ara ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
ir ir pc105 - terminate:ctrl_alt_bksp

19
systemd-rpmlintrc Normal file
View File

@ -0,0 +1,19 @@
addFilter(".*filelist-forbidden-systemd-userdirs /etc/systemd/.*\.conf")
addFilter(".*dbus-policy-allow-receive")
addFilter(".*devel-file-in-non-devel-package.*udev.pc.*")
addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*")
addFilter(".*missing-call-to-setgroups-before-setuid.*")
addFilter(".*systemd-service-without-service.*")
addFilter("env-script-interpreter")
addFilter(".*files-duplicate /usr/lib/systemd/.*")
addFilter(".*files-duplicated-waste.*")
addFilter(".*explicit-lib-dependency .*")
addFilter(".*tmpfile-not-in-filelist .*")
# shlib policy does not cover multibuilds
addFilter("libsystemd0-mini\..*: E: shlib-policy-name-error SONAME: libsystemd.so.0.*")
addFilter("libudev.*-mini\..*: E: shlib-policy-name-error SONAME: libudev.*")
# These are NSS plugins and are not really subject to shlib policy.
addFilter("systemd-container\..*: E: shlib-policy-name-error .* libnss_mymachines")
addFilter("systemd-network\..*: E: shlib-policy-name-error .* libnss_resolve")

148
systemd-sysv-install Normal file
View File

@ -0,0 +1,148 @@
#!/bin/bash
# This script is called by "systemctl enable/disable" when the given unit is a
# SysV init.d script. It needs to call the distribution's mechanism for
# enabling/disabling those, such as chkconfig, update-rc.d, or similar. This can
# optionally take a --root argument for enabling a SysV init script in a chroot
# or similar.
#
# chkconfig(8) and insserv(8) are no more available hence let's do the bare
# minimum and create/remove the symlinks for the well known runlevels and
# nothing more. Note that we don't take care of enabling/disabling the service
# dependencies as the sysv-generator will take care of them for us (openSUSE
# specific).
#
set -e
usage() {
echo >&2 "Usage: $0 [--quiet] [--root=path] enable|disable|is-enabled <sysv script name>"
exit 1
}
info() {
$quiet || echo "$*"
}
die() {
echo >&2 "error: $*, aborting."
exit 1
}
declare -A lsb_header
check_runlevels() {
for l in $*; do
# Sanity check
case $l in
0|1|2|3|4|5|6) continue ;;
*) return 1
esac
done
}
load_initscript() {
local found_lsb_start_marker=false
local found_lsb_end_marker=false
[ -r $1 ] || die "initscript /etc/init.d/$1 can't be read"
lsb_header=()
while read line; do
# skip anything that is not a comment
[[ "$line" =~ ^# ]] || continue
if ! $found_lsb_start_marker; then
[ "$line" == "### BEGIN INIT INFO" ] &&
found_lsb_start_marker=true
continue
fi
line=$(echo ${line:1})
case "$line" in
Default-Start:*)
levels=$(echo ${line:14})
check_runlevels $levels ||
die "Invalid runlevels specified in $line"
lsb_header[Default-Start]=$levels
;;
"## END INIT INFO")
found_lsb_end_marker=true
break ;;
esac
done <$1
$found_lsb_end_marker ||
die "malformated LSB header in $1: missing LSB end marker"
}
enable_initscript() {
load_initscript $1
for l in ${lsb_header[Default-Start]}; do
symlink="$(pwd)/rc${l}.d/S50$1"
info "ln -sf ../$1 $symlink"
ln -sf ../$1 "$symlink"
done
}
disable_initscript() {
for symlink in rc*.d/[SK]*; do
if [ -L $symlink ] && [ $(readlink $symlink) = "../$1" ]; then
info "rm $(pwd)/$symlink"
rm $symlink
fi
done
}
is_initscript_enabled() {
for symlink in rc*.d/S*; do
[ -L $symlink ] && [ $(readlink $symlink) = "../$1" ] &&
return 0
done
return 1
}
root=
quiet=false
# parse options
eval set -- "$(getopt --name $(basename $0) -o hqr: --long help,quiet,root: -- "$@")"
while true; do
case "$1" in
-h|--help)
usage ;;
-r|--root)
shift
root=$1 ;;
-q|--quiet)
quiet=true ;;
--)
shift
break ;;
*)
usage ;;
esac
shift
done
[ $# -eq 2 ] || usage
action=$1
name=$2
sysvinit_path=$(realpath -q -e $root/etc/init.d) ||
die "$root/etc/init.d: no such file or directory"
cd $sysvinit_path
case "$action" in
enable) enable_initscript $name ;;
disable) disable_initscript $name ;;
is-enabled) is_initscript_enabled $name ;;
*) usage
esac

172
systemd-update-helper Normal file
View File

@ -0,0 +1,172 @@
#!/usr/bin/env bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This helper is aimed at being used by the systemd rpm macros only.
#
set -eu
set -o pipefail
command="${1:?}"
shift
command -v systemctl >/dev/null || exit 0
case "$command" in
mark-install-system-units)
mkdir -p /run/systemd/rpm/needs-preset
for unit in "$@" ; do
if [ ! -e /usr/lib/systemd/system/"$unit" ]; then
touch /run/systemd/rpm/needs-preset/"$unit"
fi
done
;;
install-system-units)
units=()
for unit in "$@" ; do
if [ -e /run/systemd/rpm/needs-preset/"$unit" ]; then
rm /run/systemd/rpm/needs-preset/"$unit"
units+=("$unit")
fi
done
[ ${#units[*]} -gt 0 ] &&
systemctl --no-reload preset "${units[@]}"
;;
mark-install-user-units)
mkdir -p /run/systemd/rpm/needs-user-preset
for unit in "$@" ; do
if [ ! -e /usr/lib/systemd/user/"$unit" ]; then
touch /run/systemd/rpm/needs-user-preset/"$unit"
fi
done
;;
install-user-units)
units=()
for unit in "$@" ; do
if [ -e /run/systemd/rpm/needs-user-preset/"$unit" ]; then
rm /run/systemd/rpm/needs-user-preset/"$unit"
units+=("$unit")
fi
done
[ ${#units[*]} -gt 0 ] &&
systemctl --no-reload preset --global "$@" || :
;;
remove-system-units)
if [ -d /run/systemd/system ]; then
systemctl --no-reload disable --now --no-warn "$@"
else
systemctl --no-reload disable --no-warn "$@"
fi
;;
remove-user-units)
systemctl --global disable --no-warn "$@"
[ -d /run/systemd/system ] || exit 0
users=$(systemctl list-units 'user@*' --legend=no | sed -n -r 's/.*user@([0-9]+).service.*/\1/p')
for user in $users; do
SYSTEMD_BUS_TIMEOUT=15s \
systemctl --user -M "$user@" disable --now --no-warn "$@" &
done
wait
;;
mark-restart-system-units)
[ -d /run/systemd/system ] || exit 0
for unit in "$@"; do
systemctl set-property "$unit" Markers=+needs-restart &
done
wait
;;
mark-restart-user-units)
[ -d /run/systemd/system ] || exit 0
users=$(systemctl list-units 'user@*' --legend=no | sed -n -r 's/.*user@([0-9]+).service.*/\1/p')
for user in $users; do
for unit in "$@"; do
SYSTEMD_BUS_TIMEOUT=15s \
systemctl --user -M "$user@" set-property "$unit" Markers=+needs-restart &
done
done
wait
;;
system-reload-restart|system-reload|system-restart)
if [ -n "$*" ]; then
echo >&2 "Unexpected arguments for '$command': $*"
exit 2
fi
[ -d /run/systemd/system ] || exit 0
if [[ "$command" =~ reload ]]; then
systemctl daemon-reload
fi
if [[ "$command" =~ restart ]]; then
systemctl reload-or-restart --marked
fi
;;
user-reexec)
if [ -n "$*" ]; then
echo >&2 "Unexpected arguments for '$command': $*"
exit 2
fi
[ -d /run/systemd/system ] || exit 0
# Reexecute user manager instances (if any). It is asynchronous but it
# shouldn't be a problem in practice because systemd main package is not
# shipping any user services currently. A problem would arise only if a
# new version of a user service relied on an option that would be only
# understood by the latest version of the user manager and the user unit
# would be restarted before the user manager get reexecuted.
systemctl kill --kill-who=main --signal=SIGRTMIN+25 "user@*.service"
;;
user-reload-restart|user-reload|user-restart)
if [ -n "$*" ]; then
echo >&2 "Unexpected arguments for '$command': $*"
exit 2
fi
[ -d /run/systemd/system ] || exit 0
users=$(systemctl list-units 'user@*' --legend=no | sed -n -r 's/.*user@([0-9]+).service.*/\1/p')
if [[ "$command" =~ reload ]]; then
for user in $users; do
SYSTEMD_BUS_TIMEOUT=15s \
systemctl --user -M "$user@" daemon-reload &
done
wait
fi
if [[ "$command" =~ restart ]]; then
for user in $users; do
SYSTEMD_BUS_TIMEOUT=15s \
systemctl --user -M "$user@" reload-or-restart --marked &
done
wait
fi
;;
*)
echo >&2 "Unknown verb '$command'"
exit 3
;;
esac

25
systemd-user Normal file
View File

@ -0,0 +1,25 @@
# This file is part of systemd.
#
# Used by systemd --user instances.
# Override the default behavior of the "auth" PAM stack and don't throw a
# warning each time a user instance is started, which is the default behavior of
# the PAM stack when no auth is defined. Indeed PID1 calls pam_setcred() when
# the user instance is about to be started to allow some user services, such as
# gnome-terminal, to extend theirs credentials similar to the ones received by a
# user when he logs in (and the full PAM authentication stack is run). For some
# details, see:
#
# https://gitlab.gnome.org/GNOME/gdm/-/issues/393
# https://github.com/systemd/systemd/issues/11198
# https://bugzilla.suse.com/show_bug.cgi?id=1190515
#
auth required pam_deny.so
account include common-account
session required pam_selinux.so close
session required pam_selinux.so nottys open
session required pam_loginuid.so
session optional pam_keyinit.so force revoke
session include common-session

BIN
systemd-v254.8+suse.22.g67a5ac1043.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

13348
systemd.changes Normal file

File diff suppressed because it is too large Load Diff

1445
systemd.spec Normal file

File diff suppressed because it is too large Load Diff

7
tmpfiles-suse.conf Normal file
View File

@ -0,0 +1,7 @@
#
# See tmpfiles.d(5) for details
#
# Type Path Mode User Group Age Argument
# Legacy symlink. Maybe should be owned by util-linux ?
L+ /etc/mtab - - - - ../proc/self/mounts

132
triggers.systemd Normal file
View File

@ -0,0 +1,132 @@
# -*- Mode: rpm-spec; indent-tabs-mode: nil -*-
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
# Copyright © 2018 Neal Gompa
# The contents of this are an example to be copied into systemd.spec.
#
# Minimum rpm version supported: 4.14.0
%transfiletriggerin -P 900900 -p <lua> -- /usr/lib/systemd/system /etc/systemd/system
-- This script will run after any package is initially installed or
-- upgraded. We care about the case where a package is initially
-- installed, because other cases are covered by the *un scriptlets,
-- so sometimes we will reload needlessly.
pid = posix.fork()
if pid == 0 then
assert(posix.exec("/usr/lib/systemd/systemd-update-helper", "system-reload-restart"))
elseif pid > 0 then
posix.wait(pid)
end
%transfiletriggerin -P 900899 -p <lua> -- /usr/lib/systemd/user /etc/systemd/user
pid = posix.fork()
if pid == 0 then
assert(posix.exec("/usr/lib/systemd/systemd-update-helper", "user-reload-restart"))
elseif pid > 0 then
posix.wait(pid)
end
%transfiletriggerpostun -P 1000100 -p <lua> -- /usr/lib/systemd/system /etc/systemd/system
-- On removal, we need to run daemon-reload after any units have been
-- removed.
-- On upgrade, we need to run daemon-reload after any new unit files
-- have been installed, but before %postun scripts in packages get
-- executed.
pid = posix.fork()
if pid == 0 then
assert(posix.exec("/usr/lib/systemd/systemd-update-helper", "system-reload"))
elseif pid > 0 then
posix.wait(pid)
end
%transfiletriggerpostun -P 1000100 -p <lua> -- /usr/lib/systemd/system /etc/systemd/system
-- Execute daemon-reload in user managers.
pid = posix.fork()
if pid == 0 then
assert(posix.exec("/usr/lib/systemd/systemd-update-helper", "user-reload"))
elseif pid > 0 then
posix.wait(pid)
end
%transfiletriggerpostun -P 10000 -p <lua> -- /usr/lib/systemd/system /etc/systemd/system
-- We restart remaining system services that should be restarted here.
pid = posix.fork()
if pid == 0 then
assert(posix.exec("/usr/lib/systemd/systemd-update-helper", "system-restart"))
elseif pid > 0 then
posix.wait(pid)
end
%transfiletriggerpostun -P 9999 -p <lua> -- /usr/lib/systemd/user /etc/systemd/user
-- We restart remaining user services that should be restarted here.
pid = posix.fork()
if pid == 0 then
assert(posix.exec("/usr/lib/systemd/systemd-update-helper", "user-restart"))
elseif pid > 0 then
posix.wait(pid)
end
%transfiletriggerin -P 1000700 -p <lua> -- /usr/lib/sysusers.d
-- This script will process files installed in /usr/lib/sysusers.d to create
-- specified users automatically. The priority is set such that it
-- will run before the tmpfiles file trigger.
-- Note: /run is never mounted during transactional updates.
if posix.access("/run/systemd/system") then
assert(rpm.execute("systemd-sysusers"))
end
%if %{without bootstrap}
%transfiletriggerin -P 1000700 -n udev -p <lua> -- /usr/lib/udev/hwdb.d
-- This script will automatically invoke hwdb update if files have been
-- installed or updated in /usr/lib/udev/hwdb.d.
assert(rpm.execute("systemd-hwdb", "update"))
%endif
%transfiletriggerin -P 1000700 -p <lua> -- /usr/lib/systemd/catalog
-- This script will automatically invoke journal catalog update if files
-- have been installed or updated in /usr/lib/systemd/catalog.
assert(rpm.execute("journalctl", "--update-catalog"))
%transfiletriggerin -P 1000700 -p <lua> -- /usr/lib/binfmt.d
-- This script will automatically apply binfmt rules if files have been
-- installed or updated in /usr/lib/binfmt.d.
if posix.access("/run/systemd/system") then
pid = posix.fork()
if pid == 0 then
assert(posix.exec("/usr/lib/systemd/systemd-binfmt"))
elseif pid > 0 then
posix.wait(pid)
end
end
%transfiletriggerin -P 1000600 -p <lua> -- /usr/lib/tmpfiles.d
-- This script will process files installed in /usr/lib/tmpfiles.d to create
-- tmpfiles automatically. The priority is set such that it will run
-- after the sysusers file trigger, but before any other triggers.
-- Note: /run is never mounted during transactional updates.
if posix.access("/run/systemd/system") then
assert(rpm.execute("systemd-tmpfiles", "--create"))
end
%if %{without bootstrap}
%transfiletriggerin -P 1000600 -n udev -p <lua> -- /usr/lib/udev/rules.d
-- This script will automatically update udev with new rules if files
-- have been installed or updated in /usr/lib/udev/rules.d.
if posix.access("/run/udev/control") then
assert(rpm.execute("udevadm", "control", "--reload"))
end
%endif
%transfiletriggerin -P 1000500 -p <lua> -- /usr/lib/sysctl.d
-- This script will automatically apply sysctl rules if files have been
-- installed or updated in /usr/lib/sysctl.d.
if posix.access("/run/systemd/system") then
pid = posix.fork()
if pid == 0 then
assert(posix.exec("/usr/lib/systemd/systemd-sysctl"))
elseif pid > 0 then
posix.wait(pid)
end
end