Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package systemd for openSUSE:Factory checked in at 2021-11-08 17:23:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/systemd (Old) and /work/SRC/openSUSE:Factory/.systemd.new.1890 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd" Mon Nov 8 17:23:58 2021 rev:339 rq:928747 version:249.5 Changes: -------- --- /work/SRC/openSUSE:Factory/systemd/systemd.changes 2021-10-20 20:22:41.985319388 +0200 +++ /work/SRC/openSUSE:Factory/.systemd.new.1890/systemd.changes 2021-11-08 17:24:16.268696727 +0100 @@ -1,0 +2,28 @@ +Tue Nov 2 10:26:58 UTC 2021 - Franck Bui <f...@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 <f...@suse.com> + +- Disable nss-systemd and translations features for the mini flavour + +------------------------------------------------------------------- +Mon Oct 18 13:01:01 UTC 2021 - Franck Bui <f...@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 <f...@suse.com> + +- Convert systemd package to multibuild + +------------------------------------------------------------------- @@ -4,0 +33,3 @@ + + 8de173ff93 mount-util: fix fd_is_mount_point() when both the parent and directory are network fs (bsc#1190984) + [...] Old: ---- pre_checkin.sh systemd-mini-rpmlintrc systemd-mini.changes systemd-mini.spec New: ---- 0001-Revert-core-Check-unit-start-rate-limiting-earlier.patch _multibuild ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ systemd.spec ++++++ --- /var/tmp/diff_new_pack.25yJ4i/_old 2021-11-08 17:24:17.260697378 +0100 +++ /var/tmp/diff_new_pack.25yJ4i/_new 2021-11-08 17:24:17.264697380 +0100 @@ -21,8 +21,16 @@ # 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 mini %nil +%endif + %define min_kernel_version 4.5 %define suse_version +suse.47.g8521f8d22f %define _testsuitedir /usr/lib/systemd/tests @@ -59,7 +67,7 @@ # Kept to ease migrations toward SLE %bcond_with split_usr -Name: systemd +Name: systemd%{?mini} URL: http://www.freedesktop.org/wiki/Software/systemd Version: 249.5 Release: 0 @@ -80,6 +88,7 @@ BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 BuildRequires: pkgconfig(libdw) BuildRequires: pkgconfig(libfido2) +BuildRequires: pkgconfig(libiptc) BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpcre2-8) @@ -163,7 +172,7 @@ Obsoletes: suspend <= 1.0 Obsoletes: systemd-analyze < 201 Source0: systemd-v%{version}%{suse_version}.tar.xz -Source1: %{name}-rpmlintrc +Source1: systemd-rpmlintrc Source2: systemd-user %if %{with sysvcompat} Source3: systemd-sysv-convert @@ -200,6 +209,7 @@ # 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 # upstream. +Patch100: 0001-Revert-core-Check-unit-start-rate-limiting-earlier.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -643,7 +653,9 @@ -Duserdb=false \ %endif %if 0%{?bootstrap} + -Dtranslations=false \ -Dnss-myhostname=false \ + -Dnss-systemd=false \ %else -Dtpm2=true \ -Dman=true \ @@ -698,11 +710,6 @@ %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 # binary shipped by openresolv and provides limited compatibility # only ++++++ 0001-Revert-core-Check-unit-start-rate-limiting-earlier.patch ++++++ >From 4fa9d8f14523982482386d398d2b2669902f2098 Mon Sep 17 00:00:00 2001 From: Yu Watanabe <watanabe.yu+git...@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 ++++++ _multibuild ++++++ <multibuild> <package>mini</package> </multibuild>