commit systemd for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package systemd for openSUSE:Factory checked in at 2021-07-01 07:05:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/systemd (Old) and /work/SRC/openSUSE:Factory/.systemd.new.2625 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "systemd" Thu Jul 1 07:05:27 2021 rev:330 rq:902866 version:248.3 Changes: -------- --- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2021-06-04 00:33:08.388871352 +0200 +++ /work/SRC/openSUSE:Factory/.systemd.new.2625/systemd-mini.changes 2021-07-01 07:05:31.787526132 +0200 @@ -1,0 +2,168 @@ +Mon Jun 28 16:45:04 UTC 2021 - Franck Bui <fbui@suse.com> + +- 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 <fbui@suse.com> + +- 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 <fbui@suse.com> + +- 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 <fbui@suse.com> + +- 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 <fbui@suse.com> + +- 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 <fbui@suse.com> + +- 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 <fbui@suse.com> + +- 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 <fbui@suse.com> + +- 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 <fbui@suse.com> + +- Expect 644 permissions for /usr/lib/udev/compat-symlink-generation (bsc#1185807) + +------------------------------------------------------------------- +Wed May 19 06:54:57 UTC 2021 - Franck Bui <fbui@suse.com> + +- 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 <fbui@suse.com> + +- 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 <fbui@suse.com> + +- 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 <fbui@suse.com> + +- Import commit bc08011f04ac4f12569ec05965149f665a0b110b (merge of v248.3) + + For a complete list of changes, visit: + https://github.com/openSUSE/systemd/compare/6f5c11b28f5739b901390f22c2bf4c00... + +------------------------------------------------------------------- +Mon May 10 13:12:56 UTC 2021 - Franck Bui <fbui@suse.com> + +- Import commit 6f5c11b28f5739b901390f22c2bf4c003cadedaa (merge of v248.2) + + For a complete list of changes, visit: + https://github.com/openSUSE/systemd/compare/e5f93c9d2e9e26dd0dff430c4c072a54... + +------------------------------------------------------------------- +Mon Apr 26 16:25:38 UTC 2021 - Franck Bui <fbui@suse.com> + +- 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 + +------------------------------------------------------------------- systemd.changes: same change Old: ---- 0004-tmpfiles-support-exclude-statements-based-on-file-ow.patch systemd-v246.13+suse.105.g14581e0120.tar.xz New: ---- 0001-Revert-core-prevent-excessive-proc-self-mountinfo-pa.patch systemd-v248.3+suse.30.ge9a23d9e06.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ systemd-mini.spec ++++++ --- /var/tmp/diff_new_pack.ku8fIG/_old 2021-07-01 07:05:32.887517539 +0200 +++ /var/tmp/diff_new_pack.ku8fIG/_new 2021-07-01 07:05:32.891517508 +0200 @@ -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: 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 @@ %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 @@ 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 @@ 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 @@ # 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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ 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. - -Components that turn out to be stable may be merged into the main or a -dedicated package later. +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. + +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. + +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. -Use at your own risk. +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 @@ %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 @@ -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 @@ -Dsmack=false \ -Dima=false \ -Delfutils=auto \ + -Doomd=false \ %if %{with experimental} -Dpstore=true \ -Drepart=true \ @@ -562,16 +586,11 @@ -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 @@ -600,6 +619,13 @@ -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 \ -Dgshadow=false \ @@ -660,8 +686,8 @@ 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 @@ 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 @@ 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 @@ %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 @@ %{_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 @@ %{_bindir}/systemd-umount %{_bindir}/systemd-notify %{_bindir}/systemd-run +%{_bindir}/systemd-sysext %{_bindir}/journalctl %{_bindir}/systemd-ask-password %{_bindir}/loginctl @@ -1166,6 +1204,7 @@ %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 @@ %{_modulesloaddir} %dir %{_sysusersdir} +%doc %{_sysusersdir}/README %{_sysusersdir}/systemd.conf %dir %{_sysconfdir}/tmpfiles.d @@ -1275,6 +1315,7 @@ %dir %{_sysctldir} %dir %{_sysconfdir}/sysctl.d +%doc %{_sysctldir}/README %{_sysctldir}/99-sysctl.conf %dir %{_sysconfdir}/X11/xorg.conf.d @@ -1289,7 +1330,7 @@ %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 @@ # 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 @@ %{_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 @@ %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 @@ %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 @@ %{_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 @@ %{_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 ++++++ systemd.spec ++++++ --- /var/tmp/diff_new_pack.ku8fIG/_old 2021-07-01 07:05:32.923517258 +0200 +++ /var/tmp/diff_new_pack.ku8fIG/_new 2021-07-01 07:05:32.927517227 +0200 @@ -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: 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 @@ %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 @@ 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 @@ 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 @@ # 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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ %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 @@ 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. - -Components that turn out to be stable may be merged into the main or a -dedicated package later. +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. + +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. + +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. -Use at your own risk. +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 @@ %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 @@ -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 @@ -Dsmack=false \ -Dima=false \ -Delfutils=auto \ + -Doomd=false \ %if %{with experimental} -Dpstore=true \ -Drepart=true \ @@ -560,16 +584,11 @@ -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 @@ -598,6 +617,13 @@ -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 \ -Dgshadow=false \ @@ -658,8 +684,8 @@ 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 @@ 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 @@ 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 @@ %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 @@ %{_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 @@ %{_bindir}/systemd-umount %{_bindir}/systemd-notify %{_bindir}/systemd-run +%{_bindir}/systemd-sysext %{_bindir}/journalctl %{_bindir}/systemd-ask-password %{_bindir}/loginctl @@ -1164,6 +1202,7 @@ %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 @@ %{_modulesloaddir} %dir %{_sysusersdir} +%doc %{_sysusersdir}/README %{_sysusersdir}/systemd.conf %dir %{_sysconfdir}/tmpfiles.d @@ -1273,6 +1313,7 @@ %dir %{_sysctldir} %dir %{_sysconfdir}/sysctl.d +%doc %{_sysctldir}/README %{_sysctldir}/99-sysctl.conf %dir %{_sysconfdir}/X11/xorg.conf.d @@ -1287,7 +1328,7 @@ %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 @@ # 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 @@ %{_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 @@ %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 @@ %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 @@ %{_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 @@ %{_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 ++++++ 0001-Revert-core-prevent-excessive-proc-self-mountinfo-pa.patch ++++++ From c9bce1f07276c591d8637dbfc3244ee11e8fa4e1 Mon Sep 17 00:00:00 2001 From: Franck Bui <fbui@suse.com> 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 ++++++ 0001-conf-parser-introduce-early-drop-ins.patch ++++++ --- /var/tmp/diff_new_pack.ku8fIG/_old 2021-07-01 07:05:32.959516976 +0200 +++ /var/tmp/diff_new_pack.ku8fIG/_new 2021-07-01 07:05:32.959516976 +0200 @@ -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 @@ 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 @@ + 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 @@ /* 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 @@ 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 @@ 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 @@ #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 @@ + 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 @@ 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]); ++++++ 0003-strip-the-domain-part-from-etc-hostname-when-setting.patch ++++++ --- /var/tmp/diff_new_pack.ku8fIG/_old 2021-07-01 07:05:32.971516883 +0200 +++ /var/tmp/diff_new_pack.ku8fIG/_new 2021-07-01 07:05:32.975516852 +0200 @@ -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 @@ 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 @@ + *domain = '\0'; + hn = b; -+ } - } - - if (isempty(hn)) { + source = HOSTNAME_STATIC; + } -- 2.26.2 ++++++ 0006-sysv-generator-add-back-support-for-SysV-scripts-for.patch ++++++ --- /var/tmp/diff_new_pack.ku8fIG/_old 2021-07-01 07:05:32.987516758 +0200 +++ /var/tmp/diff_new_pack.ku8fIG/_new 2021-07-01 07:05:32.987516758 +0200 @@ -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 @@ 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 @@ + 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 @@ 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 @@ 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 @@ /* 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 @@ /* 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), ++++++ systemd-sysv-install ++++++ --- /var/tmp/diff_new_pack.ku8fIG/_old 2021-07-01 07:05:33.115515758 +0200 +++ /var/tmp/diff_new_pack.ku8fIG/_new 2021-07-01 07:05:33.115515758 +0200 @@ -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 <sysv script name>" >&2 - exit 1 + echo >&2 "Usage: $0 [--quiet] [--root=path] enable|disable|is-enabled <sysv script name>" + 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 + +sysvinit_path=$(realpath -q -e $root/etc/init.d) || + die "$root/etc/init.d: no such file or directory" + +cd $sysvinit_path -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 ;; +case "$action" in +enable) enable_initscript $name ;; +disable) disable_initscript $name ;; +is-enabled) is_initscript_enabled $name ;; +*) usage esac ++++++ systemd-v246.13+suse.105.g14581e0120.tar.xz -> systemd-v248.3+suse.30.ge9a23d9e06.tar.xz ++++++ /work/SRC/openSUSE:Factory/systemd/systemd-v246.13+suse.105.g14581e0120.tar.xz /work/SRC/openSUSE:Factory/.systemd.new.2625/systemd-v248.3+suse.30.ge9a23d9e06.tar.xz differ: char 26, line 1 ++++++ tmpfiles-suse.conf ++++++ --- /var/tmp/diff_new_pack.ku8fIG/_old 2021-07-01 07:05:33.171515320 +0200 +++ /var/tmp/diff_new_pack.ku8fIG/_new 2021-07-01 07:05:33.171515320 +0200 @@ -9,6 +9,10 @@ # 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 -
participants (1)
-
Source-Sync