Accepting request 1152118 from Base:System

- Fix syntax required for OBS source validator

- Upgrade to v255.3 (commit 96edf7ad1866172b994cafb4df49e27d68ce8e87)
  See https://github.com/openSUSE/systemd/blob/SUSE/v255/NEWS for details.
  - This includes the following bug fixes:
    - commit 6e10405aa25fe5e76b740d9ec59730e3f4470c7a (bsc#1219766)
  - The following patches have been rebased:
    - 0002-rc-local-fix-ordering-startup-for-etc-init.d-boot.lo.patch
    - 0008-sysv-generator-translate-Required-Start-into-a-Wants.patch
    - 0009-pid1-handle-console-specificities-weirdness-for-s390.patch
    - 5001-Revert-udev-update-devlink-with-the-newer-device-nod.patch
    - 5002-Revert-udev-revert-workarounds-for-issues-caused-by-.patch
  - The following patches have been removed since they're part of v255:
    - 5003-cgroup-rename-TasksMax-structure-to-CGroupTasksMax.patch
    - 5004-bus-print-properties-ignore-CGROUP_LIMIT_MAX-for-Mem.patch
    - 5005-bus-print-properties-prettify-more-unset-properties.patch
  - systemd-boot has been added to the list of the dependencies of the
    systemd-testsuite package as the installation of the bootloader is now
    tested.
  - the following patches have been backported on top of v255.3:
    96edf7ad18 service: Demote log level of NotifyAccess= messages to debug (bsc#1210113 jsc#PED-6214)
    fdde7f26d6 vconsole-setup: don't fail if the only found vc is already used by plymouth (bsc#1218618)
    f96c587d41 rules: set up tty permissions and group for /dev/hvc* nodes (bsc#1218137)
    63a41b8899 vconsole-setup: remember the correct error value when open_terminal() fails
    f51a2e038c vconsole-setup: handle the case where the vc is in KD_GRAPHICS mode more gracefully (bsc#1215282)
    15025a04c4 test: make sure to install the filesystem package in the test image on SUSE
    06fecfb635 test: make sure that sd-boot is installed before testing bootctl
    1e8788ea68 test: install systemd-boot in openSUSE test images
    6e2875ad43 test/test-shutdown.py: optionally display the test I/Os in a dedicated log file
    4be1a801b4 test-69: send SIGTERM to ask systemd-nspawn to properly stop the container

OBS-URL: https://build.opensuse.org/request/show/1152118
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=417
This commit is contained in:
Ana Guerrero 2024-03-14 16:42:46 +00:00 committed by Git OBS Bridge
commit 6cd55f982e
23 changed files with 419 additions and 522 deletions

View File

@ -1,8 +1,7 @@
From ddf3a821b51fbd3064914eb00a03bbecce9ee361 Mon Sep 17 00:00:00 2001 From e1562e145272efea60275ffe8e7edeb65224ab8d Mon Sep 17 00:00:00 2001
From: Thomas Blume <thomas.blume@suse.com> From: Thomas Blume <thomas.blume@suse.com>
Date: Tue, 25 Mar 2014 13:08:56 +0000 Date: Tue, 25 Mar 2014 13:08:56 +0000
Subject: [PATCH 03/11] rc-local: fix ordering startup for Subject: [PATCH] rc-local: fix ordering startup for /etc/init.d/boot.local
/etc/init.d/boot.local
[tblume: fixes bnc#869142] [tblume: fixes bnc#869142]
--- ---
@ -10,7 +9,7 @@ Subject: [PATCH 03/11] rc-local: fix ordering startup for
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/units/rc-local.service.in b/units/rc-local.service.in diff --git a/units/rc-local.service.in b/units/rc-local.service.in
index 55e83dfe00..8b20f8d1af 100644 index 6fb0838cdb..768f720032 100644
--- a/units/rc-local.service.in --- a/units/rc-local.service.in
+++ b/units/rc-local.service.in +++ b/units/rc-local.service.in
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
@ -23,5 +22,5 @@ index 55e83dfe00..8b20f8d1af 100644
[Service] [Service]
Type=forking Type=forking
-- --
2.26.2 2.35.3

View File

@ -1,7 +1,7 @@
From 9e6a1f4b085b29abaf90ecd05859537b837b39fe Mon Sep 17 00:00:00 2001 From 2c821a6c31ce3e2af53274b26fc34648933f6574 Mon Sep 17 00:00:00 2001
From: Thomas Blume <Thomas.Blume@suse.com> From: Thomas Blume <Thomas.Blume@suse.com>
Date: Wed, 4 May 2016 17:40:04 +0200 Date: Wed, 4 May 2016 17:40:04 +0200
Subject: [PATCH 8/8] sysv-generator: translate "Required-Start" into a "Wants" Subject: [PATCH] sysv-generator: translate "Required-Start" into a "Wants"
dependency dependency
'Required-Start:' used to be supported by insserv but this functionality was 'Required-Start:' used to be supported by insserv but this functionality was
@ -19,10 +19,10 @@ see the comments in bsc#857204.
1 file changed, 6 insertions(+), 1 deletion(-) 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
index bf23c48662..c6e1953839 100644 index 4485e2e368..e0833a7179 100644
--- a/src/sysv-generator/sysv-generator.c --- a/src/sysv-generator/sysv-generator.c
+++ b/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 @@ -412,8 +412,13 @@ static int handle_dependencies(SysvStub *s, unsigned line, const char *full_text
return log_oom(); return log_oom();
r = strv_extend(&s->wants, m); r = strv_extend(&s->wants, m);
@ -38,5 +38,5 @@ index bf23c48662..c6e1953839 100644
return log_oom(); return log_oom();
} }
-- --
2.31.1 2.35.3

View File

@ -1,8 +1,7 @@
From dedd52f920cf7ae718bb31ac7286d3f7314540c6 Mon Sep 17 00:00:00 2001 From 745ab2ac0f5424b0c04d9c38234bb9babcbd90ef Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com> From: Franck Bui <fbui@suse.com>
Date: Fri, 10 Jun 2016 15:19:57 +0200 Date: Fri, 10 Jun 2016 15:19:57 +0200
Subject: [PATCH 09/11] pid1: handle console specificities/weirdness for s390 Subject: [PATCH] pid1: handle console specificities/weirdness for s390 arch
arch
The 3270 console on S/390 can do color but not the 3215 console. The 3270 console on S/390 can do color but not the 3215 console.
@ -30,10 +29,10 @@ whose $subject is "[PATCH] support conmode setting on command line".
1 file changed, 14 insertions(+), 1 deletion(-) 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/basic/terminal-util.c b/src/basic/terminal-util.c diff --git a/src/basic/terminal-util.c b/src/basic/terminal-util.c
index d769423d6e..1a65391146 100644 index 3355b749cc..e96b053217 100644
--- a/src/basic/terminal-util.c --- a/src/basic/terminal-util.c
+++ b/src/basic/terminal-util.c +++ b/src/basic/terminal-util.c
@@ -779,7 +779,20 @@ bool tty_is_vc_resolve(const char *tty) { @@ -784,7 +784,20 @@ bool tty_is_vc_resolve(const char *tty) {
} }
const char *default_term_for_tty(const char *tty) { const char *default_term_for_tty(const char *tty) {
@ -56,5 +55,5 @@ index d769423d6e..1a65391146 100644
int fd_columns(int fd) { int fd_columns(int fd) {
-- --
2.26.2 2.35.3

View File

@ -1,4 +1,4 @@
From 323274d5e7545013b09c280254879dcbf1430fbf Mon Sep 17 00:00:00 2001 From d624ceb7f2e6e286cf876f2ff9bf90532166c7f9 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com> From: Franck Bui <fbui@suse.com>
Date: Fri, 12 Jan 2024 10:54:57 +0100 Date: Fri, 12 Jan 2024 10:54:57 +0100
Subject: [PATCH 5001/5002] Revert "udev: update devlink with the newer device Subject: [PATCH 5001/5002] Revert "udev: update devlink with the newer device
@ -10,10 +10,10 @@ This reverts commit 277cb24ffb7a520f640eb36d11340f11bf0c7c4f.
1 file changed, 5 insertions(+), 5 deletions(-) 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c
index 74a70185bc..75845413cf 100644 index e12c26ce5a..6ba38087dc 100644
--- a/src/udev/udev-node.c --- a/src/udev/udev-node.c
+++ b/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) { @@ -467,13 +467,13 @@ static int link_update(sd_device *dev, const char *slink, bool add) {
/* The devlink priority is downgraded. Another device may have a higher /* The devlink priority is downgraded. Another device may have a higher
* priority now. Let's find the device node with the highest priority. */ * priority now. Let's find the device node with the highest priority. */
} else { } else {

View File

@ -1,4 +1,4 @@
From 65b0ae29194a335dc2cc1410d57acf7307251791 Mon Sep 17 00:00:00 2001 From 1861e68a986c39cfec3c7fe8a348d331d93800d7 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com> From: Franck Bui <fbui@suse.com>
Date: Fri, 12 Jan 2024 10:55:17 +0100 Date: Fri, 12 Jan 2024 10:55:17 +0100
Subject: [PATCH 5002/5002] Revert "udev: revert workarounds for issues caused Subject: [PATCH 5002/5002] Revert "udev: revert workarounds for issues caused
@ -10,7 +10,7 @@ This reverts commit b8fa62589271a0a7552c6eb02e6beac3ca759ba7.
1 file changed, 11 insertions(+) 1 file changed, 11 insertions(+)
diff --git a/rules.d/60-persistent-storage.rules.in b/rules.d/60-persistent-storage.rules.in diff --git a/rules.d/60-persistent-storage.rules.in b/rules.d/60-persistent-storage.rules.in
index 835263f3cb..d5e0f5f705 100644 index 6787430208..39a6555045 100644
--- a/rules.d/60-persistent-storage.rules.in --- a/rules.d/60-persistent-storage.rules.in
+++ b/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" @@ -134,6 +134,17 @@ KERNEL!="sr*|mmcblk[0-9]boot[0-9]", IMPORT{builtin}="blkid"

View File

@ -1,283 +0,0 @@
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

@ -1,31 +0,0 @@
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

@ -1,38 +0,0 @@
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

@ -1,7 +1,7 @@
From 9c86b2c20823dce7f8303648f7e8a8d76342d1d0 Mon Sep 17 00:00:00 2001 From 840527985f03a4327fc0fe78e45d889742601698 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com> From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Tue, 23 Jan 2024 11:30:17 +0100 Date: Fri, 11 Aug 2023 13:51:20 +0200
Subject: [PATCH 5006/5011] cgroup: Add EffectiveMemoryMax=, Subject: [PATCH 5006/5010] cgroup: Add EffectiveMemoryMax=,
EffectiveMemoryHigh= and EffectiveTasksMax= properties EffectiveMemoryHigh= and EffectiveTasksMax= properties
Users become perplexed when they run their workload in a unit with no Users become perplexed when they run their workload in a unit with no
@ -28,22 +28,21 @@ reason about outer setup. Complete solution would need kernel support.
(cherry picked from commit 4fb0d2dc140c9a2c01c236d2a8dc09a44157e896) (cherry picked from commit 4fb0d2dc140c9a2c01c236d2a8dc09a44157e896)
[mkoutny: adjust context, drop unapplicable XML]
[mkoutny: fixes jsc#PED-5659] [mkoutny: fixes jsc#PED-5659]
--- ---
man/org.freedesktop.systemd1.xml | 108 ++++++++++++++++++++++++++++++ man/org.freedesktop.systemd1.xml | 126 ++++++++++++++++++++++++++++++
man/systemd.resource-control.xml | 11 ++- man/systemd.resource-control.xml | 11 ++-
src/core/cgroup.c | 48 +++++++++++++ src/core/cgroup.c | 48 ++++++++++++
src/core/cgroup.h | 13 ++++ src/core/cgroup.h | 13 +++
src/core/dbus-unit.c | 25 +++++++ src/core/dbus-unit.c | 25 ++++++
src/shared/bus-print-properties.c | 6 +- src/shared/bus-print-properties.c | 6 +-
6 files changed, 206 insertions(+), 5 deletions(-) 6 files changed, 224 insertions(+), 5 deletions(-)
diff --git a/man/org.freedesktop.systemd1.xml b/man/org.freedesktop.systemd1.xml diff --git a/man/org.freedesktop.systemd1.xml b/man/org.freedesktop.systemd1.xml
index 2e357539fb..02db33626d 100644 index a1bcbba02f..59733c0039 100644
--- a/man/org.freedesktop.systemd1.xml --- a/man/org.freedesktop.systemd1.xml
+++ b/man/org.freedesktop.systemd1.xml +++ b/man/org.freedesktop.systemd1.xml
@@ -2716,6 +2716,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { @@ -2786,6 +2786,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...; readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -54,7 +53,7 @@ index 2e357539fb..02db33626d 100644
readonly t CPUUsageNSec = ...; readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...]; readonly ay EffectiveCPUs = [...];
@@ -2724,6 +2728,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { @@ -2794,6 +2798,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...; readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -63,9 +62,9 @@ index 2e357539fb..02db33626d 100644
readonly t IPIngressBytes = ...; readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...; readonly t IPIngressPackets = ...;
@@ -3335,6 +3341,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { @@ -3419,6 +3425,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<!--property MemoryCurrent is not documented!--> <!--property MemoryZSwapCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!--> + <!--property EffectiveMemoryMax is not documented!-->
+ +
@ -74,7 +73,7 @@ index 2e357539fb..02db33626d 100644
<!--property CPUUsageNSec is not documented!--> <!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!--> <!--property EffectiveCPUs is not documented!-->
@@ -3343,6 +3353,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { @@ -3427,6 +3437,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<!--property TasksCurrent is not documented!--> <!--property TasksCurrent is not documented!-->
@ -83,7 +82,7 @@ index 2e357539fb..02db33626d 100644
<!--property IPIngressBytes is not documented!--> <!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!--> <!--property IPIngressPackets is not documented!-->
@@ -3963,6 +3975,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { @@ -4061,6 +4073,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="MemoryAvailable"/>
@ -94,7 +93,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/> <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/> <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -3971,6 +3987,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { @@ -4069,6 +4085,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="TasksCurrent"/>
@ -103,7 +102,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -4748,6 +4766,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { @@ -4865,6 +4883,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...; readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -114,7 +113,7 @@ index 2e357539fb..02db33626d 100644
readonly t CPUUsageNSec = ...; readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...]; readonly ay EffectiveCPUs = [...];
@@ -4756,6 +4778,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { @@ -4873,6 +4895,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...; readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -123,9 +122,9 @@ index 2e357539fb..02db33626d 100644
readonly t IPIngressBytes = ...; readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...; readonly t IPIngressPackets = ...;
@@ -5377,6 +5401,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { @@ -5508,6 +5532,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<!--property MemoryCurrent is not documented!--> <!--property MemoryZSwapCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!--> + <!--property EffectiveMemoryMax is not documented!-->
+ +
@ -134,7 +133,7 @@ index 2e357539fb..02db33626d 100644
<!--property CPUUsageNSec is not documented!--> <!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!--> <!--property EffectiveCPUs is not documented!-->
@@ -5385,6 +5413,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { @@ -5516,6 +5544,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<!--property TasksCurrent is not documented!--> <!--property TasksCurrent is not documented!-->
@ -143,7 +142,7 @@ index 2e357539fb..02db33626d 100644
<!--property IPIngressBytes is not documented!--> <!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!--> <!--property IPIngressPackets is not documented!-->
@@ -5983,6 +6013,10 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { @@ -6132,6 +6162,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="MemoryAvailable"/>
@ -154,7 +153,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/> <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/> <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -5991,6 +6025,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { @@ -6140,6 +6174,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="TasksCurrent"/>
@ -163,7 +162,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -6643,6 +6679,10 @@ node /org/freedesktop/systemd1/unit/home_2emount { @@ -6810,6 +6846,10 @@ node /org/freedesktop/systemd1/unit/home_2emount {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...; readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -174,7 +173,7 @@ index 2e357539fb..02db33626d 100644
readonly t CPUUsageNSec = ...; readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...]; readonly ay EffectiveCPUs = [...];
@@ -6651,6 +6691,8 @@ node /org/freedesktop/systemd1/unit/home_2emount { @@ -6818,6 +6858,8 @@ node /org/freedesktop/systemd1/unit/home_2emount {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...; readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -183,9 +182,9 @@ index 2e357539fb..02db33626d 100644
readonly t IPIngressBytes = ...; readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...; readonly t IPIngressPackets = ...;
@@ -7200,6 +7242,10 @@ node /org/freedesktop/systemd1/unit/home_2emount { @@ -7381,6 +7423,10 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<!--property MemoryCurrent is not documented!--> <!--property MemoryZSwapCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!--> + <!--property EffectiveMemoryMax is not documented!-->
+ +
@ -194,7 +193,7 @@ index 2e357539fb..02db33626d 100644
<!--property CPUUsageNSec is not documented!--> <!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!--> <!--property EffectiveCPUs is not documented!-->
@@ -7208,6 +7254,8 @@ node /org/freedesktop/systemd1/unit/home_2emount { @@ -7389,6 +7435,8 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<!--property TasksCurrent is not documented!--> <!--property TasksCurrent is not documented!-->
@ -203,7 +202,7 @@ index 2e357539fb..02db33626d 100644
<!--property IPIngressBytes is not documented!--> <!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!--> <!--property IPIngressPackets is not documented!-->
@@ -7724,6 +7772,10 @@ node /org/freedesktop/systemd1/unit/home_2emount { @@ -7919,6 +7967,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="MemoryAvailable"/>
@ -214,7 +213,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/> <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/> <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -7732,6 +7784,8 @@ node /org/freedesktop/systemd1/unit/home_2emount { @@ -7927,6 +7979,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="TasksCurrent"/>
@ -223,7 +222,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -8511,6 +8565,10 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { @@ -8720,6 +8774,10 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...; readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -234,7 +233,7 @@ index 2e357539fb..02db33626d 100644
readonly t CPUUsageNSec = ...; readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...]; readonly ay EffectiveCPUs = [...];
@@ -8519,6 +8577,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { @@ -8728,6 +8786,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...; readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -243,9 +242,9 @@ index 2e357539fb..02db33626d 100644
readonly t IPIngressBytes = ...; readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...; readonly t IPIngressPackets = ...;
@@ -9054,6 +9114,10 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { @@ -9277,6 +9337,10 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<!--property MemoryCurrent is not documented!--> <!--property MemoryZSwapCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!--> + <!--property EffectiveMemoryMax is not documented!-->
+ +
@ -254,7 +253,7 @@ index 2e357539fb..02db33626d 100644
<!--property CPUUsageNSec is not documented!--> <!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!--> <!--property EffectiveCPUs is not documented!-->
@@ -9062,6 +9126,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { @@ -9285,6 +9349,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<!--property TasksCurrent is not documented!--> <!--property TasksCurrent is not documented!-->
@ -263,7 +262,7 @@ index 2e357539fb..02db33626d 100644
<!--property IPIngressBytes is not documented!--> <!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!--> <!--property IPIngressPackets is not documented!-->
@@ -9564,6 +9630,10 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { @@ -9801,6 +9867,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="MemoryAvailable"/>
@ -274,7 +273,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/> <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/> <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -9572,6 +9642,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { @@ -9809,6 +9879,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="TasksCurrent"/>
@ -283,7 +282,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -10210,6 +10282,10 @@ node /org/freedesktop/systemd1/unit/system_2eslice { @@ -10461,6 +10533,10 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...; readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -294,7 +293,7 @@ index 2e357539fb..02db33626d 100644
readonly t CPUUsageNSec = ...; readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...]; readonly ay EffectiveCPUs = [...];
@@ -10218,6 +10294,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice { @@ -10469,6 +10545,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...; readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -303,9 +302,9 @@ index 2e357539fb..02db33626d 100644
readonly t IPIngressBytes = ...; readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...; readonly t IPIngressPackets = ...;
@@ -10381,6 +10459,10 @@ node /org/freedesktop/systemd1/unit/system_2eslice { @@ -10644,6 +10722,10 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<!--property MemoryCurrent is not documented!--> <!--property MemoryZSwapCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!--> + <!--property EffectiveMemoryMax is not documented!-->
+ +
@ -314,7 +313,7 @@ index 2e357539fb..02db33626d 100644
<!--property CPUUsageNSec is not documented!--> <!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!--> <!--property EffectiveCPUs is not documented!-->
@@ -10389,6 +10471,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice { @@ -10652,6 +10734,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<!--property TasksCurrent is not documented!--> <!--property TasksCurrent is not documented!-->
@ -323,7 +322,7 @@ index 2e357539fb..02db33626d 100644
<!--property IPIngressBytes is not documented!--> <!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!--> <!--property IPIngressPackets is not documented!-->
@@ -10557,6 +10641,10 @@ node /org/freedesktop/systemd1/unit/system_2eslice { @@ -10832,6 +10916,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="MemoryAvailable"/>
@ -334,7 +333,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/> <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/> <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -10565,6 +10653,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice { @@ -10840,6 +10928,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="TasksCurrent"/>
@ -343,7 +342,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -10759,6 +10849,10 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { @@ -11046,6 +11136,10 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...; readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -354,7 +353,7 @@ index 2e357539fb..02db33626d 100644
readonly t CPUUsageNSec = ...; readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...]; readonly ay EffectiveCPUs = [...];
@@ -10767,6 +10861,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { @@ -11054,6 +11148,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t TasksCurrent = ...; readonly t TasksCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@ -363,9 +362,9 @@ index 2e357539fb..02db33626d 100644
readonly t IPIngressBytes = ...; readonly t IPIngressBytes = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false") @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t IPIngressPackets = ...; readonly t IPIngressPackets = ...;
@@ -10950,6 +11046,10 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { @@ -11249,6 +11345,10 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<!--property MemoryCurrent is not documented!--> <!--property MemoryZSwapCurrent is not documented!-->
+ <!--property EffectiveMemoryMax is not documented!--> + <!--property EffectiveMemoryMax is not documented!-->
+ +
@ -374,7 +373,7 @@ index 2e357539fb..02db33626d 100644
<!--property CPUUsageNSec is not documented!--> <!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!--> <!--property EffectiveCPUs is not documented!-->
@@ -10958,6 +11058,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { @@ -11257,6 +11357,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<!--property TasksCurrent is not documented!--> <!--property TasksCurrent is not documented!-->
@ -383,7 +382,7 @@ index 2e357539fb..02db33626d 100644
<!--property IPIngressBytes is not documented!--> <!--property IPIngressBytes is not documented!-->
<!--property IPIngressPackets is not documented!--> <!--property IPIngressPackets is not documented!-->
@@ -11156,6 +11258,10 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { @@ -11467,6 +11569,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="MemoryAvailable"/>
@ -394,7 +393,7 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/> <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/> <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@@ -11164,6 +11270,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { @@ -11475,6 +11581,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="TasksCurrent"/>
@ -403,11 +402,71 @@ index 2e357539fb..02db33626d 100644
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>
<variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/> <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>
@@ -11866,6 +11974,9 @@ $ gdbus introspect --system --dest org.freedesktop.systemd1 \
<varname>MemorySwapCurrent</varname>,
<varname>MemorySwapPeak</varname>, and
<varname>MemoryZSwapCurrent</varname> were added in version 255.</para>
+ <para><varname>EffectiveMemoryHigh</varname>,
+ <varname>EffectiveMemoryMax</varname>,
+ <varname>EffectiveTasksMax</varname> were added in version 256.</para>
</refsect2>
<refsect2>
<title>Socket Unit Objects</title>
@@ -11897,6 +12008,9 @@ $ gdbus introspect --system --dest org.freedesktop.systemd1 \
<varname>MemorySwapCurrent</varname>,
<varname>MemorySwapPeak</varname>, and
<varname>MemoryZSwapCurrent</varname> were added in version 255.</para>
+ <para><varname>EffectiveMemoryHigh</varname>,
+ <varname>EffectiveMemoryMax</varname>,
+ <varname>EffectiveTasksMax</varname> were added in version 256.</para>
</refsect2>
<refsect2>
<title>Mount Unit Objects</title>
@@ -11926,6 +12040,9 @@ $ gdbus introspect --system --dest org.freedesktop.systemd1 \
<varname>MemorySwapCurrent</varname>,
<varname>MemorySwapPeak</varname>, and
<varname>MemoryZSwapCurrent</varname> were added in version 255.</para>
+ <para><varname>EffectiveMemoryHigh</varname>,
+ <varname>EffectiveMemoryMax</varname>,
+ <varname>EffectiveTasksMax</varname> were added in version 256.</para>
</refsect2>
<refsect2>
<title>Swap Unit Objects</title>
@@ -11955,6 +12072,9 @@ $ gdbus introspect --system --dest org.freedesktop.systemd1 \
<varname>MemorySwapCurrent</varname>,
<varname>MemorySwapPeak</varname>, and
<varname>MemoryZSwapCurrent</varname> were added in version 255.</para>
+ <para><varname>EffectiveMemoryHigh</varname>,
+ <varname>EffectiveMemoryMax</varname>,
+ <varname>EffectiveTasksMax</varname> were added in version 256.</para>
</refsect2>
<refsect2>
<title>Slice Unit Objects</title>
@@ -11975,6 +12095,9 @@ $ gdbus introspect --system --dest org.freedesktop.systemd1 \
<varname>MemorySwapCurrent</varname>,
<varname>MemorySwapPeak</varname>, and
<varname>MemoryZSwapCurrent</varname> were added in version 255.</para>
+ <para><varname>EffectiveMemoryHigh</varname>,
+ <varname>EffectiveMemoryMax</varname>,
+ <varname>EffectiveTasksMax</varname> were added in version 256.</para>
</refsect2>
<refsect2>
<title>Scope Unit Objects</title>
@@ -11996,6 +12119,9 @@ $ gdbus introspect --system --dest org.freedesktop.systemd1 \
<varname>MemorySwapCurrent</varname>,
<varname>MemorySwapPeak</varname>, and
<varname>MemoryZSwapCurrent</varname> were added in version 255.</para>
+ <para><varname>EffectiveMemoryHigh</varname>,
+ <varname>EffectiveMemoryMax</varname>,
+ <varname>EffectiveTasksMax</varname> were added in version 256.</para>
</refsect2>
<refsect2>
<title>Job Objects</title>
diff --git a/man/systemd.resource-control.xml b/man/systemd.resource-control.xml diff --git a/man/systemd.resource-control.xml b/man/systemd.resource-control.xml
index 3c17efbe16..5b7900af87 100644 index 42f265c950..bd8b6a5719 100644
--- a/man/systemd.resource-control.xml --- a/man/systemd.resource-control.xml
+++ b/man/systemd.resource-control.xml +++ b/man/systemd.resource-control.xml
@@ -392,7 +392,9 @@ CPUWeight=20 DisableControllers=cpu / \ @@ -406,7 +406,9 @@ CPUWeight=20 DisableControllers=cpu / \
system. If assigned the system. If assigned the
special value <literal>infinity</literal>, no memory throttling is applied. This controls 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 <literal>memory.high</literal> control group attribute. For details about this control group attribute, see
@ -418,7 +477,7 @@ index 3c17efbe16..5b7900af87 100644
<para>While <varname>StartupMemoryHigh=</varname> applies to the startup and shutdown phases of the system, <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 <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 / \ @@ -434,7 +436,9 @@ CPUWeight=20 DisableControllers=cpu / \
percentage value may be specified, which is taken relative to the installed physical memory on the system. If 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 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 <literal>memory.max</literal> control group attribute. For details about this control group attribute, see
@ -429,7 +488,7 @@ index 3c17efbe16..5b7900af87 100644
<para>While <varname>StartupMemoryMax=</varname> applies to the startup and shutdown phases of the system, <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 <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 / \ @@ -560,7 +564,8 @@ CPUWeight=20 DisableControllers=cpu / \
limit is applied. This controls the <literal>pids.max</literal> control group attribute. For limit is applied. This controls the <literal>pids.max</literal> control group attribute. For
details about this control group attribute, the 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 url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#pid">pids controller
@ -440,10 +499,10 @@ index 3c17efbe16..5b7900af87 100644
<para>The system default for this setting may be controlled with <para>The system default for this setting may be controlled with
<varname>DefaultTasksMax=</varname> in <varname>DefaultTasksMax=</varname> in
diff --git a/src/core/cgroup.c b/src/core/cgroup.c diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index 5b7205a92e..0842036559 100644 index 61ac4df1a6..78ca67216a 100644
--- a/src/core/cgroup.c --- a/src/core/cgroup.c
+++ b/src/core/cgroup.c +++ b/src/core/cgroup.c
@@ -4000,6 +4000,46 @@ int unit_get_ip_accounting( @@ -4243,6 +4243,46 @@ int unit_get_ip_accounting(
return r; return r;
} }
@ -490,10 +549,10 @@ index 5b7205a92e..0842036559 100644
static int unit_get_io_accounting_raw(Unit *u, uint64_t ret[static _CGROUP_IO_ACCOUNTING_METRIC_MAX]) { 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] = { static const char *const field_names[_CGROUP_IO_ACCOUNTING_METRIC_MAX] = {
[CGROUP_IO_READ_BYTES] = "rbytes=", [CGROUP_IO_READ_BYTES] = "rbytes=",
@@ -4418,3 +4458,11 @@ static const char* const cgroup_pressure_watch_table[_CGROUP_PRESSURE_WATCH_MAX] @@ -4663,3 +4703,11 @@ static const char* const cgroup_memory_accounting_metric_table[_CGROUP_MEMORY_AC
}; };
DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(cgroup_pressure_watch, CGroupPressureWatch, CGROUP_PRESSURE_WATCH_ON); DEFINE_STRING_TABLE_LOOKUP(cgroup_memory_accounting_metric, CGroupMemoryAccountingMetric);
+ +
+static const char *const cgroup_limit_type_table[_CGROUP_LIMIT_TYPE_MAX] = { +static const char *const cgroup_limit_type_table[_CGROUP_LIMIT_TYPE_MAX] = {
+ [CGROUP_LIMIT_MEMORY_MAX] = "EffectiveMemoryMax", + [CGROUP_LIMIT_MEMORY_MAX] = "EffectiveMemoryMax",
@ -503,12 +562,12 @@ index 5b7205a92e..0842036559 100644
+ +
+DEFINE_STRING_TABLE_LOOKUP(cgroup_limit_type, CGroupLimitType); +DEFINE_STRING_TABLE_LOOKUP(cgroup_limit_type, CGroupLimitType);
diff --git a/src/core/cgroup.h b/src/core/cgroup.h diff --git a/src/core/cgroup.h b/src/core/cgroup.h
index 486957b545..a19a2fffa3 100644 index f1b674b4b7..54bce91ea1 100644
--- a/src/core/cgroup.h --- a/src/core/cgroup.h
+++ b/src/core/cgroup.h +++ b/src/core/cgroup.h
@@ -245,6 +245,15 @@ typedef enum CGroupIOAccountingMetric { @@ -276,6 +276,15 @@ typedef enum CGroupMemoryAccountingMetric {
_CGROUP_IO_ACCOUNTING_METRIC_INVALID = -EINVAL, _CGROUP_MEMORY_ACCOUNTING_METRIC_INVALID = -EINVAL,
} CGroupIOAccountingMetric; } CGroupMemoryAccountingMetric;
+/* Used for limits whose value sets have infimum */ +/* Used for limits whose value sets have infimum */
+typedef enum CGroupLimitType { +typedef enum CGroupLimitType {
@ -521,27 +580,29 @@ index 486957b545..a19a2fffa3 100644
+ +
typedef struct Unit Unit; typedef struct Unit Unit;
typedef struct Manager Manager; typedef struct Manager Manager;
typedef enum ManagerState ManagerState;
@@ -337,6 +346,7 @@ int unit_get_tasks_current(Unit *u, uint64_t *ret); @@ -374,6 +383,7 @@ int unit_get_tasks_current(Unit *u, uint64_t *ret);
int unit_get_cpu_usage(Unit *u, nsec_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_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_ip_accounting(Unit *u, CGroupIPAccountingMetric metric, uint64_t *ret);
+int unit_get_effective_limit(Unit *u, CGroupLimitType type, 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_cpu_accounting(Unit *u);
int unit_reset_ip_accounting(Unit *u); void unit_reset_memory_accounting_last(Unit *u);
@@ -378,3 +388,6 @@ FreezerAction freezer_action_from_string(const char *s) _pure_; @@ -425,5 +435,8 @@ CGroupIPAccountingMetric cgroup_ip_accounting_metric_from_string(const char *s)
const char* cgroup_io_accounting_metric_to_string(CGroupIOAccountingMetric m) _const_;
CGroupIOAccountingMetric cgroup_io_accounting_metric_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_; +const char* cgroup_limit_type_to_string(CGroupLimitType m) _const_;
+CGroupLimitType cgroup_limit_type_from_string(const char *s) _pure_; +CGroupLimitType cgroup_limit_type_from_string(const char *s) _pure_;
+
const char* cgroup_memory_accounting_metric_to_string(CGroupMemoryAccountingMetric m) _const_;
CGroupMemoryAccountingMetric cgroup_memory_accounting_metric_from_string(const char *s) _pure_;
diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c
index ed376cec87..b4509a990e 100644 index 1a037b7035..ac6add4700 100644
--- a/src/core/dbus-unit.c --- a/src/core/dbus-unit.c
+++ b/src/core/dbus-unit.c +++ b/src/core/dbus-unit.c
@@ -1438,6 +1438,28 @@ static int property_get_io_counter( @@ -1441,6 +1441,28 @@ static int property_get_io_counter(
return sd_bus_message_append(reply, "t", value); return sd_bus_message_append(reply, "t", value);
} }
@ -568,11 +629,11 @@ index ed376cec87..b4509a990e 100644
+} +}
+ +
int bus_unit_method_attach_processes(sd_bus_message *message, void *userdata, sd_bus_error *error) { 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; _cleanup_(sd_bus_creds_unrefp) sd_bus_creds *creds = NULL;
@@ -1557,10 +1579,13 @@ const sd_bus_vtable bus_unit_cgroup_vtable[] = { _cleanup_set_free_ Set *pids = NULL;
SD_BUS_PROPERTY("ControlGroupId", "t", NULL, offsetof(Unit, cgroup_id), 0), @@ -1562,10 +1584,13 @@ const sd_bus_vtable bus_unit_cgroup_vtable[] = {
SD_BUS_PROPERTY("MemoryCurrent", "t", property_get_current_memory, 0, 0), SD_BUS_PROPERTY("MemorySwapPeak", "t", property_get_memory_accounting, 0, 0),
SD_BUS_PROPERTY("MemoryZSwapCurrent", "t", property_get_memory_accounting, 0, 0),
SD_BUS_PROPERTY("MemoryAvailable", "t", property_get_available_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("EffectiveMemoryMax", "t", property_get_effective_limit, 0, 0),
+ SD_BUS_PROPERTY("EffectiveMemoryHigh", "t", property_get_effective_limit, 0, 0), + SD_BUS_PROPERTY("EffectiveMemoryHigh", "t", property_get_effective_limit, 0, 0),
@ -585,7 +646,7 @@ index ed376cec87..b4509a990e 100644
SD_BUS_PROPERTY("IPIngressPackets", "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), 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 diff --git a/src/shared/bus-print-properties.c b/src/shared/bus-print-properties.c
index f74d8994ad..62bbc598bb 100644 index 6704e1ef3d..99b1cc7c70 100644
--- a/src/shared/bus-print-properties.c --- a/src/shared/bus-print-properties.c
+++ b/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 @@ -164,9 +164,11 @@ static int bus_print_property(const char *name, const char *expected_value, sd_b

View File

@ -1,7 +1,7 @@
From 46451a18828473edaf7e9873a084f26f0c827a3d Mon Sep 17 00:00:00 2001 From 207784eeaab0c274dc087056f20523d7c10939fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com> From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Tue, 23 Jan 2024 11:30:18 +0100 Date: Wed, 9 Aug 2023 22:42:36 +0200
Subject: [PATCH 5007/5011] test: Convert rlimit test to subtest of generic Subject: [PATCH 5007/5010] test: Convert rlimit test to subtest of generic
limit testing limit testing
No functional change intended. Preparation for new tests. No functional change intended. Preparation for new tests.

View File

@ -1,7 +1,7 @@
From d0c92dae23e409f6a29f70f039455c08610c943f Mon Sep 17 00:00:00 2001 From 10d8f042c0bf685d41b95d7151214999a8ff68c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com> From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Tue, 23 Jan 2024 11:30:19 +0100 Date: Wed, 9 Aug 2023 22:43:31 +0200
Subject: [PATCH 5008/5011] test: Add effective cgroup limits testing Subject: [PATCH 5008/5010] test: Add effective cgroup limits testing
(cherry picked from commit ce35bb95c7b6fe9a48d2b8628bd690279b17fffa) (cherry picked from commit ce35bb95c7b6fe9a48d2b8628bd690279b17fffa)
@ -87,10 +87,10 @@ index 0000000000..3ff8e83140
+ +
+rm -f /run/systemd/system/"$pre"* || : +rm -f /run/systemd/system/"$pre"* || :
diff --git a/test/units/util.sh b/test/units/util.sh diff --git a/test/units/util.sh b/test/units/util.sh
index 932fe1e603..7af98bb45e 100755 index b5ed73237c..567cda2845 100755
--- a/test/units/util.sh --- a/test/units/util.sh
+++ b/test/units/util.sh +++ b/test/units/util.sh
@@ -26,6 +26,15 @@ assert_eq() {( @@ -28,6 +28,15 @@ assert_eq() {(
fi fi
)} )}

View File

@ -1,7 +1,7 @@
From edfd70ab2c5490131fcf5a4348e31c19251d3479 Mon Sep 17 00:00:00 2001 From 355275a7708d09f7be27ea239478cb3c6defbb9a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com> From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Tue, 23 Jan 2024 11:30:20 +0100 Date: Mon, 14 Aug 2023 19:59:57 +0200
Subject: [PATCH 5009/5011] cgroup: Restrict effective limits with global Subject: [PATCH 5009/5010] cgroup: Restrict effective limits with global
resource provision resource provision
Global resource (whole system or root cg's (e.g. in a container)) is Global resource (whole system or root cg's (e.g. in a container)) is
@ -17,10 +17,10 @@ when calculating effective limits.
2 files changed, 12 insertions(+), 1 deletion(-) 2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/man/systemd.resource-control.xml b/man/systemd.resource-control.xml diff --git a/man/systemd.resource-control.xml b/man/systemd.resource-control.xml
index 5b7900af87..ded4722e7a 100644 index bd8b6a5719..c2aa5b57e8 100644
--- a/man/systemd.resource-control.xml --- a/man/systemd.resource-control.xml
+++ b/man/systemd.resource-control.xml +++ b/man/systemd.resource-control.xml
@@ -422,7 +422,7 @@ CPUWeight=20 DisableControllers=cpu / \ @@ -438,7 +438,7 @@ CPUWeight=20 DisableControllers=cpu / \
<literal>memory.max</literal> control group attribute. For details about this control group attribute, see <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>. <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 effective configuration is reported as <varname>EffectiveMemoryMax=</varname> (the value is
@ -30,10 +30,10 @@ index 5b7900af87..ded4722e7a 100644
<para>While <varname>StartupMemoryMax=</varname> applies to the startup and shutdown phases of the system, <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 <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 diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index 0842036559..a53d90486c 100644 index 78ca67216a..285fa200d6 100644
--- a/src/core/cgroup.c --- a/src/core/cgroup.c
+++ b/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) { @@ -4249,6 +4249,17 @@ static uint64_t unit_get_effective_limit_one(Unit *u, CGroupLimitType type) {
assert(u); assert(u);
assert(UNIT_HAS_CGROUP_CONTEXT(u)); assert(UNIT_HAS_CGROUP_CONTEXT(u));

View File

@ -1,7 +1,7 @@
From 0c3448f0e341e3e1f23722e4275c4fdd4062d280 Mon Sep 17 00:00:00 2001 From ae7d09f074e554a241ba66a2dee2a0cb4b3a0162 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com> From: =?UTF-8?q?Michal=20Koutn=C3=BD?= <mkoutny@suse.com>
Date: Tue, 23 Jan 2024 11:30:21 +0100 Date: Mon, 22 Jan 2024 16:58:18 +0100
Subject: [PATCH 5010/5011] cgroup: Rename effective limits internal table Subject: [PATCH 5010/5010] cgroup: Rename effective limits internal table
Post-merge fixup of commit 4fb0d2dc14 ("cgroup: Add EffectiveMemoryMax=, Post-merge fixup of commit 4fb0d2dc14 ("cgroup: Add EffectiveMemoryMax=,
EffectiveMemoryHigh= and EffectiveTasksMax= properties"), no functional EffectiveMemoryHigh= and EffectiveTasksMax= properties"), no functional
@ -9,7 +9,6 @@ change intended.
(cherry picked from commit 8ad614890bba66b5f6b590d6a3e1b8b04a920126) (cherry picked from commit 8ad614890bba66b5f6b590d6a3e1b8b04a920126)
[mkoutny: adjust context]
[mkoutny: fixes jsc#PED-5659] [mkoutny: fixes jsc#PED-5659]
--- ---
src/core/cgroup.c | 4 ++-- src/core/cgroup.c | 4 ++--
@ -18,12 +17,12 @@ change intended.
3 files changed, 5 insertions(+), 5 deletions(-) 3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/core/cgroup.c b/src/core/cgroup.c diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index a53d90486c..2d8d61a26d 100644 index 285fa200d6..0c30aefe80 100644
--- a/src/core/cgroup.c --- a/src/core/cgroup.c
+++ b/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] @@ -4715,10 +4715,10 @@ static const char* const cgroup_memory_accounting_metric_table[_CGROUP_MEMORY_AC
DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(cgroup_pressure_watch, CGroupPressureWatch, CGROUP_PRESSURE_WATCH_ON); DEFINE_STRING_TABLE_LOOKUP(cgroup_memory_accounting_metric, CGroupMemoryAccountingMetric);
-static const char *const cgroup_limit_type_table[_CGROUP_LIMIT_TYPE_MAX] = { -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] = { +static const char *const cgroup_effective_limit_type_table[_CGROUP_LIMIT_TYPE_MAX] = {
@ -35,22 +34,25 @@ index a53d90486c..2d8d61a26d 100644
-DEFINE_STRING_TABLE_LOOKUP(cgroup_limit_type, CGroupLimitType); -DEFINE_STRING_TABLE_LOOKUP(cgroup_limit_type, CGroupLimitType);
+DEFINE_STRING_TABLE_LOOKUP(cgroup_effective_limit_type, CGroupLimitType); +DEFINE_STRING_TABLE_LOOKUP(cgroup_effective_limit_type, CGroupLimitType);
diff --git a/src/core/cgroup.h b/src/core/cgroup.h diff --git a/src/core/cgroup.h b/src/core/cgroup.h
index a19a2fffa3..9ff650abcf 100644 index 54bce91ea1..6e3d05b7d2 100644
--- a/src/core/cgroup.h --- a/src/core/cgroup.h
+++ b/src/core/cgroup.h +++ b/src/core/cgroup.h
@@ -389,5 +389,5 @@ FreezerAction freezer_action_from_string(const char *s) _pure_; @@ -435,8 +435,8 @@ CGroupIPAccountingMetric cgroup_ip_accounting_metric_from_string(const char *s)
const char* cgroup_pressure_watch_to_string(CGroupPressureWatch a) _const_; const char* cgroup_io_accounting_metric_to_string(CGroupIOAccountingMetric m) _const_;
CGroupPressureWatch cgroup_pressure_watch_from_string(const char *s) _pure_; CGroupIOAccountingMetric cgroup_io_accounting_metric_from_string(const char *s) _pure_;
-const char* cgroup_limit_type_to_string(CGroupLimitType m) _const_; -const char* cgroup_limit_type_to_string(CGroupLimitType m) _const_;
-CGroupLimitType cgroup_limit_type_from_string(const char *s) _pure_; -CGroupLimitType cgroup_limit_type_from_string(const char *s) _pure_;
+const char* cgroup_effective_limit_type_to_string(CGroupLimitType m) _const_; +const char* cgroup_effective_limit_type_to_string(CGroupLimitType m) _const_;
+CGroupLimitType cgroup_effective_limit_type_from_string(const char *s) _pure_; +CGroupLimitType cgroup_effective_limit_type_from_string(const char *s) _pure_;
const char* cgroup_memory_accounting_metric_to_string(CGroupMemoryAccountingMetric m) _const_;
CGroupMemoryAccountingMetric cgroup_memory_accounting_metric_from_string(const char *s) _pure_;
diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c
index b4509a990e..da22e8f524 100644 index ac6add4700..bb19831814 100644
--- a/src/core/dbus-unit.c --- a/src/core/dbus-unit.c
+++ b/src/core/dbus-unit.c +++ b/src/core/dbus-unit.c
@@ -1455,7 +1455,7 @@ static int property_get_effective_limit( @@ -1458,7 +1458,7 @@ static int property_get_effective_limit(
assert(reply); assert(reply);
assert(property); assert(property);

View File

@ -558,6 +558,7 @@
%{_mandir}/man3/sd_hwdb_unref.3.gz %{_mandir}/man3/sd_hwdb_unref.3.gz
%{_mandir}/man3/sd_id128_equal.3.gz %{_mandir}/man3/sd_id128_equal.3.gz
%{_mandir}/man3/sd_id128_from_string.3.gz %{_mandir}/man3/sd_id128_from_string.3.gz
%{_mandir}/man3/sd_id128_get_app_specific.3.gz
%{_mandir}/man3/sd_id128_get_boot.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_boot_app_specific.3.gz
%{_mandir}/man3/sd_id128_get_invocation.3.gz %{_mandir}/man3/sd_id128_get_invocation.3.gz

View File

@ -15,8 +15,8 @@
%{_datadir}/dbus-1/system.d/org.freedesktop.oom1.conf %{_datadir}/dbus-1/system.d/org.freedesktop.oom1.conf
%{_datadir}/zsh/site-functions/_oomctl %{_datadir}/zsh/site-functions/_oomctl
%{_mandir}/man1/oomctl.1.gz %{_mandir}/man1/oomctl.1.gz
%if %{with sd_boot}
%{_mandir}/man1/systemd-measure.1.gz %{_mandir}/man1/systemd-measure.1.gz
%if %{with sd_boot}
%{_mandir}/man1/ukify.1.gz %{_mandir}/man1/ukify.1.gz
%endif %endif
%{_mandir}/man5/oomd.conf.5.gz %{_mandir}/man5/oomd.conf.5.gz
@ -27,16 +27,12 @@
%{_mandir}/man8/systemd-oomd.8.gz %{_mandir}/man8/systemd-oomd.8.gz
%{_mandir}/man8/systemd-oomd.service.8.gz %{_mandir}/man8/systemd-oomd.service.8.gz
%if %{with sd_boot} %if %{with sd_boot}
%{_mandir}/man8/systemd-pcrextend.8.gz
%{_mandir}/man8/systemd-pcrfs-root.service.8.gz %{_mandir}/man8/systemd-pcrfs-root.service.8.gz
%{_mandir}/man8/systemd-pcrfs@.service.8.gz %{_mandir}/man8/systemd-pcrfs@.service.8.gz
%{_mandir}/man8/systemd-pcrmachine.service.8.gz %{_mandir}/man8/systemd-pcrmachine.service.8.gz
%{_mandir}/man8/systemd-pcrphase-initrd.service.8.gz %{_mandir}/man8/systemd-pcrphase-initrd.service.8.gz
%{_mandir}/man8/systemd-pcrphase-sysinit.service.8.gz %{_mandir}/man8/systemd-pcrphase-sysinit.service.8.gz
%if %{with upstream}
%{_mandir}/man8/systemd-pcrextend.8.gz
%else
%{_mandir}/man8/systemd-pcrphase.8.gz
%endif
%{_mandir}/man8/systemd-pcrphase.service.8.gz %{_mandir}/man8/systemd-pcrphase.service.8.gz
%endif %endif
%{_mandir}/man8/systemd-repart.8.gz %{_mandir}/man8/systemd-repart.8.gz
@ -52,21 +48,16 @@
%{_systemd_util_dir}/oomd.conf %{_systemd_util_dir}/oomd.conf
%{_systemd_util_dir}/system/initrd-root-fs.target.wants/systemd-repart.service %{_systemd_util_dir}/system/initrd-root-fs.target.wants/systemd-repart.service
%{_systemd_util_dir}/system/sysinit.target.wants/systemd-repart.service %{_systemd_util_dir}/system/sysinit.target.wants/systemd-repart.service
%if %{with sd_boot}
%{_systemd_util_dir}/systemd-measure %{_systemd_util_dir}/systemd-measure
%endif
%{_systemd_util_dir}/systemd-oomd %{_systemd_util_dir}/systemd-oomd
%if %{with sd_boot} %if %{with sd_boot}
%if %{with upstream}
%{_systemd_util_dir}/systemd-pcrextend %{_systemd_util_dir}/systemd-pcrextend
%else
%{_systemd_util_dir}/systemd-pcrphase
%endif
%endif %endif
%{_systemd_util_dir}/systemd-sysupdate %{_systemd_util_dir}/systemd-sysupdate
%{_systemd_util_dir}/systemd-userwork %{_systemd_util_dir}/systemd-userwork
%if %{with sd_boot} %if %{with sd_boot}
%{_systemd_util_dir}/ukify %{_systemd_util_dir}/ukify
%{_bindir}/ukify
%endif %endif
%{_sysusersdir}/systemd-oom.conf %{_sysusersdir}/systemd-oom.conf
%if %{with sd_boot} %if %{with sd_boot}
@ -90,3 +81,89 @@
%{_unitdir}/systemd-sysupdate-reboot.timer %{_unitdir}/systemd-sysupdate-reboot.timer
%{_unitdir}/systemd-sysupdate.service %{_unitdir}/systemd-sysupdate.service
%{_unitdir}/systemd-sysupdate.timer %{_unitdir}/systemd-sysupdate.timer
%{_prefix}/lib/pcrlock.d/350-action-efi-application.pcrlock
%{_prefix}/lib/pcrlock.d/400-secureboot-separator.pcrlock.d/300-0x00000000.pcrlock
%{_prefix}/lib/pcrlock.d/400-secureboot-separator.pcrlock.d/600-0xffffffff.pcrlock
%{_prefix}/lib/pcrlock.d/500-separator.pcrlock.d/300-0x00000000.pcrlock
%{_prefix}/lib/pcrlock.d/500-separator.pcrlock.d/600-0xffffffff.pcrlock
%{_prefix}/lib/pcrlock.d/700-action-efi-exit-boot-services.pcrlock.d/300-present.pcrlock
%{_prefix}/lib/pcrlock.d/700-action-efi-exit-boot-services.pcrlock.d/600-absent.pcrlock
%{_prefix}/lib/pcrlock.d/750-enter-initrd.pcrlock
%{_prefix}/lib/pcrlock.d/800-leave-initrd.pcrlock
%{_prefix}/lib/pcrlock.d/850-sysinit.pcrlock
%{_prefix}/lib/pcrlock.d/900-ready.pcrlock
%{_prefix}/lib/pcrlock.d/950-shutdown.pcrlock
%{_prefix}/lib/pcrlock.d/990-final.pcrlock
%{_mandir}/man5/systemd.pcrlock.5.gz
%{_mandir}/man5/systemd.pcrlock.d.5.gz
%{_mandir}/man8/systemd-pcrlock-file-system.service.8.gz
%{_mandir}/man8/systemd-pcrlock-firmware-code.service.8.gz
%{_mandir}/man8/systemd-pcrlock-firmware-config.service.8.gz
%{_mandir}/man8/systemd-pcrlock-machine-id.service.8.gz
%{_mandir}/man8/systemd-pcrlock-make-policy.service.8.gz
%{_mandir}/man8/systemd-pcrlock-secureboot-authority.service.8.gz
%{_mandir}/man8/systemd-pcrlock-secureboot-policy.service.8.gz
%{_mandir}/man8/systemd-pcrlock.8.gz
%if %{with sd_boot}
%{_unitdir}/systemd-pcrextend.socket
%{_unitdir}/systemd-pcrextend@.service
%{_unitdir}/sockets.target.wants/systemd-pcrextend.socket
%{_unitdir}/systemd-pcrlock-file-system.service
%{_unitdir}/systemd-pcrlock-firmware-code.service
%{_unitdir}/systemd-pcrlock-firmware-config.service
%{_unitdir}/systemd-pcrlock-machine-id.service
%{_unitdir}/systemd-pcrlock-make-policy.service
%{_unitdir}/systemd-pcrlock-secureboot-authority.service
%{_unitdir}/systemd-pcrlock-secureboot-policy.service
%endif
%{_systemd_util_dir}/systemd-pcrlock
%{_systemd_util_dir}/repart/definitions/confext.repart.d/10-root.conf
%{_systemd_util_dir}/repart/definitions/confext.repart.d/20-root-verity.conf
%{_systemd_util_dir}/repart/definitions/confext.repart.d/30-root-verity-sig.conf
%{_systemd_util_dir}/repart/definitions/portable.repart.d/10-root.conf
%{_systemd_util_dir}/repart/definitions/portable.repart.d/20-root-verity.conf
%{_systemd_util_dir}/repart/definitions/portable.repart.d/30-root-verity-sig.conf
%{_systemd_util_dir}/repart/definitions/sysext.repart.d/10-root.conf
%{_systemd_util_dir}/repart/definitions/sysext.repart.d/20-root-verity.conf
%{_systemd_util_dir}/repart/definitions/sysext.repart.d/30-root-verity-sig.conf
%{_mandir}/man8/systemd-storagetm.8.gz
%{_mandir}/man8/systemd-storagetm.service.8.gz
%{_unitdir}/systemd-storagetm.service
%{_unitdir}/storage-target-mode.target
%{_systemd_util_dir}/systemd-storagetm
%{_unitdir}/initrd.target.wants/systemd-bsod.service
%{_systemd_util_dir}/systemd-bsod
%{_unitdir}/systemd-bsod.service
%{_mandir}/man8/systemd-bsod.8.gz
%{_mandir}/man8/systemd-bsod.service.8.gz
%{_bindir}/varlinkctl
%{_mandir}/man1/varlinkctl.1.gz
%{_bindir}/systemd-vmspawn
%{_mandir}/man1/systemd-vmspawn.1.gz
%dir %{_prefix}/lib/pcrlock.d
%dir %{_prefix}/lib/pcrlock.d/400-secureboot-separator.pcrlock.d
%dir %{_prefix}/lib/pcrlock.d/500-separator.pcrlock.d
%dir %{_prefix}/lib/pcrlock.d/700-action-efi-exit-boot-services.pcrlock.d
%dir %{_systemd_util_dir}/repart
%dir %{_systemd_util_dir}/repart/definitions
%dir %{_systemd_util_dir}/repart/definitions/confext.repart.d
%dir %{_systemd_util_dir}/repart/definitions/portable.repart.d
%dir %{_systemd_util_dir}/repart/definitions/sysext.repart.d
%if %{with sd_boot}
%{_unitdir}/sysinit.target.wants/systemd-tpm2-setup-early.service
%{_unitdir}/sysinit.target.wants/systemd-tpm2-setup.service
%{_unitdir}/systemd-tpm2-setup-early.service
%{_unitdir}/systemd-tpm2-setup.service
%{_systemd_util_dir}/systemd-tpm2-setup
%{_mandir}/man8/systemd-tpm2-setup-early.service.8.gz
%{_mandir}/man8/systemd-tpm2-setup.8.gz
%{_mandir}/man8/systemd-tpm2-setup.service.8.gz
%endif

View File

@ -8,6 +8,8 @@
%{_bindir}/networkctl %{_bindir}/networkctl
%{_datadir}/bash-completion/completions/networkctl %{_datadir}/bash-completion/completions/networkctl
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.DHCPServer.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.network1.DHCPServer.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.DHCPv4Client.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.DHCPv6Client.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.Link.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.Manager.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.network1.Network.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.network1.Network.xml
@ -27,19 +29,16 @@
%{_mandir}/man8/systemd-networkd.8.gz %{_mandir}/man8/systemd-networkd.8.gz
%{_mandir}/man8/systemd-networkd.service.8.gz %{_mandir}/man8/systemd-networkd.service.8.gz
%{_systemd_util_dir}/network/80-6rd-tunnel.network %{_systemd_util_dir}/network/80-6rd-tunnel.network
%{_systemd_util_dir}/network/80-auto-link-local.network.example
%{_systemd_util_dir}/network/80-container-host0.network %{_systemd_util_dir}/network/80-container-host0.network
%{_systemd_util_dir}/network/80-container-vb.network %{_systemd_util_dir}/network/80-container-vb.network
%{_systemd_util_dir}/network/80-container-ve.network %{_systemd_util_dir}/network/80-container-ve.network
%{_systemd_util_dir}/network/80-container-vz.network %{_systemd_util_dir}/network/80-container-vz.network
%if %{with upstream}
%{_systemd_util_dir}/network/89-ethernet.network.example
%else
%{_systemd_util_dir}/network/80-ethernet.network.example
%endif
%{_systemd_util_dir}/network/80-vm-vt.network %{_systemd_util_dir}/network/80-vm-vt.network
%{_systemd_util_dir}/network/80-wifi-adhoc.network %{_systemd_util_dir}/network/80-wifi-adhoc.network
%{_systemd_util_dir}/network/80-wifi-ap.network.example %{_systemd_util_dir}/network/80-wifi-ap.network.example
%{_systemd_util_dir}/network/80-wifi-station.network.example %{_systemd_util_dir}/network/80-wifi-station.network.example
%{_systemd_util_dir}/network/89-ethernet.network.example
%{_systemd_util_dir}/networkd.conf %{_systemd_util_dir}/networkd.conf
%{_systemd_util_dir}/systemd-networkd %{_systemd_util_dir}/systemd-networkd
%{_systemd_util_dir}/systemd-networkd-wait-online %{_systemd_util_dir}/systemd-networkd-wait-online

View File

@ -1,6 +1,7 @@
# #
# Please keep the list sorted (with `LC_ALL=C sort`). # Please keep the list sorted (with `LC_ALL=C sort`).
# #
%dir %{_binfmtdir} %dir %{_binfmtdir}
%if %{without bootstrap} %if %{without bootstrap}
%dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion
@ -209,8 +210,8 @@
%{_libdir}/libnss_myhostname.so.2 %{_libdir}/libnss_myhostname.so.2
%{_libdir}/libnss_systemd.so.2 %{_libdir}/libnss_systemd.so.2
%endif %endif
%{_libdir}/systemd/libsystemd-core-*.so %{_libdir}/systemd/libsystemd-core-%{systemd_major}.so
%{_libdir}/systemd/libsystemd-shared-*.so %{_libdir}/systemd/libsystemd-shared-%{systemd_major}.so
%if %{without bootstrap} %if %{without bootstrap}
%{_mandir}/man1/busctl.1.gz %{_mandir}/man1/busctl.1.gz
%{_mandir}/man1/hostnamectl.1.gz %{_mandir}/man1/hostnamectl.1.gz
@ -323,6 +324,7 @@
%{_mandir}/man8/nss-myhostname.8.gz %{_mandir}/man8/nss-myhostname.8.gz
%{_mandir}/man8/nss-systemd.8.gz %{_mandir}/man8/nss-systemd.8.gz
%{_mandir}/man8/pam_systemd.8.gz %{_mandir}/man8/pam_systemd.8.gz
%{_mandir}/man8/pam_systemd_loadkey.8.gz
%{_mandir}/man8/poweroff.8.gz %{_mandir}/man8/poweroff.8.gz
%{_mandir}/man8/reboot.8.gz %{_mandir}/man8/reboot.8.gz
%{_mandir}/man8/shutdown.8.gz %{_mandir}/man8/shutdown.8.gz
@ -392,6 +394,7 @@
%endif %endif
%{_modprobedir}/systemd.conf %{_modprobedir}/systemd.conf
%{_pam_moduledir}/pam_systemd.so %{_pam_moduledir}/pam_systemd.so
%{_pam_moduledir}/pam_systemd_loadkey.so
%{_pam_vendordir}/systemd-user %{_pam_vendordir}/systemd-user
%{_sbindir}/halt %{_sbindir}/halt
%{_sbindir}/init %{_sbindir}/init
@ -411,6 +414,7 @@
%{_systemd_util_dir}/systemd-binfmt %{_systemd_util_dir}/systemd-binfmt
%{_systemd_util_dir}/systemd-boot-check-no-failures %{_systemd_util_dir}/systemd-boot-check-no-failures
%{_systemd_util_dir}/systemd-cgroups-agent %{_systemd_util_dir}/systemd-cgroups-agent
%{_systemd_util_dir}/systemd-executor
%{_systemd_util_dir}/systemd-hostnamed %{_systemd_util_dir}/systemd-hostnamed
%{_systemd_util_dir}/systemd-journald %{_systemd_util_dir}/systemd-journald
%{_systemd_util_dir}/systemd-localed %{_systemd_util_dir}/systemd-localed
@ -546,6 +550,7 @@
%{_unitdir}/sockets.target %{_unitdir}/sockets.target
%{_unitdir}/sockets.target.wants/systemd-journald-dev-log.socket %{_unitdir}/sockets.target.wants/systemd-journald-dev-log.socket
%{_unitdir}/sockets.target.wants/systemd-journald.socket %{_unitdir}/sockets.target.wants/systemd-journald.socket
%{_unitdir}/sockets.target.wants/systemd-sysext.socket
%{_unitdir}/soft-reboot.target %{_unitdir}/soft-reboot.target
%{_unitdir}/sound.target %{_unitdir}/sound.target
%{_unitdir}/swap.target %{_unitdir}/swap.target
@ -607,6 +612,8 @@
%{_unitdir}/systemd-soft-reboot.service %{_unitdir}/systemd-soft-reboot.service
%{_unitdir}/systemd-sysctl.service %{_unitdir}/systemd-sysctl.service
%{_unitdir}/systemd-sysext.service %{_unitdir}/systemd-sysext.service
%{_unitdir}/systemd-sysext.socket
%{_unitdir}/systemd-sysext@.service
%{_unitdir}/systemd-sysusers.service %{_unitdir}/systemd-sysusers.service
%{_unitdir}/systemd-time-wait-sync.service %{_unitdir}/systemd-time-wait-sync.service
%{_unitdir}/systemd-timedated.service %{_unitdir}/systemd-timedated.service

View File

@ -33,13 +33,16 @@
%ghost %attr(644, root, root) %{_prefix}/lib/udev/compat-symlink-generation %ghost %attr(644, root, root) %{_prefix}/lib/udev/compat-symlink-generation
%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf %ghost %config(noreplace) %{_sysconfdir}/vconsole.conf
%ghost %{_localstatedir}/lib/systemd/backlight %ghost %{_localstatedir}/lib/systemd/backlight
%{_bindir}/bootctl
%if %{without bootstrap} %if %{without bootstrap}
%{_bindir}/kernel-install %{_bindir}/kernel-install
%{_bindir}/systemd-cryptenroll %{_bindir}/systemd-cryptenroll
%{_bindir}/systemd-cryptsetup
%endif %endif
%{_bindir}/systemd-hwdb %{_bindir}/systemd-hwdb
%{_bindir}/udevadm %{_bindir}/udevadm
%if %{without bootstrap} %if %{without bootstrap}
%{_datadir}/bash-completion/completions/bootctl
%{_datadir}/bash-completion/completions/kernel-install %{_datadir}/bash-completion/completions/kernel-install
%{_datadir}/bash-completion/completions/systemd-cryptenroll %{_datadir}/bash-completion/completions/systemd-cryptenroll
%{_datadir}/bash-completion/completions/udevadm %{_datadir}/bash-completion/completions/udevadm
@ -49,11 +52,13 @@
%{_datadir}/pkgconfig/udev.pc %{_datadir}/pkgconfig/udev.pc
%{_datadir}/polkit-1/actions/org.freedesktop.timesync1.policy %{_datadir}/polkit-1/actions/org.freedesktop.timesync1.policy
%if %{without bootstrap} %if %{without bootstrap}
%{_datadir}/zsh/site-functions/_bootctl
%{_datadir}/zsh/site-functions/_kernel-install %{_datadir}/zsh/site-functions/_kernel-install
%{_datadir}/zsh/site-functions/_udevadm %{_datadir}/zsh/site-functions/_udevadm
%{_libdir}/cryptsetup/libcryptsetup-token-systemd-fido2.so %{_libdir}/cryptsetup/libcryptsetup-token-systemd-fido2.so
%{_libdir}/cryptsetup/libcryptsetup-token-systemd-pkcs11.so %{_libdir}/cryptsetup/libcryptsetup-token-systemd-pkcs11.so
%{_libdir}/cryptsetup/libcryptsetup-token-systemd-tpm2.so %{_libdir}/cryptsetup/libcryptsetup-token-systemd-tpm2.so
%{_mandir}/man1/bootctl.1.gz
%{_mandir}/man1/systemd-cryptenroll.1.gz %{_mandir}/man1/systemd-cryptenroll.1.gz
%{_mandir}/man5/crypttab.5.gz %{_mandir}/man5/crypttab.5.gz
%{_mandir}/man5/integritytab.5.gz %{_mandir}/man5/integritytab.5.gz
@ -241,6 +246,7 @@
%{_udevrulesdir}/60-input-id.rules %{_udevrulesdir}/60-input-id.rules
%{_udevrulesdir}/60-persistent-alsa.rules %{_udevrulesdir}/60-persistent-alsa.rules
%{_udevrulesdir}/60-persistent-input.rules %{_udevrulesdir}/60-persistent-input.rules
%{_udevrulesdir}/60-persistent-storage-mtd.rules
%{_udevrulesdir}/60-persistent-storage-tape.rules %{_udevrulesdir}/60-persistent-storage-tape.rules
%{_udevrulesdir}/60-persistent-storage.rules %{_udevrulesdir}/60-persistent-storage.rules
%{_udevrulesdir}/60-persistent-v4l.rules %{_udevrulesdir}/60-persistent-v4l.rules
@ -315,6 +321,7 @@
%{_unitdir}/systemd-fsck@.service %{_unitdir}/systemd-fsck@.service
%{_unitdir}/systemd-growfs-root.service %{_unitdir}/systemd-growfs-root.service
%{_unitdir}/systemd-growfs@.service %{_unitdir}/systemd-growfs@.service
%{_unitdir}/systemd-hibernate-resume.service
%{_unitdir}/systemd-hibernate.service %{_unitdir}/systemd-hibernate.service
%{_unitdir}/systemd-hwdb-update.service %{_unitdir}/systemd-hwdb-update.service
%{_unitdir}/systemd-hybrid-sleep.service %{_unitdir}/systemd-hybrid-sleep.service

View File

@ -3,11 +3,7 @@
# #
%dir %{_systemd_util_dir}/boot %dir %{_systemd_util_dir}/boot
%dir %{_systemd_util_dir}/boot/efi %dir %{_systemd_util_dir}/boot/efi
%{_bindir}/bootctl
%if %{without bootstrap} %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}/man5/loader.conf.5.gz
%{_mandir}/man7/linuxaa64.efi.stub.7.gz %{_mandir}/man7/linuxaa64.efi.stub.7.gz
%{_mandir}/man7/linuxia32.efi.stub.7.gz %{_mandir}/man7/linuxia32.efi.stub.7.gz

BIN
systemd-v254.9+suse.30.g31f1148f75.tar.xz (Stored with Git LFS)

Binary file not shown.

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6cd4797c9008052e3b188451be89f7196072475c971d1619cb880280336c2761
size 10712448

View File

@ -1,3 +1,69 @@
-------------------------------------------------------------------
Mon Feb 26 09:18:00 UTC 2024 - Antonio Feijoo <antonio.feijoo@suse.com>
- Fix syntax required for OBS source validator
-------------------------------------------------------------------
Fri Feb 23 09:09:57 UTC 2024 - Franck Bui <fbui@suse.com>
- Upgrade to v255.3 (commit 96edf7ad1866172b994cafb4df49e27d68ce8e87)
See https://github.com/openSUSE/systemd/blob/SUSE/v255/NEWS for details.
- This includes the following bug fixes:
- commit 6e10405aa25fe5e76b740d9ec59730e3f4470c7a (bsc#1219766)
- The following patches have been rebased:
- 0002-rc-local-fix-ordering-startup-for-etc-init.d-boot.lo.patch
- 0008-sysv-generator-translate-Required-Start-into-a-Wants.patch
- 0009-pid1-handle-console-specificities-weirdness-for-s390.patch
- 5001-Revert-udev-update-devlink-with-the-newer-device-nod.patch
- 5002-Revert-udev-revert-workarounds-for-issues-caused-by-.patch
- The following patches have been removed since they're part of v255:
- 5003-cgroup-rename-TasksMax-structure-to-CGroupTasksMax.patch
- 5004-bus-print-properties-ignore-CGROUP_LIMIT_MAX-for-Mem.patch
- 5005-bus-print-properties-prettify-more-unset-properties.patch
- systemd-boot has been added to the list of the dependencies of the
systemd-testsuite package as the installation of the bootloader is now
tested.
- the following patches have been backported on top of v255.3:
96edf7ad18 service: Demote log level of NotifyAccess= messages to debug (bsc#1210113 jsc#PED-6214)
fdde7f26d6 vconsole-setup: don't fail if the only found vc is already used by plymouth (bsc#1218618)
f96c587d41 rules: set up tty permissions and group for /dev/hvc* nodes (bsc#1218137)
63a41b8899 vconsole-setup: remember the correct error value when open_terminal() fails
f51a2e038c vconsole-setup: handle the case where the vc is in KD_GRAPHICS mode more gracefully (bsc#1215282)
15025a04c4 test: make sure to install the filesystem package in the test image on SUSE
06fecfb635 test: make sure that sd-boot is installed before testing bootctl
1e8788ea68 test: install systemd-boot in openSUSE test images
6e2875ad43 test/test-shutdown.py: optionally display the test I/Os in a dedicated log file
4be1a801b4 test-69: send SIGTERM to ask systemd-nspawn to properly stop the container
7bdab7b7c7 man: Document ranges for distributions config files and local config files
3f12a6c22f test: systemd-update-utmp is optional
1911c7fd95 man: conditionalize sd-pcrlock and sd-measure on the same variable as their binaries
352f76f734 man: always install bootctl
b48a18c464 meson: fix installation of html doc aliases
- bootctl has been moved to the udev package since some of its commands work on
non UEFI systems too.
-------------------------------------------------------------------
Fri Feb 23 07:51:50 UTC 2024 - Franck Bui <fbui@suse.com>
- When building systemd rpms in place (i.e. rpmbuild --build-in-place), the
version of systemd is now retrieved from the file "meson.version" by
default. This file is supposed to contain a string that described the full
version of the systemd project.
- Overriding of %systemd_version/%systemd_release is now limited to builds of
rpms in place cases.
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Feb 22 09:47:41 UTC 2024 - Franck Bui <fbui@suse.com> Thu Feb 22 09:47:41 UTC 2024 - Franck Bui <fbui@suse.com>
@ -16,6 +82,7 @@ Tue Feb 20 12:22:42 UTC 2024 - Daan De Meyer <daan.j.demeyer@gmail.com>
as well. By building the rpms using the opensuse packaging specs, the idea is as well. By building the rpms using the opensuse packaging specs, the idea is
to catch more issues ahead of time as the mkosi environment will behave more to catch more issues ahead of time as the mkosi environment will behave more
like a regular opensuse system. like a regular opensuse system.
- Add new %version_override and %version_release macros to allow overriding the - Add new %version_override and %version_release macros to allow overriding the
version and release of the rpm respectively. version and release of the rpm respectively.

View File

@ -18,18 +18,21 @@
%global flavor @BUILD_FLAVOR@%{nil} %global flavor @BUILD_FLAVOR@%{nil}
%define archive_version +suse.30.g31f1148f75 %if 0%{?_build_in_place}
# Allow users to specify the version and the release when building the rpm in
%if 0%{?version_override} # place. When not provided we look for the version in meson.version (introduced
%define systemd_major %version_override # in v256).
%define systemd_minor %{nil} %define systemd_version %{?version_override}%{!?version_override:%(cat meson.version)}
%define systemd_release %{?release_override}%{!?release_override:0}
%define archive_version %{nil}
%else %else
%define systemd_major 254 # Fallback required for OBS source validator
%define systemd_minor 9 %define systemd_version 255.3
%define systemd_release 0
%define archive_version +suse.15.g96edf7ad18
%endif %endif
%define systemd_version %{systemd_major}%{?systemd_minor:.%{systemd_minor}} %define systemd_major %{sub %systemd_version 1 3}
%define systemd_release %{?release_override}%{!?release_override:0}
%define _testsuitedir %{_systemd_util_dir}/tests %define _testsuitedir %{_systemd_util_dir}/tests
%define xinitconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}/X11/xinit %define xinitconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}/X11/xinit
@ -92,8 +95,6 @@ fi \
Name: systemd%{?mini} Name: systemd%{?mini}
URL: http://www.freedesktop.org/wiki/Software/systemd URL: http://www.freedesktop.org/wiki/Software/systemd
# Allow users to specify the version and release when building the rpm by
# setting the %%version_override and %%release_override macros.
Version: %systemd_version Version: %systemd_version
Release: %systemd_release Release: %systemd_release
Summary: A System and Session Manager Summary: A System and Session Manager
@ -240,9 +241,6 @@ Patch5: 0008-sysv-generator-translate-Required-Start-into-a-Wants.patch
Patch5001: 5001-Revert-udev-update-devlink-with-the-newer-device-nod.patch Patch5001: 5001-Revert-udev-update-devlink-with-the-newer-device-nod.patch
Patch5002: 5002-Revert-udev-revert-workarounds-for-issues-caused-by-.patch Patch5002: 5002-Revert-udev-revert-workarounds-for-issues-caused-by-.patch
# jsc#PED-5659 # jsc#PED-5659
Patch5003: 5003-cgroup-rename-TasksMax-structure-to-CGroupTasksMax.patch
Patch5004: 5004-bus-print-properties-ignore-CGROUP_LIMIT_MAX-for-Mem.patch
Patch5005: 5005-bus-print-properties-prettify-more-unset-properties.patch
Patch5006: 5006-cgroup-Add-EffectiveMemoryMax-EffectiveMemoryHigh-an.patch Patch5006: 5006-cgroup-Add-EffectiveMemoryMax-EffectiveMemoryHigh-an.patch
Patch5007: 5007-test-Convert-rlimit-test-to-subtest-of-generic-limit.patch Patch5007: 5007-test-Convert-rlimit-test-to-subtest-of-generic-limit.patch
Patch5008: 5008-test-Add-effective-cgroup-limits-testing.patch Patch5008: 5008-test-Add-effective-cgroup-limits-testing.patch
@ -638,6 +636,7 @@ Requires: attr
Requires: binutils Requires: binutils
Requires: busybox-static Requires: busybox-static
Requires: cryptsetup Requires: cryptsetup
Requires: dhcp-client
Requires: dosfstools Requires: dosfstools
Requires: jq Requires: jq
Requires: libcap-progs Requires: libcap-progs
@ -648,6 +647,7 @@ Requires: libtss2-rc0
Requires: lz4 Requires: lz4
Requires: make Requires: make
Requires: mtools Requires: mtools
Requires: net-tools-deprecated
Requires: netcat Requires: netcat
Requires: python3-pexpect Requires: python3-pexpect
Requires: qemu Requires: qemu
@ -659,6 +659,9 @@ Requires: pkgconfig(libfido2)
Requires: pkgconfig(tss2-esys) Requires: pkgconfig(tss2-esys)
Requires: pkgconfig(tss2-mu) Requires: pkgconfig(tss2-mu)
Requires: pkgconfig(tss2-rc) Requires: pkgconfig(tss2-rc)
%if %{with sd_boot}
Requires: systemd-boot
%endif
%if %{with coredump} %if %{with coredump}
Requires: systemd-coredump Requires: systemd-coredump
%endif %endif
@ -750,7 +753,7 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
%meson \ %meson \
-Dmode=release \ -Dmode=release \
-Dversion-tag=%{version}%[%{without upstream}?"%{archive_version}":""] \ -Dversion-tag=%{version}%{archive_version} \
-Ddocdir=%{_docdir}/systemd \ -Ddocdir=%{_docdir}/systemd \
%if %{with split_usr} %if %{with split_usr}
-Drootprefix=/usr \ -Drootprefix=/usr \
@ -786,31 +789,59 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
-Ddebug-shell=/bin/bash \ -Ddebug-shell=/bin/bash \
\ \
-Dbump-proc-sys-fs-nr-open=false \ -Dbump-proc-sys-fs-nr-open=false \
-Ddbus=false \
-Ddefault-network=false \
-Dglib=false \
-Dgshadow=false \ -Dgshadow=false \
-Dldconfig=false \ -Dldconfig=false \
-Dlibidn=false \
-Dsmack=false \ -Dsmack=false \
-Dxenctrl=false \
-Dxkbcommon=false \
\ \
-Dpstore=true \ -Dpstore=true \
\ \
-Dapparmor=%{when apparmor} \ -Daudit=%{when_not bootstrap} \
-Dbpf-framework=%{when_not bootstrap} \ -Dbpf-framework=%{when_not bootstrap} \
-Dbzip2=%{when importd} \
-Defi=%{when_not bootstrap} \ -Defi=%{when_not bootstrap} \
-Delfutils=%{when_not bootstrap} \ -Delfutils=%{when_not bootstrap} \
-Dfdisk=%{when_not bootstrap} \
-Dgcrypt=%{when_not bootstrap} \
-Dgnutls=%{when_not bootstrap} \
-Dhtml=%{when_not bootstrap} \ -Dhtml=%{when_not bootstrap} \
-Dima=%{when_not bootstrap} \ -Dima=%{when_not bootstrap} \
-Dkernel-install=%{when_not bootstrap} \ -Dkernel-install=%{when_not bootstrap} \
-Dlibfido2=%{when_not bootstrap} \
-Dlibidn2=%{when resolved} \
-Dlibiptc=%{when_not bootstrap} \
-Dlz4=%{when_not bootstrap} \
-Dqrencode=%{when_not bootstrap} \
-Dkmod=%{when_not bootstrap} \ -Dkmod=%{when_not bootstrap} \
-Dlibcryptsetup=%{when_not bootstrap} \
-Dlibcryptsetup-plugins=%{when_not bootstrap} \ -Dlibcryptsetup-plugins=%{when_not bootstrap} \
-Dlibcurl=%{when_not bootstrap} \
-Dman=%{when_not bootstrap} \ -Dman=%{when_not bootstrap} \
-Dmicrohttpd=%{when journal_remote} \
-Dnss-myhostname=%{when_not bootstrap} \ -Dnss-myhostname=%{when_not bootstrap} \
-Dnss-mymachines=%{when machined} \
-Dnss-resolve=%{when resolved} \
-Dnss-systemd=%{when_not bootstrap} \ -Dnss-systemd=%{when_not bootstrap} \
-Dopenssl=%{when_not bootstrap} \
-Dp11kit=%{when_not bootstrap} \
-Dpasswdqc=%{when_not bootstrap} \
-Dpwquality=%{when_not bootstrap} \
-Dseccomp=%{when_not bootstrap} \ -Dseccomp=%{when_not bootstrap} \
-Dselinux=%{when selinux} \ -Dstoragetm=%{when_not bootstrap} \
-Dtpm=%{when_not bootstrap} \ -Dtpm=%{when_not bootstrap} \
-Dtpm2=%{when_not bootstrap} \ -Dtpm2=%{when_not bootstrap} \
-Dtranslations=%{when_not bootstrap} \ -Dtranslations=%{when_not bootstrap} \
-Duserdb=%{when_not bootstrap} \ -Duserdb=%{when_not bootstrap} \
-Dxz=%{when_not bootstrap} \
-Dzlib=%{when importd} \
-Dzstd=%{when_not bootstrap} \
\ \
-Dapparmor=%{when apparmor} \
-Dcoredump=%{when coredump} \ -Dcoredump=%{when coredump} \
-Dhomed=%{when homed} \ -Dhomed=%{when homed} \
-Dimportd=%{when importd} \ -Dimportd=%{when importd} \
@ -818,6 +849,7 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
-Dnetworkd=%{when networkd} \ -Dnetworkd=%{when networkd} \
-Dportabled=%{when portabled} \ -Dportabled=%{when portabled} \
-Dremote=%{when journal_remote} \ -Dremote=%{when journal_remote} \
-Dselinux=%{when selinux} \
\ \
-Dbootloader=%{when sd_boot} \ -Dbootloader=%{when sd_boot} \
-Defi-color-highlight="black,green" \ -Defi-color-highlight="black,green" \
@ -842,6 +874,7 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
%else %else
-Dukify=false \ -Dukify=false \
%endif %endif
-Dvmspawn=%{when experimental} \
\ \
-Dtests=%{when testsuite unsafe} \ -Dtests=%{when testsuite unsafe} \
-Dinstall-tests=%{when testsuite} -Dinstall-tests=%{when testsuite}
@ -1057,6 +1090,7 @@ tar -cO \
%if %{without bootstrap} %if %{without bootstrap}
%find_lang systemd %find_lang systemd
%else %else
rm -f %{buildroot}%{_bindir}/varlinkctl
rm -f %{buildroot}%{_journalcatalogdir}/* rm -f %{buildroot}%{_journalcatalogdir}/*
rm -fr %{buildroot}%{_docdir}/systemd rm -fr %{buildroot}%{_docdir}/systemd
%endif %endif