Hello community, here is the log from the commit of package systemd for openSUSE:Factory checked in at 2018-06-19 11:53:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/systemd (Old) and /work/SRC/openSUSE:Factory/.systemd.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd" Tue Jun 19 11:53:47 2018 rev:281 rq:616862 version:237 Changes: -------- --- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2018-05-22 16:58:09.652524492 +0200 +++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes 2018-06-19 11:53:51.667868793 +0200 @@ -1,0 +2,18 @@ +Wed Jun 13 13:29:59 UTC 2018 - [email protected] + +- Import commit f63623c1fc0eb01b8efc2037d004f42ed8328356 + + 6a161916f device: make sure to always retroactively start device dependencies (take #2) (bsc#1088052) + e4402648c Fix pattern to detect distribution + ad59c7970 install: "user" and "global" scopes are equivalent for user presets (boo#1093851) + b1876c81a rpm: remove confusing --user before --global + 00ea8a214 man: updated systemd-analyze blame description for service-units with Type=simple (#8834) (bsc#1091265) + a9b587e2f fileio.c: fix incorrect mtime + +------------------------------------------------------------------- +Tue Jun 12 13:38:23 UTC 2018 - [email protected] + +- Add 0001-resolved-create-etc-resolv.conf-symlink-at-runtime.patch (boo#1024897) +- Ship systemd-resolved (but disabled by default) (bsc#1018387) + +------------------------------------------------------------------- systemd.changes: same change Old: ---- systemd-v237+suse.57.gd81968050.tar.xz New: ---- 0001-resolved-create-etc-resolv.conf-symlink-at-runtime.patch systemd-v237+suse.64.gf63623c1f.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ systemd-mini.spec ++++++ --- /var/tmp/diff_new_pack.2s7YIY/_old 2018-06-19 11:53:56.267698014 +0200 +++ /var/tmp/diff_new_pack.2s7YIY/_new 2018-06-19 11:53:56.271697865 +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.57.gd81968050 +%define suse_version +suse.64.gf63623c1f %bcond_with gnuefi %if 0%{?bootstrap} @@ -34,18 +34,19 @@ %bcond_with machined %bcond_with importd %bcond_with networkd +%bcond_with resolved %bcond_with journal_remote %else %bcond_without sysvcompat %bcond_without machined %bcond_without importd %bcond_without networkd +%bcond_without resolved %bcond_without journal_remote %ifarch %{ix86} x86_64 %bcond_without gnuefi %endif %endif -%bcond_with resolved %bcond_with parentpathid Name: systemd-mini @@ -162,6 +163,7 @@ # broken in 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. +Patch1: 0001-resolved-create-etc-resolv.conf-symlink-at-runtime.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -424,7 +426,7 @@ %prep %setup -q -n systemd-v%{version}%{suse_version} -# %%autopatch -p1 +%autopatch -p1 %build opensuse_ntp_servers=({0..3}.opensuse.pool.ntp.org) @@ -1010,7 +1012,6 @@ %if %{with journal_remote} %exclude %{_sysusersdir}/systemd-remote.conf -%exclude %{_tmpfilesdir}/systemd-remote.conf %endif %{_libexecdir}/environment.d/ @@ -1111,6 +1112,9 @@ %if %{with networkd} %{_datadir}/polkit-1/rules.d/systemd-networkd.rules %endif +%if %{with resolved} +%{_datadir}/polkit-1/actions/org.freedesktop.resolve1.policy +%endif %if ! 0%{?bootstrap} %{_mandir}/man1/[a-rt-z]*ctl.1* ++++++ systemd.spec ++++++ --- /var/tmp/diff_new_pack.2s7YIY/_old 2018-06-19 11:53:56.303696677 +0200 +++ /var/tmp/diff_new_pack.2s7YIY/_new 2018-06-19 11:53:56.307696528 +0200 @@ -24,7 +24,7 @@ %define bootstrap 0 %define mini %nil %define min_kernel_version 4.5 -%define suse_version +suse.57.gd81968050 +%define suse_version +suse.64.gf63623c1f %bcond_with gnuefi %if 0%{?bootstrap} @@ -32,18 +32,19 @@ %bcond_with machined %bcond_with importd %bcond_with networkd +%bcond_with resolved %bcond_with journal_remote %else %bcond_without sysvcompat %bcond_without machined %bcond_without importd %bcond_without networkd +%bcond_without resolved %bcond_without journal_remote %ifarch %{ix86} x86_64 %bcond_without gnuefi %endif %endif -%bcond_with resolved %bcond_with parentpathid Name: systemd @@ -160,6 +161,7 @@ # broken in 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. +Patch1: 0001-resolved-create-etc-resolv.conf-symlink-at-runtime.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -422,7 +424,7 @@ %prep %setup -q -n systemd-v%{version}%{suse_version} -# %%autopatch -p1 +%autopatch -p1 %build opensuse_ntp_servers=({0..3}.opensuse.pool.ntp.org) @@ -1008,7 +1010,6 @@ %if %{with journal_remote} %exclude %{_sysusersdir}/systemd-remote.conf -%exclude %{_tmpfilesdir}/systemd-remote.conf %endif %{_libexecdir}/environment.d/ @@ -1109,6 +1110,9 @@ %if %{with networkd} %{_datadir}/polkit-1/rules.d/systemd-networkd.rules %endif +%if %{with resolved} +%{_datadir}/polkit-1/actions/org.freedesktop.resolve1.policy +%endif %if ! 0%{?bootstrap} %{_mandir}/man1/[a-rt-z]*ctl.1* ++++++ 0001-resolved-create-etc-resolv.conf-symlink-at-runtime.patch ++++++ >From a482b51673d4344faf76a0460a69d7f273b36e47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <[email protected]> Date: Fri, 11 Mar 2016 17:06:17 -0500 Subject: [PATCH 1/1] resolved: create /etc/resolv.conf symlink at runtime If the symlink doesn't exists, and we are being started, let's create it to provie name resolution. If it exists, do nothing. In particular, if it is a broken symlink, we cannot really know if the administator configured it to point to a location used by some service that hasn't started yet, so we don't touch it in that case either. https://bugzilla.redhat.com/show_bug.cgi?id=1313085 [fbui: fixes boo#1024897] --- src/resolve/resolved.c | 4 ++++ tmpfiles.d/etc.conf.m4 | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/resolve/resolved.c b/src/resolve/resolved.c index a4cda0b5e..68bca8077 100644 --- a/src/resolve/resolved.c +++ b/src/resolve/resolved.c @@ -71,6 +71,10 @@ int main(int argc, char *argv[]) { /* Drop privileges, but only if we have been started as root. If we are not running as root we assume all * privileges are already dropped. */ if (getuid() == 0) { + r = symlink("../run/systemd/resolve/resolv.conf", "/etc/resolv.conf"); + if (r < 0 && errno != EEXIST) + log_warning_errno(errno, + "Could not create /etc/resolv.conf symlink: %m"); /* Drop privileges, but keep three caps. Note that we drop those too, later on (see below) */ r = drop_privileges(uid, gid, diff --git a/tmpfiles.d/etc.conf.m4 b/tmpfiles.d/etc.conf.m4 index df8d42101..928105ea8 100644 --- a/tmpfiles.d/etc.conf.m4 +++ b/tmpfiles.d/etc.conf.m4 @@ -13,9 +13,6 @@ L+ /etc/mtab - - - - ../proc/self/mounts m4_ifdef(`HAVE_SMACK_RUN_LABEL', t /etc/mtab - - - - security.SMACK64=_ )m4_dnl -m4_ifdef(`ENABLE_RESOLVE', -L! /etc/resolv.conf - - - - ../run/systemd/resolve/stub-resolv.conf -)m4_dnl C /etc/nsswitch.conf - - - - m4_ifdef(`HAVE_PAM', C /etc/pam.d - - - - -- 2.16.2 ++++++ systemd-v237+suse.57.gd81968050.tar.xz -> systemd-v237+suse.64.gf63623c1f.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.57.gd81968050/man/systemd-analyze.xml new/systemd-v237+suse.64.gf63623c1f/man/systemd-analyze.xml --- old/systemd-v237+suse.57.gd81968050/man/systemd-analyze.xml 2018-04-23 09:40:12.000000000 +0200 +++ new/systemd-v237+suse.64.gf63623c1f/man/systemd-analyze.xml 2018-06-13 14:50:24.000000000 +0200 @@ -152,7 +152,11 @@ This information may be used to optimize boot-up times. Note that the output might be misleading as the initialization of one service might be slow simply because it waits for the - initialization of another service to complete.</para> + initialization of another service to complete. + Also note: <command>systemd-analyze blame</command> doesn't display + results for services with <varname>Type=simple</varname>, + because systemd considers such services to be started immediately, + hence no measurement of the initialization delays can be done.</para> <para><command>systemd-analyze critical-chain [<replaceable>UNIT…</replaceable>]</command> prints a tree of diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.57.gd81968050/src/basic/fileio.c new/systemd-v237+suse.64.gf63623c1f/src/basic/fileio.c --- old/systemd-v237+suse.57.gd81968050/src/basic/fileio.c 2018-04-23 09:40:12.000000000 +0200 +++ new/systemd-v237+suse.64.gf63623c1f/src/basic/fileio.c 2018-06-13 14:50:24.000000000 +0200 @@ -63,6 +63,7 @@ struct timespec *ts) { bool needs_nl; + int r; assert(f); assert(line); @@ -87,6 +88,13 @@ if (fputc('\n', f) == EOF) return -errno; + if (flags & WRITE_STRING_FILE_SYNC) + r = fflush_sync_and_check(f); + else + r = fflush_and_check(f); + if (r < 0) + return r; + if (ts) { struct timespec twice[2] = {*ts, *ts}; @@ -94,10 +102,7 @@ return -errno; } - if (flags & WRITE_STRING_FILE_SYNC) - return fflush_sync_and_check(f); - else - return fflush_and_check(f); + return 0; } static int write_string_file_atomic( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.57.gd81968050/src/core/device.c new/systemd-v237+suse.64.gf63623c1f/src/core/device.c --- old/systemd-v237+suse.57.gd81968050/src/core/device.c 2018-04-23 09:40:12.000000000 +0200 +++ new/systemd-v237+suse.64.gf63623c1f/src/core/device.c 2018-06-13 14:50:24.000000000 +0200 @@ -146,12 +146,41 @@ assert(d); assert(d->state == DEVICE_DEAD); - /* This should happen only when we reexecute PID1 from an old version - * which didn't serialize d->found. In this case simply assume that the - * device was in plugged state right before we started reexecuting which - * might be a wrong assumption. */ - if (d->found == DEVICE_FOUND_UDEV_DB) - d->found = DEVICE_FOUND_UDEV; + if (d->found == DEVICE_FOUND_UDEV_DB) { + + if (d->deserialized_state != DEVICE_DEAD) + /* The device has been serialized and deserialized but + * d->found item wasn't there. This can happen when PID1 + * is re-executed from an old version which didn't + * serialize d->found. In this case simply assume that + * the device was in plugged state right before we + * started re-executing which might be a wrong + * assumption. */ + d->found = DEVICE_FOUND_UDEV; + else + /* The device has been discovered during the enumeration + * step. This can happen in 2 cases: + * + * - systemd is reloading/re-executing and the device + * is first seen during the enumeration. udev is about + * to send us the relevant event. Simply assume that we + * don't see the device at all for now so the device + * will be switched in "plugged" state and all the deps + * will be started accordingly once the device will be + * announced by udev. IOW we don't want the device to + * be put in "plugged" or "tentative" states in this + * case. + * + * - A user instance is starting: all devices have been + * already announced by udev. Unfortunately we can't + * make a distinction between this case and the previous + * one. So simply assume device is in "plugged" + * state. And yes, user instances still miss starting + * device dependencies (bsc#1088052) but that shouldn't + * be a big issue practically. + */ + d->found = MANAGER_IS_USER(u->manager) ? DEVICE_FOUND_UDEV : DEVICE_NOT_FOUND; + } if (d->found & DEVICE_FOUND_UDEV) /* If udev says the device is around, it's around */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.57.gd81968050/src/core/macros.systemd.in new/systemd-v237+suse.64.gf63623c1f/src/core/macros.systemd.in --- old/systemd-v237+suse.57.gd81968050/src/core/macros.systemd.in 2018-04-23 09:40:12.000000000 +0200 +++ new/systemd-v237+suse.64.gf63623c1f/src/core/macros.systemd.in 2018-06-13 14:50:24.000000000 +0200 @@ -55,7 +55,7 @@ fi \ %{nil} -%systemd_user_post() %{expand:%systemd_post \\--user \\--global %%{?*}} +%systemd_user_post() %{expand:%systemd_post \\--global %%{?*}} %systemd_preun() \ if [ $1 -eq 0 ] ; then \ @@ -67,7 +67,7 @@ %systemd_user_preun() \ if [ $1 -eq 0 ] ; then \ # Package removal, not upgrade \ - systemctl --no-reload --user --global disable %{?*} > /dev/null 2>&1 || : \ + systemctl --global disable %{?*} > /dev/null 2>&1 || : \ fi \ %{nil} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.57.gd81968050/src/shared/install.c new/systemd-v237+suse.64.gf63623c1f/src/shared/install.c --- old/systemd-v237+suse.57.gd81968050/src/shared/install.c 2018-04-23 09:40:12.000000000 +0200 +++ new/systemd-v237+suse.64.gf63623c1f/src/shared/install.c 2018-06-13 14:50:24.000000000 +0200 @@ -2781,7 +2781,8 @@ assert(scope < _UNIT_FILE_SCOPE_MAX); assert(presets); - if (scope == UNIT_FILE_SYSTEM) + switch (scope) { + case UNIT_FILE_SYSTEM: r = conf_files_list(&files, ".preset", root_dir, 0, "/etc/systemd/system-preset", "/run/systemd/system-preset", @@ -2791,17 +2792,20 @@ "/lib/systemd/system-preset", #endif NULL); - else if (scope == UNIT_FILE_GLOBAL) + break; + + case UNIT_FILE_GLOBAL: + case UNIT_FILE_USER: r = conf_files_list(&files, ".preset", root_dir, 0, "/etc/systemd/user-preset", "/run/systemd/user-preset", "/usr/local/lib/systemd/user-preset", "/usr/lib/systemd/user-preset", NULL); - else { - *presets = (Presets){}; + break; - return 0; + default: + assert_not_reached("Invalid unit file scope"); } if (r < 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v237+suse.57.gd81968050/test/test-functions new/systemd-v237+suse.64.gf63623c1f/test/test-functions --- old/systemd-v237+suse.57.gd81968050/test/test-functions 2018-04-23 09:40:12.000000000 +0200 +++ new/systemd-v237+suse.64.gf63623c1f/test/test-functions 2018-06-13 14:50:24.000000000 +0200 @@ -4,9 +4,9 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH -LOOKS_LIKE_DEBIAN=$(source /etc/os-release && [[ "$ID" = "debian" || "$ID_LIKE" = "debian" ]] && echo yes || true) -LOOKS_LIKE_ARCH=$(source /etc/os-release && [[ "$ID" = "arch" ]] && echo yes || true) -LOOKS_LIKE_SUSE=$(source /etc/os-release && [[ "$ID_LIKE" = "suse" ]] && echo yes || true) +LOOKS_LIKE_DEBIAN=$(source /etc/os-release && [[ "$ID" = "debian" || " $ID_LIKE " = *" debian "* ]] && echo yes || true) +LOOKS_LIKE_ARCH=$(source /etc/os-release && [[ "$ID" = "arch" || " $ID_LIKE " = *" arch "* ]] && echo yes || true) +LOOKS_LIKE_SUSE=$(source /etc/os-release && [[ " $ID_LIKE " = *" suse "* ]] && echo yes || true) KERNEL_VER=${KERNEL_VER-$(uname -r)} KERNEL_MODS="/lib/modules/$KERNEL_VER/" QEMU_TIMEOUT="${QEMU_TIMEOUT:-infinity}"
