From 441419a1e69c265f50e81bd308837e45548d99bf8e8418c2cbb3946637522f85 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 1 Jul 2021 05:05:27 +0000 Subject: [PATCH] Accepting request 902866 from Base:System MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Import commit e9a23d9e064c2e7ac21a1b984d116bcf15327e63 8dd19c6ee3 sd-device: allow to read sysattr which contains embedded NUL d52409e5fe pid1: only add a Wants= type dependency on /tmp when PrivateTmp=yes (bsc#1181970 - Import commit fcdb8dce591db2f5fc3c1e3eeb7abe9a2090b401 aa2d840a3b compat-rules: fix warning: "label ‘out’ defined but not used" in path_id_compat.c - Restore 61-persistent-storage-compat.rules that was mistakenly dropped during the merge of v248. - Create /run/lock/subsys again (bsc#1187292) The creation of this directory was mistakenly dropped when 'filesystem' package took the initialization of the generic paths over. Paths under /run/lock are still managed by systemd for lack of better place. - Drop systemd's dependency on udev (jsc#PM-2677) In some environments (i.e. containers) udev is usually not necessary but pulls in unnecessary packages. - Now that chkconfig/insserv are history, let's implement the strict minimum in systemd-sysv-install to enable/disable SysV init scripts (bsc#1186595 bsc#1186359) Indeed there's no much point in dropping SysV support completely until upstream will do especially since 3rd party applications such as vmware still rely on it, see bsc#1186359). - Allow the sysusers config files shipped by systemd rpms to be overriden during system installation (bsc#1171962) - While at it, add a comment to explain why we don't use OBS-URL: https://build.opensuse.org/request/show/902866 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=330 --- ...ent-excessive-proc-self-mountinfo-pa.patch | 35 ++++ ...conf-parser-introduce-early-drop-ins.patch | 54 +++--- ...-part-from-etc-hostname-when-setting.patch | 28 ++- ...-exclude-statements-based-on-file-ow.patch | 124 ------------- ...dd-back-support-for-SysV-scripts-for.patch | 18 +- systemd-mini.changes | 168 ++++++++++++++++++ systemd-mini.spec | 165 +++++++++++------ systemd-sysv-install | 157 +++++++++++++--- systemd-v246.13+suse.105.g14581e0120.tar.xz | 3 - systemd-v248.3+suse.30.ge9a23d9e06.tar.xz | 3 + systemd.changes | 168 ++++++++++++++++++ systemd.spec | 165 +++++++++++------ tmpfiles-suse.conf | 4 + 13 files changed, 779 insertions(+), 313 deletions(-) create mode 100644 0001-Revert-core-prevent-excessive-proc-self-mountinfo-pa.patch delete mode 100644 0004-tmpfiles-support-exclude-statements-based-on-file-ow.patch delete mode 100644 systemd-v246.13+suse.105.g14581e0120.tar.xz create mode 100644 systemd-v248.3+suse.30.ge9a23d9e06.tar.xz diff --git a/0001-Revert-core-prevent-excessive-proc-self-mountinfo-pa.patch b/0001-Revert-core-prevent-excessive-proc-self-mountinfo-pa.patch new file mode 100644 index 00000000..def1f512 --- /dev/null +++ b/0001-Revert-core-prevent-excessive-proc-self-mountinfo-pa.patch @@ -0,0 +1,35 @@ +From c9bce1f07276c591d8637dbfc3244ee11e8fa4e1 Mon Sep 17 00:00:00 2001 +From: Franck Bui +Date: Tue, 18 May 2021 11:53:55 +0200 +Subject: [PATCH 1/1] Revert "core: prevent excessive /proc/self/mountinfo + parsing" + +This reverts commit d586f642fd90e3bb378f7b6d3e3a64a753e51756. + +This reverts commit d586f642fd90e3bb378f7b6d3e3a64a753e51756 temporarly until +more investigation is done to find the root cause of +https://github.com/systemd/systemd/issues/19464. +--- + src/core/mount.c | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/src/core/mount.c b/src/core/mount.c +index ca5d0939a1..2939062161 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -1859,12 +1859,6 @@ static void mount_enumerate(Manager *m) { + goto fail; + } + +- r = sd_event_source_set_ratelimit(m->mount_event_source, 1 * USEC_PER_SEC, 5); +- if (r < 0) { +- log_error_errno(r, "Failed to enable rate limit for mount events: %m"); +- goto fail; +- } +- + (void) sd_event_source_set_description(m->mount_event_source, "mount-monitor-dispatch"); + } + +-- +2.26.2 + diff --git a/0001-conf-parser-introduce-early-drop-ins.patch b/0001-conf-parser-introduce-early-drop-ins.patch index c05f4769..3331afdc 100644 --- a/0001-conf-parser-introduce-early-drop-ins.patch +++ b/0001-conf-parser-introduce-early-drop-ins.patch @@ -1,4 +1,4 @@ -From 569f94a86a608fa7a47fef583f3f504ec8223967 Mon Sep 17 00:00:00 2001 +From 0eb84d049c77dceeb48724770f89f0fa01557c87 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,23 +61,23 @@ drop this feature at any time. Fixes: #2121 --- - src/shared/conf-parser.c | 47 ++++++++++- - src/test/test-conf-parser.c | 151 ++++++++++++++++++++++++++++++++++++ - 2 files changed, 194 insertions(+), 4 deletions(-) + src/shared/conf-parser.c | 48 ++++++++++-- + src/test/test-conf-parser.c | 152 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 195 insertions(+), 5 deletions(-) diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c -index 7499b3b882..799026626c 100644 +index 9dfa190751..b5dee9cbb1 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c -@@ -426,6 +426,7 @@ int config_parse(const char *unit, +@@ -428,6 +428,7 @@ int config_parse( static int config_parse_many_files( - const char *conf_file, + const char* const* conf_files, + char **early_files, char **files, const char *sections, ConfigItemLookup lookup, -@@ -438,6 +439,12 @@ static int config_parse_many_files( +@@ -440,6 +441,12 @@ static int config_parse_many_files( char **fn; int r; @@ -87,10 +87,10 @@ index 7499b3b882..799026626c 100644 + return r; + } + - if (conf_file) { - r = config_parse(NULL, conf_file, NULL, sections, lookup, table, flags, userdata, &mtime); - if (r < 0) -@@ -456,6 +463,28 @@ static int config_parse_many_files( + /* First read the first found main config file. */ + STRV_FOREACH(fn, (char**) conf_files) { + r = config_parse(NULL, *fn, NULL, sections, lookup, table, flags, userdata, &mtime); +@@ -462,6 +469,28 @@ static int config_parse_many_files( return 0; } @@ -119,7 +119,7 @@ index 7499b3b882..799026626c 100644 /* Parse each config file in the directories specified as nulstr. */ int config_parse_many_nulstr( const char *conf_file, -@@ -467,14 +496,19 @@ int config_parse_many_nulstr( +@@ -473,15 +502,19 @@ int config_parse_many_nulstr( void *userdata, usec_t *ret_mtime) { @@ -131,17 +131,18 @@ index 7499b3b882..799026626c 100644 if (r < 0) return r; -- return config_parse_many_files(conf_file, files, sections, lookup, table, flags, userdata, ret_mtime); +- 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); + if (r < 0) + return r; + -+ return config_parse_many_files(conf_file, early_files, late_files, sections, -+ lookup, table, flags, userdata, ret_mtime); ++ return config_parse_many_files(STRV_MAKE_CONST(conf_file), early_files, late_files, ++ sections, lookup, table, flags, userdata, + ret_mtime); } - /* Parse each config file in the directories specified as strv. */ -@@ -489,8 +523,8 @@ int config_parse_many( +@@ -497,8 +530,8 @@ int config_parse_many( void *userdata, usec_t *ret_mtime) { @@ -151,22 +152,22 @@ index 7499b3b882..799026626c 100644 const char *suffix; int r; -@@ -503,7 +537,12 @@ int config_parse_many( +@@ -511,7 +544,12 @@ int config_parse_many( if (r < 0) return r; -- return config_parse_many_files(conf_file, files, sections, lookup, table, flags, userdata, ret_mtime); +- return config_parse_many_files(conf_files, files, sections, lookup, table, flags, userdata, ret_mtime); + r = config_parse_split_conf_files(files, &early_files, &late_files); + if (r < 0) + return r; + -+ return config_parse_many_files(conf_file, early_files, late_files, sections, -+ lookup, table, flags, userdata, ret_mtime); ++ return config_parse_many_files(conf_files, early_files, late_files, ++ sections, lookup, table, flags, userdata, ret_mtime); } #define DEFINE_PARSER(type, vartype, conv_func) \ diff --git a/src/test/test-conf-parser.c b/src/test/test-conf-parser.c -index 07edc17f92..2df4b073c5 100644 +index 5da864347e..77d9f28a79 100644 --- a/src/test/test-conf-parser.c +++ b/src/test/test-conf-parser.c @@ -5,6 +5,9 @@ @@ -179,7 +180,7 @@ index 07edc17f92..2df4b073c5 100644 #include "string-util.h" #include "strv.h" #include "tmpfile-util.h" -@@ -385,6 +388,151 @@ static void test_config_parse(unsigned i, const char *s) { +@@ -385,6 +388,152 @@ static void test_config_parse(unsigned i, const char *s) { } } @@ -263,7 +264,8 @@ index 07edc17f92..2df4b073c5 100644 + NULL, + NULL); + } else { -+ r = config_parse_many(conf_file, (const char * const*) conf_dirs, "", ++ r = config_parse_many(STRV_MAKE_CONST(conf_file), ++ (const char * const*) conf_dirs, "", + "Section\0", + config_item_table_lookup, items, + CONFIG_PARSE_WARN, @@ -331,7 +333,7 @@ index 07edc17f92..2df4b073c5 100644 int main(int argc, char **argv) { unsigned i; -@@ -407,5 +555,8 @@ int main(int argc, char **argv) { +@@ -407,5 +556,8 @@ int main(int argc, char **argv) { for (i = 0; i < ELEMENTSOF(config_file); i++) test_config_parse(i, config_file[i]); diff --git a/0003-strip-the-domain-part-from-etc-hostname-when-setting.patch b/0003-strip-the-domain-part-from-etc-hostname-when-setting.patch index 5e9a1dfd..74e3790e 100644 --- a/0003-strip-the-domain-part-from-etc-hostname-when-setting.patch +++ b/0003-strip-the-domain-part-from-etc-hostname-when-setting.patch @@ -1,7 +1,7 @@ -From f299a8180f1db0680b454c0e37696891361e3067 Mon Sep 17 00:00:00 2001 +From 54366ae306ae19bdb2a5af7eb5158260cdc37e8f Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Tue, 28 May 2013 15:17:35 +0200 -Subject: [PATCH 03/12] strip the domain part from /etc/hostname when setting +Subject: [PATCH 1/1] strip the domain part from /etc/hostname when setting system host name [fbui: fixes bnc#820213] @@ -13,19 +13,17 @@ Subject: [PATCH 03/12] strip the domain part from /etc/hostname when setting possibility was to fix the installer to create a correct /etc/hostname file. Need to investigate...] --- - src/core/hostname-setup.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) + src/shared/hostname-setup.c | 7 +++++++ + 1 file changed, 7 insertions(+) -diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c -index 6d047db838..1acc0c998b 100644 ---- a/src/core/hostname-setup.c -+++ b/src/core/hostname-setup.c -@@ -39,8 +39,16 @@ int hostname_setup(void) { - enoent = true; +diff --git a/src/shared/hostname-setup.c b/src/shared/hostname-setup.c +index 511aa7d031..351d0e761d 100644 +--- a/src/shared/hostname-setup.c ++++ b/src/shared/hostname-setup.c +@@ -189,6 +189,13 @@ int hostname_setup(bool really) { else log_warning_errno(r, "Failed to read configured hostname: %m"); -- } else -+ } else { + } else { + char *domain; + + /* SUSE: strip the domain name */ @@ -34,10 +32,8 @@ index 6d047db838..1acc0c998b 100644 + *domain = '\0'; + hn = b; -+ } - } - - if (isempty(hn)) { + source = HOSTNAME_STATIC; + } -- 2.26.2 diff --git a/0004-tmpfiles-support-exclude-statements-based-on-file-ow.patch b/0004-tmpfiles-support-exclude-statements-based-on-file-ow.patch deleted file mode 100644 index 570f2c91..00000000 --- a/0004-tmpfiles-support-exclude-statements-based-on-file-ow.patch +++ /dev/null @@ -1,124 +0,0 @@ -From b46d43bf980afe13cfff39fc2876aed10f33db1d Mon Sep 17 00:00:00 2001 -From: Thomas Blume -Date: Thu, 14 Apr 2016 15:42:02 +0200 -Subject: [PATCH 04/12] tmpfiles: support exclude statements based on file - ownership - -SUSE supported tmpfile cleanups based on file ownership before systemd. -So this feature needs to be available in systemd. -This was part of fate#314974 - -[tblume: suse-only patch ported from SLES12-SP1 commit e769a63907ae4b] -[tblume: part of fate#314974] ---- - man/tmpfiles.d.xml | 4 +++- - src/tmpfiles/tmpfiles.c | 49 ++++++++++++++++++++++++++++++++--------- - 2 files changed, 42 insertions(+), 11 deletions(-) - -diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml -index b9e9eee96c..b90ae01345 100644 ---- a/man/tmpfiles.d.xml -+++ b/man/tmpfiles.d.xml -@@ -605,7 +605,9 @@ w- /proc/sys/vm/swappiness - - - - 10 - suffixed by a newline. For C, specifies the source file or directory. For t - and T, determines extended attributes to be set. For a and - A, determines ACL attributes to be set. For h and H, -- determines the file attributes to set. Ignored for all other lines. -+ determines the file attributes to set. For x and X a comma separated list -+ of usernames. If given, only paths belonging to these users will be excluded during directory cleanup. Ignored -+ for all other lines. - - This field can contain specifiers, see below. - -diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index 2404e36bf2..349653c786 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -14,6 +14,8 @@ - #include - #include - #include -+#include -+#include - - #include "sd-path.h" - -@@ -505,6 +507,7 @@ static int dir_cleanup( - struct stat s; - usec_t age; - _cleanup_free_ char *sub_path = NULL; -+ Item *found; - - if (dot_or_dot_dot(dent->d_name)) - continue; -@@ -546,15 +549,41 @@ static int dir_cleanup( - goto finish; - } - -- /* Is there an item configured for this path? */ -- if (ordered_hashmap_get(items, sub_path)) { -- log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); -- continue; -- } -+ /* evaluate username arguments in ignore statements */ -+ found = find_glob(globs, sub_path); - -- if (find_glob(globs, sub_path)) { -- log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); -- continue; -+ if (i->type == CREATE_DIRECTORY && found && found->argument) { -+ struct passwd *pw; -+ char *userfound = NULL, *args = strdup(found->argument); -+ bool match = false; -+ -+ while ((userfound = strsep(&args, ","))) { -+ pw = getpwnam(userfound); -+ -+ if (pw) { -+ if (s.st_uid == pw->pw_uid) { -+ match = true; -+ break; -+ } -+ } -+ } -+ -+ if (match) { -+ log_debug("Ignoring \"%s\" of user \"%s\".", sub_path, pw->pw_name); -+ match=false; -+ continue; -+ } -+ } else { -+ /* Is there an item configured for this path? */ -+ if (ordered_hashmap_get(items, sub_path)) { -+ log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); -+ continue; -+ } -+ -+ if (found) { -+ log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); -+ continue; -+ } - } - - if (S_ISDIR(s.st_mode)) { -@@ -2637,8 +2666,6 @@ static int parse_line( - case EMPTY_DIRECTORY: - case TRUNCATE_DIRECTORY: - case CREATE_FIFO: -- case IGNORE_PATH: -- case IGNORE_DIRECTORY_PATH: - case REMOVE_PATH: - case RECURSIVE_REMOVE_PATH: - case ADJUST_MODE: -@@ -2649,6 +2676,8 @@ static int parse_line( - - break; - -+ case IGNORE_PATH: -+ case IGNORE_DIRECTORY_PATH: - case CREATE_FILE: - case TRUNCATE_FILE: - break; --- -2.26.2 - diff --git a/0006-sysv-generator-add-back-support-for-SysV-scripts-for.patch b/0006-sysv-generator-add-back-support-for-SysV-scripts-for.patch index 53c44ddd..fdf44437 100644 --- a/0006-sysv-generator-add-back-support-for-SysV-scripts-for.patch +++ b/0006-sysv-generator-add-back-support-for-SysV-scripts-for.patch @@ -1,7 +1,7 @@ -From f9521480d5dc5af747fecc9adc4c617e473e5494 Mon Sep 17 00:00:00 2001 +From ac7bfed30245145ce68a037e7578da12ce2de009 Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Thu, 26 May 2016 08:59:41 +0200 -Subject: [PATCH 06/12] sysv-generator: add (back) support for SysV scripts for +Subject: [PATCH 1/1] sysv-generator: add (back) support for SysV scripts for the early boot For the record, the upstream support was removed by commit @@ -43,7 +43,7 @@ the same time as 'normal' services. 1 file changed, 23 insertions(+) diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c -index a2c72d1009..1c01008967 100644 +index 8c7aef23c3..f88f9119fb 100644 --- a/src/sysv-generator/sysv-generator.c +++ b/src/sysv-generator/sysv-generator.c @@ -31,6 +31,9 @@ static const struct { @@ -63,8 +63,8 @@ index a2c72d1009..1c01008967 100644 + bool early; } SysvStub; - static void free_sysvstub(SysvStub *s) { -@@ -147,6 +151,12 @@ static int generate_unit_file(SysvStub *s) { + static SysvStub* free_sysvstub(SysvStub *s) { +@@ -146,6 +150,12 @@ static int generate_unit_file(SysvStub *s) { fprintf(f, "Description=%s\n", t); } @@ -77,7 +77,7 @@ index a2c72d1009..1c01008967 100644 STRV_FOREACH(p, s->before) fprintf(f, "Before=%s\n", *p); STRV_FOREACH(p, s->after) -@@ -213,6 +223,10 @@ static char *sysv_translate_name(const char *name) { +@@ -212,6 +222,10 @@ static char *sysv_translate_name(const char *name) { _cleanup_free_ char *c = NULL; char *res; @@ -88,7 +88,7 @@ index a2c72d1009..1c01008967 100644 c = strdup(name); if (!c) return NULL; -@@ -289,6 +303,11 @@ static int sysv_translate_facility(SysvStub *s, unsigned line, const char *name, +@@ -288,6 +302,11 @@ static int sysv_translate_facility(SysvStub *s, unsigned line, const char *name, return 1; } @@ -100,7 +100,7 @@ index a2c72d1009..1c01008967 100644 /* Strip ".sh" suffix from file name for comparison */ filename_no_sh = strdupa(filename); e = endswith(filename_no_sh, ".sh"); -@@ -676,6 +695,9 @@ static int fix_order(SysvStub *s, Hashmap *all_services) { +@@ -674,6 +693,9 @@ static int fix_order(SysvStub *s, Hashmap *all_services) { if (other->sysv_start_priority < 0) continue; @@ -110,7 +110,7 @@ index a2c72d1009..1c01008967 100644 /* If both units have modern headers we don't care * about the priorities */ if (s->has_lsb && other->has_lsb) -@@ -800,6 +822,7 @@ static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) { +@@ -798,6 +820,7 @@ static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) { .sysv_start_priority = -1, .name = TAKE_PTR(name), .path = TAKE_PTR(fpath), diff --git a/systemd-mini.changes b/systemd-mini.changes index e63fc72b..84317eba 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,171 @@ +------------------------------------------------------------------- +Mon Jun 28 16:45:04 UTC 2021 - Franck Bui + +- Import commit e9a23d9e064c2e7ac21a1b984d116bcf15327e63 + + 8dd19c6ee3 sd-device: allow to read sysattr which contains embedded NUL + d52409e5fe pid1: only add a Wants= type dependency on /tmp when PrivateTmp=yes (bsc#1181970 + +------------------------------------------------------------------- +Thu Jun 24 13:39:30 UTC 2021 - Franck Bui + +- Import commit fcdb8dce591db2f5fc3c1e3eeb7abe9a2090b401 + + aa2d840a3b compat-rules: fix warning: "label ‘out’ defined but not used" in path_id_compat.c + +- Restore 61-persistent-storage-compat.rules that was mistakenly + dropped during the merge of v248. + +------------------------------------------------------------------- +Fri Jun 18 12:53:34 UTC 2021 - Franck Bui + +- Create /run/lock/subsys again (bsc#1187292) + + The creation of this directory was mistakenly dropped when + 'filesystem' package took the initialization of the generic paths + over. + + Paths under /run/lock are still managed by systemd for lack of + better place. + +------------------------------------------------------------------- +Fri Jun 4 13:10:30 UTC 2021 - Franck Bui + +- Drop systemd's dependency on udev (jsc#PM-2677) + + In some environments (i.e. containers) udev is usually not necessary + but pulls in unnecessary packages. + +------------------------------------------------------------------- +Fri Jun 4 07:32:16 UTC 2021 - Franck Bui + +- Now that chkconfig/insserv are history, let's implement the strict + minimum in systemd-sysv-install to enable/disable SysV init scripts + (bsc#1186595 bsc#1186359) + + Indeed there's no much point in dropping SysV support completely + until upstream will do especially since 3rd party applications such + as vmware still rely on it, see bsc#1186359). + +------------------------------------------------------------------- +Tue May 25 16:30:40 UTC 2021 - Franck Bui + +- Allow the sysusers config files shipped by systemd rpms to be + overriden during system installation (bsc#1171962) + +- While at it, add a comment to explain why we don't use + %sysusers_create in %pre and why it should be safe in %post. + +------------------------------------------------------------------- +Thu May 20 20:19:27 UTC 2021 - Franck Bui + +- udev requires systemd in its %post (bsc#1185958) + + udevadm, called in udev's %post, requires libsystemd-shared-248.so. + +------------------------------------------------------------------- +Thu May 20 18:52:53 UTC 2021 - Franck Bui + +- Restore all "License:" tags + + udev uses a different license (GPL-2.0-only) than the main package + and "osc service localrun format_spec_file" has the good taste to + restore the license tags for all other subpackages if one of the + subpackage tag differs. + +------------------------------------------------------------------- +Thu May 20 15:47:38 UTC 2021 - Franck Bui + +- Expect 644 permissions for /usr/lib/udev/compat-symlink-generation (bsc#1185807) + +------------------------------------------------------------------- +Wed May 19 06:54:57 UTC 2021 - Franck Bui + +- Spec file minor cleanups: + + - Drop all "Group:" tags as they are deprecated. + + - Drop "License:" tags from all subpackages and make it inherited + from the main package. + + - Drop "%bcond_with parentpathid" as it's not used. + +------------------------------------------------------------------- +Tue May 18 18:31:20 UTC 2021 - Franck Bui + +- Introduce subpackage systemd-tests + + This subpackage is mainly used before submitting a new version of + the systemd packages. As such it's not intended for regular users + hence can be removed/renamed at any time. One might wonder why the + unit tests are not executed during package builds (%check)... the + reason is that the environment used to build package (chroot) is too + limited and therefore only a subset of the unit tests would be + executed in this environment. + + To disable the build of the subpackage, use "--without=tests". + +------------------------------------------------------------------- +Tue May 18 10:04:16 UTC 2021 - Franck Bui + +- Add 0001-Revert-core-prevent-excessive-proc-self-mountinfo-pa.patch + + A temporary patch until + https://github.com/systemd/systemd/issues/19464 is solved. + +------------------------------------------------------------------- +Tue May 18 08:19:57 UTC 2021 - Franck Bui + +- Import commit bc08011f04ac4f12569ec05965149f665a0b110b (merge of v248.3) + + For a complete list of changes, visit: + https://github.com/openSUSE/systemd/compare/6f5c11b28f5739b901390f22c2bf4c003cadedaa...bc08011f04ac4f12569ec05965149f665a0b110b + +------------------------------------------------------------------- +Mon May 10 13:12:56 UTC 2021 - Franck Bui + +- Import commit 6f5c11b28f5739b901390f22c2bf4c003cadedaa (merge of v248.2) + + For a complete list of changes, visit: + https://github.com/openSUSE/systemd/compare/e5f93c9d2e9e26dd0dff430c4c072a547357ae7d...6f5c11b28f5739b901390f22c2bf4c003cadedaa + +------------------------------------------------------------------- +Mon Apr 26 16:25:38 UTC 2021 - Franck Bui + +- Upgrade to v248 (commit 5d3d934a5c2f4593207497db94e6f313348e89e7) + + See https://github.com/openSUSE/systemd/blob/SUSE/v248/NEWS for + details. + + - A couple runtime dependencies on libraries are now tracked + manually (with Recommends:) due to the fact that some symbols of + these libs are dynamically loaded with dlopen() (heck!) + + - oomd is left disablde for now + + - pam configuration file 'systemd-user' is now shipped in + /usr/etc/pam.d + + - Rebased 0001-conf-parser-introduce-early-drop-ins.patch + 0003-strip-the-domain-part-from-etc-hostname-when-setting.patch + 0006-sysv-generator-add-back-support-for-SysV-scripts-for.patch + + - Dropped 0004-tmpfiles-support-exclude-statements-based-on-file-ow.patch + as it is SLE specific. + +- Clean systemd-experimental up: + + - Enclose "%package/%descriptoin experimental" within a "%if + %experimental/%endif" block condition + + - List the build requirements in the sub-package instead of listing + them in the main package. + + - Enable support for fido2, pwquality and qrencode in the home + stuff + + - Improve the package description + ------------------------------------------------------------------- Wed Apr 7 08:59:15 UTC 2021 - Franck Bui diff --git a/systemd-mini.spec b/systemd-mini.spec index 5ed9d5d2..cef89604 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -26,7 +26,7 @@ ##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! ##### %define mini -mini %define min_kernel_version 4.5 -%define suse_version +suse.105.g14581e0120 +%define suse_version +suse.30.ge9a23d9e06 %bcond_with gnuefi %if 0%{?bootstrap} @@ -39,6 +39,7 @@ %bcond_with resolved %bcond_with sysvcompat %bcond_with experimental +%bcond_with tests %else %bcond_without coredump %ifarch %{ix86} x86_64 @@ -52,16 +53,15 @@ %bcond_without resolved %bcond_without sysvcompat %bcond_without experimental +%bcond_without tests %endif -%bcond_with parentpathid Name: systemd-mini URL: http://www.freedesktop.org/wiki/Software/systemd -Version: 246.13 +Version: 248.3 Release: 0 Summary: A System and Session Manager License: LGPL-2.1-or-later -Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build %if ! 0%{?bootstrap} BuildRequires: docbook-xsl-stylesheets @@ -76,6 +76,7 @@ BuildRequires: python3-lxml BuildRequires: pkgconfig(audit) BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 BuildRequires: pkgconfig(libdw) +BuildRequires: pkgconfig(libfido2) BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpcre2-8) @@ -113,10 +114,6 @@ BuildRequires: pkgconfig(libmicrohttpd) >= 0.9.33 %if %{with gnuefi} BuildRequires: gnu-efi %endif -%if %{with experimental} -BuildRequires: pkgconfig(fdisk) -BuildRequires: pkgconfig(openssl) -%endif %if 0%{?bootstrap} #!BuildIgnore: dbus-1 @@ -128,13 +125,15 @@ Provides: systemd = %{version}-%{release} Requires: aaa_base >= 13.2 Requires: dbus-1 >= 1.4.0 Requires: kbd -Requires: kmod >= 15 Requires: netcfg >= 11.5 Requires: systemd-default-settings-branding Requires: systemd-presets-branding -Requires: udev = %{version}-%{release} Requires: util-linux >= 2.27.1 Requires: group(lock) +# This Recommends because some symbols of libpcre2 are dlopen()ed by journalctl +Recommends: libpcre2-8-0 +# ditto but dlopen()ed by systemd-cryptenroll +Recommends: libfido2 Requires(post): coreutils Requires(post): findutils Requires(post): systemd-presets-branding @@ -175,7 +174,6 @@ Source102: scripts-systemd-migrate-sysconfig-i18n.sh Patch1: 0001-restore-var-run-and-var-lock-bind-mount-if-they-aren.patch Patch2: 0002-rc-local-fix-ordering-startup-for-etc-init.d-boot.lo.patch Patch3: 0003-strip-the-domain-part-from-etc-hostname-when-setting.patch -Patch4: 0004-tmpfiles-support-exclude-statements-based-on-file-ow.patch Patch5: 0005-udev-create-default-symlinks-for-primary-cd_dvd-driv.patch Patch6: 0006-sysv-generator-add-back-support-for-SysV-scripts-for.patch Patch7: 0007-networkd-make-network.service-an-alias-of-systemd-ne.patch @@ -191,6 +189,7 @@ Patch12: 0012-resolved-create-etc-resolv.conf-symlink-at-runtime.patch # upstream and need an urgent fix. Even in this case, the patches are # temporary and should be removed as soon as a fix is merged by # upstream. +Patch100: 0001-Revert-core-prevent-excessive-proc-self-mountinfo-pa.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -206,7 +205,6 @@ drop-in replacement for sysvinit. %package doc Summary: HTML documentation for systemd License: LGPL-2.1-or-later -Group: Documentation/Other Supplements: (systemd and patterns-base-documentation) %description doc @@ -218,7 +216,6 @@ The HTML documentation for systemd. %package devel Summary: Development headers for systemd License: LGPL-2.1-or-later -Group: Development/Libraries/C and C++ Requires: libsystemd0%{?mini} = %{version}-%{release} Requires: systemd-rpm-macros %if 0%{?bootstrap} @@ -231,7 +228,6 @@ Development headers and auxiliary files for developing applications for systemd. %package sysvinit Summary: System V init tools License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} Provides: sbin_init Conflicts: otherproviders(sbin_init) @@ -244,7 +240,6 @@ Drop-in replacement of System V init tools. %package -n libsystemd0%{?mini} Summary: Component library for systemd License: LGPL-2.1-or-later -Group: System/Libraries %if 0%{?bootstrap} Conflicts: libsystemd0 Requires: this-is-only-for-build-envs @@ -274,14 +269,14 @@ This library provides several of the systemd C APIs: %package -n udev%{?mini} Summary: A rule-based device node and kernel event manager License: GPL-2.0-only -Group: System/Kernel URL: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html +Requires: kmod Requires: system-group-hardware Requires: group(kvm) Requires(post): sed Requires(post): coreutils Requires(postun): coreutils -Requires(postun): /usr/bin/systemctl +%systemd_requires Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 @@ -307,7 +302,6 @@ call tools to initialize a device, or load needed kernel modules. %package -n libudev%{?mini}1 Summary: Dynamic library to access udev device information License: LGPL-2.1-or-later -Group: System/Libraries %if 0%{?bootstrap} Conflicts: libudev1 Conflicts: kiwi @@ -322,7 +316,6 @@ access to udev device information %package -n libudev%{?mini}-devel Summary: Development files for libudev License: LGPL-2.1-or-later -Group: Development/Libraries/Other Requires: libudev%{?mini}1 = %{version}-%{release} %if 0%{?bootstrap} Provides: libudev-devel = %{version}-%{version} @@ -338,7 +331,6 @@ dynamic library, which provides access to udev device information. %package coredump Summary: Systemd tools for coredump management License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} %systemd_requires Provides: systemd:%{_bindir}/coredumpctl @@ -352,7 +344,6 @@ This package contains systemd-coredump, coredumpctl. %package container Summary: Systemd tools for container management License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} %systemd_requires Provides: systemd:%{_bindir}/systemd-nspawn @@ -370,8 +361,9 @@ and systemd-importd. %package network Summary: Systemd tools for networkd and resolved License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} +# This Recommends because some symbols of libidn2 are dlopen()ed by resolved +Recommends: pkgconfig(libidn2) BuildRequires: pkgconfig(libidn2) Provides: systemd:/usr/lib/systemd/systemd-networkd Provides: systemd:/usr/lib/systemd/systemd-resolved @@ -387,7 +379,6 @@ resolver tools for resolved %package portable Summary: Systemd tools for portable services License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} %systemd_requires @@ -407,7 +398,6 @@ https://systemd.io/PORTABLE_SERVICES %package logger Summary: Journal only logging License: LGPL-2.1-or-later -Group: System/Base Provides: syslog Provides: sysvinit(syslog) Requires(post): /usr/bin/systemctl @@ -419,7 +409,6 @@ This package marks the installation to not use syslog but only the journal. %package -n nss-systemd Summary: Plugin for local virtual host name resolution License: LGPL-2.1-or-later -Group: System/Libraries %description -n nss-systemd This package contains a plugin for the Name Service Switch (NSS), @@ -432,7 +421,6 @@ To activate this NSS module, you will need to include it in %package -n nss-myhostname Summary: Plugin for local system host name resolution License: LGPL-2.1-or-later -Group: System/Libraries %description -n nss-myhostname This package contains a plug-in module for the Name Service Switch @@ -449,7 +437,6 @@ To activate this NSS module, you will need to include it in %package -n nss-resolve Summary: Plugin for local hostname resolution via systemd-resolved License: LGPL-2.1-or-later -Group: System/Libraries Requires: %{name}-network = %{version}-%{release} %description -n nss-resolve @@ -466,7 +453,6 @@ To activate this NSS module, you will need to include it in %package -n nss-mymachines Summary: Plugin for local virtual host name resolution License: LGPL-2.1-or-later -Group: System/Libraries %description -n nss-mymachines This package contains a plugin for the Name Service Switch (NSS), @@ -483,11 +469,8 @@ To activate this NSS module, you will need to include it in %package journal-remote Summary: Gateway for serving journal events over the network using HTTP License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%systemd_requires %description journal-remote This extends the journal functionality to keep a copy of logs on a @@ -499,23 +482,61 @@ This package contains systemd-journal-gatewayd, systemd-journal-remote, and systemd-journal-upload. %endif +%if %{with tests} +%package tests +Summary: Unit tests for systemd +License: LGPL-2.1-or-later +Requires: %{name} = %{version}-%{release} +Recommends: python3 +Recommends: python3-colorama +# Optional dep for mkfs.vfat needed by test-loop-block (otherwise skipped) +Recommends: dosfstools + +%description tests +This package contains the unit tests used to check various internal +functions used by systemd and all its components. + +The python script /usr/lib/systemd/tests/run-unit-tests.py can be used +to run all unit tests at once. +%endif + +%if %{with experimental} %package experimental Summary: Experimental systemd features License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} +# These Recommends because some symbols of these libs are dlopen()ed by home stuff +Recommends: libfido2 +Recommends: libpwquality1 +Recommends: libqrencode4 +# libfido2, libpwquality1 and libqrencode4 are build requirements for home stuff +BuildRequires: pkgconfig(libfido2) +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(pwquality) +# fdisk and openssl are build requirements for home stuff and repart +BuildRequires: pkgconfig(fdisk) +BuildRequires: pkgconfig(openssl) %systemd_requires %description experimental -This package contains optional extra systemd services that are -considered a preview feature. Behaviour details and option names are -subject to change without the usual backwards-compatibility promises. +This package contains optional extra services that are considered as +previews and are provided so users can do early experiments with the +new features or technologies without waiting for them to be fully +supported by either upstream and openSUSE. -Components that turn out to be stable may be merged into the main or a -dedicated package later. +Please note that all services should be considered in development +phase and as such their behaviors details, unit files, option names, +etc... are subject to change without the usual backwards-compatibility +promises. -Use at your own risk. +Components that turn out to be stable and considered as fully +supported will be merged into the main package or moved into a +dedicated package. +The package contains: homed, pstore, repart, userdbd. + +Have fun with these services at your own risk. +%endif %if ! 0%{?bootstrap} %lang_package @@ -528,6 +549,7 @@ Use at your own risk. %build # keep split-usr until all packages have moved their systemd rules to /usr %meson \ + -Dmode=release \ -Dversion-tag=%{version}%{suse_version} \ -Ddocdir=%{_docdir}/systemd \ -Drootprefix=/usr \ @@ -535,6 +557,7 @@ Use at your own risk. -Dsplit-bin=true \ -Dsystem-uid-max=499 \ -Dsystem-gid-max=499 \ + -Dpamconfdir=%{_distconfdir}/pam.d \ -Dpamlibdir=%{_pamdir} \ -Dxinitrcdir=%{_distconfdir}/X11/xinit/xinitrc.d \ -Drpmmacrosdir=no \ @@ -550,6 +573,7 @@ Use at your own risk. -Dsmack=false \ -Dima=false \ -Delfutils=auto \ + -Doomd=false \ %if %{with experimental} -Dpstore=true \ -Drepart=true \ @@ -562,16 +586,11 @@ Use at your own risk. -Duserdb=false \ %endif %if 0%{?bootstrap} - -Dfdisk=false \ - -Dpwquality=false \ - -Dp11kit=false \ + -Dnss-myhostname=false \ %else -Dman=true \ -Dhtml=true \ %endif -%if 0%{?bootstrap} - -Dnss-myhostname=false \ -%endif %if %{without coredump} -Dcoredump=false \ %endif @@ -599,6 +618,13 @@ Use at your own risk. %if %{without sysvcompat} -Dsysvinit-path= \ -Dsysvrcnd-path= \ +%endif +%if %{with tests} + -Dtests=unsafe \ + -Dinstall-tests=true \ +%else + -Dtests=false \ + -Dinstall-tests=false \ %endif -Dadm-group=false \ -Dwheel-group=false \ @@ -660,8 +686,8 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.{requires,wants} rm -f %{buildroot}/etc/systemd/system/default.target -# Replace /etc/pam.d/systemd-user shipped by upstream with the openSUSE one. -install -m0644 %{S:2} %{buildroot}%{_sysconfdir}/pam.d/ +# Replace upstream systemd-user with the openSUSE one. +install -m0644 %{S:2} %{buildroot}%{_distconfdir}/pam.d # don't enable wall ask password service, it spams every console (bnc#747783) rm %{buildroot}%{_unitdir}/multi-user.target.wants/systemd-ask-password-wall.path @@ -838,10 +864,16 @@ fi pam-config --add --systemd || : %endif -%sysusers_create %{_sysusersdir}/systemd.conf +# systemd-sysusers is not available in %pre so this needs to be done +# in %post. However this shouldn't be an issue since all files the +# main package ships are owned by root. +%sysusers_create systemd.conf + [ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ || : /usr/lib/systemd/systemd-random-seed save || : + systemctl daemon-reexec || : + %journal_catalog_update %tmpfiles_create @@ -908,7 +940,7 @@ if [ "$(readlink -f %{_sysconfdir}/systemd/system/tmp.mount)" = "%{_datadir}/sys fi %postun -# daemon-reload is implied by %systemd_postun_with_restart +# daemon-reload is implied by %%systemd_postun_with_restart %systemd_postun_with_restart systemd-journald.service %systemd_postun_with_restart systemd-timesyncd.service # Avoid restarting logind until fixed upstream (issue #1163) @@ -1012,7 +1044,8 @@ fi %service_add_pre systemd-journal-upload.service %post journal-remote -%sysusers_create %{_sysusersdir}/systemd-remote.conf +# Assume that all files shipped by systemd-journal-remove are owned by root. +%sysusers_create systemd-remote.conf %service_add_post systemd-journal-gatewayd.socket systemd-journal-gatewayd.service %service_add_post systemd-journal-remote.socket systemd-journal-remote.service %service_add_post systemd-journal-upload.service @@ -1116,7 +1149,11 @@ fi %{_bindir}/localectl %{_bindir}/systemctl %{_bindir}/systemd-analyze +%if ! 0%{?bootstrap} +%{_bindir}/systemd-cryptenroll +%endif %{_bindir}/systemd-delta +%{_bindir}/systemd-dissect %{_bindir}/systemd-escape %{_bindir}/systemd-firstboot %{_bindir}/systemd-id128 @@ -1126,6 +1163,7 @@ fi %{_bindir}/systemd-umount %{_bindir}/systemd-notify %{_bindir}/systemd-run +%{_bindir}/systemd-sysext %{_bindir}/journalctl %{_bindir}/systemd-ask-password %{_bindir}/loginctl @@ -1166,6 +1204,7 @@ fi %exclude %{_unitdir}/systemd-udev*.* %exclude %{_unitdir}/*.target.wants/systemd-udev*.* %exclude %{_unitdir}/initrd-udevadm-cleanup-db.service +%exclude %{_unitdir}/kmod-static-nodes.service %exclude %{_unitdir}/systemd-nspawn@.service %if %{with machined} %exclude %{_prefix}/lib/systemd/systemd-machined @@ -1262,6 +1301,7 @@ fi %{_modulesloaddir} %dir %{_sysusersdir} +%doc %{_sysusersdir}/README %{_sysusersdir}/systemd.conf %dir %{_sysconfdir}/tmpfiles.d @@ -1275,6 +1315,7 @@ fi %dir %{_sysctldir} %dir %{_sysconfdir}/sysctl.d +%doc %{_sysctldir}/README %{_sysctldir}/99-sysctl.conf %dir %{_sysconfdir}/X11/xorg.conf.d @@ -1289,7 +1330,7 @@ fi %dir %{_distconfdir}/X11/xinit/xinitrc.d %{_distconfdir}/X11/xinit/xinitrc.d/50-systemd-user.sh -%config(noreplace) %{_sysconfdir}/pam.d/systemd-user +%{_distconfdir}/pam.d/systemd-user %config(noreplace) %{_sysconfdir}/systemd/journald.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf @@ -1313,6 +1354,7 @@ fi # FIXME: why do we have to own this dir ? %dir %{_modprobedir} +%doc %{_modprobedir}/README %{_modprobedir}/systemd.conf # Some files created at runtime. @@ -1353,6 +1395,7 @@ fi %{_mandir}/man7/[bdfks]* %{_mandir}/man8/kern* %{_mandir}/man8/pam_* +%{_mandir}/man8//rc-local.* %{_mandir}/man8/systemd-[a-gik-tvx]* %{_mandir}/man8/systemd-h[aioy]* %{_mandir}/man8/systemd-journald* @@ -1477,13 +1520,18 @@ fi %dir %{_prefix}/lib/udev/ %{_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 +%{_prefix}/lib/udev/dmi_memory_id +%endif %{_prefix}/lib/udev/fido_id %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/path_id_compat %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id -%ghost %{_prefix}/lib/udev/compat-symlink-generation +%ghost %attr(644, root, root) %{_prefix}/lib/udev/compat-symlink-generation %dir %{_udevrulesdir}/ +%doc %{_udevrulesdir}/README %exclude %{_udevrulesdir}/70-uaccess.rules %exclude %{_udevrulesdir}/71-seat.rules %exclude %{_udevrulesdir}/73-seat-late.rules @@ -1504,6 +1552,7 @@ fi %endif %dir %{_unitdir} %{_prefix}/lib/systemd/systemd-udevd +%{_unitdir}/kmod-static-nodes.service %{_unitdir}/systemd-udev*.service %{_unitdir}/systemd-udevd*.socket %{_unitdir}/initrd-udevadm-cleanup-db.service @@ -1696,10 +1745,15 @@ fi %{_mandir}/man*/systemd-portabled* %endif +%if %{with tests} +%files tests +%{_prefix}/lib/systemd/tests +%endif + %if %{with experimental} %files experimental %defattr(-,root,root) -%config(noreplace) /etc/systemd/pstore.conf +%config(noreplace) %{_sysconfdir}/systemd/pstore.conf %{_prefix}/lib/systemd/systemd-pstore %{_unitdir}/systemd-pstore.service %{_tmpfilesdir}/systemd-pstore.conf @@ -1707,18 +1761,19 @@ fi %{_bindir}/systemd-repart %{_unitdir}/systemd-repart.service %{_mandir}/man*/*repart* -/usr/bin/userdbctl +%{_bindir}/userdbctl %{_prefix}/lib/systemd/systemd-userwork %{_prefix}/lib/systemd/systemd-userdbd %{_unitdir}/systemd-userdbd.service %{_unitdir}/systemd-userdbd.socket %{_mandir}/man*/userdbctl* %{_mandir}/man*/systemd-userdbd* -%config %{_sysconfdir}/homed.conf +%config(noreplace) %{_sysconfdir}/systemd/homed.conf %{_bindir}/homectl %{_prefix}/lib/systemd/systemd-homed %{_prefix}/lib/systemd/systemd-homework %{_unitdir}/systemd-homed.service +%{_unitdir}/systemd-homed-activate.service %{_pamdir}/pam_systemd_home.so %{_datadir}/dbus-1/system-services/org.freedesktop.home1.service %{_datadir}/dbus-1/system.d/org.freedesktop.home1.conf diff --git a/systemd-sysv-install b/systemd-sysv-install index 36e13055..403fc632 100644 --- a/systemd-sysv-install +++ b/systemd-sysv-install @@ -1,41 +1,148 @@ -#!/bin/sh +#!/bin/bash + # This script is called by "systemctl enable/disable" when the given unit is a # SysV init.d script. It needs to call the distribution's mechanism for # enabling/disabling those, such as chkconfig, update-rc.d, or similar. This # can optionally take a --root argument for enabling a SysV init script # in a chroot or similar. +# +# chkconfig(8) and insserv(8) are no more available hence let's do the +# bare minimum and create/remote the symlinks for the well known +# runlevels and nothing more. Note that we don't take care of +# enabling/disabling the service dependencies as the sysv-generator +# will take care of them for us (openSUSE specific). +# + set -e usage() { - echo "Usage: $0 [--root=path] enable|disable|is-enabled " >&2 - exit 1 + echo >&2 "Usage: $0 [--quiet] [--root=path] enable|disable|is-enabled " + exit 1 } +info() { + $quiet || echo "$*" +} + +die() { + echo >&2 "error: $*, aborting." + exit 1 +} + +declare -A lsb_header + +check_runlevels() { + for l in $*; do + # Sanity check + case $l in + 0|1|2|3|4|5|6) continue ;; + *) return 1 + esac + done +} + +load_initscript() { + local found_lsb_start_marker=false + local found_lsb_end_marker=false + + [ -r $1 ] || die "initscript /etc/init.d/$1 can't be read" + + lsb_header=() + + while read line; do + # skip anything that is not a comment + [[ "$line" =~ ^# ]] || continue + + if ! $found_lsb_start_marker; then + [ "$line" == "### BEGIN INIT INFO" ] && + found_lsb_start_marker=true + continue + fi + + line=$(echo ${line:1}) + + case "$line" in + Default-Start:*) + levels=$(echo ${line:14}) + + check_runlevels $levels || + die "Invalid runlevels specified in $line" + + lsb_header[Default-Start]=$levels + ;; + "## END INIT INFO") + found_lsb_end_marker=true + break ;; + esac + done <$1 + + $found_lsb_end_marker || + die "malformated LSB header in $1: missing LSB end marker" +} + +enable_initscript() { + load_initscript $1 + + for l in ${lsb_header[Default-Start]}; do + symlink="$(pwd)/rc${l}.d/S50$1" + + info "ln -sf ../$1 $symlink" + ln -sf ../$1 "$symlink" + done +} + +disable_initscript() { + for symlink in rc*.d/[SK]*; do + [ -L $symlink ] && [ $(readlink $symlink) = "../$1" ] && { + info "rm $(pwd)/$symlink" + rm $symlink + } + done +} + +is_initscript_enabled() { + for symlink in rc*.d/S*; do + [ -L $symlink ] && [ $(readlink $symlink) = "../$1" ] && + return 0 + done + return 1 +} + +root= +quiet=false + # parse options -eval set -- "$(getopt -o r: --long root: -- "$@")" +eval set -- "$(getopt --name $(basename $0) -o hqr: --long help,quiet,root: -- "$@")" while true; do - case "$1" in - -r|--root) - ROOT="$2" - shift 2 ;; - --) shift ; break ;; - *) usage ;; - esac + case "$1" in + -h|--help) + usage ;; + -r|--root) + shift + root=$1 ;; + -q|--quiet) + quiet=true ;; + --) + shift + break ;; + *) + usage ;; + esac + shift done -NAME="$2" -[ -n "$NAME" ] || usage +[ $# -eq 2 ] || usage +action=$1 +name=$2 -case "$1" in - enable) - chkconfig $ROOT --no-systemctl -s "$NAME" on - ;; - disable) - chkconfig $ROOT --no-systemctl -s "$NAME" off - ;; - is-enabled) - chkconfig $ROOT --no-systemctl -c "$NAME" - ;; - *) - usage ;; +sysvinit_path=$(realpath -q -e $root/etc/init.d) || + die "$root/etc/init.d: no such file or directory" + +cd $sysvinit_path + +case "$action" in +enable) enable_initscript $name ;; +disable) disable_initscript $name ;; +is-enabled) is_initscript_enabled $name ;; +*) usage esac diff --git a/systemd-v246.13+suse.105.g14581e0120.tar.xz b/systemd-v246.13+suse.105.g14581e0120.tar.xz deleted file mode 100644 index 67e2c666..00000000 --- a/systemd-v246.13+suse.105.g14581e0120.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6316b2146335f43df36f200bdad2482858a6f83a56c50f7b1221b6a24e552eb8 -size 6574688 diff --git a/systemd-v248.3+suse.30.ge9a23d9e06.tar.xz b/systemd-v248.3+suse.30.ge9a23d9e06.tar.xz new file mode 100644 index 00000000..2bda2ab4 --- /dev/null +++ b/systemd-v248.3+suse.30.ge9a23d9e06.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb92dd21edf73541f3ccce6fb95ab6a2c3d261e14c95a77445cada2982913fdc +size 7080532 diff --git a/systemd.changes b/systemd.changes index e63fc72b..84317eba 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,171 @@ +------------------------------------------------------------------- +Mon Jun 28 16:45:04 UTC 2021 - Franck Bui + +- Import commit e9a23d9e064c2e7ac21a1b984d116bcf15327e63 + + 8dd19c6ee3 sd-device: allow to read sysattr which contains embedded NUL + d52409e5fe pid1: only add a Wants= type dependency on /tmp when PrivateTmp=yes (bsc#1181970 + +------------------------------------------------------------------- +Thu Jun 24 13:39:30 UTC 2021 - Franck Bui + +- Import commit fcdb8dce591db2f5fc3c1e3eeb7abe9a2090b401 + + aa2d840a3b compat-rules: fix warning: "label ‘out’ defined but not used" in path_id_compat.c + +- Restore 61-persistent-storage-compat.rules that was mistakenly + dropped during the merge of v248. + +------------------------------------------------------------------- +Fri Jun 18 12:53:34 UTC 2021 - Franck Bui + +- Create /run/lock/subsys again (bsc#1187292) + + The creation of this directory was mistakenly dropped when + 'filesystem' package took the initialization of the generic paths + over. + + Paths under /run/lock are still managed by systemd for lack of + better place. + +------------------------------------------------------------------- +Fri Jun 4 13:10:30 UTC 2021 - Franck Bui + +- Drop systemd's dependency on udev (jsc#PM-2677) + + In some environments (i.e. containers) udev is usually not necessary + but pulls in unnecessary packages. + +------------------------------------------------------------------- +Fri Jun 4 07:32:16 UTC 2021 - Franck Bui + +- Now that chkconfig/insserv are history, let's implement the strict + minimum in systemd-sysv-install to enable/disable SysV init scripts + (bsc#1186595 bsc#1186359) + + Indeed there's no much point in dropping SysV support completely + until upstream will do especially since 3rd party applications such + as vmware still rely on it, see bsc#1186359). + +------------------------------------------------------------------- +Tue May 25 16:30:40 UTC 2021 - Franck Bui + +- Allow the sysusers config files shipped by systemd rpms to be + overriden during system installation (bsc#1171962) + +- While at it, add a comment to explain why we don't use + %sysusers_create in %pre and why it should be safe in %post. + +------------------------------------------------------------------- +Thu May 20 20:19:27 UTC 2021 - Franck Bui + +- udev requires systemd in its %post (bsc#1185958) + + udevadm, called in udev's %post, requires libsystemd-shared-248.so. + +------------------------------------------------------------------- +Thu May 20 18:52:53 UTC 2021 - Franck Bui + +- Restore all "License:" tags + + udev uses a different license (GPL-2.0-only) than the main package + and "osc service localrun format_spec_file" has the good taste to + restore the license tags for all other subpackages if one of the + subpackage tag differs. + +------------------------------------------------------------------- +Thu May 20 15:47:38 UTC 2021 - Franck Bui + +- Expect 644 permissions for /usr/lib/udev/compat-symlink-generation (bsc#1185807) + +------------------------------------------------------------------- +Wed May 19 06:54:57 UTC 2021 - Franck Bui + +- Spec file minor cleanups: + + - Drop all "Group:" tags as they are deprecated. + + - Drop "License:" tags from all subpackages and make it inherited + from the main package. + + - Drop "%bcond_with parentpathid" as it's not used. + +------------------------------------------------------------------- +Tue May 18 18:31:20 UTC 2021 - Franck Bui + +- Introduce subpackage systemd-tests + + This subpackage is mainly used before submitting a new version of + the systemd packages. As such it's not intended for regular users + hence can be removed/renamed at any time. One might wonder why the + unit tests are not executed during package builds (%check)... the + reason is that the environment used to build package (chroot) is too + limited and therefore only a subset of the unit tests would be + executed in this environment. + + To disable the build of the subpackage, use "--without=tests". + +------------------------------------------------------------------- +Tue May 18 10:04:16 UTC 2021 - Franck Bui + +- Add 0001-Revert-core-prevent-excessive-proc-self-mountinfo-pa.patch + + A temporary patch until + https://github.com/systemd/systemd/issues/19464 is solved. + +------------------------------------------------------------------- +Tue May 18 08:19:57 UTC 2021 - Franck Bui + +- Import commit bc08011f04ac4f12569ec05965149f665a0b110b (merge of v248.3) + + For a complete list of changes, visit: + https://github.com/openSUSE/systemd/compare/6f5c11b28f5739b901390f22c2bf4c003cadedaa...bc08011f04ac4f12569ec05965149f665a0b110b + +------------------------------------------------------------------- +Mon May 10 13:12:56 UTC 2021 - Franck Bui + +- Import commit 6f5c11b28f5739b901390f22c2bf4c003cadedaa (merge of v248.2) + + For a complete list of changes, visit: + https://github.com/openSUSE/systemd/compare/e5f93c9d2e9e26dd0dff430c4c072a547357ae7d...6f5c11b28f5739b901390f22c2bf4c003cadedaa + +------------------------------------------------------------------- +Mon Apr 26 16:25:38 UTC 2021 - Franck Bui + +- Upgrade to v248 (commit 5d3d934a5c2f4593207497db94e6f313348e89e7) + + See https://github.com/openSUSE/systemd/blob/SUSE/v248/NEWS for + details. + + - A couple runtime dependencies on libraries are now tracked + manually (with Recommends:) due to the fact that some symbols of + these libs are dynamically loaded with dlopen() (heck!) + + - oomd is left disablde for now + + - pam configuration file 'systemd-user' is now shipped in + /usr/etc/pam.d + + - Rebased 0001-conf-parser-introduce-early-drop-ins.patch + 0003-strip-the-domain-part-from-etc-hostname-when-setting.patch + 0006-sysv-generator-add-back-support-for-SysV-scripts-for.patch + + - Dropped 0004-tmpfiles-support-exclude-statements-based-on-file-ow.patch + as it is SLE specific. + +- Clean systemd-experimental up: + + - Enclose "%package/%descriptoin experimental" within a "%if + %experimental/%endif" block condition + + - List the build requirements in the sub-package instead of listing + them in the main package. + + - Enable support for fido2, pwquality and qrencode in the home + stuff + + - Improve the package description + ------------------------------------------------------------------- Wed Apr 7 08:59:15 UTC 2021 - Franck Bui diff --git a/systemd.spec b/systemd.spec index d31ca44b..9ba18701 100644 --- a/systemd.spec +++ b/systemd.spec @@ -24,7 +24,7 @@ %define bootstrap 0 %define mini %nil %define min_kernel_version 4.5 -%define suse_version +suse.105.g14581e0120 +%define suse_version +suse.30.ge9a23d9e06 %bcond_with gnuefi %if 0%{?bootstrap} @@ -37,6 +37,7 @@ %bcond_with resolved %bcond_with sysvcompat %bcond_with experimental +%bcond_with tests %else %bcond_without coredump %ifarch %{ix86} x86_64 @@ -50,16 +51,15 @@ %bcond_without resolved %bcond_without sysvcompat %bcond_without experimental +%bcond_without tests %endif -%bcond_with parentpathid Name: systemd URL: http://www.freedesktop.org/wiki/Software/systemd -Version: 246.13 +Version: 248.3 Release: 0 Summary: A System and Session Manager License: LGPL-2.1-or-later -Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build %if ! 0%{?bootstrap} BuildRequires: docbook-xsl-stylesheets @@ -74,6 +74,7 @@ BuildRequires: python3-lxml BuildRequires: pkgconfig(audit) BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 BuildRequires: pkgconfig(libdw) +BuildRequires: pkgconfig(libfido2) BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpcre2-8) @@ -111,10 +112,6 @@ BuildRequires: pkgconfig(libmicrohttpd) >= 0.9.33 %if %{with gnuefi} BuildRequires: gnu-efi %endif -%if %{with experimental} -BuildRequires: pkgconfig(fdisk) -BuildRequires: pkgconfig(openssl) -%endif %if 0%{?bootstrap} #!BuildIgnore: dbus-1 @@ -126,13 +123,15 @@ Provides: systemd = %{version}-%{release} Requires: aaa_base >= 13.2 Requires: dbus-1 >= 1.4.0 Requires: kbd -Requires: kmod >= 15 Requires: netcfg >= 11.5 Requires: systemd-default-settings-branding Requires: systemd-presets-branding -Requires: udev = %{version}-%{release} Requires: util-linux >= 2.27.1 Requires: group(lock) +# This Recommends because some symbols of libpcre2 are dlopen()ed by journalctl +Recommends: libpcre2-8-0 +# ditto but dlopen()ed by systemd-cryptenroll +Recommends: libfido2 Requires(post): coreutils Requires(post): findutils Requires(post): systemd-presets-branding @@ -173,7 +172,6 @@ Source102: scripts-systemd-migrate-sysconfig-i18n.sh Patch1: 0001-restore-var-run-and-var-lock-bind-mount-if-they-aren.patch Patch2: 0002-rc-local-fix-ordering-startup-for-etc-init.d-boot.lo.patch Patch3: 0003-strip-the-domain-part-from-etc-hostname-when-setting.patch -Patch4: 0004-tmpfiles-support-exclude-statements-based-on-file-ow.patch Patch5: 0005-udev-create-default-symlinks-for-primary-cd_dvd-driv.patch Patch6: 0006-sysv-generator-add-back-support-for-SysV-scripts-for.patch Patch7: 0007-networkd-make-network.service-an-alias-of-systemd-ne.patch @@ -189,6 +187,7 @@ Patch12: 0012-resolved-create-etc-resolv.conf-symlink-at-runtime.patch # upstream and need an urgent fix. Even in this case, the patches are # temporary and should be removed as soon as a fix is merged by # upstream. +Patch100: 0001-Revert-core-prevent-excessive-proc-self-mountinfo-pa.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -204,7 +203,6 @@ drop-in replacement for sysvinit. %package doc Summary: HTML documentation for systemd License: LGPL-2.1-or-later -Group: Documentation/Other Supplements: (systemd and patterns-base-documentation) %description doc @@ -216,7 +214,6 @@ The HTML documentation for systemd. %package devel Summary: Development headers for systemd License: LGPL-2.1-or-later -Group: Development/Libraries/C and C++ Requires: libsystemd0%{?mini} = %{version}-%{release} Requires: systemd-rpm-macros %if 0%{?bootstrap} @@ -229,7 +226,6 @@ Development headers and auxiliary files for developing applications for systemd. %package sysvinit Summary: System V init tools License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} Provides: sbin_init Conflicts: otherproviders(sbin_init) @@ -242,7 +238,6 @@ Drop-in replacement of System V init tools. %package -n libsystemd0%{?mini} Summary: Component library for systemd License: LGPL-2.1-or-later -Group: System/Libraries %if 0%{?bootstrap} Conflicts: libsystemd0 Requires: this-is-only-for-build-envs @@ -272,14 +267,14 @@ This library provides several of the systemd C APIs: %package -n udev%{?mini} Summary: A rule-based device node and kernel event manager License: GPL-2.0-only -Group: System/Kernel URL: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html +Requires: kmod Requires: system-group-hardware Requires: group(kvm) Requires(post): sed Requires(post): coreutils Requires(postun): coreutils -Requires(postun): /usr/bin/systemctl +%systemd_requires Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 @@ -305,7 +300,6 @@ call tools to initialize a device, or load needed kernel modules. %package -n libudev%{?mini}1 Summary: Dynamic library to access udev device information License: LGPL-2.1-or-later -Group: System/Libraries %if 0%{?bootstrap} Conflicts: libudev1 Conflicts: kiwi @@ -320,7 +314,6 @@ access to udev device information %package -n libudev%{?mini}-devel Summary: Development files for libudev License: LGPL-2.1-or-later -Group: Development/Libraries/Other Requires: libudev%{?mini}1 = %{version}-%{release} %if 0%{?bootstrap} Provides: libudev-devel = %{version}-%{version} @@ -336,7 +329,6 @@ dynamic library, which provides access to udev device information. %package coredump Summary: Systemd tools for coredump management License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} %systemd_requires Provides: systemd:%{_bindir}/coredumpctl @@ -350,7 +342,6 @@ This package contains systemd-coredump, coredumpctl. %package container Summary: Systemd tools for container management License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} %systemd_requires Provides: systemd:%{_bindir}/systemd-nspawn @@ -368,8 +359,9 @@ and systemd-importd. %package network Summary: Systemd tools for networkd and resolved License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} +# This Recommends because some symbols of libidn2 are dlopen()ed by resolved +Recommends: pkgconfig(libidn2) BuildRequires: pkgconfig(libidn2) Provides: systemd:/usr/lib/systemd/systemd-networkd Provides: systemd:/usr/lib/systemd/systemd-resolved @@ -385,7 +377,6 @@ resolver tools for resolved %package portable Summary: Systemd tools for portable services License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} %systemd_requires @@ -405,7 +396,6 @@ https://systemd.io/PORTABLE_SERVICES %package logger Summary: Journal only logging License: LGPL-2.1-or-later -Group: System/Base Provides: syslog Provides: sysvinit(syslog) Requires(post): /usr/bin/systemctl @@ -417,7 +407,6 @@ This package marks the installation to not use syslog but only the journal. %package -n nss-systemd Summary: Plugin for local virtual host name resolution License: LGPL-2.1-or-later -Group: System/Libraries %description -n nss-systemd This package contains a plugin for the Name Service Switch (NSS), @@ -430,7 +419,6 @@ To activate this NSS module, you will need to include it in %package -n nss-myhostname Summary: Plugin for local system host name resolution License: LGPL-2.1-or-later -Group: System/Libraries %description -n nss-myhostname This package contains a plug-in module for the Name Service Switch @@ -447,7 +435,6 @@ To activate this NSS module, you will need to include it in %package -n nss-resolve Summary: Plugin for local hostname resolution via systemd-resolved License: LGPL-2.1-or-later -Group: System/Libraries Requires: %{name}-network = %{version}-%{release} %description -n nss-resolve @@ -464,7 +451,6 @@ To activate this NSS module, you will need to include it in %package -n nss-mymachines Summary: Plugin for local virtual host name resolution License: LGPL-2.1-or-later -Group: System/Libraries %description -n nss-mymachines This package contains a plugin for the Name Service Switch (NSS), @@ -481,11 +467,8 @@ To activate this NSS module, you will need to include it in %package journal-remote Summary: Gateway for serving journal events over the network using HTTP License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%systemd_requires %description journal-remote This extends the journal functionality to keep a copy of logs on a @@ -497,23 +480,61 @@ This package contains systemd-journal-gatewayd, systemd-journal-remote, and systemd-journal-upload. %endif +%if %{with tests} +%package tests +Summary: Unit tests for systemd +License: LGPL-2.1-or-later +Requires: %{name} = %{version}-%{release} +Recommends: python3 +Recommends: python3-colorama +# Optional dep for mkfs.vfat needed by test-loop-block (otherwise skipped) +Recommends: dosfstools + +%description tests +This package contains the unit tests used to check various internal +functions used by systemd and all its components. + +The python script /usr/lib/systemd/tests/run-unit-tests.py can be used +to run all unit tests at once. +%endif + +%if %{with experimental} %package experimental Summary: Experimental systemd features License: LGPL-2.1-or-later -Group: System/Base Requires: %{name} = %{version}-%{release} +# These Recommends because some symbols of these libs are dlopen()ed by home stuff +Recommends: libfido2 +Recommends: libpwquality1 +Recommends: libqrencode4 +# libfido2, libpwquality1 and libqrencode4 are build requirements for home stuff +BuildRequires: pkgconfig(libfido2) +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(pwquality) +# fdisk and openssl are build requirements for home stuff and repart +BuildRequires: pkgconfig(fdisk) +BuildRequires: pkgconfig(openssl) %systemd_requires %description experimental -This package contains optional extra systemd services that are -considered a preview feature. Behaviour details and option names are -subject to change without the usual backwards-compatibility promises. +This package contains optional extra services that are considered as +previews and are provided so users can do early experiments with the +new features or technologies without waiting for them to be fully +supported by either upstream and openSUSE. -Components that turn out to be stable may be merged into the main or a -dedicated package later. +Please note that all services should be considered in development +phase and as such their behaviors details, unit files, option names, +etc... are subject to change without the usual backwards-compatibility +promises. -Use at your own risk. +Components that turn out to be stable and considered as fully +supported will be merged into the main package or moved into a +dedicated package. +The package contains: homed, pstore, repart, userdbd. + +Have fun with these services at your own risk. +%endif %if ! 0%{?bootstrap} %lang_package @@ -526,6 +547,7 @@ Use at your own risk. %build # keep split-usr until all packages have moved their systemd rules to /usr %meson \ + -Dmode=release \ -Dversion-tag=%{version}%{suse_version} \ -Ddocdir=%{_docdir}/systemd \ -Drootprefix=/usr \ @@ -533,6 +555,7 @@ Use at your own risk. -Dsplit-bin=true \ -Dsystem-uid-max=499 \ -Dsystem-gid-max=499 \ + -Dpamconfdir=%{_distconfdir}/pam.d \ -Dpamlibdir=%{_pamdir} \ -Dxinitrcdir=%{_distconfdir}/X11/xinit/xinitrc.d \ -Drpmmacrosdir=no \ @@ -548,6 +571,7 @@ Use at your own risk. -Dsmack=false \ -Dima=false \ -Delfutils=auto \ + -Doomd=false \ %if %{with experimental} -Dpstore=true \ -Drepart=true \ @@ -560,16 +584,11 @@ Use at your own risk. -Duserdb=false \ %endif %if 0%{?bootstrap} - -Dfdisk=false \ - -Dpwquality=false \ - -Dp11kit=false \ + -Dnss-myhostname=false \ %else -Dman=true \ -Dhtml=true \ %endif -%if 0%{?bootstrap} - -Dnss-myhostname=false \ -%endif %if %{without coredump} -Dcoredump=false \ %endif @@ -597,6 +616,13 @@ Use at your own risk. %if %{without sysvcompat} -Dsysvinit-path= \ -Dsysvrcnd-path= \ +%endif +%if %{with tests} + -Dtests=unsafe \ + -Dinstall-tests=true \ +%else + -Dtests=false \ + -Dinstall-tests=false \ %endif -Dadm-group=false \ -Dwheel-group=false \ @@ -658,8 +684,8 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.{requires,wants} rm -f %{buildroot}/etc/systemd/system/default.target -# Replace /etc/pam.d/systemd-user shipped by upstream with the openSUSE one. -install -m0644 %{S:2} %{buildroot}%{_sysconfdir}/pam.d/ +# Replace upstream systemd-user with the openSUSE one. +install -m0644 %{S:2} %{buildroot}%{_distconfdir}/pam.d # don't enable wall ask password service, it spams every console (bnc#747783) rm %{buildroot}%{_unitdir}/multi-user.target.wants/systemd-ask-password-wall.path @@ -836,10 +862,16 @@ fi pam-config --add --systemd || : %endif -%sysusers_create %{_sysusersdir}/systemd.conf +# systemd-sysusers is not available in %pre so this needs to be done +# in %post. However this shouldn't be an issue since all files the +# main package ships are owned by root. +%sysusers_create systemd.conf + [ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ || : /usr/lib/systemd/systemd-random-seed save || : + systemctl daemon-reexec || : + %journal_catalog_update %tmpfiles_create @@ -906,7 +938,7 @@ if [ "$(readlink -f %{_sysconfdir}/systemd/system/tmp.mount)" = "%{_datadir}/sys fi %postun -# daemon-reload is implied by %systemd_postun_with_restart +# daemon-reload is implied by %%systemd_postun_with_restart %systemd_postun_with_restart systemd-journald.service %systemd_postun_with_restart systemd-timesyncd.service # Avoid restarting logind until fixed upstream (issue #1163) @@ -1010,7 +1042,8 @@ fi %service_add_pre systemd-journal-upload.service %post journal-remote -%sysusers_create %{_sysusersdir}/systemd-remote.conf +# Assume that all files shipped by systemd-journal-remove are owned by root. +%sysusers_create systemd-remote.conf %service_add_post systemd-journal-gatewayd.socket systemd-journal-gatewayd.service %service_add_post systemd-journal-remote.socket systemd-journal-remote.service %service_add_post systemd-journal-upload.service @@ -1114,7 +1147,11 @@ fi %{_bindir}/localectl %{_bindir}/systemctl %{_bindir}/systemd-analyze +%if ! 0%{?bootstrap} +%{_bindir}/systemd-cryptenroll +%endif %{_bindir}/systemd-delta +%{_bindir}/systemd-dissect %{_bindir}/systemd-escape %{_bindir}/systemd-firstboot %{_bindir}/systemd-id128 @@ -1124,6 +1161,7 @@ fi %{_bindir}/systemd-umount %{_bindir}/systemd-notify %{_bindir}/systemd-run +%{_bindir}/systemd-sysext %{_bindir}/journalctl %{_bindir}/systemd-ask-password %{_bindir}/loginctl @@ -1164,6 +1202,7 @@ fi %exclude %{_unitdir}/systemd-udev*.* %exclude %{_unitdir}/*.target.wants/systemd-udev*.* %exclude %{_unitdir}/initrd-udevadm-cleanup-db.service +%exclude %{_unitdir}/kmod-static-nodes.service %exclude %{_unitdir}/systemd-nspawn@.service %if %{with machined} %exclude %{_prefix}/lib/systemd/systemd-machined @@ -1260,6 +1299,7 @@ fi %{_modulesloaddir} %dir %{_sysusersdir} +%doc %{_sysusersdir}/README %{_sysusersdir}/systemd.conf %dir %{_sysconfdir}/tmpfiles.d @@ -1273,6 +1313,7 @@ fi %dir %{_sysctldir} %dir %{_sysconfdir}/sysctl.d +%doc %{_sysctldir}/README %{_sysctldir}/99-sysctl.conf %dir %{_sysconfdir}/X11/xorg.conf.d @@ -1287,7 +1328,7 @@ fi %dir %{_distconfdir}/X11/xinit/xinitrc.d %{_distconfdir}/X11/xinit/xinitrc.d/50-systemd-user.sh -%config(noreplace) %{_sysconfdir}/pam.d/systemd-user +%{_distconfdir}/pam.d/systemd-user %config(noreplace) %{_sysconfdir}/systemd/journald.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf @@ -1311,6 +1352,7 @@ fi # FIXME: why do we have to own this dir ? %dir %{_modprobedir} +%doc %{_modprobedir}/README %{_modprobedir}/systemd.conf # Some files created at runtime. @@ -1351,6 +1393,7 @@ fi %{_mandir}/man7/[bdfks]* %{_mandir}/man8/kern* %{_mandir}/man8/pam_* +%{_mandir}/man8//rc-local.* %{_mandir}/man8/systemd-[a-gik-tvx]* %{_mandir}/man8/systemd-h[aioy]* %{_mandir}/man8/systemd-journald* @@ -1475,13 +1518,18 @@ fi %dir %{_prefix}/lib/udev/ %{_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 +%{_prefix}/lib/udev/dmi_memory_id +%endif %{_prefix}/lib/udev/fido_id %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/path_id_compat %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id -%ghost %{_prefix}/lib/udev/compat-symlink-generation +%ghost %attr(644, root, root) %{_prefix}/lib/udev/compat-symlink-generation %dir %{_udevrulesdir}/ +%doc %{_udevrulesdir}/README %exclude %{_udevrulesdir}/70-uaccess.rules %exclude %{_udevrulesdir}/71-seat.rules %exclude %{_udevrulesdir}/73-seat-late.rules @@ -1502,6 +1550,7 @@ fi %endif %dir %{_unitdir} %{_prefix}/lib/systemd/systemd-udevd +%{_unitdir}/kmod-static-nodes.service %{_unitdir}/systemd-udev*.service %{_unitdir}/systemd-udevd*.socket %{_unitdir}/initrd-udevadm-cleanup-db.service @@ -1694,10 +1743,15 @@ fi %{_mandir}/man*/systemd-portabled* %endif +%if %{with tests} +%files tests +%{_prefix}/lib/systemd/tests +%endif + %if %{with experimental} %files experimental %defattr(-,root,root) -%config(noreplace) /etc/systemd/pstore.conf +%config(noreplace) %{_sysconfdir}/systemd/pstore.conf %{_prefix}/lib/systemd/systemd-pstore %{_unitdir}/systemd-pstore.service %{_tmpfilesdir}/systemd-pstore.conf @@ -1705,18 +1759,19 @@ fi %{_bindir}/systemd-repart %{_unitdir}/systemd-repart.service %{_mandir}/man*/*repart* -/usr/bin/userdbctl +%{_bindir}/userdbctl %{_prefix}/lib/systemd/systemd-userwork %{_prefix}/lib/systemd/systemd-userdbd %{_unitdir}/systemd-userdbd.service %{_unitdir}/systemd-userdbd.socket %{_mandir}/man*/userdbctl* %{_mandir}/man*/systemd-userdbd* -%config %{_sysconfdir}/homed.conf +%config(noreplace) %{_sysconfdir}/systemd/homed.conf %{_bindir}/homectl %{_prefix}/lib/systemd/systemd-homed %{_prefix}/lib/systemd/systemd-homework %{_unitdir}/systemd-homed.service +%{_unitdir}/systemd-homed-activate.service %{_pamdir}/pam_systemd_home.so %{_datadir}/dbus-1/system-services/org.freedesktop.home1.service %{_datadir}/dbus-1/system.d/org.freedesktop.home1.conf diff --git a/tmpfiles-suse.conf b/tmpfiles-suse.conf index 885e852c..68635292 100644 --- a/tmpfiles-suse.conf +++ b/tmpfiles-suse.conf @@ -9,6 +9,10 @@ L+ /etc/mtab - - - - ../proc/self/mounts # FIXME: Might be moved to lockded. d /run/lock 0775 root lock - +# /run/lock/subsys is used for serializing SysV service execution, and +# hence without use on SysV-less systems. +d /run/lock/subsys 0755 root root - + # FIXME: Should these one be moved to shadow ? f /var/log/wtmp 0664 root utmp - f /var/log/btmp 0660 root utmp -