diff --git a/0001-conf-parser-introduce-early-drop-ins.patch b/0001-conf-parser-introduce-early-drop-ins.patch deleted file mode 100644 index 3a2a0c2f..00000000 --- a/0001-conf-parser-introduce-early-drop-ins.patch +++ /dev/null @@ -1,329 +0,0 @@ -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 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -As formerly known as "downstream conf file drop-ins should never override main -user conf file". - -Previously all drop-ins, including those shipped by downstream, shipped in -/usr, could override user's main configuration file (located in /etc) because -the main file was always parsed first. - -This was problematic for downstreams because their customization should never -override the users one in general. Therefore the only way to make this logic -usable was by teaching users to never use the main conf files and to put all -theirs settings in drop-ins with a higher priority than the one downsteam would -use. However customizing the defaults through the main conf file is something -very well established since a long time hence this is not something -conceivable. - -This patch reworks the way we parse configuration files by introducing "early" -conf files (idea from Zbigniew Jędrzejewski-Szmek), which always have a -priority lower than the main config file and hence other conf file drop-ins -too. - -Early conf files can be located in any locations where regular conf snippets -can be installed and are sorted between them using the same sorting rules that -apply to other conf files. A conf file is considered as an early one if its -filename is prefixed with "__" (double underscore). - -Hence for example, drop-in "/usr/lib/systemd/logind.conf.d/__99-foo.conf" will -always be parsed before: - - /etc/systemd/logind.conf - /etc/systemd/logind.conf.d/00-foo.conf - /usr/lib/systemd/logind.conf.d/00-foo.conf - -This change isn't backwards-compatible, but the '__' prefix is something that -is unlikely used. Hence the risk should be very low. - -Unfortunately upstream is not seing this problem as a serious one and accept -that vendors' configuration files can take precedence over the main -configuration files (placed in /etc). See the following links for the -related discussions: - - https://github.com/systemd/systemd/issues/2121 (initial issue report) - https://github.com/systemd/systemd/pull/17161 (first attempt to solve this issue) - https://github.com/systemd/systemd/pull/18347 (introduction of early drop-in) - -Since SUSE heavily relies on drop-ins to customize some of the upstream default -settings, there was no other choice than to diverge from upstream in this -regard. - -But it should be noted that these early drop-ins are strictly reserved for SUSE -own purpose only. IOW users should never use them and early drop-ins should -never be created in /etc but only in /usr. We reserve the right to change or -drop this feature at any time. - -Fixes: #2121 ---- - 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 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 - - static int config_parse_many_files( - const char* const* conf_files, -+ char **early_files, - char **files, - const char *sections, - ConfigItemLookup lookup, -@@ -495,6 +496,20 @@ static int config_parse_many_files( - return -ENOMEM; - } - -+ STRV_FOREACH(fn, early_files) { -+ r = config_parse(NULL, *fn, NULL, sections, lookup, table, flags, userdata, &st); -+ if (r < 0) -+ return r; -+ if (r == 0) -+ continue; -+ -+ if (ret_stats_by_path) { -+ r = hashmap_put_stats_by_path(&stats_by_path, *fn, &st); -+ if (r < 0) -+ return r; -+ } -+ } -+ - /* First read the first found main config file. */ - STRV_FOREACH(fn, conf_files) { - r = config_parse(NULL, *fn, NULL, sections, lookup, table, flags, userdata, &st); -@@ -533,6 +548,27 @@ static int config_parse_many_files( - return 0; - } - -+static int config_parse_split_conf_files(char **files, char ***early_files, char ***late_files) { -+ -+ assert(files); -+ assert(early_files); -+ assert(late_files); -+ -+ STRV_FOREACH(f, files) { -+ char ***s, *p; -+ -+ p = strdup(*f); -+ if (!p) -+ return log_oom(); -+ -+ s = startswith(basename(*f), "__") ? early_files : late_files; -+ if (strv_push(s, p) < 0) -+ return log_oom(); -+ } -+ -+ return 0; -+} -+ - /* 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 **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; - -@@ -571,13 +608,17 @@ int config_parse_config_file( - dropin_dirs[i++] = d; - } - -- 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; -+ -+ 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); - } - -@@ -595,6 +636,7 @@ int config_parse_many( - Hashmap **ret_stats_by_path, - char ***ret_dropin_files) { - -+ _cleanup_strv_free_ char **early_dropins = NULL, **dropins = NULL; - _cleanup_strv_free_ char **files = NULL; - int r; - -@@ -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_dropins, &dropins); - if (r < 0) - return r; - -+ 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(dropins); - - return 0; - } -diff --git a/src/test/test-conf-parser.c b/src/test/test-conf-parser.c -index 0acb4131b5..88f8ff11be 100644 ---- a/src/test/test-conf-parser.c -+++ b/src/test/test-conf-parser.c -@@ -5,7 +5,10 @@ - #include "fs-util.h" - #include "log.h" - #include "macro.h" --#include "string-util.h" -+#include "mkdir.h" -+#include "nulstr-util.h" -+#include "path-util.h" -+#include "rm-rf.h" - #include "strv.h" - #include "tests.h" - #include "tmpfile-util.h" -@@ -390,4 +393,124 @@ TEST(config_parse) { - test_config_parse_one(i, config_file[i]); - } - -+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; -+ _cleanup_fclose_ FILE *f = NULL; -+ -+ abspath = path_join(root, *path); -+ assert_se(abspath); -+ -+ (void) mkdir_parents(abspath, 0755); -+ -+ f = fopen(abspath, "w"); -+ assert_se(f); -+ fprintf(f, -+ "[Section]\n" -+ "Field=%s\n", -+ *path); -+ -+ if (ret_conf_dirs) { -+ _cleanup_free_ char *d = NULL; -+ -+ assert_se(path_extract_directory(abspath, &d) >= 0); -+ assert_se(strv_consume(ret_conf_dirs, TAKE_PTR(d)) == 0); -+ } -+ } -+ -+ if (ret_conf_dirs) { -+ strv_uniq(*ret_conf_dirs); -+ strv_sort(*ret_conf_dirs); -+ } -+} -+ -+static void test_config_parse_many_one(const char *main, char **dropins, const char *expected) { -+ -+ _cleanup_strv_free_ char **conf_dirs = NULL; -+ _cleanup_free_ char *parsed = NULL; -+ char *conf_file; -+ char *tmp_dir; -+ int r; -+ -+ const ConfigTableItem items[] = { -+ { "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, STRV_MAKE(main), NULL); -+ setup_conf_files(tmp_dir, dropins, &conf_dirs); -+ -+ conf_file = main ? strjoina(tmp_dir, "/", main) : NULL; -+ -+ /* Since commit bdb2d3c6889408c7, 'conf_file_dirs' can't be NULL anymore. */ -+ -+ 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((!!expected == !!parsed)); -+ assert_se(!expected || streq(expected, parsed)); -+ -+ assert_se(rm_rf(tmp_dir, REMOVE_ROOT|REMOVE_PHYSICAL) == 0); -+} -+ -+TEST(config_parse_many) { -+ log_info("== %s ==", __func__); -+ -+ test_config_parse_many_one(/* main= */ NULL, -+ /* dropins */ NULL, -+ /* expected_name= */ NULL); -+ -+ test_config_parse_many_one("dir/main.conf", NULL, "dir/main.conf"); -+ -+ test_config_parse_many_one(NULL, -+ STRV_MAKE("dir1/50-foo.conf"), -+ "dir1/50-foo.conf"); -+ -+ test_config_parse_many_one(NULL, -+ STRV_MAKE("dir1/__50-foo.conf"), -+ "dir1/__50-foo.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_one(NULL, -+ STRV_MAKE("dir1/50-foo.conf", "dir2/10-bar.conf"), -+ "dir1/50-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_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_one("dir/50-main.conf", -+ STRV_MAKE("dir1/10-foo.conf"), -+ "dir1/10-foo.conf"); -+ -+ 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); --- -2.35.3 - diff --git a/files.coredump b/files.coredump index 32b62d7e..f78f2f1b 100644 --- a/files.coredump +++ b/files.coredump @@ -1,8 +1,8 @@ # # Please keep the list sorted (with `LC_ALL=C sort`). # -%config(noreplace) %{_sysconfdir}/systemd/coredump.conf %dir %{_localstatedir}/lib/systemd/coredump +%dir %{_sysconfdir}/systemd/coredump.conf.d %{_bindir}/coredumpctl %if %{without bootstrap} %{_datadir}/bash-completion/completions/coredumpctl @@ -15,6 +15,7 @@ %{_mandir}/man8/systemd-coredump@.service.8.gz %endif %{_sysctldir}/50-coredump.conf +%{_systemd_util_dir}/coredump.conf %{_systemd_util_dir}/systemd-coredump %{_sysusersdir}/systemd-coredump.conf %{_unitdir}/sockets.target.wants/systemd-coredump.socket diff --git a/files.experimental b/files.experimental index 7b2439b9..73303174 100644 --- a/files.experimental +++ b/files.experimental @@ -1,7 +1,7 @@ # # Please keep the list sorted (with `LC_ALL=C sort`). # -%config(noreplace) %{_sysconfdir}/systemd/oomd.conf +%dir %{_sysconfdir}/systemd/oomd.conf.d %if %{with sd_boot} %dir %{_unitdir}/initrd.target.wants %endif @@ -45,6 +45,7 @@ %if %{with sd_boot} %{_prefix}/lib/kernel/install.d/60-ukify.install %endif +%{_systemd_util_dir}/oomd.conf %{_systemd_util_dir}/system/initrd-root-fs.target.wants/systemd-repart.service %{_systemd_util_dir}/system/sysinit.target.wants/systemd-repart.service %if %{with sd_boot} diff --git a/files.homed b/files.homed index 93a0b8a1..04605934 100644 --- a/files.homed +++ b/files.homed @@ -1,7 +1,6 @@ # # Please keep the list sorted (with `LC_ALL=C sort`). # -%config(noreplace) %{_sysconfdir}/systemd/homed.conf %{_bindir}/homectl %{_datadir}/bash-completion/completions/homectl %{_datadir}/dbus-1/interfaces/org.freedesktop.home1.Home.xml @@ -17,6 +16,7 @@ %{_mandir}/man8/systemd-homed.8.gz %{_mandir}/man8/systemd-homed.service.8.gz %{_pam_moduledir}/pam_systemd_home.so +%{_systemd_util_dir}/homed.conf %{_systemd_util_dir}/systemd-homed %{_systemd_util_dir}/systemd-homework %{_unitdir}/systemd-homed-activate.service diff --git a/files.journal-remote b/files.journal-remote new file mode 100644 index 00000000..1acfe411 --- /dev/null +++ b/files.journal-remote @@ -0,0 +1,31 @@ +# +# Please keep the list sorted (with `LC_ALL=C sort`). +# +%dir %{_sysconfdir}/systemd/journal-remote.conf.d +%dir %{_sysconfdir}/systemd/journal-upload.conf.d +%ghost %dir %{_localstatedir}/log/journal/remote +%{_datadir}/systemd/gatewayd +%{_datadir}/systemd/gatewayd/browse.html +%{_mandir}/man5/journal-remote.conf.5.gz +%{_mandir}/man5/journal-remote.conf.d.5.gz +%{_mandir}/man5/journal-upload.conf.5.gz +%{_mandir}/man5/journal-upload.conf.d.5.gz +%{_mandir}/man8/systemd-journal-gatewayd.8.gz +%{_mandir}/man8/systemd-journal-gatewayd.service.8.gz +%{_mandir}/man8/systemd-journal-gatewayd.socket.8.gz +%{_mandir}/man8/systemd-journal-remote.8.gz +%{_mandir}/man8/systemd-journal-remote.service.8.gz +%{_mandir}/man8/systemd-journal-remote.socket.8.gz +%{_mandir}/man8/systemd-journal-upload.8.gz +%{_mandir}/man8/systemd-journal-upload.service.8.gz +%{_systemd_util_dir}/journal-remote.conf +%{_systemd_util_dir}/journal-upload.conf +%{_systemd_util_dir}/systemd-journal-gatewayd +%{_systemd_util_dir}/systemd-journal-remote +%{_systemd_util_dir}/systemd-journal-upload +%{_sysusersdir}/systemd-remote.conf +%{_unitdir}/systemd-journal-gatewayd.service +%{_unitdir}/systemd-journal-gatewayd.socket +%{_unitdir}/systemd-journal-remote.service +%{_unitdir}/systemd-journal-remote.socket +%{_unitdir}/systemd-journal-upload.service diff --git a/files.network b/files.network index e1588c4b..e28d4826 100644 --- a/files.network +++ b/files.network @@ -2,8 +2,8 @@ # Please keep the list sorted (with `LC_ALL=C sort`). # %if %{with networkd} -%config(noreplace) %{_sysconfdir}/systemd/networkd.conf %dir %{_sysconfdir}/systemd/network +%dir %{_sysconfdir}/systemd/networkd.conf.d %dir %{_systemd_util_dir}/network %{_bindir}/networkctl %{_datadir}/bash-completion/completions/networkctl @@ -36,6 +36,7 @@ %{_systemd_util_dir}/network/80-wifi-adhoc.network %{_systemd_util_dir}/network/80-wifi-ap.network.example %{_systemd_util_dir}/network/80-wifi-station.network.example +%{_systemd_util_dir}/networkd.conf %{_systemd_util_dir}/systemd-networkd %{_systemd_util_dir}/systemd-networkd-wait-online %{_sysusersdir}/systemd-network.conf @@ -47,7 +48,7 @@ %endif %if %{with resolved} -%config(noreplace) %{_sysconfdir}/systemd/resolved.conf +%dir %{_sysconfdir}/systemd/resolved.conf.d %{_bindir}/resolvectl %{_bindir}/systemd-resolve %{_datadir}/bash-completion/completions/resolvectl @@ -69,6 +70,7 @@ %{_mandir}/man8/systemd-resolved.8.gz %{_mandir}/man8/systemd-resolved.service.8.gz %{_systemd_util_dir}/resolv.conf +%{_systemd_util_dir}/resolved.conf %{_systemd_util_dir}/systemd-resolved %{_sysusersdir}/systemd-resolve.conf %{_tmpfilesdir}/systemd-resolve.conf diff --git a/files.portable b/files.portable new file mode 100644 index 00000000..d96d9161 --- /dev/null +++ b/files.portable @@ -0,0 +1,15 @@ +# +# Please keep the list sorted (with `LC_ALL=C sort`). +# +%{_bindir}/portablectl +%{_datadir}/dbus-1/system-services/org.freedesktop.portable1.service +%{_datadir}/dbus-1/system.d/org.freedesktop.portable1.conf +%{_datadir}/polkit-1/actions/org.freedesktop.portable1.policy +%{_mandir}/man1/portablectl.1.gz +%{_mandir}/man8/systemd-portabled.8.gz +%{_mandir}/man8/systemd-portabled.service.8.gz +%{_systemd_util_dir}/portable +%{_systemd_util_dir}/systemd-portabled +%{_tmpfilesdir}/portables.conf +%{_unitdir}/dbus-org.freedesktop.portable1.service +%{_unitdir}/systemd-portabled.service diff --git a/files.systemd b/files.systemd index 537a3980..a4b3bcf2 100644 --- a/files.systemd +++ b/files.systemd @@ -1,10 +1,6 @@ # # Please keep the list sorted (with `LC_ALL=C sort`). # -%config(noreplace) %{_sysconfdir}/systemd/journald.conf -%config(noreplace) %{_sysconfdir}/systemd/logind.conf -%config(noreplace) %{_sysconfdir}/systemd/system.conf -%config(noreplace) %{_sysconfdir}/systemd/user.conf %dir %{_binfmtdir} %if %{without bootstrap} %dir %{_datadir}/bash-completion @@ -34,8 +30,12 @@ %dir %{_sysconfdir}/binfmt.d %dir %{_sysconfdir}/sysctl.d %dir %{_sysconfdir}/systemd +%dir %{_sysconfdir}/systemd/journald.conf.d +%dir %{_sysconfdir}/systemd/logind.conf.d %dir %{_sysconfdir}/systemd/system +%dir %{_sysconfdir}/systemd/system.conf.d %dir %{_sysconfdir}/systemd/user +%dir %{_sysconfdir}/systemd/user.confd.d %dir %{_sysconfdir}/tmpfiles.d %dir %{_sysconfdir}/xdg/systemd %dir %{_sysctldir} @@ -402,8 +402,11 @@ %{_sysconfdir}/xdg/systemd/user %{_sysctldir}/99-sysctl.conf %{_systemd_user_env_generator_dir}/30-systemd-environment-d-generator +%{_systemd_util_dir}/journald.conf +%{_systemd_util_dir}/logind.conf %{_systemd_util_dir}/rpm/fixlet-systemd-post.sh %{_systemd_util_dir}/system-preset/99-default.preset +%{_systemd_util_dir}/system.conf %{_systemd_util_dir}/systemd %{_systemd_util_dir}/systemd-binfmt %{_systemd_util_dir}/systemd-boot-check-no-failures @@ -433,6 +436,7 @@ %{_systemd_util_dir}/systemd-xdg-autostart-condition %{_systemd_util_dir}/user-preset/90-systemd.preset %{_systemd_util_dir}/user-preset/99-default.preset +%{_systemd_util_dir}/user.conf %{_systemd_util_dir}/user/app.slice %{_systemd_util_dir}/user/background.slice %{_systemd_util_dir}/user/basic.target @@ -463,8 +467,8 @@ %{_tmpfilesdir}/credstore.conf %{_tmpfilesdir}/journal-nocow.conf %{_tmpfilesdir}/provision.conf -%{_tmpfilesdir}/suse.conf %{_tmpfilesdir}/systemd-nologin.conf +%{_tmpfilesdir}/systemd-suse.conf %{_tmpfilesdir}/systemd-tmp.conf %{_tmpfilesdir}/systemd.conf %{_tmpfilesdir}/x11.conf diff --git a/files.udev b/files.udev index c338889b..c32bbb71 100644 --- a/files.udev +++ b/files.udev @@ -1,10 +1,6 @@ # # Please keep the list sorted (with `LC_ALL=C sort`). # -%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 @@ -17,7 +13,11 @@ %dir %{_sysconfdir}/modules-load.d %endif %dir %{_sysconfdir}/systemd/network +%dir %{_sysconfdir}/systemd/pstore.conf.d +%dir %{_sysconfdir}/systemd/sleep.conf.d +%dir %{_sysconfdir}/systemd/timesyncd.conf.d %dir %{_sysconfdir}/udev +%dir %{_sysconfdir}/udev/iocost.conf.d %dir %{_sysconfdir}/udev/rules.d %dir %{_systemd_util_dir}/network %dir %{_systemd_util_dir}/system-sleep @@ -146,11 +146,14 @@ %endif %{_prefix}/lib/udev/fido_id %{_prefix}/lib/udev/iocost +%{_prefix}/lib/udev/iocost.conf %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_systemd_util_dir}/network/99-default.link %{_systemd_util_dir}/ntp-units.d/80-systemd-timesync.list +%{_systemd_util_dir}/pstore.conf +%{_systemd_util_dir}/sleep.conf %{_systemd_util_dir}/systemd-backlight %{_systemd_util_dir}/systemd-battery-check %if %{without bootstrap} @@ -180,6 +183,7 @@ %{_systemd_util_dir}/systemd-veritysetup %endif %{_systemd_util_dir}/systemd-volatile-root +%{_systemd_util_dir}/timesyncd.conf %if %{without bootstrap} %{_systemdgeneratordir}/systemd-cryptsetup-generator %endif diff --git a/systemd-v254.5+suse.10.gb53f364c26.tar.xz b/systemd-v254.5+suse.10.gb53f364c26.tar.xz new file mode 100644 index 00000000..a7271ec4 --- /dev/null +++ b/systemd-v254.5+suse.10.gb53f364c26.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec66792689d2f375003dbdf4328f90f633f9ac9a61e39fa5067bb976b9da75ca +size 10350532 diff --git a/systemd-v254.5+suse.5.g9674bb2562.tar.xz b/systemd-v254.5+suse.5.g9674bb2562.tar.xz deleted file mode 100644 index 6a9199d1..00000000 --- a/systemd-v254.5+suse.5.g9674bb2562.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9dc2d8ed7ea59d5ab5a8e0662d9a0848f41b4235ac5da3728ecce64834299986 -size 10349392 diff --git a/systemd.changes b/systemd.changes index 2403066f..b56ee7ff 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,57 @@ +------------------------------------------------------------------- +Tue Oct 24 14:15:25 UTC 2023 - Franck Bui + +- Import commit b53f364c264cd598d4210b64285a55d362b47b89 + + b53f364c26 test: install af_packet kernel module on openSUSE + 86b7521a3c shared/wall: use logind if build without utmp support + 65aac5858f errno-util: allow ERRNO_IS_* to accept types wider than int + 8f93b89db4 basic/errno-util: add wrappers which only accept negative errno + 1b815b3e76 Introduce RET_GATHER and use it in src/shared/ + +------------------------------------------------------------------- +Fri Oct 20 08:09:19 UTC 2023 - Franck Bui + +- Drop 0001-conf-parser-introduce-early-drop-ins.patch + + The usage of drop-ins is now the official way for configuring systemd and its + various daemons on Factory/ALP. + + See: https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/KWRBTAVQ6MGHVAHKDZZ6GIRX4RMHKHQ6/ + +------------------------------------------------------------------- +Thu Oct 19 13:25:01 UTC 2023 - Franck Bui + +- Ship the main configuration files in /usr/lib/ + + Besides the fact that shipping files in /etc is not recommended anymore, this + change will hopefully encourage users to customize the defaults via the mean + of drop-ins hence removing the risk of conflicts with downstream + customization. + + In contrary, shipping empty directories *.conf.d/ in /etc is not a concern and + should suggest users to create drop-ins (bsc#1207056). + +------------------------------------------------------------------- +Thu Oct 19 12:13:51 UTC 2023 - Franck Bui + +- systemd.spec: add files.portable and files.journal-remote + +------------------------------------------------------------------- +Fri Oct 13 09:38:37 UTC 2023 - Franck Bui + +- Don't include entries listed in kbd-model-map.xkb-generated (provided by kbd + package) in kbd-model-map anymore. Yast, the only user of these entries, + directly parses kbd-model-map.xkb-generated now (bsc#1211104). + +------------------------------------------------------------------- +Fri Oct 13 09:28:23 UTC 2023 - Franck Bui + +- tmpfiles-suse.conf: drop entries for /run/lock and /var/log/wtmp + + /run/lock is now defined by filesystem package and wtmp has been replaced by + wtmpdb on TW. + ------------------------------------------------------------------- Thu Oct 5 15:04:50 UTC 2023 - Franck Bui @@ -152,11 +206,12 @@ Wed Aug 16 08:48:58 UTC 2023 - Franck Bui This includes the following bug fixes: - - upstream commit 331aa7aa15ee5dd12b369b276f575d521435eb52 (bsc#1203141) + - upstream commit 331aa7aa15ee5dd12b369b276f575d521435eb52 (bsc#1181192 bsc#1184238 bsc#1184254 bsc#1184859 bsc#1185828 bsc#1203141) - upstream commit 529ba8a1a3968564b67049a077f213e3a0d53070 (bsc#1209340) - upstream commit f1f331a252d22c15f37d03524cce967664358c5c (bsc#1186606) - upstream commit df1dccd25547b430258bd42ec60428fc9aff1370 (bsc#1213185) - upstream commit 000680a68dbdb07d77807868df0b4f978180e4cd (bsc#1211725) + - upstream commit 2067a7ec7f4c8a353b8e2ece15a6a997e50808b0 (bsc#1211576) * 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 @@ -816,6 +871,8 @@ Mon Nov 14 11:15:06 UTC 2022 - Franck Bui This includes the following bug fixes: - upstream commit 67c3e1f63a5221b47a8fea85ae421671f29f3b7e (bsc#1200723) + - upstream commit 9102c625a673a3246d7e73d8737f3494446bad4e (bsc#1204968 CVE-2022-3821) + - upstream commit efbd4b3ca84c0426b6ff98d6352f82f3b7c090b2 (bsc#1213873) * Rebased 0001-conf-parser-introduce-early-drop-ins.patch 1000-Revert-getty-Pass-tty-to-use-by-agetty-via-stdin.patch @@ -1019,7 +1076,7 @@ Tue Jun 21 14:24:43 UTC 2022 - Franck Bui Tue Jun 21 14:09:51 UTC 2022 - Franck Bui - pstore is no more considered as an experimental feature: move it to udev - package (bsc#1197802) + package (bsc#1197802 jsc#PED-2663) ------------------------------------------------------------------- Tue Jun 21 13:20:39 UTC 2022 - Franck Bui @@ -1053,6 +1110,9 @@ Wed Jun 1 07:20:05 UTC 2022 - Franck Bui - upstream commit e6b169418369abbc88c8f622e02e1d704a23d4ef (bsc#1137373 bsc#1181658 bsc#1194708 bsc#1195157 bsc#1197570) - upstream commit 3a3b022d2cc112803ea7b9beea98bbcad110368a (bsc#1212434 bsc#1213575) + - upstream commit e92a3d8fa3c554f807ddbcd7fc00821868fd8a62 (bsc#1195529) + - upstream commit 1d0727e76fd5e9a07cc9991ec9a10ea1d78a99c7 (bsc#1208194) + - upstream commit 55fabe92e2efb1a907d4c3c93dc63b96ff5b6860 (bsc#1191502) * Rebased 0001-conf-parser-introduce-early-drop-ins.patch @@ -1332,6 +1392,11 @@ Thu Feb 17 18:30:12 UTC 2022 - Franck Bui And let's finish reducing the support of SysV init scripts to its minimum. +------------------------------------------------------------------- +Thu Feb 17 11:14:10 UTC 2022 - Franck Bui + +- Don't rely on %{_distconfdir}, it's broken on SLE (bsc#1195998) + ------------------------------------------------------------------- Mon Feb 14 15:11:04 UTC 2022 - Franck Bui @@ -3287,7 +3352,7 @@ Tue Sep 3 15:10:10 UTC 2019 - Franck Bui ------------------------------------------------------------------- Wed Aug 14 14:25:43 UTC 2019 - Ludwig Nussel -- enable systemd-portabled +- Enable systemd-portabled (jsc#SLE-21695) ------------------------------------------------------------------- Wed Jul 31 14:38:13 UTC 2019 - Franck Bui diff --git a/systemd.spec b/systemd.spec index dd65ca2a..37dd3bdd 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.5.g9674bb2562 +%define archive_version +suse.10.gb53f364c26 %define _testsuitedir %{_systemd_util_dir}/tests %define xinitconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}/X11/xinit @@ -65,6 +65,20 @@ %bcond_without filetriggers %bcond_with split_usr +# We stopped shipping main config files in /etc but we have to restore any +# config files that might have been backed up by rpm during the migration of the +# main config files from /etc to /usr. This needs to be done in %%posttrans +# because the .rpmsave files are created when the *old* package version is +# removed. This is not needed by ALP and will be dropped from Factory near the +# end of 2024. +%define restore_rpmsave() \ +if [ -e %{_sysconfdir}/%{1}.rpmsave ] && [ ! -e %{_sysconfdir}/%{1} ]; then \ + echo >&2 "Restoring %{_sysconfdir}/%1. Please consider moving your customizations in a drop-in instead." \ + echo >&2 "For more details, visit https://en.opensuse.org/Systemd#Configuration." \ + mv -v %{_sysconfdir}/%{1}.rpmsave %{_sysconfdir}/%{1} || : \ +fi \ +%{nil} + Name: systemd%{?mini} URL: http://www.freedesktop.org/wiki/Software/systemd Version: 254.5 @@ -76,7 +90,6 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: bpftool BuildRequires: clang BuildRequires: docbook-xsl-stylesheets -BuildRequires: kbd %if %{with apparmor} BuildRequires: libapparmor-devel %endif @@ -184,6 +197,8 @@ Source207: files.experimental Source208: files.coredump Source209: files.homed Source210: files.lang +Source211: files.journal-remote +Source212: files.portable # # All changes backported from upstream are tracked by the git repository, which @@ -194,7 +209,6 @@ Source210: files.lang # only relevant for SUSE distros. Special rewards for those who will manage to # get rid of one of them ! # -Patch2: 0001-conf-parser-introduce-early-drop-ins.patch Patch3: 0009-pid1-handle-console-specificities-weirdness-for-s390.patch %if %{with sysvcompat} Patch4: 0002-rc-local-fix-ordering-startup-for-etc-init.d-boot.lo.patch @@ -813,8 +827,18 @@ install -m0755 -D %{SOURCE3} %{buildroot}/%{_systemd_util_dir}/systemd-update-he install -m0755 -D %{SOURCE4} %{buildroot}/%{_systemd_util_dir}/systemd-sysv-install %endif -mkdir -p % %{buildroot}%{_sysconfdir}/systemd/network -mkdir -p % %{buildroot}%{_sysconfdir}/systemd/nspawn +# For some reasons, upstream refuses to add a new build option (see pr#29244) +# for customizing the installation path of main config files. However we want to +# store them in /usr/lib so we don't encourage users to modify them while they +# still can serve as templates. +for f in %{buildroot}%{_sysconfdir}/systemd/*.conf; do + mv $f %{buildroot}%{_systemd_util_dir}/ +done +for f in %{buildroot}%{_sysconfdir}/udev/*.conf; do + # Drop-ins are currently not supported by udevd. + [ $(basename $f) = "udev.conf" ] && continue + mv $f %{buildroot}%{_prefix}/lib/udev/ +done # Install the fixlets mkdir -p %{buildroot}%{_systemd_util_dir}/rpm @@ -885,6 +909,26 @@ rm -f %{buildroot}%{_environmentdir}/99-environment.conf # directory... oh well. rm -f %{buildroot}%{_sysconfdir}/init.d/README +# Create *.conf.d/ directories to encourage users to create drop-ins when they +# need to customize some setting defaults. +mkdir -p %{buildroot}%{_sysconfdir}/systemd/coredump.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/journald.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/journal-remote.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/journal-upload.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/logind.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/networkd.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/oomd.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/pstore.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/resolved.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/sleep.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/system.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/timesyncd.conf.d +mkdir -p %{buildroot}%{_sysconfdir}/systemd/user.confd.d +mkdir -p %{buildroot}%{_sysconfdir}/udev/iocost.conf.d + +mkdir -p %{buildroot}%{_sysconfdir}/systemd/network +mkdir -p %{buildroot}%{_sysconfdir}/systemd/nspawn + # This dir must be owned (and thus created) by systemd otherwise the build # system will complain. This is odd since we simply own a ghost file in it... mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d @@ -942,26 +986,12 @@ rm -f %{buildroot}%{_presetdir}/*.preset echo 'disable *' >%{buildroot}%{_presetdir}/99-default.preset echo 'disable *' >%{buildroot}%{_userpresetdir}/99-default.preset -# The current situation with tmpfiles snippets dealing with the generic paths is -# pretty messy currently because: -# -# 1. filesystem package wants to define the generic paths and some of them -# conflict with the definition given by systemd in var.conf, see -# bsc#1078466. -# -# 2. /tmp and /var/tmp are not cleaned by default on SUSE distros (fate#314974) -# which conflict with tmp.conf. -# -# 3. There're also legacy.conf which defines various legacy paths which either -# don't match the SUSE defaults or don't look needed at all. -# -# 4. We don't want the part in etc.conf which imports default upstream files in -# empty /etc, see below. -# -# To keep things simple, we remove all these tmpfiles config files but still -# keep the remaining paths that still don't have a better home in suse.conf. +# Most of the entries for the generic paths are defined by filesystem package as +# the definitions used by SUSE distros diverged from the ones defined by +# systemd. For lack of a better place some (deprecated) paths are still shipped +# along with the systemd package. rm -f %{buildroot}%{_tmpfilesdir}/{etc,home,legacy,tmp,var}.conf -install -m 644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/suse.conf +install -m 644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/systemd-suse.conf # The content of the files shipped by systemd doesn't match the # defaults used by SUSE. Don't ship those files but leave the decision @@ -969,18 +999,6 @@ install -m 644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/suse.conf # consume those configs (like glibc or pam), see bsc#1170146. rm -fr %{buildroot}%{_datadir}/factory/* -# Add entries for xkeyboard-config converted keymaps; mappings, which already -# exist in original systemd mapping table are being ignored though, i.e. not -# overwritten; needed as long as YaST uses console keymaps internally and calls -# localectl to convert from vconsole to X11 keymaps. Ideally YaST should switch -# to X11 layout names (the mapping table wouldn't be needed since each X11 -# keymap has a generated xkbd keymap) and let localectl initialize -# /etc/vconsole.conf and /etc/X11/xorg.conf.d/00-keyboard.conf (FATE#319454). -if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then - cat /usr/share/systemd/kbd-model-map.xkb-generated \ - >>%{buildroot}%{_datarootdir}/systemd/kbd-model-map -fi - # kbd-model-map.legacy is used to provide mapping for legacy keymaps, which may # still be used by yast. cat %{SOURCE14} >>%{buildroot}%{_datarootdir}/systemd/kbd-model-map @@ -1074,6 +1092,12 @@ journalctl --update-catalog || : %systemd_postun_with_restart systemd-timedated.service %systemd_postun_with_restart systemd-userdbd.service +%posttrans +%restore_rpmsave systemd/journald.conf +%restore_rpmsave systemd/logind.conf +%restore_rpmsave systemd/system.conf +%restore_rpmsave systemd/user.conf + %pre -n udev%{?mini} # Units listed below can be enabled at installation accoding to their preset # setting. @@ -1128,6 +1152,10 @@ fi %posttrans -n udev%{?mini} %regenerate_initrd_posttrans +%restore_rpmsave systemd/pstore.conf +%restore_rpmsave systemd/sleep.conf +%restore_rpmsave systemd/timesyncd.conf +%restore_rpmsave udev/iocost.conf %ldconfig_scriptlets -n libsystemd0%{?mini} %ldconfig_scriptlets -n libudev%{?mini}1 @@ -1158,6 +1186,9 @@ fi %post coredump %if %{without filetriggers} %sysusers_create systemd-coredump.conf + +%posttrans coredump +%restore_rpmsave systemd/coredump.conf %endif %endif @@ -1185,6 +1216,10 @@ fi %systemd_postun_with_restart systemd-journal-gatewayd.service %systemd_postun_with_restart systemd-journal-remote.service %systemd_postun_with_restart systemd-journal-upload.service + +%posttrans journal-remote +%restore_rpmsave systemd/journal-remote.conf +%restore_rpmsave systemd/journal-upload.conf %endif %if %{with networkd} || %{with resolved} @@ -1233,6 +1268,10 @@ fi %ldconfig %systemd_postun systemd-resolved.service %endif + +%posttrans network +%restore_rpmsave systemd/networkd.conf +%restore_rpmsave systemd/resolved.conf %endif %if %{with homed} @@ -1291,6 +1330,9 @@ fi %postun experimental %systemd_postun systemd-homed.service %systemd_postun systemd-oomd.service systemd-oomd.socket + +%posttrans experimental +%restore_rpmsave systemd/oomd.conf %endif # File trigger definitions @@ -1363,22 +1405,7 @@ fi %if %{with journal_remote} %files journal-remote %defattr(-, root, root) -%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf -%config(noreplace) %{_sysconfdir}/systemd/journal-upload.conf -%{_unitdir}/systemd-journal-gatewayd.* -%{_unitdir}/systemd-journal-remote.* -%{_unitdir}/systemd-journal-upload.* -%{_systemd_util_dir}/systemd-journal-gatewayd -%{_systemd_util_dir}/systemd-journal-remote -%{_systemd_util_dir}/systemd-journal-upload -%{_sysusersdir}/systemd-remote.conf -%{_mandir}/man5/journal-remote.conf* -%{_mandir}/man5/journal-upload.conf* -%{_mandir}/man8/systemd-journal-gatewayd.* -%{_mandir}/man8/systemd-journal-remote.* -%{_mandir}/man8/systemd-journal-upload.* -%{_datadir}/systemd/gatewayd -%ghost %dir %{_localstatedir}/log/journal/remote +%include %{SOURCE211} %endif %if %{with homed} @@ -1390,17 +1417,7 @@ fi %if %{with portabled} %files portable %defattr(-,root,root) -%{_bindir}/portablectl -%{_systemd_util_dir}/systemd-portabled -%{_systemd_util_dir}/portable -%{_unitdir}/systemd-portabled.service -%{_unitdir}/dbus-org.freedesktop.portable1.service -%{_datadir}/dbus-1/system.d/org.freedesktop.portable1.conf -%{_datadir}/dbus-1/system-services/org.freedesktop.portable1.service -%{_datadir}/polkit-1/actions/org.freedesktop.portable1.policy -%{_tmpfilesdir}/portables.conf -%{_mandir}/man*/portablectl* -%{_mandir}/man*/systemd-portabled* +%include %{SOURCE212} %endif %if %{with testsuite} diff --git a/tmpfiles-suse.conf b/tmpfiles-suse.conf index 74acc896..a39c8380 100644 --- a/tmpfiles-suse.conf +++ b/tmpfiles-suse.conf @@ -5,9 +5,3 @@ # Legacy symlink. Maybe should be owned by util-linux ? L+ /etc/mtab - - - - ../proc/self/mounts - -# FIXME: move to filesystem ? -d /run/lock 0775 root root - - -# FIXME: Move to shadow ? -f /var/log/wtmp 0664 root utmp -