forked from pool/systemd
Accepting request 928747 from Base:System
- Add 0001-Revert-core-Check-unit-start-rate-limiting-earlier.patch Temporarly revert commit ed8fbbf1745c6a2dc0b8cd560ac8a3353f72e979 until the regression it introduced [1] is addressed by upstream and a fix is released via the stable tree. [1] https://github.com/systemd/systemd/issues/21025 - Disable nss-systemd and translations features for the mini flavour - Really enable libiptc for masquerading support (bsc#1191651) Currently used by systemd-nspawn and systemd-networkd. - Convert systemd package to multibuild 8de173ff93 mount-util: fix fd_is_mount_point() when both the parent and directory are network fs (bsc#1190984) [...] OBS-URL: https://build.opensuse.org/request/show/928747 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=339
This commit is contained in:
commit
e20b94d404
486
0001-Revert-core-Check-unit-start-rate-limiting-earlier.patch
Normal file
486
0001-Revert-core-Check-unit-start-rate-limiting-earlier.patch
Normal file
@ -0,0 +1,486 @@
|
|||||||
|
From 4fa9d8f14523982482386d398d2b2669902f2098 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||||
|
Date: Mon, 18 Oct 2021 14:11:53 +0900
|
||||||
|
Subject: [PATCH 1/1] Revert "core: Check unit start rate limiting earlier"
|
||||||
|
|
||||||
|
This reverts commit ed8fbbf1745c6a2dc0b8cd560ac8a3353f72e979.
|
||||||
|
|
||||||
|
This was causing problems during boot, see
|
||||||
|
https://bodhi.fedoraproject.org/updates/FEDORA-2021-a1a52487e6,
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2013386.
|
||||||
|
https://github.com/systemd/systemd/issues/21025
|
||||||
|
---
|
||||||
|
src/core/automount.c | 23 ++++++-----------------
|
||||||
|
src/core/mount.c | 23 ++++++-----------------
|
||||||
|
src/core/path.c | 23 ++++++-----------------
|
||||||
|
src/core/service.c | 25 +++++++------------------
|
||||||
|
src/core/socket.c | 23 ++++++-----------------
|
||||||
|
src/core/swap.c | 23 ++++++-----------------
|
||||||
|
src/core/timer.c | 23 ++++++-----------------
|
||||||
|
src/core/unit.c | 7 -------
|
||||||
|
src/core/unit.h | 4 ----
|
||||||
|
test/TEST-63-ISSUE-17433/Makefile | 1 -
|
||||||
|
test/TEST-63-ISSUE-17433/test.sh | 9 ---------
|
||||||
|
test/meson.build | 2 --
|
||||||
|
test/testsuite-10.units/test10.service | 3 ---
|
||||||
|
test/testsuite-63.units/test63.path | 2 --
|
||||||
|
test/testsuite-63.units/test63.service | 5 -----
|
||||||
|
test/units/testsuite-63.service | 16 ----------------
|
||||||
|
16 files changed, 43 insertions(+), 169 deletions(-)
|
||||||
|
delete mode 120000 test/TEST-63-ISSUE-17433/Makefile
|
||||||
|
delete mode 100755 test/TEST-63-ISSUE-17433/test.sh
|
||||||
|
delete mode 100644 test/testsuite-63.units/test63.path
|
||||||
|
delete mode 100644 test/testsuite-63.units/test63.service
|
||||||
|
delete mode 100644 test/units/testsuite-63.service
|
||||||
|
|
||||||
|
diff --git a/src/core/automount.c b/src/core/automount.c
|
||||||
|
index 0722abef23..edc9588165 100644
|
||||||
|
--- a/src/core/automount.c
|
||||||
|
+++ b/src/core/automount.c
|
||||||
|
@@ -814,6 +814,12 @@ static int automount_start(Unit *u) {
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
|
||||||
|
+ r = unit_test_start_limit(u);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ automount_enter_dead(a, AUTOMOUNT_FAILURE_START_LIMIT_HIT);
|
||||||
|
+ return r;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
r = unit_acquire_invocation_id(u);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
@@ -1059,21 +1065,6 @@ static bool automount_supported(void) {
|
||||||
|
return supported;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int automount_test_start_limit(Unit *u) {
|
||||||
|
- Automount *a = AUTOMOUNT(u);
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
- assert(a);
|
||||||
|
-
|
||||||
|
- r = unit_test_start_limit(u);
|
||||||
|
- if (r < 0) {
|
||||||
|
- automount_enter_dead(a, AUTOMOUNT_FAILURE_START_LIMIT_HIT);
|
||||||
|
- return r;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static const char* const automount_result_table[_AUTOMOUNT_RESULT_MAX] = {
|
||||||
|
[AUTOMOUNT_SUCCESS] = "success",
|
||||||
|
[AUTOMOUNT_FAILURE_RESOURCES] = "resources",
|
||||||
|
@@ -1136,6 +1127,4 @@ const UnitVTable automount_vtable = {
|
||||||
|
[JOB_FAILED] = "Failed to unset automount %s.",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-
|
||||||
|
- .test_start_limit = automount_test_start_limit,
|
||||||
|
};
|
||||||
|
diff --git a/src/core/mount.c b/src/core/mount.c
|
||||||
|
index 9bec190cb6..af39db214b 100644
|
||||||
|
--- a/src/core/mount.c
|
||||||
|
+++ b/src/core/mount.c
|
||||||
|
@@ -1168,6 +1168,12 @@ static int mount_start(Unit *u) {
|
||||||
|
|
||||||
|
assert(IN_SET(m->state, MOUNT_DEAD, MOUNT_FAILED));
|
||||||
|
|
||||||
|
+ r = unit_test_start_limit(u);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ mount_enter_dead(m, MOUNT_FAILURE_START_LIMIT_HIT);
|
||||||
|
+ return r;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
r = unit_acquire_invocation_id(u);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
@@ -2137,21 +2143,6 @@ static int mount_can_clean(Unit *u, ExecCleanMask *ret) {
|
||||||
|
return exec_context_get_clean_mask(&m->exec_context, ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int mount_test_start_limit(Unit *u) {
|
||||||
|
- Mount *m = MOUNT(u);
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
- assert(m);
|
||||||
|
-
|
||||||
|
- r = unit_test_start_limit(u);
|
||||||
|
- if (r < 0) {
|
||||||
|
- mount_enter_dead(m, MOUNT_FAILURE_START_LIMIT_HIT);
|
||||||
|
- return r;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static const char* const mount_exec_command_table[_MOUNT_EXEC_COMMAND_MAX] = {
|
||||||
|
[MOUNT_EXEC_MOUNT] = "ExecMount",
|
||||||
|
[MOUNT_EXEC_UNMOUNT] = "ExecUnmount",
|
||||||
|
@@ -2249,6 +2240,4 @@ const UnitVTable mount_vtable = {
|
||||||
|
[JOB_TIMEOUT] = "Timed out unmounting %s.",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-
|
||||||
|
- .test_start_limit = mount_test_start_limit,
|
||||||
|
};
|
||||||
|
diff --git a/src/core/path.c b/src/core/path.c
|
||||||
|
index 2b659696a4..e098e83a31 100644
|
||||||
|
--- a/src/core/path.c
|
||||||
|
+++ b/src/core/path.c
|
||||||
|
@@ -590,6 +590,12 @@ static int path_start(Unit *u) {
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
|
||||||
|
+ r = unit_test_start_limit(u);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ path_enter_dead(p, PATH_FAILURE_START_LIMIT_HIT);
|
||||||
|
+ return r;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
r = unit_acquire_invocation_id(u);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
@@ -805,21 +811,6 @@ static void path_reset_failed(Unit *u) {
|
||||||
|
p->result = PATH_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int path_test_start_limit(Unit *u) {
|
||||||
|
- Path *p = PATH(u);
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
- assert(p);
|
||||||
|
-
|
||||||
|
- r = unit_test_start_limit(u);
|
||||||
|
- if (r < 0) {
|
||||||
|
- path_enter_dead(p, PATH_FAILURE_START_LIMIT_HIT);
|
||||||
|
- return r;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static const char* const path_type_table[_PATH_TYPE_MAX] = {
|
||||||
|
[PATH_EXISTS] = "PathExists",
|
||||||
|
[PATH_EXISTS_GLOB] = "PathExistsGlob",
|
||||||
|
@@ -874,6 +865,4 @@ const UnitVTable path_vtable = {
|
||||||
|
.reset_failed = path_reset_failed,
|
||||||
|
|
||||||
|
.bus_set_property = bus_path_set_property,
|
||||||
|
-
|
||||||
|
- .test_start_limit = path_test_start_limit,
|
||||||
|
};
|
||||||
|
diff --git a/src/core/service.c b/src/core/service.c
|
||||||
|
index 701c145565..7b90822f68 100644
|
||||||
|
--- a/src/core/service.c
|
||||||
|
+++ b/src/core/service.c
|
||||||
|
@@ -2456,6 +2456,13 @@ static int service_start(Unit *u) {
|
||||||
|
|
||||||
|
assert(IN_SET(s->state, SERVICE_DEAD, SERVICE_FAILED));
|
||||||
|
|
||||||
|
+ /* Make sure we don't enter a busy loop of some kind. */
|
||||||
|
+ r = unit_test_start_limit(u);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ service_enter_dead(s, SERVICE_FAILURE_START_LIMIT_HIT, false);
|
||||||
|
+ return r;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
r = unit_acquire_invocation_id(u);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
@@ -4451,22 +4458,6 @@ static const char *service_finished_job(Unit *u, JobType t, JobResult result) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int service_test_start_limit(Unit *u) {
|
||||||
|
- Service *s = SERVICE(u);
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
- assert(s);
|
||||||
|
-
|
||||||
|
- /* Make sure we don't enter a busy loop of some kind. */
|
||||||
|
- r = unit_test_start_limit(u);
|
||||||
|
- if (r < 0) {
|
||||||
|
- service_enter_dead(s, SERVICE_FAILURE_START_LIMIT_HIT, false);
|
||||||
|
- return r;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static const char* const service_restart_table[_SERVICE_RESTART_MAX] = {
|
||||||
|
[SERVICE_RESTART_NO] = "no",
|
||||||
|
[SERVICE_RESTART_ON_SUCCESS] = "on-success",
|
||||||
|
@@ -4629,6 +4620,4 @@ const UnitVTable service_vtable = {
|
||||||
|
},
|
||||||
|
.finished_job = service_finished_job,
|
||||||
|
},
|
||||||
|
-
|
||||||
|
- .test_start_limit = service_test_start_limit,
|
||||||
|
};
|
||||||
|
diff --git a/src/core/socket.c b/src/core/socket.c
|
||||||
|
index 31d88b71ff..f362a5baa8 100644
|
||||||
|
--- a/src/core/socket.c
|
||||||
|
+++ b/src/core/socket.c
|
||||||
|
@@ -2515,6 +2515,12 @@ static int socket_start(Unit *u) {
|
||||||
|
|
||||||
|
assert(IN_SET(s->state, SOCKET_DEAD, SOCKET_FAILED));
|
||||||
|
|
||||||
|
+ r = unit_test_start_limit(u);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ socket_enter_dead(s, SOCKET_FAILURE_START_LIMIT_HIT);
|
||||||
|
+ return r;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
r = unit_acquire_invocation_id(u);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
@@ -3423,21 +3429,6 @@ static int socket_can_clean(Unit *u, ExecCleanMask *ret) {
|
||||||
|
return exec_context_get_clean_mask(&s->exec_context, ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int socket_test_start_limit(Unit *u) {
|
||||||
|
- Socket *s = SOCKET(u);
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
- assert(s);
|
||||||
|
-
|
||||||
|
- r = unit_test_start_limit(u);
|
||||||
|
- if (r < 0) {
|
||||||
|
- socket_enter_dead(s, SOCKET_FAILURE_START_LIMIT_HIT);
|
||||||
|
- return r;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static const char* const socket_exec_command_table[_SOCKET_EXEC_COMMAND_MAX] = {
|
||||||
|
[SOCKET_EXEC_START_PRE] = "ExecStartPre",
|
||||||
|
[SOCKET_EXEC_START_CHOWN] = "ExecStartChown",
|
||||||
|
@@ -3564,6 +3555,4 @@ const UnitVTable socket_vtable = {
|
||||||
|
[JOB_TIMEOUT] = "Timed out stopping %s.",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-
|
||||||
|
- .test_start_limit = socket_test_start_limit,
|
||||||
|
};
|
||||||
|
diff --git a/src/core/swap.c b/src/core/swap.c
|
||||||
|
index b25f68fb7d..3843b19500 100644
|
||||||
|
--- a/src/core/swap.c
|
||||||
|
+++ b/src/core/swap.c
|
||||||
|
@@ -933,6 +933,12 @@ static int swap_start(Unit *u) {
|
||||||
|
if (UNIT(other)->job && UNIT(other)->job->state == JOB_RUNNING)
|
||||||
|
return -EAGAIN;
|
||||||
|
|
||||||
|
+ r = unit_test_start_limit(u);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ swap_enter_dead(s, SWAP_FAILURE_START_LIMIT_HIT);
|
||||||
|
+ return r;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
r = unit_acquire_invocation_id(u);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
@@ -1582,21 +1588,6 @@ static int swap_can_clean(Unit *u, ExecCleanMask *ret) {
|
||||||
|
return exec_context_get_clean_mask(&s->exec_context, ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int swap_test_start_limit(Unit *u) {
|
||||||
|
- Swap *s = SWAP(u);
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
- assert(s);
|
||||||
|
-
|
||||||
|
- r = unit_test_start_limit(u);
|
||||||
|
- if (r < 0) {
|
||||||
|
- swap_enter_dead(s, SWAP_FAILURE_START_LIMIT_HIT);
|
||||||
|
- return r;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static const char* const swap_exec_command_table[_SWAP_EXEC_COMMAND_MAX] = {
|
||||||
|
[SWAP_EXEC_ACTIVATE] = "ExecActivate",
|
||||||
|
[SWAP_EXEC_DEACTIVATE] = "ExecDeactivate",
|
||||||
|
@@ -1692,6 +1683,4 @@ const UnitVTable swap_vtable = {
|
||||||
|
[JOB_TIMEOUT] = "Timed out deactivating swap %s.",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-
|
||||||
|
- .test_start_limit = swap_test_start_limit,
|
||||||
|
};
|
||||||
|
diff --git a/src/core/timer.c b/src/core/timer.c
|
||||||
|
index 5ecc9f35cf..e064ad9a2d 100644
|
||||||
|
--- a/src/core/timer.c
|
||||||
|
+++ b/src/core/timer.c
|
||||||
|
@@ -635,6 +635,12 @@ static int timer_start(Unit *u) {
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
|
||||||
|
+ r = unit_test_start_limit(u);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ timer_enter_dead(t, TIMER_FAILURE_START_LIMIT_HIT);
|
||||||
|
+ return r;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
r = unit_acquire_invocation_id(u);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
@@ -895,21 +901,6 @@ static int timer_can_clean(Unit *u, ExecCleanMask *ret) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int timer_test_start_limit(Unit *u) {
|
||||||
|
- Timer *t = TIMER(u);
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
- assert(t);
|
||||||
|
-
|
||||||
|
- r = unit_test_start_limit(u);
|
||||||
|
- if (r < 0) {
|
||||||
|
- timer_enter_dead(t, TIMER_FAILURE_START_LIMIT_HIT);
|
||||||
|
- return r;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static const char* const timer_base_table[_TIMER_BASE_MAX] = {
|
||||||
|
[TIMER_ACTIVE] = "OnActiveSec",
|
||||||
|
[TIMER_BOOT] = "OnBootSec",
|
||||||
|
@@ -969,6 +960,4 @@ const UnitVTable timer_vtable = {
|
||||||
|
.timezone_change = timer_timezone_change,
|
||||||
|
|
||||||
|
.bus_set_property = bus_timer_set_property,
|
||||||
|
-
|
||||||
|
- .test_start_limit = timer_test_start_limit,
|
||||||
|
};
|
||||||
|
diff --git a/src/core/unit.c b/src/core/unit.c
|
||||||
|
index 69ed43578e..38d3eb703f 100644
|
||||||
|
--- a/src/core/unit.c
|
||||||
|
+++ b/src/core/unit.c
|
||||||
|
@@ -1851,13 +1851,6 @@ int unit_start(Unit *u) {
|
||||||
|
|
||||||
|
assert(u);
|
||||||
|
|
||||||
|
- /* Check start rate limiting early so that failure conditions don't cause us to enter a busy loop. */
|
||||||
|
- if (UNIT_VTABLE(u)->test_start_limit) {
|
||||||
|
- int r = UNIT_VTABLE(u)->test_start_limit(u);
|
||||||
|
- if (r < 0)
|
||||||
|
- return r;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
/* If this is already started, then this will succeed. Note that this will even succeed if this unit
|
||||||
|
* is not startable by the user. This is relied on to detect when we need to wait for units and when
|
||||||
|
* waiting is finished. */
|
||||||
|
diff --git a/src/core/unit.h b/src/core/unit.h
|
||||||
|
index 9babd07188..759104ffa7 100644
|
||||||
|
--- a/src/core/unit.h
|
||||||
|
+++ b/src/core/unit.h
|
||||||
|
@@ -649,10 +649,6 @@ typedef struct UnitVTable {
|
||||||
|
* of this type will immediately fail. */
|
||||||
|
bool (*supported)(void);
|
||||||
|
|
||||||
|
- /* If this function is set, it's invoked first as part of starting a unit to allow start rate
|
||||||
|
- * limiting checks to occur before we do anything else. */
|
||||||
|
- int (*test_start_limit)(Unit *u);
|
||||||
|
-
|
||||||
|
/* The strings to print in status messages */
|
||||||
|
UnitStatusMessageFormats status_message_formats;
|
||||||
|
|
||||||
|
diff --git a/test/TEST-63-ISSUE-17433/Makefile b/test/TEST-63-ISSUE-17433/Makefile
|
||||||
|
deleted file mode 120000
|
||||||
|
index e9f93b1104..0000000000
|
||||||
|
--- a/test/TEST-63-ISSUE-17433/Makefile
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1 +0,0 @@
|
||||||
|
-../TEST-01-BASIC/Makefile
|
||||||
|
\ No newline at end of file
|
||||||
|
diff --git a/test/TEST-63-ISSUE-17433/test.sh b/test/TEST-63-ISSUE-17433/test.sh
|
||||||
|
deleted file mode 100755
|
||||||
|
index c595a9f2de..0000000000
|
||||||
|
--- a/test/TEST-63-ISSUE-17433/test.sh
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,9 +0,0 @@
|
||||||
|
-#!/usr/bin/env bash
|
||||||
|
-set -e
|
||||||
|
-
|
||||||
|
-TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/17433"
|
||||||
|
-
|
||||||
|
-# shellcheck source=test/test-functions
|
||||||
|
-. "${TEST_BASE_DIR:?}/test-functions"
|
||||||
|
-
|
||||||
|
-do_test "$@"
|
||||||
|
diff --git a/test/meson.build b/test/meson.build
|
||||||
|
index 6f8f257c2d..47c7f4d49a 100644
|
||||||
|
--- a/test/meson.build
|
||||||
|
+++ b/test/meson.build
|
||||||
|
@@ -33,8 +33,6 @@ if install_tests
|
||||||
|
install_dir : testdata_dir)
|
||||||
|
install_subdir('testsuite-52.units',
|
||||||
|
install_dir : testdata_dir)
|
||||||
|
- install_subdir('testsuite-63.units',
|
||||||
|
- install_dir : testdata_dir)
|
||||||
|
|
||||||
|
testsuite08_dir = testdata_dir + '/testsuite-08.units'
|
||||||
|
install_data('testsuite-08.units/-.mount',
|
||||||
|
diff --git a/test/testsuite-10.units/test10.service b/test/testsuite-10.units/test10.service
|
||||||
|
index 2fb476b986..d0be786b01 100644
|
||||||
|
--- a/test/testsuite-10.units/test10.service
|
||||||
|
+++ b/test/testsuite-10.units/test10.service
|
||||||
|
@@ -1,9 +1,6 @@
|
||||||
|
[Unit]
|
||||||
|
Requires=test10.socket
|
||||||
|
ConditionPathExistsGlob=/tmp/nonexistent
|
||||||
|
-# Make sure we hit the socket trigger limit in the test and not the service start limit.
|
||||||
|
-StartLimitInterval=1000
|
||||||
|
-StartLimitBurst=1000
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=true
|
||||||
|
diff --git a/test/testsuite-63.units/test63.path b/test/testsuite-63.units/test63.path
|
||||||
|
deleted file mode 100644
|
||||||
|
index a6573bda0a..0000000000
|
||||||
|
--- a/test/testsuite-63.units/test63.path
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,2 +0,0 @@
|
||||||
|
-[Path]
|
||||||
|
-PathExists=/tmp/test63
|
||||||
|
diff --git a/test/testsuite-63.units/test63.service b/test/testsuite-63.units/test63.service
|
||||||
|
deleted file mode 100644
|
||||||
|
index c83801874d..0000000000
|
||||||
|
--- a/test/testsuite-63.units/test63.service
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,5 +0,0 @@
|
||||||
|
-[Unit]
|
||||||
|
-ConditionPathExists=!/tmp/nonexistent
|
||||||
|
-
|
||||||
|
-[Service]
|
||||||
|
-ExecStart=true
|
||||||
|
diff --git a/test/units/testsuite-63.service b/test/units/testsuite-63.service
|
||||||
|
deleted file mode 100644
|
||||||
|
index 04122723d4..0000000000
|
||||||
|
--- a/test/units/testsuite-63.service
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,16 +0,0 @@
|
||||||
|
-[Unit]
|
||||||
|
-Description=TEST-63-ISSUE-17433
|
||||||
|
-
|
||||||
|
-[Service]
|
||||||
|
-ExecStartPre=rm -f /failed /testok
|
||||||
|
-Type=oneshot
|
||||||
|
-ExecStart=rm -f /tmp/nonexistent
|
||||||
|
-ExecStart=systemctl start test63.path
|
||||||
|
-ExecStart=touch /tmp/test63
|
||||||
|
-# Make sure systemd has sufficient time to hit the start limit for test63.service.
|
||||||
|
-ExecStart=sleep 2
|
||||||
|
-ExecStart=sh -x -c 'test "$(systemctl show test63.service -P ActiveState)" = failed'
|
||||||
|
-ExecStart=sh -x -c 'test "$(systemctl show test63.service -P Result)" = start-limit-hit'
|
||||||
|
-ExecStart=sh -x -c 'test "$(systemctl show test63.path -P ActiveState)" = failed'
|
||||||
|
-ExecStart=sh -x -c 'test "$(systemctl show test63.path -P Result)" = unit-start-limit-hit'
|
||||||
|
-ExecStart=sh -x -c 'echo OK >/testok'
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
3
_multibuild
Normal file
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<multibuild>
|
||||||
|
<package>mini</package>
|
||||||
|
</multibuild>
|
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# This script is based on libcdio_spec-prepare.sh (thanks to sbrabec@suse.cz)
|
|
||||||
# create a -mini spec for systemd for bootstrapping
|
|
||||||
|
|
||||||
ORIG_SPEC=systemd
|
|
||||||
EDIT_WARNING="##### WARNING: please do not edit this auto generated spec file. Use the ${ORIG_SPEC}.spec! #####\n"
|
|
||||||
sed "s/^%define bootstrap .*$/${EDIT_WARNING}%define bootstrap 1/;
|
|
||||||
s/^%define mini .*$/${EDIT_WARNING}%define mini -mini/;
|
|
||||||
s/^Name:.*/&-mini/
|
|
||||||
" < ${ORIG_SPEC}.spec > ${ORIG_SPEC}-mini.spec
|
|
||||||
cp ${ORIG_SPEC}.changes ${ORIG_SPEC}-mini.changes
|
|
||||||
cp ${ORIG_SPEC}-rpmlintrc ${ORIG_SPEC}-mini-rpmlintrc
|
|
||||||
|
|
||||||
osc service localrun format_spec_file
|
|
@ -1,11 +0,0 @@
|
|||||||
addFilter(".*filelist-forbidden-systemd-userdirs /etc/systemd/.*\.conf")
|
|
||||||
addFilter(".*dbus-policy-allow-receive")
|
|
||||||
addFilter(".*devel-file-in-non-devel-package.*udev.pc.*")
|
|
||||||
addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*")
|
|
||||||
addFilter(".*missing-call-to-setgroups-before-setuid.*")
|
|
||||||
addFilter(".*systemd-service-without-service.*")
|
|
||||||
addFilter("env-script-interpreter")
|
|
||||||
addFilter(".*files-duplicate /usr/lib/systemd/.*")
|
|
||||||
addFilter(".*files-duplicated-waste.*")
|
|
||||||
addFilter(".*explicit-lib-dependency .*")
|
|
||||||
addFilter(".*tmpfile-not-in-filelist .*")
|
|
11493
systemd-mini.changes
11493
systemd-mini.changes
File diff suppressed because it is too large
Load Diff
1871
systemd-mini.spec
1871
systemd-mini.spec
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,39 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Nov 2 10:26:58 UTC 2021 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
|
- Add 0001-Revert-core-Check-unit-start-rate-limiting-earlier.patch
|
||||||
|
|
||||||
|
Temporarly revert commit ed8fbbf1745c6a2dc0b8cd560ac8a3353f72e979
|
||||||
|
until the regression it introduced [1] is addressed by upstream and
|
||||||
|
a fix is released via the stable tree.
|
||||||
|
|
||||||
|
[1] https://github.com/systemd/systemd/issues/21025
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 19 14:41:37 UTC 2021 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
|
- Disable nss-systemd and translations features for the mini flavour
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 18 13:01:01 UTC 2021 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
|
- Really enable libiptc for masquerading support (bsc#1191651)
|
||||||
|
|
||||||
|
Currently used by systemd-nspawn and systemd-networkd.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 18 10:06:08 UTC 2021 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
|
- Convert systemd package to multibuild
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Oct 15 12:09:44 UTC 2021 - Franck Bui <fbui@suse.com>
|
Fri Oct 15 12:09:44 UTC 2021 - Franck Bui <fbui@suse.com>
|
||||||
|
|
||||||
- Import commit 8521f8d22fd44400289fcea03493ebd7f8b1487d (merge of v249.5)
|
- Import commit 8521f8d22fd44400289fcea03493ebd7f8b1487d (merge of v249.5)
|
||||||
|
|
||||||
|
8de173ff93 mount-util: fix fd_is_mount_point() when both the parent and directory are network fs (bsc#1190984)
|
||||||
|
[...]
|
||||||
|
|
||||||
For a complete list of changes, visit:
|
For a complete list of changes, visit:
|
||||||
https://github.com/openSUSE/systemd/compare/355e113ce193e5e2d195278c57d47f9a1b00ae46...8521f8d22fd44400289fcea03493ebd7f8b1487d
|
https://github.com/openSUSE/systemd/compare/355e113ce193e5e2d195278c57d47f9a1b00ae46...8521f8d22fd44400289fcea03493ebd7f8b1487d
|
||||||
|
|
||||||
|
21
systemd.spec
21
systemd.spec
@ -21,8 +21,16 @@
|
|||||||
# found at: https://github.com/openSUSE/systemd.
|
# found at: https://github.com/openSUSE/systemd.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
|
||||||
|
%if "%{flavor}" == "mini"
|
||||||
|
%define bootstrap 1
|
||||||
|
%define mini -mini
|
||||||
|
%else
|
||||||
%define bootstrap 0
|
%define bootstrap 0
|
||||||
%define mini %nil
|
%define mini %nil
|
||||||
|
%endif
|
||||||
|
|
||||||
%define min_kernel_version 4.5
|
%define min_kernel_version 4.5
|
||||||
%define suse_version +suse.47.g8521f8d22f
|
%define suse_version +suse.47.g8521f8d22f
|
||||||
%define _testsuitedir /usr/lib/systemd/tests
|
%define _testsuitedir /usr/lib/systemd/tests
|
||||||
@ -59,7 +67,7 @@
|
|||||||
# Kept to ease migrations toward SLE
|
# Kept to ease migrations toward SLE
|
||||||
%bcond_with split_usr
|
%bcond_with split_usr
|
||||||
|
|
||||||
Name: systemd
|
Name: systemd%{?mini}
|
||||||
URL: http://www.freedesktop.org/wiki/Software/systemd
|
URL: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
Version: 249.5
|
Version: 249.5
|
||||||
Release: 0
|
Release: 0
|
||||||
@ -80,6 +88,7 @@ BuildRequires: pkgconfig(audit)
|
|||||||
BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0
|
BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0
|
||||||
BuildRequires: pkgconfig(libdw)
|
BuildRequires: pkgconfig(libdw)
|
||||||
BuildRequires: pkgconfig(libfido2)
|
BuildRequires: pkgconfig(libfido2)
|
||||||
|
BuildRequires: pkgconfig(libiptc)
|
||||||
BuildRequires: pkgconfig(liblz4)
|
BuildRequires: pkgconfig(liblz4)
|
||||||
BuildRequires: pkgconfig(liblzma)
|
BuildRequires: pkgconfig(liblzma)
|
||||||
BuildRequires: pkgconfig(libpcre2-8)
|
BuildRequires: pkgconfig(libpcre2-8)
|
||||||
@ -163,7 +172,7 @@ Obsoletes: pm-utils <= 1.4.1
|
|||||||
Obsoletes: suspend <= 1.0
|
Obsoletes: suspend <= 1.0
|
||||||
Obsoletes: systemd-analyze < 201
|
Obsoletes: systemd-analyze < 201
|
||||||
Source0: systemd-v%{version}%{suse_version}.tar.xz
|
Source0: systemd-v%{version}%{suse_version}.tar.xz
|
||||||
Source1: %{name}-rpmlintrc
|
Source1: systemd-rpmlintrc
|
||||||
Source2: systemd-user
|
Source2: systemd-user
|
||||||
%if %{with sysvcompat}
|
%if %{with sysvcompat}
|
||||||
Source3: systemd-sysv-convert
|
Source3: systemd-sysv-convert
|
||||||
@ -200,6 +209,7 @@ Patch12: 0012-resolved-create-etc-resolv.conf-symlink-at-runtime.patch
|
|||||||
# upstream and need an urgent fix. Even in this case, the patches are
|
# upstream and need an urgent fix. Even in this case, the patches are
|
||||||
# temporary and should be removed as soon as a fix is merged by
|
# temporary and should be removed as soon as a fix is merged by
|
||||||
# upstream.
|
# upstream.
|
||||||
|
Patch100: 0001-Revert-core-Check-unit-start-rate-limiting-earlier.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Systemd is a system and service manager, compatible with SysV and LSB
|
Systemd is a system and service manager, compatible with SysV and LSB
|
||||||
@ -643,7 +653,9 @@ Have fun with these services at your own risk.
|
|||||||
-Duserdb=false \
|
-Duserdb=false \
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?bootstrap}
|
%if 0%{?bootstrap}
|
||||||
|
-Dtranslations=false \
|
||||||
-Dnss-myhostname=false \
|
-Dnss-myhostname=false \
|
||||||
|
-Dnss-systemd=false \
|
||||||
%else
|
%else
|
||||||
-Dtpm2=true \
|
-Dtpm2=true \
|
||||||
-Dman=true \
|
-Dman=true \
|
||||||
@ -698,11 +710,6 @@ Have fun with these services at your own risk.
|
|||||||
%install
|
%install
|
||||||
%meson_install
|
%meson_install
|
||||||
|
|
||||||
%if 0%{?bootstrap}
|
|
||||||
rm %{buildroot}%{_libdir}/libnss_systemd.so*
|
|
||||||
rm -r %{buildroot}%{_datadir}/locale
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# Don't ship resolvconf symlink for now as it conflicts with the
|
# Don't ship resolvconf symlink for now as it conflicts with the
|
||||||
# binary shipped by openresolv and provides limited compatibility
|
# binary shipped by openresolv and provides limited compatibility
|
||||||
# only
|
# only
|
||||||
|
Loading…
Reference in New Issue
Block a user