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..116eec9a 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,40 @@ +------------------------------------------------------------------- +Mon Apr 26 16:25:38 UTC 2021 - Franck Bui + +- Upgrade to v248 (commit e5f93c9d2e9e26dd0dff430c4c072a547357ae7d) + + 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..a12ae910 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.21.g5d3d934a5c %bcond_with gnuefi %if 0%{?bootstrap} @@ -57,7 +57,7 @@ Name: systemd-mini URL: http://www.freedesktop.org/wiki/Software/systemd -Version: 246.13 +Version: 248 Release: 0 Summary: A System and Session Manager License: LGPL-2.1-or-later @@ -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 @@ -135,6 +132,10 @@ 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 +176,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 @@ -372,6 +372,8 @@ 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 @@ -485,9 +487,7 @@ 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 +499,44 @@ This package contains systemd-journal-gatewayd, systemd-journal-remote, and systemd-journal-upload. %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 @@ -660,8 +679,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 @@ -908,7 +927,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) @@ -1116,7 +1135,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 +1149,7 @@ fi %{_bindir}/systemd-umount %{_bindir}/systemd-notify %{_bindir}/systemd-run +%{_bindir}/systemd-sysext %{_bindir}/journalctl %{_bindir}/systemd-ask-password %{_bindir}/loginctl @@ -1262,6 +1286,7 @@ fi %{_modulesloaddir} %dir %{_sysusersdir} +%doc %{_sysusersdir}/README %{_sysusersdir}/systemd.conf %dir %{_sysconfdir}/tmpfiles.d @@ -1275,6 +1300,7 @@ fi %dir %{_sysctldir} %dir %{_sysconfdir}/sysctl.d +%doc %{_sysctldir}/README %{_sysctldir}/99-sysctl.conf %dir %{_sysconfdir}/X11/xorg.conf.d @@ -1289,7 +1315,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 +1339,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 +1380,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,6 +1505,7 @@ fi %dir %{_prefix}/lib/udev/ %{_prefix}/lib/udev/ata_id %{_prefix}/lib/udev/cdrom_id +%{_prefix}/lib/udev/dmi_memory_id %{_prefix}/lib/udev/fido_id %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/path_id_compat @@ -1484,6 +1513,7 @@ fi %{_prefix}/lib/udev/v4l_id %ghost %{_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 @@ -1699,7 +1729,7 @@ fi %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,14 +1737,14 @@ 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 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+suse.21.g5d3d934a5c.tar.xz b/systemd-v248+suse.21.g5d3d934a5c.tar.xz new file mode 100644 index 00000000..2e310340 --- /dev/null +++ b/systemd-v248+suse.21.g5d3d934a5c.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fda316257f2b86997ee00bd2dc589f9f804bab5b1e339a539b892110624ecee +size 7073788 diff --git a/systemd.changes b/systemd.changes index e63fc72b..116eec9a 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,40 @@ +------------------------------------------------------------------- +Mon Apr 26 16:25:38 UTC 2021 - Franck Bui + +- Upgrade to v248 (commit e5f93c9d2e9e26dd0dff430c4c072a547357ae7d) + + 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..256bd6b4 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.21.g5d3d934a5c %bcond_with gnuefi %if 0%{?bootstrap} @@ -55,7 +55,7 @@ Name: systemd URL: http://www.freedesktop.org/wiki/Software/systemd -Version: 246.13 +Version: 248 Release: 0 Summary: A System and Session Manager License: LGPL-2.1-or-later @@ -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 @@ -133,6 +130,10 @@ 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 +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 @@ -370,6 +370,8 @@ 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 @@ -483,9 +485,7 @@ 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 +497,44 @@ This package contains systemd-journal-gatewayd, systemd-journal-remote, and systemd-journal-upload. %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 @@ -658,8 +677,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 @@ -906,7 +925,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) @@ -1114,7 +1133,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 +1147,7 @@ fi %{_bindir}/systemd-umount %{_bindir}/systemd-notify %{_bindir}/systemd-run +%{_bindir}/systemd-sysext %{_bindir}/journalctl %{_bindir}/systemd-ask-password %{_bindir}/loginctl @@ -1260,6 +1284,7 @@ fi %{_modulesloaddir} %dir %{_sysusersdir} +%doc %{_sysusersdir}/README %{_sysusersdir}/systemd.conf %dir %{_sysconfdir}/tmpfiles.d @@ -1273,6 +1298,7 @@ fi %dir %{_sysctldir} %dir %{_sysconfdir}/sysctl.d +%doc %{_sysctldir}/README %{_sysctldir}/99-sysctl.conf %dir %{_sysconfdir}/X11/xorg.conf.d @@ -1287,7 +1313,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 +1337,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 +1378,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,6 +1503,7 @@ fi %dir %{_prefix}/lib/udev/ %{_prefix}/lib/udev/ata_id %{_prefix}/lib/udev/cdrom_id +%{_prefix}/lib/udev/dmi_memory_id %{_prefix}/lib/udev/fido_id %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/path_id_compat @@ -1482,6 +1511,7 @@ fi %{_prefix}/lib/udev/v4l_id %ghost %{_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 @@ -1697,7 +1727,7 @@ fi %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,14 +1735,14 @@ 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