- 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

OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1149
This commit is contained in:
Franck Bui 2021-04-28 12:31:30 +00:00 committed by Git OBS Bridge
parent 37c44ad59a
commit 8d20711aa0
10 changed files with 244 additions and 236 deletions

View File

@ -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 <fbui@suse.com>
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]);

View File

@ -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 <fcrozat@suse.com>
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

View File

@ -1,124 +0,0 @@
From b46d43bf980afe13cfff39fc2876aed10f33db1d Mon Sep 17 00:00:00 2001
From: Thomas Blume <Thomas.Blume@suse.com>
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</programlisting></para>
suffixed by a newline. For <varname>C</varname>, specifies the source file or directory. For <varname>t</varname>
and <varname>T</varname>, determines extended attributes to be set. For <varname>a</varname> and
<varname>A</varname>, determines ACL attributes to be set. For <varname>h</varname> and <varname>H</varname>,
- determines the file attributes to set. Ignored for all other lines.</para>
+ determines the file attributes to set. For <varname>x</varname> and <varname>X</varname> 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.</para>
<para>This field can contain specifiers, see below.</para>
</refsect2>
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 <sysexits.h>
#include <time.h>
#include <unistd.h>
+#include <sys/types.h>
+#include <pwd.h>
#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

View File

@ -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 <fbui@suse.com>
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),

View File

@ -1,3 +1,40 @@
-------------------------------------------------------------------
Mon Apr 26 16:25:38 UTC 2021 - Franck Bui <fbui@suse.com>
- 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 <fbui@suse.com>

View File

@ -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

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6316b2146335f43df36f200bdad2482858a6f83a56c50f7b1221b6a24e552eb8
size 6574688

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1fda316257f2b86997ee00bd2dc589f9f804bab5b1e339a539b892110624ecee
size 7073788

View File

@ -1,3 +1,40 @@
-------------------------------------------------------------------
Mon Apr 26 16:25:38 UTC 2021 - Franck Bui <fbui@suse.com>
- 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 <fbui@suse.com>

View File

@ -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