From 7d0bdd9a7ac6715c493be6ecdb87fb007dff58a65ef0726f986a8b331eb3871f Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Tue, 7 Jun 2022 18:24:43 +0000 Subject: [PATCH] - Upgrade to v251.2 (commit 949d6bb7201dd48167ee9716ed6278764d1f4c0f) See https://github.com/openSUSE/systemd/blob/SUSE/v251/NEWS for details. - Rebased 0001-conf-parser-introduce-early-drop-ins.patch - systemd-testsuite now requires python3-pexpect due to TEST-69-SHUTDOWN relying on this module. - sysusers.d/systemd-network.conf has been moved to systemd-network sub-package since the tmpfiles configuration snippets for networkd has also been moved to this sub-package. OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1285 --- ...conf-parser-introduce-early-drop-ins.patch | 78 +++++++++++-------- files.devel | 18 +++++ files.network | 5 ++ files.systemd | 24 ++++-- files.udev | 1 + files.uefi-boot | 1 + systemd-v250.6+suse.58.g4dbc543953.tar.xz | 3 - systemd-v251.2+suse.18.g949d6bb720.tar.xz | 3 + systemd.changes | 17 ++++ systemd.spec | 13 ++-- 10 files changed, 117 insertions(+), 46 deletions(-) delete mode 100644 systemd-v250.6+suse.58.g4dbc543953.tar.xz create mode 100644 systemd-v251.2+suse.18.g949d6bb720.tar.xz diff --git a/0001-conf-parser-introduce-early-drop-ins.patch b/0001-conf-parser-introduce-early-drop-ins.patch index bcd96141..a63fa0f3 100644 --- a/0001-conf-parser-introduce-early-drop-ins.patch +++ b/0001-conf-parser-introduce-early-drop-ins.patch @@ -1,7 +1,7 @@ -From 079a6f89f9e42517cd14b488320b6302746bcf9b Mon Sep 17 00:00:00 2001 +From a1c88ab7f5e5ad127833168bbb38340d1b582a88 Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Fri, 22 Jan 2021 14:57:08 +0100 -Subject: [PATCH 01/11] conf-parser: introduce 'early' drop-ins +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 @@ -61,15 +61,15 @@ drop this feature at any time. Fixes: #2121 --- - src/shared/conf-parser.c | 48 +++++++++-- - src/test/test-conf-parser.c | 154 ++++++++++++++++++++++++++++++++++++ - 2 files changed, 197 insertions(+), 5 deletions(-) + src/shared/conf-parser.c | 54 +++++++++++- + src/test/test-conf-parser.c | 163 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 213 insertions(+), 4 deletions(-) diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c -index 1e1967d7ea..eb81732dfa 100644 +index 6bd3ab38db..1722b90ca0 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c -@@ -464,6 +464,7 @@ static int hashmap_put_stats_by_path(Hashmap **stats_by_path, const char *path, +@@ -478,6 +478,7 @@ static int hashmap_put_stats_by_path(Hashmap **stats_by_path, const char *path, static int config_parse_many_files( const char* const* conf_files, @@ -77,25 +77,32 @@ index 1e1967d7ea..eb81732dfa 100644 char **files, const char *sections, ConfigItemLookup lookup, -@@ -481,6 +482,12 @@ static int config_parse_many_files( - stats_by_path = hashmap_new(&path_hash_ops_free_free); - if (!stats_by_path) +@@ -496,6 +497,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. */ -@@ -521,6 +528,28 @@ static int config_parse_many_files( + STRV_FOREACH(fn, conf_files) { + r = config_parse(NULL, *fn, NULL, sections, lookup, table, flags, userdata, &st); +@@ -534,6 +549,27 @@ static int config_parse_many_files( return 0; } +static int config_parse_split_conf_files(char **files, char ***early_files, char ***late_files) { -+ char **f; + + assert(files); + assert(early_files); @@ -119,7 +126,7 @@ index 1e1967d7ea..eb81732dfa 100644 /* Parse each config file in the directories specified as nulstr. */ int config_parse_many_nulstr( const char *conf_file, -@@ -532,15 +561,19 @@ int config_parse_many_nulstr( +@@ -545,15 +581,19 @@ int config_parse_many_nulstr( void *userdata, Hashmap **ret_stats_by_path) { @@ -142,17 +149,15 @@ index 1e1967d7ea..eb81732dfa 100644 ret_stats_by_path); } -@@ -556,8 +589,8 @@ int config_parse_many( +@@ -590,6 +630,7 @@ int config_parse_many( void *userdata, Hashmap **ret_stats_by_path) { -+ _cleanup_strv_free_ char **files = NULL, **early_files = NULL, **late_files = NULL; - _cleanup_strv_free_ char **dropin_dirs = NULL; -- _cleanup_strv_free_ char **files = NULL; - const char *suffix; ++ _cleanup_strv_free_ char **early_files = NULL, **late_files = NULL; + _cleanup_strv_free_ char **files = NULL; int r; -@@ -570,7 +603,12 @@ int config_parse_many( +@@ -602,7 +643,12 @@ int config_parse_many( if (r < 0) return r; @@ -165,9 +170,9 @@ index 1e1967d7ea..eb81732dfa 100644 + sections, lookup, table, flags, userdata, ret_stats_by_path); } - #define DEFINE_PARSER(type, vartype, conv_func) \ + static int config_get_stats_by_path_one( diff --git a/src/test/test-conf-parser.c b/src/test/test-conf-parser.c -index e61932ab16..de408272f0 100644 +index e61932ab16..5a5c0d73ff 100644 --- a/src/test/test-conf-parser.c +++ b/src/test/test-conf-parser.c @@ -5,6 +5,9 @@ @@ -180,12 +185,11 @@ index e61932ab16..de408272f0 100644 #include "string-util.h" #include "strv.h" #include "tests.h" -@@ -391,4 +394,155 @@ TEST(config_parse) { +@@ -391,4 +394,164 @@ 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) { -+ char **path; + + /* If 'is_main' is true then 'conf_files' should only contain an entry + * for the main conf file. */ @@ -264,8 +268,12 @@ index e61932ab16..de408272f0 100644 + 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, "", ++ (const char * const*)(conf_dirs ?: STRV_MAKE_EMPTY), ++ "", + "Section\0", + config_item_table_lookup, items, + CONFIG_PARSE_WARN, @@ -274,9 +282,15 @@ index e61932ab16..de408272f0 100644 + } + + assert_se(r == 0); -+ assert_se((!name && !parsed_name) || streq(name, parsed_name)); -+ assert_se((!late && !parsed_late) || streq(late, parsed_late)); -+ assert_se((!early && !parsed_early) || streq(early, parsed_early)); ++ ++ 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(rm_rf(tmp_dir, REMOVE_ROOT|REMOVE_PHYSICAL) == 0); +} @@ -337,5 +351,5 @@ index e61932ab16..de408272f0 100644 + DEFINE_TEST_MAIN(LOG_INFO); -- -2.34.1 +2.35.3 diff --git a/files.devel b/files.devel index c1a2301c..fde7b6f7 100644 --- a/files.devel +++ b/files.devel @@ -87,7 +87,9 @@ %{_mandir}/man3/SD_ID128_NULL.3.gz %{_mandir}/man3/SD_ID128_STRING_MAX.3.gz %{_mandir}/man3/SD_ID128_TO_STRING.3.gz +%{_mandir}/man3/SD_ID128_TO_UUID_STRING.3.gz %{_mandir}/man3/SD_ID128_UUID_FORMAT_STR.3.gz +%{_mandir}/man3/SD_ID128_UUID_STRING_MAX.3.gz %{_mandir}/man3/SD_INFO.3.gz %{_mandir}/man3/SD_JOURNAL_ALL_NAMESPACES.3.gz %{_mandir}/man3/SD_JOURNAL_APPEND.3.gz @@ -112,6 +114,7 @@ %{_mandir}/man3/sd-bus-errors.3.gz %{_mandir}/man3/sd-bus.3.gz %{_mandir}/man3/sd-daemon.3.gz +%{_mandir}/man3/sd-device.3.gz %{_mandir}/man3/sd-event.3.gz %{_mandir}/man3/sd-hwdb.3.gz %{_mandir}/man3/sd-id128.3.gz @@ -423,6 +426,20 @@ %{_mandir}/man3/sd_bus_unref.3.gz %{_mandir}/man3/sd_bus_unrefp.3.gz %{_mandir}/man3/sd_bus_wait.3.gz +%{_mandir}/man3/sd_device_get_devname.3.gz +%{_mandir}/man3/sd_device_get_devnum.3.gz +%{_mandir}/man3/sd_device_get_devpath.3.gz +%{_mandir}/man3/sd_device_get_devtype.3.gz +%{_mandir}/man3/sd_device_get_diskseq.3.gz +%{_mandir}/man3/sd_device_get_driver.3.gz +%{_mandir}/man3/sd_device_get_ifindex.3.gz +%{_mandir}/man3/sd_device_get_subsystem.3.gz +%{_mandir}/man3/sd_device_get_sysname.3.gz +%{_mandir}/man3/sd_device_get_sysnum.3.gz +%{_mandir}/man3/sd_device_get_syspath.3.gz +%{_mandir}/man3/sd_device_ref.3.gz +%{_mandir}/man3/sd_device_unref.3.gz +%{_mandir}/man3/sd_device_unrefp.3.gz %{_mandir}/man3/sd_event.3.gz %{_mandir}/man3/sd_event_add_child.3.gz %{_mandir}/man3/sd_event_add_child_pidfd.3.gz @@ -535,6 +552,7 @@ %{_mandir}/man3/sd_id128_randomize.3.gz %{_mandir}/man3/sd_id128_t.3.gz %{_mandir}/man3/sd_id128_to_string.3.gz +%{_mandir}/man3/sd_id128_to_uuid_string.3.gz %{_mandir}/man3/sd_is_fifo.3.gz %{_mandir}/man3/sd_is_mq.3.gz %{_mandir}/man3/sd_is_socket.3.gz diff --git a/files.network b/files.network index 9e3f698c..d3c3715c 100644 --- a/files.network +++ b/files.network @@ -23,19 +23,24 @@ %{_mandir}/man5/systemd.network.5.gz %{_mandir}/man8/systemd-networkd-wait-online.8.gz %{_mandir}/man8/systemd-networkd-wait-online.service.8.gz +%{_mandir}/man8/systemd-networkd-wait-online@.service.8.gz %{_mandir}/man8/systemd-networkd.8.gz %{_mandir}/man8/systemd-networkd.service.8.gz %{_systemd_util_dir}/network/80-6rd-tunnel.network %{_systemd_util_dir}/network/80-container-host0.network %{_systemd_util_dir}/network/80-container-ve.network %{_systemd_util_dir}/network/80-container-vz.network +%{_systemd_util_dir}/network/80-ethernet.network.example %{_systemd_util_dir}/network/80-vm-vt.network %{_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}/systemd-networkd %{_systemd_util_dir}/systemd-networkd-wait-online +%{_sysusersdir}/systemd-network.conf +%{_tmpfilesdir}/systemd-network.conf %{_unitdir}/systemd-networkd-wait-online.service +%{_unitdir}/systemd-networkd-wait-online@.service %{_unitdir}/systemd-networkd.service %{_unitdir}/systemd-networkd.socket %endif diff --git a/files.systemd b/files.systemd index 8e3481a9..482666b7 100644 --- a/files.systemd +++ b/files.systemd @@ -183,6 +183,7 @@ %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy +%{_datadir}/polkit-1/actions/org.freedesktop.timesync1.policy %{_datadir}/systemd/kbd-model-map %{_datadir}/systemd/language-fallback-map %if %{without bootstrap} @@ -301,6 +302,7 @@ %{_mandir}/man5/systemd.target.5.gz %{_mandir}/man5/systemd.timer.5.gz %{_mandir}/man5/systemd.unit.5.gz +%{_mandir}/man5/sysupdate.d.5.gz %{_mandir}/man5/sysusers.d.5.gz %{_mandir}/man5/timesyncd.conf.5.gz %{_mandir}/man5/timesyncd.conf.d.5.gz @@ -386,6 +388,11 @@ %{_mandir}/man8/systemd-sysext.8.gz %{_mandir}/man8/systemd-sysext.service.8.gz %{_mandir}/man8/systemd-system-update-generator.8.gz +%{_mandir}/man8/systemd-sysupdate-reboot.service.8.gz +%{_mandir}/man8/systemd-sysupdate-reboot.timer.8.gz +%{_mandir}/man8/systemd-sysupdate.8.gz +%{_mandir}/man8/systemd-sysupdate.service.8.gz +%{_mandir}/man8/systemd-sysupdate.timer.8.gz %{_mandir}/man8/systemd-sysusers.8.gz %{_mandir}/man8/systemd-sysusers.service.8.gz %{_mandir}/man8/systemd-time-wait-sync.8.gz @@ -419,7 +426,8 @@ %{_sysconfdir}/xdg/systemd/user %{_sysctldir}/99-sysctl.conf %{_systemd_user_env_generator_dir}/30-systemd-environment-d-generator -%{_systemd_util_dir}/libsystemd-shared-250.so +%{_systemd_util_dir}/libsystemd-core-251.so +%{_systemd_util_dir}/libsystemd-shared-251.so %{_systemd_util_dir}/ntp-units.d/80-systemd-timesync.list %{_systemd_util_dir}/scripts/migrate-sysconfig-i18n.sh %{_systemd_util_dir}/scripts/upgrade-from-pre-210.sh @@ -444,6 +452,9 @@ %{_systemd_util_dir}/systemd-socket-proxyd %{_systemd_util_dir}/systemd-sulogin-shell %{_systemd_util_dir}/systemd-sysctl +%if %{without bootstrap} +%{_systemd_util_dir}/systemd-sysupdate +%endif %{_systemd_util_dir}/systemd-time-wait-sync %{_systemd_util_dir}/systemd-timedated %{_systemd_util_dir}/systemd-timesyncd @@ -483,11 +494,6 @@ %{_systemdgeneratordir}/systemd-run-generator %{_systemdgeneratordir}/systemd-system-update-generator %{_sysusersdir}/systemd-journal.conf -%if %{with networkd} -# Yes, systemd-network.conf really belongs here, see -# https://github.com/systemd/systemd/pull/22416#issuecomment-1029828592 -%{_sysusersdir}/systemd-network.conf -%endif %{_sysusersdir}/systemd-timesync.conf %{_tmpfilesdir}/journal-nocow.conf %{_tmpfilesdir}/suse.conf @@ -643,6 +649,12 @@ %{_unitdir}/systemd-suspend.service %{_unitdir}/systemd-sysctl.service %{_unitdir}/systemd-sysext.service +%if %{without bootstrap} +%{_unitdir}/systemd-sysupdate-reboot.service +%{_unitdir}/systemd-sysupdate-reboot.timer +%{_unitdir}/systemd-sysupdate.service +%{_unitdir}/systemd-sysupdate.timer +%endif %{_unitdir}/systemd-sysusers.service %{_unitdir}/systemd-time-wait-sync.service %{_unitdir}/systemd-timedated.service diff --git a/files.udev b/files.udev index 5e9aa154..4445eb81 100644 --- a/files.udev +++ b/files.udev @@ -145,6 +145,7 @@ %{_udevhwdbdir}/70-cameras.hwdb %{_udevhwdbdir}/70-joystick.hwdb %{_udevhwdbdir}/70-mouse.hwdb +%{_udevhwdbdir}/70-pda.hwdb %{_udevhwdbdir}/70-pointingstick.hwdb %{_udevhwdbdir}/70-touchpad.hwdb %{_udevhwdbdir}/80-ieee1394-unit-function.hwdb diff --git a/files.uefi-boot b/files.uefi-boot index 70e46b69..a50867c4 100644 --- a/files.uefi-boot +++ b/files.uefi-boot @@ -19,6 +19,7 @@ %{_mandir}/man7/linuxia32.efi.stub.7.gz %{_mandir}/man7/linuxx64.efi.stub.7.gz %{_mandir}/man7/sd-boot.7.gz +%{_mandir}/man7/sd-stub.7.gz %{_mandir}/man7/systemd-boot.7.gz %{_mandir}/man7/systemd-stub.7.gz %{_mandir}/man8/kernel-install.8.gz diff --git a/systemd-v250.6+suse.58.g4dbc543953.tar.xz b/systemd-v250.6+suse.58.g4dbc543953.tar.xz deleted file mode 100644 index 8d9d9222..00000000 --- a/systemd-v250.6+suse.58.g4dbc543953.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c00bf0607ca3a8ad8d001808741277c600db2c446bb58ce347e445dec2ff20e -size 7677168 diff --git a/systemd-v251.2+suse.18.g949d6bb720.tar.xz b/systemd-v251.2+suse.18.g949d6bb720.tar.xz new file mode 100644 index 00000000..93f43b77 --- /dev/null +++ b/systemd-v251.2+suse.18.g949d6bb720.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38c4d708dd28c097d2bd7cbe39a3683d19b141b5795d97b8e200e16ce2213e31 +size 7827148 diff --git a/systemd.changes b/systemd.changes index ba9c7421..8ec4a994 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Wed Jun 1 07:20:05 UTC 2022 - Franck Bui + +- Upgrade to v251.2 (commit 949d6bb7201dd48167ee9716ed6278764d1f4c0f) + + See https://github.com/openSUSE/systemd/blob/SUSE/v251/NEWS for + details. + + - Rebased 0001-conf-parser-introduce-early-drop-ins.patch + + - systemd-testsuite now requires python3-pexpect due to TEST-69-SHUTDOWN + relying on this module. + + - sysusers.d/systemd-network.conf has been moved to systemd-network + sub-package since the tmpfiles configuration snippets for networkd has also + been moved to this sub-package. + ------------------------------------------------------------------- Tue May 31 13:26:38 UTC 2022 - Franck Bui diff --git a/systemd.spec b/systemd.spec index e7d0df84..de5a0f78 100644 --- a/systemd.spec +++ b/systemd.spec @@ -19,7 +19,7 @@ %global flavor @BUILD_FLAVOR@%{nil} %define min_kernel_version 4.5 -%define suse_version +suse.58.g4dbc543953 +%define suse_version +suse.18.g949d6bb720 %define _testsuitedir /usr/lib/systemd/tests %define xinitconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}/X11/xinit @@ -72,7 +72,7 @@ Name: systemd%{?mini} URL: http://www.freedesktop.org/wiki/Software/systemd -Version: 250.6 +Version: 251.2 Release: 0 Summary: A System and Session Manager License: LGPL-2.1-or-later @@ -547,6 +547,7 @@ Requires: libtss2-rc0 Requires: lz4 Requires: make Requires: netcat +Requires: python3-pexpect Requires: qemu-kvm Requires: quota Requires: socat @@ -689,6 +690,7 @@ Have fun with these services at your own risk. -Dnss-systemd=%{when_not bootstrap} \ -Dseccomp=%{when_not bootstrap} \ -Dselinux=%{when_not bootstrap} \ + -Dsysupdate=%{when_not bootstrap} \ -Dtpm=%{when_not bootstrap} \ -Dtpm2=%{when_not bootstrap} \ -Dtranslations=%{when_not bootstrap} \ @@ -975,7 +977,6 @@ pam-config --add --systemd || : # in %%post. However this shouldn't be an issue since all files the # main package ships are owned by root. %sysusers_create systemd-journal.conf -%sysusers_create systemd-network.conf %sysusers_create systemd-timesync.conf [ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ || : @@ -1197,6 +1198,8 @@ fi %post network %if %{with networkd} +%sysusers_create systemd-network.conf +%tmpfiles_create systemd-network.conf %service_add_post systemd-networkd.service %service_add_post systemd-networkd-wait-online.service %endif @@ -1302,13 +1305,13 @@ fi %defattr(-,root,root) %license LICENSE.LGPL2.1 %{_libdir}/libsystemd.so.0 -%{_libdir}/libsystemd.so.0.33.0 +%{_libdir}/libsystemd.so.0.34.0 %files -n libudev%{?mini}1 %defattr(-,root,root) %license LICENSE.LGPL2.1 %{_libdir}/libudev.so.1 -%{_libdir}/libudev.so.1.7.3 +%{_libdir}/libudev.so.1.7.4 %if %{with coredump} %files coredump