diff --git a/0001-conf-parser-introduce-early-drop-ins.patch b/0001-conf-parser-introduce-early-drop-ins.patch index 47f4da7c..3a2a0c2f 100644 --- a/0001-conf-parser-introduce-early-drop-ins.patch +++ b/0001-conf-parser-introduce-early-drop-ins.patch @@ -1,4 +1,4 @@ -From 77391d9baf86f10daf210ccf5527e0155a33fc73 Mon Sep 17 00:00:00 2001 +From 503da4e49107f6c20e3fce05506f8b107894a5af Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Fri, 22 Jan 2021 14:57:08 +0100 Subject: [PATCH 1/1] conf-parser: introduce 'early' drop-ins @@ -61,12 +61,12 @@ drop this feature at any time. Fixes: #2121 --- - src/shared/conf-parser.c | 55 ++++++++++-- - src/test/test-conf-parser.c | 166 +++++++++++++++++++++++++++++++++++- - 2 files changed, 215 insertions(+), 6 deletions(-) + src/shared/conf-parser.c | 56 ++++++++++++++-- + src/test/test-conf-parser.c | 125 +++++++++++++++++++++++++++++++++++- + 2 files changed, 175 insertions(+), 6 deletions(-) diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c -index 29051ca0e3..72935030ea 100644 +index ec4b53b2e8..982172dfa0 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -477,6 +477,7 @@ int hashmap_put_stats_by_path(Hashmap **stats_by_path, const char *path, const s @@ -123,61 +123,68 @@ index 29051ca0e3..72935030ea 100644 + return 0; +} + - /* Parse each config file in the directories specified as nulstr. */ - int config_parse_many_nulstr( - const char *conf_file, -@@ -544,15 +580,19 @@ int config_parse_many_nulstr( - void *userdata, - Hashmap **ret_stats_by_path) { + /* Parse one main config file located in /etc/systemd and its drop-ins, which is what all systemd daemons + * do. */ + int config_parse_config_file( +@@ -543,7 +579,8 @@ int config_parse_config_file( + ConfigParseFlags flags, + void *userdata) { -- _cleanup_strv_free_ char **files = NULL; -+ _cleanup_strv_free_ char **files = NULL, **early_files = NULL, **late_files = NULL; +- _cleanup_strv_free_ char **dropins = NULL, **dropin_dirs = NULL; ++ _cleanup_strv_free_ char **dropins = NULL, **early_dropins = NULL, **dropin_dirs = NULL; ++ _cleanup_strv_free_ char **files = NULL; + char **conf_paths = CONF_PATHS_STRV(""); int r; - r = conf_files_list_nulstr(&files, ".conf", NULL, 0, conf_file_dirs); - if (r < 0) - return r; +@@ -571,13 +608,17 @@ int config_parse_config_file( + dropin_dirs[i++] = d; + } -- return config_parse_many_files(STRV_MAKE_CONST(conf_file), -- files, sections, lookup, table, flags, userdata, -+ r = config_parse_split_conf_files(files, &early_files, &late_files); +- r = conf_files_list_strv(&dropins, ".conf", NULL, 0, (const char**) dropin_dirs); ++ r = conf_files_list_strv(&files, ".conf", NULL, 0, (const char**) dropin_dirs); + if (r < 0) + return r; + -+ return config_parse_many_files(STRV_MAKE_CONST(conf_file), early_files, late_files, -+ sections, lookup, table, flags, userdata, - ret_stats_by_path); ++ r = config_parse_split_conf_files(files, &early_dropins, &dropins); + if (r < 0) + return r; + + const char *sysconf_file = strjoina(PKGSYSCONFDIR, "/", conf_file); + +- return config_parse_many_files(STRV_MAKE_CONST(sysconf_file), dropins, ++ return config_parse_many_files(STRV_MAKE_CONST(sysconf_file), early_dropins, dropins, + sections, lookup, table, flags, userdata, NULL); } -@@ -590,6 +630,7 @@ int config_parse_many( +@@ -595,6 +636,7 @@ int config_parse_many( Hashmap **ret_stats_by_path, char ***ret_dropin_files) { -+ _cleanup_strv_free_ char **early_files = NULL, **late_files = NULL; ++ _cleanup_strv_free_ char **early_dropins = NULL, **dropins = NULL; _cleanup_strv_free_ char **files = NULL; int r; -@@ -602,12 +643,16 @@ int config_parse_many( +@@ -607,12 +649,16 @@ int config_parse_many( if (r < 0) return r; - r = config_parse_many_files(conf_files, files, sections, lookup, table, flags, userdata, ret_stats_by_path); -+ r = config_parse_split_conf_files(files, &early_files, &late_files); ++ r = config_parse_split_conf_files(files, &early_dropins, &dropins); if (r < 0) return r; -+ r = config_parse_many_files(conf_files, early_files, late_files, ++ r = config_parse_many_files(conf_files, early_dropins, dropins, + sections, lookup, table, flags, userdata, ret_stats_by_path); + + if (ret_dropin_files) - *ret_dropin_files = TAKE_PTR(files); -+ *ret_dropin_files = TAKE_PTR(late_files); ++ *ret_dropin_files = TAKE_PTR(dropins); return 0; } diff --git a/src/test/test-conf-parser.c b/src/test/test-conf-parser.c -index 0acb4131b5..96a52e759f 100644 +index 0acb4131b5..88f8ff11be 100644 --- a/src/test/test-conf-parser.c +++ b/src/test/test-conf-parser.c @@ -5,7 +5,10 @@ @@ -192,16 +199,11 @@ index 0acb4131b5..96a52e759f 100644 #include "strv.h" #include "tests.h" #include "tmpfile-util.h" -@@ -390,4 +393,165 @@ TEST(config_parse) { +@@ -390,4 +393,124 @@ TEST(config_parse) { test_config_parse_one(i, config_file[i]); } -+static void setup_conf_files(const char *root, bool is_main, char **conf_files, char ***ret_conf_dirs) { -+ -+ /* If 'is_main' is true then 'conf_files' should only contain an entry -+ * for the main conf file. */ -+ if (is_main) -+ assert_se(strv_length(conf_files) <= 1); ++static void setup_conf_files(const char *root, char **conf_files, char ***ret_conf_dirs) { + + STRV_FOREACH(path, conf_files) { + _cleanup_free_ char *abspath = NULL; @@ -216,15 +218,9 @@ index 0acb4131b5..96a52e759f 100644 + assert_se(f); + fprintf(f, + "[Section]\n" -+ "name=%s\n", ++ "Field=%s\n", + *path); + -+ if (!is_main) -+ fprintf(f, -+ "%s=%s\n", -+ startswith(basename(*path), "__") ? "early" : "late", -+ *path); -+ + if (ret_conf_dirs) { + _cleanup_free_ char *d = NULL; + @@ -239,122 +235,92 @@ index 0acb4131b5..96a52e759f 100644 + } +} + -+static void test_config_parse_many_nulstr_one(bool nulstr, const char *main, char **conf_files, -+ const char *name, const char *early, const char *late) { ++static void test_config_parse_many_one(const char *main, char **dropins, const char *expected) { + -+ _cleanup_free_ char *parsed_name = NULL, *parsed_early = NULL, *parsed_late = NULL; + _cleanup_strv_free_ char **conf_dirs = NULL; -+ _cleanup_free_ char *conf_dirs_nulstr = NULL; ++ _cleanup_free_ char *parsed = NULL; + char *conf_file; + char *tmp_dir; -+ size_t size; + int r; + + const ConfigTableItem items[] = { -+ { "Section", "name", config_parse_string, 0, &parsed_name}, -+ { "Section", "late", config_parse_string, 0, &parsed_late}, -+ { "Section", "early", config_parse_string, 0, &parsed_early}, ++ { "Section", "Field", config_parse_string, 0, &parsed}, + }; + + tmp_dir = strdupa("/tmp/test-conf-parser-XXXXXX"); + assert_se(mkdtemp(tmp_dir)); + -+ setup_conf_files(tmp_dir, true, STRV_MAKE(main), NULL); -+ setup_conf_files(tmp_dir, false, conf_files, &conf_dirs); ++ setup_conf_files(tmp_dir, STRV_MAKE(main), NULL); ++ setup_conf_files(tmp_dir, dropins, &conf_dirs); + + conf_file = main ? strjoina(tmp_dir, "/", main) : NULL; + -+ if (nulstr) { -+ r = strv_make_nulstr(conf_dirs, &conf_dirs_nulstr, &size); -+ assert_se(r == 0); ++ /* Since commit bdb2d3c6889408c7, 'conf_file_dirs' can't be NULL anymore. */ + -+ r = config_parse_many_nulstr(conf_file, conf_dirs_nulstr, -+ "Section\0", -+ config_item_table_lookup, items, -+ CONFIG_PARSE_WARN, -+ NULL, -+ NULL); -+ } else { -+ /* sigh... since commit bdb2d3c6889408c7f26c2eeddbe9021ac53f962c, -+ * 'conf_file_dirs' parameter can't be NULL. */ -+ -+ r = config_parse_many(STRV_MAKE_CONST(conf_file), -+ (const char * const*)(conf_dirs ?: STRV_MAKE_EMPTY), -+ "", -+ "Section\0", -+ config_item_table_lookup, items, -+ CONFIG_PARSE_WARN, -+ NULL, /* userdata= */ -+ NULL, /* ret_stats_by_path= */ -+ NULL); /* ret_dropin_files= */ -+ } ++ r = config_parse_many(STRV_MAKE_CONST(conf_file), ++ (const char * const*)(conf_dirs ?: STRV_MAKE_EMPTY), ++ /* dropin_dirname= */ "", ++ /* root= */ NULL, ++ "Section\0", ++ config_item_table_lookup, ++ items, ++ CONFIG_PARSE_WARN, ++ /* userdata= */ NULL, ++ /* ret_stats_by_path= */ NULL, ++ /* ret_dropin_files= */ NULL); + + assert_se(r == 0); + -+ assert_se((!!name == !!parsed_name)); -+ assert_se(!name || streq(name, parsed_name)); -+ -+ assert_se((!!late == !!parsed_late)); -+ assert_se(!late || streq(late, parsed_late)); -+ -+ assert_se((!!early == !!parsed_early)); -+ assert_se(!early || streq(early, parsed_early)); ++ assert_se((!!expected == !!parsed)); ++ assert_se(!expected || streq(expected, parsed)); + + assert_se(rm_rf(tmp_dir, REMOVE_ROOT|REMOVE_PHYSICAL) == 0); +} + -+static void test_config_parse_many_nulstr(bool nulstr) { -+ log_info("== %s%s ==", __func__, nulstr ? "_nulstr" : ""); ++TEST(config_parse_many) { ++ log_info("== %s ==", __func__); + -+ test_config_parse_many_nulstr_one(nulstr, NULL, NULL, NULL, NULL, NULL); ++ test_config_parse_many_one(/* main= */ NULL, ++ /* dropins */ NULL, ++ /* expected_name= */ NULL); + -+ test_config_parse_many_nulstr_one(nulstr, -+ "dir/main.conf", NULL, -+ "dir/main.conf", NULL, NULL); ++ test_config_parse_many_one("dir/main.conf", NULL, "dir/main.conf"); + -+ test_config_parse_many_nulstr_one(nulstr, -+ NULL, STRV_MAKE("dir1/50-foo.conf"), -+ "dir1/50-foo.conf", NULL, "dir1/50-foo.conf"); ++ test_config_parse_many_one(NULL, ++ STRV_MAKE("dir1/50-foo.conf"), ++ "dir1/50-foo.conf"); + -+ test_config_parse_many_nulstr_one(nulstr, -+ NULL, STRV_MAKE("dir1/__50-foo.conf"), -+ "dir1/__50-foo.conf", "dir1/__50-foo.conf", NULL); ++ test_config_parse_many_one(NULL, ++ STRV_MAKE("dir1/__50-foo.conf"), ++ "dir1/__50-foo.conf"); + -+ test_config_parse_many_nulstr_one(nulstr, -+ NULL, STRV_MAKE("dir1/10-foo.conf", "dir1/50-bar.conf"), -+ "dir1/50-bar.conf", NULL, "dir1/50-bar.conf"); ++ test_config_parse_many_one(NULL, ++ STRV_MAKE("dir1/10-foo.conf", "dir1/50-bar.conf"), ++ "dir1/50-bar.conf"); + -+ test_config_parse_many_nulstr_one(nulstr, -+ NULL, STRV_MAKE("dir1/50-foo.conf", "dir2/10-bar.conf"), -+ "dir1/50-foo.conf", NULL, "dir1/50-foo.conf"); ++ test_config_parse_many_one(NULL, ++ STRV_MAKE("dir1/50-foo.conf", "dir2/10-bar.conf"), ++ "dir1/50-foo.conf"); + -+ test_config_parse_many_nulstr_one(nulstr, -+ NULL, STRV_MAKE("dir1/10-foo.conf", "dir2/10-foo.conf"), -+ "dir1/10-foo.conf", NULL, "dir1/10-foo.conf"); ++ test_config_parse_many_one(NULL, ++ STRV_MAKE("dir1/10-foo.conf", "dir2/10-foo.conf"), ++ "dir1/10-foo.conf"); + + /* Early conf files should never override the main one whatever their + * priority/location. */ -+ test_config_parse_many_nulstr_one(nulstr, -+ "dir/10-main.conf", -+ STRV_MAKE("dir1/__10-foo.conf", "dir2/__99-foo.conf"), -+ "dir/10-main.conf", "dir2/__99-foo.conf", NULL); ++ test_config_parse_many_one("dir/10-main.conf", ++ STRV_MAKE("dir1/__10-foo.conf", "dir2/__99-foo.conf"), ++ "dir/10-main.conf"); + + /* Late conf files always take precendence over the early conf files + * and the main one. */ -+ test_config_parse_many_nulstr_one(nulstr, -+ "dir/50-main.conf", STRV_MAKE("dir1/10-foo.conf"), -+ "dir1/10-foo.conf", NULL, "dir1/10-foo.conf"); ++ test_config_parse_many_one("dir/50-main.conf", ++ STRV_MAKE("dir1/10-foo.conf"), ++ "dir1/10-foo.conf"); + -+ test_config_parse_many_nulstr_one(nulstr, -+ "dir/10-main.conf", -+ STRV_MAKE("dir1/__10-foo.conf", "dir2/__99-foo.conf", -+ "dir2/10-foo.conf"), -+ "dir2/10-foo.conf", "dir2/__99-foo.conf", "dir2/10-foo.conf"); -+} -+ -+TEST(config_parse_many) { -+ test_config_parse_many_nulstr(true); -+ test_config_parse_many_nulstr(false); ++ test_config_parse_many_one("dir/10-main.conf", ++ STRV_MAKE("dir1/__10-foo.conf", "dir2/__99-foo.conf", "dir2/10-foo.conf"), ++ "dir2/10-foo.conf"); +} + DEFINE_TEST_MAIN(LOG_INFO); diff --git a/0001-restore-var-run-and-var-lock-bind-mount-if-they-aren.patch b/0001-restore-var-run-and-var-lock-bind-mount-if-they-aren.patch deleted file mode 100644 index 00e1cb09..00000000 --- a/0001-restore-var-run-and-var-lock-bind-mount-if-they-aren.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 9ab58f2dbcbbafc10a1b4de046a9b0e03bb08595 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Mon, 29 Oct 2012 13:01:20 +0000 -Subject: [PATCH 02/11] restore /var/run and /var/lock bind mount if they - aren't symlink - ---- - units/meson.build | 2 ++ - units/var-lock.mount | 19 +++++++++++++++++++ - units/var-run.mount | 19 +++++++++++++++++++ - 3 files changed, 40 insertions(+) - create mode 100644 units/var-lock.mount - create mode 100644 units/var-run.mount - -diff --git a/units/meson.build b/units/meson.build -index a9bf28f6d9..739fd84d2c 100644 ---- a/units/meson.build -+++ b/units/meson.build -@@ -165,6 +165,8 @@ units = [ - ['umount.target', ''], - ['usb-gadget.target', ''], - ['user.slice', ''], -+ ['var-run.mount', 'HAVE_SYSV_COMPAT', 'local-fs.target.wants/'], -+ ['var-lock.mount', 'HAVE_SYSV_COMPAT', 'local-fs.target.wants/'], - ['var-lib-machines.mount', 'ENABLE_MACHINED', - 'remote-fs.target.wants/ machines.target.wants/'], - ['systemd-oomd.socket', 'ENABLE_OOMD'], -diff --git a/units/var-lock.mount b/units/var-lock.mount -new file mode 100644 -index 0000000000..07277adac3 ---- /dev/null -+++ b/units/var-lock.mount -@@ -0,0 +1,19 @@ -+# This file is part of systemd. -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+ -+[Unit] -+Description=Lock Directory -+Before=local-fs.target -+# skip mounting if the directory does not exist or is a symlink -+ConditionPathIsDirectory=/var/lock -+ConditionPathIsSymbolicLink=!/var/lock -+ -+[Mount] -+What=/run/lock -+Where=/var/lock -+Type=bind -+Options=bind -diff --git a/units/var-run.mount b/units/var-run.mount -new file mode 100644 -index 0000000000..ab4da424c9 ---- /dev/null -+++ b/units/var-run.mount -@@ -0,0 +1,19 @@ -+# This file is part of systemd. -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+ -+[Unit] -+Description=Runtime Directory -+Before=local-fs.target -+# skip mounting if the directory does not exist or is a symlink -+ConditionPathIsDirectory=/var/run -+ConditionPathIsSymbolicLink=!/var/run -+ -+[Mount] -+What=/run -+Where=/var/run -+Type=bind -+Options=bind --- -2.34.1 - diff --git a/5001-Revert-core-propagate-stop-too-if-restart-is-issued.patch b/5001-Revert-core-propagate-stop-too-if-restart-is-issued.patch deleted file mode 100644 index c52ef775..00000000 --- a/5001-Revert-core-propagate-stop-too-if-restart-is-issued.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 7e094b534978a8c5e980271a00ebccdba98ae6f7 Mon Sep 17 00:00:00 2001 -From: Franck Bui -Date: Wed, 15 Mar 2023 19:48:52 +0100 -Subject: [PATCH 5001/5001] Revert "core: propagate stop too if restart is - issued" - -This reverts commit 017a7ba4f406adcf69d6b3ec15b9f2d9ed5ad853. - -Until https://github.com/systemd/systemd/issues/26839 is properly fixed. ---- - src/core/transaction.c | 42 +++++++++++++++--------------------------- - 1 file changed, 15 insertions(+), 27 deletions(-) - -diff --git a/src/core/transaction.c b/src/core/transaction.c -index a6fd184e33..9689d5faab 100644 ---- a/src/core/transaction.c -+++ b/src/core/transaction.c -@@ -1047,39 +1047,27 @@ int transaction_add_job_and_dependencies( - } - - if (IN_SET(type, JOB_STOP, JOB_RESTART)) { -- _cleanup_set_free_ Set *propagated_restart = NULL; -+ UnitDependencyAtom atom; -+ JobType ptype; -+ - /* We propagate STOP as STOP, but RESTART only as TRY_RESTART, in order not to start - * dependencies that are not around. */ -+ if (type == JOB_RESTART) { -+ atom = UNIT_ATOM_PROPAGATE_RESTART; -+ ptype = JOB_TRY_RESTART; -+ } else { -+ ptype = JOB_STOP; -+ atom = UNIT_ATOM_PROPAGATE_STOP; -+ } - -- if (type == JOB_RESTART) -- UNIT_FOREACH_DEPENDENCY(dep, ret->unit, UNIT_ATOM_PROPAGATE_RESTART) { -- JobType nt; -- -- r = set_ensure_put(&propagated_restart, NULL, dep); -- if (r < 0) -- return r; -- -- nt = job_type_collapse(JOB_TRY_RESTART, dep); -- if (nt == JOB_NOP) -- continue; -- -- r = transaction_add_job_and_dependencies(tr, nt, dep, ret, true, false, false, ignore_order, e); -- if (r < 0) { -- if (r != -EBADR) /* job type not applicable */ -- return r; -- -- sd_bus_error_free(e); -- } -- } -+ UNIT_FOREACH_DEPENDENCY(dep, ret->unit, atom) { -+ JobType nt; - -- /* The 'stop' part of a restart job is also propagated to -- * units with UNIT_ATOM_PROPAGATE_STOP */ -- UNIT_FOREACH_DEPENDENCY(dep, ret->unit, UNIT_ATOM_PROPAGATE_STOP) { -- /* Units experienced restart propagation are skipped */ -- if (set_contains(propagated_restart, dep)) -+ nt = job_type_collapse(ptype, dep); -+ if (nt == JOB_NOP) - continue; - -- r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, false, false, ignore_order, e); -+ r = transaction_add_job_and_dependencies(tr, nt, dep, ret, true, false, false, ignore_order, e); - if (r < 0) { - if (r != -EBADR) /* job type not applicable */ - return r; --- -2.35.3 - diff --git a/files.devel b/files.devel index f9248ea5..bffa68d6 100644 --- a/files.devel +++ b/files.devel @@ -21,6 +21,7 @@ %{_mandir}/man3/SD_BUS_ERROR_INCONSISTENT_MESSAGE.3.gz %{_mandir}/man3/SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED.3.gz %{_mandir}/man3/SD_BUS_ERROR_INVALID_ARGS.3.gz +%{_mandir}/man3/SD_BUS_ERROR_INVALID_FILE_CONTENT.3.gz %{_mandir}/man3/SD_BUS_ERROR_INVALID_SIGNATURE.3.gz %{_mandir}/man3/SD_BUS_ERROR_IO_ERROR.3.gz %{_mandir}/man3/SD_BUS_ERROR_LIMITS_EXCEEDED.3.gz @@ -35,8 +36,11 @@ %{_mandir}/man3/SD_BUS_ERROR_NO_REPLY.3.gz %{_mandir}/man3/SD_BUS_ERROR_NO_SERVER.3.gz %{_mandir}/man3/SD_BUS_ERROR_NULL.3.gz +%{_mandir}/man3/SD_BUS_ERROR_OBJECT_PATH_IN_USE.3.gz %{_mandir}/man3/SD_BUS_ERROR_PROPERTY_READ_ONLY.3.gz +%{_mandir}/man3/SD_BUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN.3.gz %{_mandir}/man3/SD_BUS_ERROR_SERVICE_UNKNOWN.3.gz +%{_mandir}/man3/SD_BUS_ERROR_TIMED_OUT.3.gz %{_mandir}/man3/SD_BUS_ERROR_TIMEOUT.3.gz %{_mandir}/man3/SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN.3.gz %{_mandir}/man3/SD_BUS_ERROR_UNKNOWN_INTERFACE.3.gz @@ -108,9 +112,11 @@ %{_mandir}/man3/SD_JOURNAL_RUNTIME_ONLY.3.gz %{_mandir}/man3/SD_JOURNAL_SUPPRESS_LOCATION.3.gz %{_mandir}/man3/SD_JOURNAL_SYSTEM.3.gz +%{_mandir}/man3/SD_JOURNAL_TAKE_DIRECTORY_FD.3.gz %{_mandir}/man3/SD_LISTEN_FDS_START.3.gz %{_mandir}/man3/SD_NOTICE.3.gz %{_mandir}/man3/SD_WARNING.3.gz +%{_mandir}/man3/libsystemd.3.gz %{_mandir}/man3/libudev.3.gz %{_mandir}/man3/sd-bus-errors.3.gz %{_mandir}/man3/sd-bus.3.gz @@ -454,6 +460,7 @@ %{_mandir}/man3/sd_event_add_inotify.3.gz %{_mandir}/man3/sd_event_add_inotify_fd.3.gz %{_mandir}/man3/sd_event_add_io.3.gz +%{_mandir}/man3/sd_event_add_memory_pressure.3.gz %{_mandir}/man3/sd_event_add_post.3.gz %{_mandir}/man3/sd_event_add_signal.3.gz %{_mandir}/man3/sd_event_add_time.3.gz @@ -508,6 +515,7 @@ %{_mandir}/man3/sd_event_source_get_time_clock.3.gz %{_mandir}/man3/sd_event_source_get_userdata.3.gz %{_mandir}/man3/sd_event_source_is_ratelimited.3.gz +%{_mandir}/man3/sd_event_source_leave_ratelimit.3.gz %{_mandir}/man3/sd_event_source_ref.3.gz %{_mandir}/man3/sd_event_source_send_child_signal.3.gz %{_mandir}/man3/sd_event_source_set_child_pidfd_own.3.gz @@ -520,6 +528,8 @@ %{_mandir}/man3/sd_event_source_set_io_events.3.gz %{_mandir}/man3/sd_event_source_set_io_fd.3.gz %{_mandir}/man3/sd_event_source_set_io_fd_own.3.gz +%{_mandir}/man3/sd_event_source_set_memory_pressure_period.3.gz +%{_mandir}/man3/sd_event_source_set_memory_pressure_type.3.gz %{_mandir}/man3/sd_event_source_set_prepare.3.gz %{_mandir}/man3/sd_event_source_set_priority.3.gz %{_mandir}/man3/sd_event_source_set_ratelimit.3.gz @@ -531,6 +541,7 @@ %{_mandir}/man3/sd_event_source_unref.3.gz %{_mandir}/man3/sd_event_source_unrefp.3.gz %{_mandir}/man3/sd_event_time_handler_t.3.gz +%{_mandir}/man3/sd_event_trim_memory.3.gz %{_mandir}/man3/sd_event_unref.3.gz %{_mandir}/man3/sd_event_unrefp.3.gz %{_mandir}/man3/sd_event_wait.3.gz @@ -591,6 +602,7 @@ %{_mandir}/man3/sd_journal_get_fd.3.gz %{_mandir}/man3/sd_journal_get_monotonic_usec.3.gz %{_mandir}/man3/sd_journal_get_realtime_usec.3.gz +%{_mandir}/man3/sd_journal_get_seqnum.3.gz %{_mandir}/man3/sd_journal_get_timeout.3.gz %{_mandir}/man3/sd_journal_get_usage.3.gz %{_mandir}/man3/sd_journal_has_persistent_files.3.gz @@ -627,6 +639,7 @@ %{_mandir}/man3/sd_journal_sendv.3.gz %{_mandir}/man3/sd_journal_sendv_with_location.3.gz %{_mandir}/man3/sd_journal_set_data_threshold.3.gz +%{_mandir}/man3/sd_journal_step_one.3.gz %{_mandir}/man3/sd_journal_stream_fd.3.gz %{_mandir}/man3/sd_journal_test_cursor.3.gz %{_mandir}/man3/sd_journal_wait.3.gz @@ -664,8 +677,10 @@ %{_mandir}/man3/sd_pid_get_user_slice.3.gz %{_mandir}/man3/sd_pid_get_user_unit.3.gz %{_mandir}/man3/sd_pid_notify.3.gz +%{_mandir}/man3/sd_pid_notify_barrier.3.gz %{_mandir}/man3/sd_pid_notify_with_fds.3.gz %{_mandir}/man3/sd_pid_notifyf.3.gz +%{_mandir}/man3/sd_pid_notifyf_with_fds.3.gz %{_mandir}/man3/sd_pidfd_get_cgroup.3.gz %{_mandir}/man3/sd_pidfd_get_machine_name.3.gz %{_mandir}/man3/sd_pidfd_get_owner_uid.3.gz @@ -681,18 +696,22 @@ %{_mandir}/man3/sd_session_get_class.3.gz %{_mandir}/man3/sd_session_get_desktop.3.gz %{_mandir}/man3/sd_session_get_display.3.gz +%{_mandir}/man3/sd_session_get_leader.3.gz %{_mandir}/man3/sd_session_get_remote_host.3.gz %{_mandir}/man3/sd_session_get_remote_user.3.gz %{_mandir}/man3/sd_session_get_seat.3.gz %{_mandir}/man3/sd_session_get_service.3.gz +%{_mandir}/man3/sd_session_get_start_time.3.gz %{_mandir}/man3/sd_session_get_state.3.gz %{_mandir}/man3/sd_session_get_tty.3.gz %{_mandir}/man3/sd_session_get_type.3.gz %{_mandir}/man3/sd_session_get_uid.3.gz +%{_mandir}/man3/sd_session_get_username.3.gz %{_mandir}/man3/sd_session_get_vt.3.gz %{_mandir}/man3/sd_session_is_active.3.gz %{_mandir}/man3/sd_session_is_remote.3.gz %{_mandir}/man3/sd_uid_get_display.3.gz +%{_mandir}/man3/sd_uid_get_login_time.3.gz %{_mandir}/man3/sd_uid_get_seats.3.gz %{_mandir}/man3/sd_uid_get_sessions.3.gz %{_mandir}/man3/sd_uid_get_state.3.gz diff --git a/files.experimental b/files.experimental index 5a5df8ef..7b2439b9 100644 --- a/files.experimental +++ b/files.experimental @@ -42,6 +42,9 @@ %{_mandir}/man8/systemd-sysupdate.8.gz %{_mandir}/man8/systemd-sysupdate.service.8.gz %{_mandir}/man8/systemd-sysupdate.timer.8.gz +%if %{with sd_boot} +%{_prefix}/lib/kernel/install.d/60-ukify.install +%endif %{_systemd_util_dir}/system/initrd-root-fs.target.wants/systemd-repart.service %{_systemd_util_dir}/system/sysinit.target.wants/systemd-repart.service %if %{with sd_boot} diff --git a/files.lang b/files.lang new file mode 100644 index 00000000..1b023f81 --- /dev/null +++ b/files.lang @@ -0,0 +1,19 @@ +# +# Please keep the list sorted (with `LC_ALL=C sort`). +# +%lang(be) %{_journalcatalogdir}/systemd.be.catalog +%lang(be@latin) %{_journalcatalogdir}/systemd.be@latin.catalog +%lang(bg) %{_journalcatalogdir}/systemd.bg.catalog +%lang(da) %{_journalcatalogdir}/systemd.da.catalog +%lang(de) %{_journalcatalogdir}/systemd.de.catalog +%lang(fr) %{_journalcatalogdir}/systemd.fr.catalog +%lang(hr) %{_journalcatalogdir}/systemd.hr.catalog +%lang(hu) %{_journalcatalogdir}/systemd.hu.catalog +%lang(it) %{_journalcatalogdir}/systemd.it.catalog +%lang(ko) %{_journalcatalogdir}/systemd.ko.catalog +%lang(pl) %{_journalcatalogdir}/systemd.pl.catalog +%lang(pt_BR) %{_journalcatalogdir}/systemd.pt_BR.catalog +%lang(ru) %{_journalcatalogdir}/systemd.ru.catalog +%lang(sr) %{_journalcatalogdir}/systemd.sr.catalog +%lang(zh_CN) %{_journalcatalogdir}/systemd.zh_CN.catalog +%lang(zh_TW) %{_journalcatalogdir}/systemd.zh_TW.catalog diff --git a/files.systemd b/files.systemd index a400ca8d..56241dc4 100644 --- a/files.systemd +++ b/files.systemd @@ -47,7 +47,6 @@ %dir %{_systemd_util_dir}/system-preset %dir %{_systemd_util_dir}/system-shutdown %dir %{_systemd_util_dir}/user -%dir %{_systemd_util_dir}/user-generators %dir %{_systemd_util_dir}/user-preset %dir %{_systemdgeneratordir} %dir %{_systemdusergeneratordir} @@ -72,6 +71,7 @@ %dir %{_unitdir}/sockets.target.wants %dir %{_unitdir}/sysinit.target.wants %dir %{_unitdir}/timers.target.wants +%dir %{_unitdir}/user-.slice.d %dir %{_unitdir}/user@.service.d %dir %{_unitdir}/user@0.service.d %dir %{xinitconfdir} @@ -101,6 +101,7 @@ %{_bindir}/systemd-cat %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop +%{_bindir}/systemd-confext %{_bindir}/systemd-creds %{_bindir}/systemd-delta %{_bindir}/systemd-detect-virt @@ -204,30 +205,12 @@ %{_datadir}/zsh/site-functions/_systemd-run %{_datadir}/zsh/site-functions/_systemd-tmpfiles %{_datadir}/zsh/site-functions/_timedatectl -%endif -%{_journalcatalogdir}/systemd.be.catalog -%{_journalcatalogdir}/systemd.be@latin.catalog -%{_journalcatalogdir}/systemd.bg.catalog %{_journalcatalogdir}/systemd.catalog -%{_journalcatalogdir}/systemd.da.catalog -%{_journalcatalogdir}/systemd.de.catalog -%{_journalcatalogdir}/systemd.fr.catalog -%{_journalcatalogdir}/systemd.hr.catalog -%{_journalcatalogdir}/systemd.hu.catalog -%{_journalcatalogdir}/systemd.it.catalog -%{_journalcatalogdir}/systemd.ko.catalog -%{_journalcatalogdir}/systemd.pl.catalog -%{_journalcatalogdir}/systemd.pt_BR.catalog -%{_journalcatalogdir}/systemd.ru.catalog -%{_journalcatalogdir}/systemd.sr.catalog -%{_journalcatalogdir}/systemd.zh_CN.catalog -%{_journalcatalogdir}/systemd.zh_TW.catalog -%if %{without bootstrap} %{_libdir}/libnss_myhostname.so.2 %{_libdir}/libnss_systemd.so.2 %endif -%{_libdir}/systemd/libsystemd-core-253.so -%{_libdir}/systemd/libsystemd-shared-253.so +%{_libdir}/systemd/libsystemd-core-254.so +%{_libdir}/systemd/libsystemd-shared-254.so %if %{without bootstrap} %{_mandir}/man1/busctl.1.gz %{_mandir}/man1/hostnamectl.1.gz @@ -235,6 +218,7 @@ %{_mandir}/man1/journalctl.1.gz %{_mandir}/man1/localectl.1.gz %{_mandir}/man1/loginctl.1.gz +%{_mandir}/man1/mount.ddi.1.gz %{_mandir}/man1/systemctl.1.gz %{_mandir}/man1/systemd-ac-power.1.gz %{_mandir}/man1/systemd-analyze.1.gz @@ -350,10 +334,13 @@ %{_mandir}/man8/systemd-binfmt.service.8.gz %{_mandir}/man8/systemd-boot-check-no-failures.8.gz %{_mandir}/man8/systemd-boot-check-no-failures.service.8.gz +%{_mandir}/man8/systemd-confext.8.gz +%{_mandir}/man8/systemd-confext.service.8.gz %{_mandir}/man8/systemd-debug-generator.8.gz %{_mandir}/man8/systemd-environment-d-generator.8.gz %{_mandir}/man8/systemd-getty-generator.8.gz %{_mandir}/man8/systemd-halt.service.8.gz +%{_mandir}/man8/systemd-hibernate-resume.service.8.gz %{_mandir}/man8/systemd-hostnamed.8.gz %{_mandir}/man8/systemd-hostnamed.service.8.gz %{_mandir}/man8/systemd-journald-audit.socket.8.gz @@ -375,6 +362,7 @@ %{_mandir}/man8/systemd-run-generator.8.gz %{_mandir}/man8/systemd-shutdown.8.gz %{_mandir}/man8/systemd-socket-proxyd.8.gz +%{_mandir}/man8/systemd-soft-reboot.service.8.gz %{_mandir}/man8/systemd-sysctl.8.gz %{_mandir}/man8/systemd-sysctl.service.8.gz %{_mandir}/man8/systemd-sysext.8.gz @@ -392,8 +380,10 @@ %{_mandir}/man8/systemd-tmpfiles.8.gz %{_mandir}/man8/systemd-update-done.8.gz %{_mandir}/man8/systemd-update-done.service.8.gz +%if %{with utmp} %{_mandir}/man8/systemd-update-utmp.8.gz %{_mandir}/man8/systemd-update-utmp.service.8.gz +%endif %{_mandir}/man8/systemd-user-sessions.8.gz %{_mandir}/man8/systemd-user-sessions.service.8.gz %{_mandir}/man8/systemd-userdbd.8.gz @@ -405,6 +395,7 @@ %{_pam_vendordir}/systemd-user %{_sbindir}/halt %{_sbindir}/init +%{_sbindir}/mount.ddi %{_sbindir}/poweroff %{_sbindir}/reboot %{_sbindir}/shutdown @@ -431,14 +422,15 @@ %{_systemd_util_dir}/systemd-timedated %{_systemd_util_dir}/systemd-update-done %{_systemd_util_dir}/systemd-update-helper +%if %{with utmp} %{_systemd_util_dir}/systemd-update-utmp +%endif %{_systemd_util_dir}/systemd-user-runtime-dir %{_systemd_util_dir}/systemd-user-sessions %if %{without bootstrap} %{_systemd_util_dir}/systemd-userdbd %endif %{_systemd_util_dir}/systemd-xdg-autostart-condition -%{_systemd_util_dir}/user-generators/systemd-xdg-autostart-generator %{_systemd_util_dir}/user-preset/90-systemd.preset %{_systemd_util_dir}/user-preset/99-default.preset %{_systemd_util_dir}/user/app.slice @@ -466,6 +458,7 @@ %{_systemdgeneratordir}/systemd-getty-generator %{_systemdgeneratordir}/systemd-run-generator %{_systemdgeneratordir}/systemd-system-update-generator +%{_systemdusergeneratordir}/systemd-xdg-autostart-generator %{_sysusersdir}/systemd-journal.conf %{_tmpfilesdir}/credstore.conf %{_tmpfilesdir}/journal-nocow.conf @@ -551,6 +544,7 @@ %{_unitdir}/sockets.target %{_unitdir}/sockets.target.wants/systemd-journald-dev-log.socket %{_unitdir}/sockets.target.wants/systemd-journald.socket +%{_unitdir}/soft-reboot.target %{_unitdir}/sound.target %{_unitdir}/swap.target %{_unitdir}/sys-fs-fuse-connections.mount @@ -576,7 +570,9 @@ %{_unitdir}/sysinit.target.wants/systemd-sysusers.service %{_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup.service %{_unitdir}/sysinit.target.wants/systemd-update-done.service +%if %{with utmp} %{_unitdir}/sysinit.target.wants/systemd-update-utmp.service +%endif %{_unitdir}/syslog.socket %{_unitdir}/system-update-cleanup.service %{_unitdir}/system-update-pre.target @@ -587,6 +583,7 @@ %{_unitdir}/systemd-ask-password-wall.service %{_unitdir}/systemd-binfmt.service %{_unitdir}/systemd-boot-check-no-failures.service +%{_unitdir}/systemd-confext.service %{_unitdir}/systemd-exit.service %{_unitdir}/systemd-halt.service %{_unitdir}/systemd-hostnamed.service @@ -604,6 +601,7 @@ %{_unitdir}/systemd-logind.service %{_unitdir}/systemd-machine-id-commit.service %{_unitdir}/systemd-poweroff.service +%{_unitdir}/systemd-soft-reboot.service %{_unitdir}/systemd-sysctl.service %{_unitdir}/systemd-sysext.service %{_unitdir}/systemd-sysusers.service @@ -613,7 +611,9 @@ %{_unitdir}/systemd-tmpfiles-clean.timer %{_unitdir}/systemd-tmpfiles-setup.service %{_unitdir}/systemd-update-done.service +%if %{with utmp} %{_unitdir}/systemd-update-utmp.service +%endif %{_unitdir}/systemd-user-sessions.service %if %{without bootstrap} %{_unitdir}/systemd-userdbd.service @@ -626,7 +626,6 @@ %{_unitdir}/tmp.mount %{_unitdir}/umount.target %{_unitdir}/usb-gadget.target -%{_unitdir}/user-.slice.d %{_unitdir}/user-.slice.d/10-defaults.conf %{_unitdir}/user-runtime-dir@.service %{_unitdir}/user.slice diff --git a/files.sysvcompat b/files.sysvcompat index 786a9b3c..70277b64 100644 --- a/files.sysvcompat +++ b/files.sysvcompat @@ -13,7 +13,9 @@ %{_mandir}/man8/systemd-initctl.socket.8.gz %{_mandir}/man8/systemd-rc-local-generator.8.gz %{_mandir}/man8/systemd-sysv-generator.8.gz +%if %{with utmp} %{_mandir}/man8/systemd-update-utmp-runlevel.service.8.gz +%endif %{_mandir}/man8/telinit.8.gz %{_sbindir}/runlevel %{_sbindir}/telinit @@ -21,12 +23,14 @@ %{_systemd_util_dir}/systemd-sysv-install %{_systemdgeneratordir}/systemd-rc-local-generator %{_systemdgeneratordir}/systemd-sysv-generator +%if %{with utmp} %{_unitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service -%{_unitdir}/local-fs.target.wants/var-lock.mount -%{_unitdir}/local-fs.target.wants/var-run.mount %{_unitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service +%endif %{_unitdir}/rc-local.service +%if %{with utmp} %{_unitdir}/rescue.target.wants/systemd-update-utmp-runlevel.service +%endif %{_unitdir}/runlevel0.target %{_unitdir}/runlevel1.target %{_unitdir}/runlevel2.target @@ -37,9 +41,9 @@ %{_unitdir}/sockets.target.wants/systemd-initctl.socket %{_unitdir}/systemd-initctl.service %{_unitdir}/systemd-initctl.socket +%if %{with utmp} %{_unitdir}/systemd-update-utmp-runlevel.service -%{_unitdir}/var-lock.mount -%{_unitdir}/var-run.mount +%endif %if %{with split_usr} /sbin/runlevel /sbin/telinit diff --git a/files.udev b/files.udev index 03e95f49..c338889b 100644 --- a/files.udev +++ b/files.udev @@ -4,6 +4,7 @@ %config(noreplace) %{_sysconfdir}/systemd/pstore.conf %config(noreplace) %{_sysconfdir}/systemd/sleep.conf %config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf +%config(noreplace) %{_sysconfdir}/udev/iocost.conf %config(noreplace) %{_sysconfdir}/udev/udev.conf %if %{without bootstrap} %dir %{_libdir}/cryptsetup @@ -22,6 +23,7 @@ %dir %{_systemd_util_dir}/system-sleep %dir %{_udevhwdbdir} %dir %{_udevrulesdir} +%dir %{_unitdir}/initrd.target.wants %doc %{_udevhwdbdir}/README %doc %{_udevrulesdir}/README %ghost %attr(0600,root,root) %{_localstatedir}/lib/systemd/random-seed @@ -47,14 +49,13 @@ %if %{without bootstrap} %{_datadir}/zsh/site-functions/_kernel-install %{_datadir}/zsh/site-functions/_udevadm -%endif -%if %{without bootstrap} %{_libdir}/cryptsetup/libcryptsetup-token-systemd-fido2.so %{_libdir}/cryptsetup/libcryptsetup-token-systemd-pkcs11.so %{_libdir}/cryptsetup/libcryptsetup-token-systemd-tpm2.so %{_mandir}/man1/systemd-cryptenroll.1.gz %{_mandir}/man5/crypttab.5.gz %{_mandir}/man5/integritytab.5.gz +%{_mandir}/man5/iocost.conf.5.gz %{_mandir}/man5/modules-load.d.5.gz %{_mandir}/man5/pstore.conf.5.gz %{_mandir}/man5/pstore.conf.d.5.gz @@ -66,10 +67,14 @@ %{_mandir}/man5/vconsole.conf.5.gz %{_mandir}/man5/veritytab.5.gz %{_mandir}/man7/hwdb.7.gz +%{_mandir}/man7/smbios-type-11.7.gz +%{_mandir}/man7/systemd.image-policy.7.gz %{_mandir}/man7/udev.7.gz %{_mandir}/man8/kernel-install.8.gz %{_mandir}/man8/systemd-backlight.8.gz %{_mandir}/man8/systemd-backlight@.service.8.gz +%{_mandir}/man8/systemd-battery-check.8.gz +%{_mandir}/man8/systemd-battery-check.service.8.gz %{_mandir}/man8/systemd-cryptsetup-generator.8.gz %{_mandir}/man8/systemd-cryptsetup.8.gz %{_mandir}/man8/systemd-cryptsetup@.service.8.gz @@ -84,7 +89,6 @@ %{_mandir}/man8/systemd-growfs@.service.8.gz %{_mandir}/man8/systemd-hibernate-resume-generator.8.gz %{_mandir}/man8/systemd-hibernate-resume.8.gz -%{_mandir}/man8/systemd-hibernate-resume@.service.8.gz %{_mandir}/man8/systemd-hibernate.service.8.gz %{_mandir}/man8/systemd-hwdb.8.gz %{_mandir}/man8/systemd-hybrid-sleep.service.8.gz @@ -114,6 +118,7 @@ %{_mandir}/man8/systemd-suspend.service.8.gz %{_mandir}/man8/systemd-timesyncd.8.gz %{_mandir}/man8/systemd-timesyncd.service.8.gz +%{_mandir}/man8/systemd-tmpfiles-setup-dev-early.service.8.gz %{_mandir}/man8/systemd-tmpfiles-setup-dev.service.8.gz %{_mandir}/man8/systemd-udev-settle.service.8.gz %{_mandir}/man8/systemd-udevd-control.socket.8.gz @@ -135,17 +140,19 @@ %endif %{_prefix}/lib/udev/ata_id %{_prefix}/lib/udev/cdrom_id -# dmi_memory_id is only relevant on arches with DMI %ifarch %{arm} aarch64 %{ix86} x86_64 ia64 mips +# dmi_memory_id is only relevant on arches with DMI %{_prefix}/lib/udev/dmi_memory_id %endif %{_prefix}/lib/udev/fido_id +%{_prefix}/lib/udev/iocost %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_systemd_util_dir}/network/99-default.link %{_systemd_util_dir}/ntp-units.d/80-systemd-timesync.list %{_systemd_util_dir}/systemd-backlight +%{_systemd_util_dir}/systemd-battery-check %if %{without bootstrap} %{_systemd_util_dir}/systemd-cryptsetup %endif @@ -220,6 +227,7 @@ %{_udevrulesdir}/60-autosuspend.rules %{_udevrulesdir}/60-block.rules %{_udevrulesdir}/60-cdrom_id.rules +%{_udevrulesdir}/60-dmi-id.rules %{_udevrulesdir}/60-drm.rules %{_udevrulesdir}/60-evdev.rules %{_udevrulesdir}/60-fido-id.rules @@ -249,6 +257,7 @@ %endif %{_udevrulesdir}/80-net-setup-link.rules %{_udevrulesdir}/81-net-dhcp.rules +%{_udevrulesdir}/90-iocost.rules %{_udevrulesdir}/90-vconsole.rules %if %{without bootstrap} %{_unitdir}/cryptsetup-pre.target @@ -261,6 +270,7 @@ %{_unitdir}/initrd-root-device.target.wants/remote-veritysetup.target %endif %{_unitdir}/initrd-udevadm-cleanup-db.service +%{_unitdir}/initrd.target.wants/systemd-battery-check.service %if %{without bootstrap} %{_unitdir}/integritysetup-pre.target %{_unitdir}/integritysetup.target @@ -283,20 +293,22 @@ %{_unitdir}/sysinit.target.wants/systemd-modules-load.service %endif %{_unitdir}/sysinit.target.wants/systemd-random-seed.service +%{_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup-dev-early.service %{_unitdir}/sysinit.target.wants/systemd-tmpfiles-setup-dev.service %{_unitdir}/sysinit.target.wants/systemd-udev-trigger.service %{_unitdir}/sysinit.target.wants/systemd-udevd.service %if %{without bootstrap} %{_unitdir}/sysinit.target.wants/veritysetup.target %{_unitdir}/system-systemd\x2dcryptsetup.slice +%{_unitdir}/system-systemd\x2dveritysetup.slice %endif %{_unitdir}/systemd-backlight@.service +%{_unitdir}/systemd-battery-check.service %{_unitdir}/systemd-firstboot.service %{_unitdir}/systemd-fsck-root.service %{_unitdir}/systemd-fsck@.service %{_unitdir}/systemd-growfs-root.service %{_unitdir}/systemd-growfs@.service -%{_unitdir}/systemd-hibernate-resume@.service %{_unitdir}/systemd-hibernate.service %{_unitdir}/systemd-hwdb-update.service %{_unitdir}/systemd-hybrid-sleep.service @@ -314,6 +326,7 @@ %{_unitdir}/systemd-suspend-then-hibernate.service %{_unitdir}/systemd-suspend.service %{_unitdir}/systemd-timesyncd.service +%{_unitdir}/systemd-tmpfiles-setup-dev-early.service %{_unitdir}/systemd-tmpfiles-setup-dev.service %{_unitdir}/systemd-udev-settle.service %{_unitdir}/systemd-udev-trigger.service diff --git a/files.uefi-boot b/files.uefi-boot index 5c23e18b..5712f17f 100644 --- a/files.uefi-boot +++ b/files.uefi-boot @@ -22,8 +22,8 @@ %{_mandir}/man8/systemd-boot-random-seed.service.8.gz %endif # These are the few exceptions where glob pattern is allowed. +%{_systemd_util_dir}/boot/efi/addon*.efi.stub %{_systemd_util_dir}/boot/efi/linux*.efi.stub -%{_systemd_util_dir}/boot/efi/linux*.elf.stub %{_systemd_util_dir}/boot/efi/systemd-boot*.efi %{_systemd_util_dir}/systemd-bless-boot %{_systemdgeneratordir}/systemd-bless-boot-generator diff --git a/systemd-v253.8+suse.32.gfcdb2dd2c9.tar.xz b/systemd-v253.8+suse.32.gfcdb2dd2c9.tar.xz deleted file mode 100644 index 8934d10b..00000000 --- a/systemd-v253.8+suse.32.gfcdb2dd2c9.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2f98d7387f9ec510d76d955a6353a5033ca8102d624dbd0dbc0b0831743f09ce -size 8282492 diff --git a/systemd-v254.3+suse.3.gb6b4e5a8a8.tar.xz b/systemd-v254.3+suse.3.gb6b4e5a8a8.tar.xz new file mode 100644 index 00000000..d4c7338b --- /dev/null +++ b/systemd-v254.3+suse.3.gb6b4e5a8a8.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:780d94cd8f016ecd2031214ab41b8cd7d45535eba4f8806c2f2897850f7707dd +size 10346864 diff --git a/systemd.changes b/systemd.changes index b5c083f7..10da63ff 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,91 @@ +------------------------------------------------------------------- +Mon Sep 11 07:54:35 UTC 2023 - Franck Bui + +- Import commit b6b4e5a8a82d1f13f265a4ef170f2d13be82789a (merge of v254.3) + + For a complete list of changes, visit: + https://github.com/openSUSE/systemd/compare/1f73719d67b9300c6bb75232d695d03410991098...b6b4e5a8a82d1f13f265a4ef170f2d13be82789a + +------------------------------------------------------------------- +Thu Aug 24 11:32:52 UTC 2023 - Thorsten Kukuk + +- Make utmp support per project configureable [jsc#PED-3144] +- Make apparmor and selinux per project configureable [jsc#PED-2736] + +------------------------------------------------------------------- +Thu Aug 24 10:42:20 UTC 2023 - Franck Bui + +- systemd.spec: don't use build conditionals (%bcond_with/%bcond_without) with + the mini flavor to make sure that all the features remain disabled for this + flavor regardless of what is enabled in the prjconf. + +------------------------------------------------------------------- +Fri Aug 18 13:19:39 UTC 2023 - Franck Bui + +- Don't build systemd-doc with the mini flavor + +------------------------------------------------------------------- +Fri Aug 18 10:06:37 UTC 2023 - Dominique Leuenberger + +- Explicitly require group(lp) by udev: this used to be provided by + system-group-hardware, but with the introduction of + system-user-lp (and systemd-users auto-generating groups) is now + actually provided by system-user-lp. Latest versions of + system-group-hardware clean this up and no longer also provide + this group. + +------------------------------------------------------------------- +Fri Aug 18 06:24:11 UTC 2023 - Franck Bui + +- Fix incorrect option name when calling pam-config for systemd-homed + +------------------------------------------------------------------- +Thu Aug 17 09:01:36 UTC 2023 - Johannes Segitz + +- testsuite: Recommend selinux-policy-devel instead of requiring it in line with + other tests. Add Recommends for selinux-policy-targeted as this is also + required to run the test (in general any SELinux policy should do) + +------------------------------------------------------------------- +Wed Aug 16 16:51:01 UTC 2023 - Ludwig Nussel + +- systemd.spec: add journal translations to lang package + +------------------------------------------------------------------- +Wed Aug 16 10:29:45 UTC 2023 - Franck Bui + +- Import commmit 1f73719d67b9300c6bb75232d695d03410991098 + + 1f73719d67 test-mountpoint-util: /root might be mounted + a391ba4a8f test: testsuite-35.sh needs manual/test-session-properties to be installed on SUSE + +------------------------------------------------------------------- +Wed Aug 16 08:48:58 UTC 2023 - Franck Bui + +- Upgrade to v254.1 (commit 208a21833b6953a2517a6c3f8f4849c6664b01be) + + See https://github.com/openSUSE/systemd/blob/SUSE/v254/NEWS for details. + + This includes the following bug fixes: + + - upstream commit 331aa7aa15ee5dd12b369b276f575d521435eb52 (bsc#1203141) + - upstream commit 529ba8a1a3968564b67049a077f213e3a0d53070 (bsc#1209340) + - upstream commit f1f331a252d22c15f37d03524cce967664358c5c (bsc#1186606) + - upstream commit df1dccd25547b430258bd42ec60428fc9aff1370 (bsc#1213185) + - upstream commit 000680a68dbdb07d77807868df0b4f978180e4cd (bsc#1211725) + + * Drop 5001-Revert-core-propagate-stop-too-if-restart-is-issued.patch. A fix + for https://github.com/systemd/systemd/issues/26839 has been integrated in + v254. + + * Drop 5002-Revert-core-service-when-resetting-PID-also-reset-kn.patch, it's + part of v254. + + * Drop 0001-restore-var-run-and-var-lock-bind-mount-if-they-aren.patch, it's + no more needed these days. + + * Rebase 0001-conf-parser-introduce-early-drop-ins.patch + ------------------------------------------------------------------- Fri Aug 11 08:31:12 UTC 2023 - Franck Bui diff --git a/systemd.spec b/systemd.spec index 3dd058bc..3c53266b 100644 --- a/systemd.spec +++ b/systemd.spec @@ -19,7 +19,7 @@ %global flavor @BUILD_FLAVOR@%{nil} %define min_kernel_version 4.5 -%define archive_version +suse.32.gfcdb2dd2c9 +%define archive_version +suse.3.gb6b4e5a8a8 %define _testsuitedir %{_systemd_util_dir}/tests %define xinitconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}/X11/xinit @@ -35,23 +35,11 @@ %define when_not() %{expand:%%__when_not_%# %{*}} %if "%{flavor}" == "mini" -%define mini -mini -%bcond_without bootstrap -%bcond_with coredump -%bcond_with homed -%bcond_with importd -%bcond_with journal_remote -%bcond_with machined -%bcond_with networkd -%bcond_with portabled -%bcond_with resolved -%bcond_with sd_boot -%bcond_with sysvcompat -%bcond_with experimental -%bcond_with testsuite +%global mini -mini +%global with_bootstrap 1 %else -%define mini %nil -%bcond_with bootstrap +%global mini %nil +%bcond_without apparmor %bcond_without coredump %bcond_without homed %bcond_without importd @@ -65,17 +53,21 @@ %else %bcond_with sd_boot %endif +%bcond_without selinux %bcond_without sysvcompat %bcond_without experimental %bcond_without testsuite +%bcond_without utmp %endif -# Kept to ease migrations toward SLE + +# The following features are kept to ease migrations toward SLE. Their default +# value is independent of the build flavor. %bcond_without filetriggers %bcond_with split_usr Name: systemd%{?mini} URL: http://www.freedesktop.org/wiki/Software/systemd -Version: 253.8 +Version: 254.3 Release: 0 Summary: A System and Session Manager License: LGPL-2.1-or-later @@ -85,7 +77,9 @@ BuildRequires: bpftool BuildRequires: clang BuildRequires: docbook-xsl-stylesheets BuildRequires: kbd +%if %{with apparmor} BuildRequires: libapparmor-devel +%endif BuildRequires: libgcrypt-devel BuildRequires: libxslt-tools BuildRequires: polkit @@ -101,7 +95,9 @@ BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpcre2-8) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(libseccomp) >= 2.3.1 +%if %{with selinux} BuildRequires: pkgconfig(libselinux) >= 2.1.9 +%endif BuildRequires: pkgconfig(libzstd) %endif BuildRequires: fdupes @@ -191,17 +187,17 @@ Source206: files.uefi-boot Source207: files.experimental Source208: files.coredump Source209: files.homed +Source210: files.lang # # All changes backported from upstream are tracked by the git repository, which # can be found at: https://github.com/openSUSE/systemd. # -# Patches listed below are openSUSE specific and should be kept at its +# Patches listed below are openSUSE specific ones and should be kept at its # minimum. We try hard to push our changes to upstream but sometimes they are # only relevant for SUSE distros. Special rewards for those who will manage to # get rid of one of them ! # -Patch1: 0001-restore-var-run-and-var-lock-bind-mount-if-they-aren.patch Patch2: 0001-conf-parser-introduce-early-drop-ins.patch Patch3: 0009-pid1-handle-console-specificities-weirdness-for-s390.patch %if %{with sysvcompat} @@ -215,7 +211,6 @@ Patch5: 0008-sysv-generator-translate-Required-Start-into-a-Wants.patch # worked around quickly. In these cases, the patches are added temporarily and # will be removed as soon as a proper fix will be merged by upstream. Patch5000: 5000-core-manager-run-generators-directly-when-we-are-in-.patch -Patch5001: 5001-Revert-core-propagate-stop-too-if-restart-is-issued.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -227,19 +222,6 @@ maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. -%package doc -Summary: HTML documentation for systemd -License: LGPL-2.1-or-later -%if %{with bootstrap} -Conflicts: systemd-doc -Requires: this-is-only-for-build-envs -%else -Supplements: (systemd and patterns-base-documentation) -%endif - -%description doc -The HTML documentation for systemd. - %package devel Summary: Development files for libsystemd and libudev License: LGPL-2.1-or-later @@ -319,6 +301,7 @@ Requires: filesystem Requires: kmod Requires: system-group-hardware Requires: group(kvm) +Requires: group(lp) # The next dependency is also needed with file-triggers enabled due to the way # the libzypp default transaction backend works. Requires(pre): group(kvm) @@ -402,8 +385,8 @@ Visit https://systemd.io/COREDUMP for more details. %package boot Summary: A simple UEFI boot manager License: LGPL-2.1-or-later -BuildRequires: gnu-efi BuildRequires: pesign-obs-integration +BuildRequires: python3-pyelftools %description boot This package provides systemd-boot (short: sd-boot), which is a simple UEFI boot @@ -570,7 +553,6 @@ systemd-journal-remote, and systemd-journal-upload. %if %{with testsuite} %package testsuite Summary: Testsuite for systemd -# Unit tests dependencies License: LGPL-2.1-or-later Recommends: python3 Recommends: python3-colorama @@ -579,12 +561,17 @@ Recommends: dosfstools # Optional deps needed by TEST-70-TPM2 (otherwise skipped) Recommends: swtpm Recommends: tpm2.0-tools -# The following deps on libs are for test-dlopen-so whereas the pkgconfig ones -# are used by test-funtions to find the libs on the host and install them in the -# image, see install_missing_libraries() for details. %if %{with resolved} # Optional dep for knot needed by TEST-75-RESOLVED Recommends: knot +%if %{with selinux} +# Optional deps needed by TEST-06-SELINUX (otherwise skipped) +Recommends: selinux-policy-devel +Recommends: selinux-policy-targeted +%endif +# The following deps on libs are for test-dlopen-so whereas the pkgconfig ones +# are used by test-funtions to find the libs on the host and install them in the +# image, see install_missing_libraries() for details. Requires: libidn2 Requires: pkgconfig(libidn2) %endif @@ -613,7 +600,6 @@ Requires: netcat Requires: python3-pexpect Requires: qemu-kvm Requires: quota -Requires: selinux-policy-devel Requires: socat Requires: squashfs Requires: systemd-container @@ -693,6 +679,14 @@ Have fun (at your own risk). %if %{without bootstrap} %lang_package + +%package doc +Summary: HTML documentation for systemd +License: LGPL-2.1-or-later +Supplements: (systemd and patterns-base-documentation) + +%description doc +The HTML documentation for systemd. %endif %prep @@ -718,6 +712,7 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" -Dclock-valid-range-usec-max=946728000000000 \ -Dadm-group=false \ -Dwheel-group=false \ + -Dutmp=%{when utmp} \ -Ddefault-hierarchy=unified \ -Ddefault-kill-user-processes=false \ -Dpamconfdir=no \ @@ -744,7 +739,7 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" \ -Dpstore=true \ \ - -Dapparmor=%{when_not bootstrap} \ + -Dapparmor=%{when apparmor} \ -Dbpf-framework=%{when_not bootstrap} \ -Defi=%{when_not bootstrap} \ -Delfutils=%{when_not bootstrap} \ @@ -756,7 +751,7 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" -Dnss-myhostname=%{when_not bootstrap} \ -Dnss-systemd=%{when_not bootstrap} \ -Dseccomp=%{when_not bootstrap} \ - -Dselinux=%{when_not bootstrap} \ + -Dselinux=%{when selinux} \ -Dtpm=%{when_not bootstrap} \ -Dtpm2=%{when_not bootstrap} \ -Dtranslations=%{when_not bootstrap} \ @@ -770,7 +765,7 @@ export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" -Dportabled=%{when portabled} \ -Dremote=%{when journal_remote} \ \ - -Dgnu-efi=%{when sd_boot} \ + -Dbootloader=%{when sd_boot} \ -Defi-color-highlight="black,green" \ \ -Dsbat-distro="%{?sbat_distro}" \ @@ -1008,6 +1003,9 @@ tar -cO \ %if %{without bootstrap} %find_lang systemd +%else +rm -f %{buildroot}%{_journalcatalogdir}/* +rm -fr %{buildroot}%{_docdir}/systemd %endif # Don't drop %%pre section even if it becomes empty: the build process of @@ -1239,14 +1237,14 @@ fi %post homed if [ $1 -eq 1 ]; then - pam-config --add --systemd-homed || : + pam-config --add --systemd_home || : fi %systemd_post systemd-homed.service %preun homed %systemd_preun systemd-homed.service if [ $1 -eq 0 ]; then - pam-config --delete --systemd-homed || : + pam-config --delete --systemd_home || : fi %postun homed @@ -1318,10 +1316,6 @@ fi %include %{SOURCE203} %endif -%files doc -%defattr(-,root,root,-) -%{_docdir}/systemd/ - %files devel %defattr(-,root,root,-) %license LICENSE.LGPL2.1 @@ -1337,13 +1331,13 @@ fi %defattr(-,root,root) %license LICENSE.LGPL2.1 %{_libdir}/libsystemd.so.0 -%{_libdir}/libsystemd.so.0.36.0 +%{_libdir}/libsystemd.so.0.37.0 %files -n libudev%{?mini}1 %defattr(-,root,root) %license LICENSE.LGPL2.1 %{_libdir}/libudev.so.1 -%{_libdir}/libudev.so.1.7.6 +%{_libdir}/libudev.so.1.7.7 %if %{with coredump} %files coredump @@ -1353,6 +1347,11 @@ fi %if %{without bootstrap} %files lang -f systemd.lang +%include %{SOURCE210} + +%files doc +%defattr(-,root,root,-) +%{_docdir}/systemd/ %endif %if %{with journal_remote}