Hello community, here is the log from the commit of package systemd for openSUSE:Factory checked in at 2019-07-26 12:06:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/systemd (Old) and /work/SRC/openSUSE:Factory/.systemd.new.4126 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd" Fri Jul 26 12:06:35 2019 rev:297 rq:718032 version:242 Changes: -------- --- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2019-06-02 15:15:08.486110509 +0200 +++ /work/SRC/openSUSE:Factory/.systemd.new.4126/systemd-mini.changes 2019-07-26 12:06:36.610885540 +0200 @@ -1,0 +2,72 @@ +Mon Jul 22 15:29:51 UTC 2019 - Franck Bui <[email protected]> + +- Import commit 0f9271c1336c5c9055e75389732a44745d796851 (changes from v242-stable) + + 07f0549ffe network: do not send ipv6 token to kernel + 9d34e79ae8 systemd-mount: don't check for non-normalized WHAT for network FS + 5af677680c core: set fs.file-max sysctl to LONG_MAX rather than ULONG_MAX (bsc#1142099) + 29dda7597a random-util: eat up bad RDRAND values seen on AMD CPUs + eb6c17c178 util-lib: fix a typo in rdrand + 829c20dc8e random-util: rename "err" to "success" + 5442366fbf man: rework the description of Aliases and .wants/.requires directories + ae71c6f634 docs: typo in arg name replace-irreversible -> replace-irreversibly + 09774a5fcb meson: make nologin path build time configurable + 69ffeeb0b1 man: add note about systemctl stop return value + 4cf14b5513 shared/conf-parser: say "key name" not "lvalue", add dot + 4481ca7f86 shared/conf-parser: emit a nicer warning for something like "======" + 46f3db894b shared/conf-parser: be nice and ignore lines without "=" + 7d928995f7 nspawn: fix memleak in argument parsing + 7727e6c0ae resolve: fix memleak + 7f32a81976 journal: properly read unaligned le64 integers + fa419099e5 activate: move array allocation to heap + 815a9fef2a systemctl: print non-elapsing timers as "n/a" not "(null)" + a4fc3c88f1 factory: include pam_keyinit.so in PAM factory configuration + a453d63315 factory: add comment to PAM file, explaining that the defaults are not useful + d9a5a70a59 factory: tighten PAM configuration + 5e2d3bf80b test: make sure colors don't confuse our test + 5fe3be1334 wait-online: change log level + c49b6959d5 systemctl: emit warning when we get an invalid process entry from pid1 and continue + 3c9f43eb03 systemctl: do not suggest passing --all if the user passed --state= + 5964d1474e man: offline-updates: make dependence on system-update.target explicit + a04dd26e03 alloc-util: drop _alloc_ decorator from memdup_suffix0() + 7c46a694ca man: add example for setting multiple properties at once + 1d72789271 man: CPUShares= is so 2015 + 45da304673 man: document that WakeSystem= requires privs + bed58a06e4 man: document that "systemd-analyze blame/critical-chain" is not useful to track down job latency + c5461f31b3 man: be more explicit that Type=oneshot services are not "active" after starting + 455ee07abe man: document that the supplementary groups list is initialized from User='s database entry + 5f0cb2616a alloc-util: drop _alloc_(2, 3) decorator from memdup_suffix0_multiply() + 7bc336794d generator: downgrade Requires= → Wants= of fsck from /usr mount unit + 66465c4381 systemctl: allow "cat" on units with bad settings + ca937b49da pid1: fix serialization/deserialization of commmands with spaces + 4bb3113023 growfs: call crypt_set_debug_level() correctly, skip if not needed + 0db716771e cryptsetup: enable libcryptsetup debug logging if we want it + c8b9b3956f cryptsetup: set libcryptsetup global log callback too + 679b3f6b7f basic/log: fix SYSTEMD_LOG_* parsing error messages + 8d6b5158aa units: add SystemCallErrorNumber=EPERM to systemd-portabled.service + 6681fcd445 network: fix the initial value of the counter for brvlan + 853ec5f458 man: Add some notes about variable $prefix for StateDirectory= + e6d23358e9 sd-netlink: fix inverted log message + 6feb862407 blockdev: filter out invalid block devices early + 9f7c0dbc75 blockdev-util: propagate actual error + 3f5355bcb9 man: document tmpfiles.d/ user/group resolvability needs + c15b92cd98 man: fix wrong udev property name + 9768a900d6 meson: drop duplicated source + 15194f22ed cryptsetup-generator: fix luks-* entry parsing from crypttab + c2475390b4 core: skip whitespace after "|" and "!" in the condition parser + fdc754aeb7 shared/condition: fix printing of ConditionNull= + 572385e135 test: add testcase for issue #12883 + 9aa1edddb0 conf-parser: fix continuation handling + 8fbc72f45f networkd: fix link_up() (#12505) + +------------------------------------------------------------------- +Mon Jul 1 15:14:58 UTC 2019 - Franck Bui <[email protected]> + +- State directory of systemd-timesync might become inaccessible after upgrading to v240+ (bsc#1137341) + + This happens for users who had previously used systemd-timesync with + DynamicUser=true, ie the ones who upgraded from a systemd version + between v235 and v239 to systemd v240 and later (v240 was the + version where DynamicUser was switched back to OFF). + +------------------------------------------------------------------- systemd.changes: same change Old: ---- systemd-v242+suse.77.geaa7b8b148.tar.xz New: ---- systemd-v242+suse.135.g0f9271c133.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ systemd-mini.spec ++++++ --- /var/tmp/diff_new_pack.nl8e1R/_old 2019-07-26 12:06:38.074885309 +0200 +++ /var/tmp/diff_new_pack.nl8e1R/_new 2019-07-26 12:06:38.078885308 +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.77.geaa7b8b148 +%define suse_version +suse.135.g0f9271c133 %bcond_with gnuefi %if 0%{?bootstrap} @@ -763,6 +763,17 @@ chmod 0644 $username done +# Due to the fact that DynamicUser= was turned ON during v235 and then +# switched back to off in v240, /var/lib/systemd/timesync might be a +# symlink pointing to /var/lib/private/systemd/timesync, which is +# inaccessible for systemd-timesync user as /var/lib/private is 0700 +# root:root, see https://github.com/systemd/systemd/issues/11329 for +# details. Note: only TW users might be affected by this bug. +if [ -L %{_localstatedir}/lib/systemd/timesync ]; then + rm %{_localstatedir}/lib/systemd/timesync + mv %{_localstatedir}/lib/private/systemd/timesync %{_localstatedir}/lib/systemd/timesync +fi + # This includes all hacks needed when upgrading from SysV. %{_prefix}/lib/systemd/scripts/upgrade-from-pre-210.sh || : ++++++ systemd.spec ++++++ --- /var/tmp/diff_new_pack.nl8e1R/_old 2019-07-26 12:06:38.102885304 +0200 +++ /var/tmp/diff_new_pack.nl8e1R/_new 2019-07-26 12:06:38.106885304 +0200 @@ -24,7 +24,7 @@ %define bootstrap 0 %define mini %nil %define min_kernel_version 4.5 -%define suse_version +suse.77.geaa7b8b148 +%define suse_version +suse.135.g0f9271c133 %bcond_with gnuefi %if 0%{?bootstrap} @@ -761,6 +761,17 @@ chmod 0644 $username done +# Due to the fact that DynamicUser= was turned ON during v235 and then +# switched back to off in v240, /var/lib/systemd/timesync might be a +# symlink pointing to /var/lib/private/systemd/timesync, which is +# inaccessible for systemd-timesync user as /var/lib/private is 0700 +# root:root, see https://github.com/systemd/systemd/issues/11329 for +# details. Note: only TW users might be affected by this bug. +if [ -L %{_localstatedir}/lib/systemd/timesync ]; then + rm %{_localstatedir}/lib/systemd/timesync + mv %{_localstatedir}/lib/private/systemd/timesync %{_localstatedir}/lib/systemd/timesync +fi + # This includes all hacks needed when upgrading from SysV. %{_prefix}/lib/systemd/scripts/upgrade-from-pre-210.sh || : ++++++ systemd-v242+suse.77.geaa7b8b148.tar.xz -> systemd-v242+suse.135.g0f9271c133.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/factory/etc/pam.d/system-auth new/systemd-v242+suse.135.g0f9271c133/factory/etc/pam.d/system-auth --- old/systemd-v242+suse.77.geaa7b8b148/factory/etc/pam.d/system-auth 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/factory/etc/pam.d/system-auth 2019-07-22 17:30:11.000000000 +0200 @@ -1,12 +1,19 @@ # This file is part of systemd. +# You really want to adjust this to your local distribution. If you use this +# unmodified you are not building systems safely and securely. + auth sufficient pam_unix.so nullok try_first_pass +auth required pam_deny.so account required pam_nologin.so account sufficient pam_unix.so +account required pam_permit.so password sufficient pam_unix.so nullok sha512 shadow try_first_pass try_authtok +password required pam_deny.so +-session optional pam_keyinit.so revoke -session optional pam_loginuid.so -session optional pam_systemd.so session sufficient pam_unix.so diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/nss-mymachines.xml new/systemd-v242+suse.135.g0f9271c133/man/nss-mymachines.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/nss-mymachines.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/nss-mymachines.xml 2019-07-22 17:30:11.000000000 +0200 @@ -98,8 +98,8 @@ rawhide container systemd-nspawn fedora 30 169.254.40.164 fe80::94aa:3aff:fe7b:d4b9 $ getent passwd vu-rawhide-0 vu-rawhide-81 -vu-rawhide-0:*:20119552:65534:vu-rawhide-0:/:/sbin/nologin -vu-rawhide-81:*:20119633:65534:vu-rawhide-81:/:/sbin/nologin +vu-rawhide-0:*:20119552:65534:vu-rawhide-0:/:/usr/sbin/nologin +vu-rawhide-81:*:20119633:65534:vu-rawhide-81:/:/usr/sbin/nologin $ getent group vg-rawhide-0 vg-rawhide-81 vg-rawhide-0:*:20119552: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/systemctl.xml new/systemd-v242+suse.135.g0f9271c133/man/systemctl.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/systemctl.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/systemctl.xml 2019-07-22 17:30:11.000000000 +0200 @@ -801,8 +801,14 @@ <term><command>stop <replaceable>PATTERN</replaceable>…</command></term> <listitem> - <para>Stop (deactivate) one or more units specified on the - command line.</para> + <para>Stop (deactivate) one or more units specified on the command line.</para> + + <para>This command will fail if the unit does exist or if stopping of the unit is prohibited (see + <varname>RefuseManualStop=</varname> in + <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>). + It will <emphasis>not</emphasis> fail if any of the commands configured to stop the unit + (<varname>ExecStop=</varname>, etc.) fail, because the manager will still forcibly terminate the + unit.</para> </listitem> </varlistentry> <varlistentry> @@ -1058,18 +1064,22 @@ next reboot. The syntax of the property assignment follows closely the syntax of assignments in unit files.</para> - <para>Example: <command>systemctl set-property foobar.service CPUShares=777</command></para> + <para>Example: <command>systemctl set-property foobar.service CPUWeight=200</command></para> <para>If the specified unit appears to be inactive, the changes will be only stored on disk as described previously hence they will be effective when the unit will be started.</para> - <para>Note that this command allows changing multiple - properties at the same time, which is preferable over - setting them individually. Like with unit file configuration - settings, assigning an empty list will reset the property. - </para> + <para>Note that this command allows changing multiple properties at the same time, which is + preferable over setting them individually.</para> + + <para>Example: <command>systemctl set-property foobar.service CPUWeight=200 MemoryMax=2G IPAccounting=yes</command></para> + + <para>Like with unit file configuration settings, assigning an empty setting usually resets a + property to its defaults.</para> + + <para>Example: <command>systemctl set-property avahi-daemon.service IPAddressDeny=</command></para> </listitem> </varlistentry> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/systemd-analyze.xml new/systemd-v242+suse.135.g0f9271c133/man/systemd-analyze.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/systemd-analyze.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/systemd-analyze.xml 2019-07-22 17:30:11.000000000 +0200 @@ -166,7 +166,13 @@ initialization of one service might be slow simply because it waits for the 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> + immediately, hence no measurement of the initialization delays can be done. Also note that this command + only shows the time units took for starting up, it does not show how long unit jobs spent in the + execution queue. In particular it shows the time units spent in <literal>activating</literal> state, + which is not defined for units such as device units that transition directly from + <literal>inactive</literal> to <literal>active</literal>. This command hence gives an impression of the + performance of program code, but cannot accurately reflect latency introduced by waiting for + hardware and similar events.</para> <example> <title><command>Show which units took the most time during boot</command></title> @@ -190,7 +196,12 @@ <replaceable>UNIT</replaceable>s or for the default target otherwise). The time after the unit is active or started is printed after the "@" character. The time the unit takes to start is printed after the "+" character. Note that the output might be misleading as the initialization of services might - depend on socket activation and because of the parallel execution of units.</para> + depend on socket activation and because of the parallel execution of units. Also, similar to the + <command>blame</command> command, this only takes into account the time units spent in + <literal>activating</literal> state, and hence does not cover units that never went through an + <literal>activating</literal> state (such as device units that transition directly from + <literal>inactive</literal> to <literal>active</literal>). Moreover it does not show information on + jobs (and in particular not jobs that timed out).</para> <example> <title><command>systemd-analyze time</command></title> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/systemd.exec.xml new/systemd-v242+suse.135.g0f9271c133/man/systemd.exec.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/systemd.exec.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/systemd.exec.xml 2019-07-22 17:30:11.000000000 +0200 @@ -226,7 +226,12 @@ specified user and group must have been created statically in the user database no later than the moment the service is started, for example using the <citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> facility, which - is applied at boot or package install time.</para></listitem> + is applied at boot or package install time.</para> + + <para>If the <varname>User=</varname> setting is used the supplementary group list is initialized + from the specified user's default group list, as defined in the system's user and group + database. Additional groups may be configured through the <varname>SupplementaryGroups=</varname> + setting (see below).</para></listitem> </varlistentry> <varlistentry> @@ -943,6 +948,15 @@ configuration or lifetime guarantees, please consider using <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para> + <para>The directories defined by these options are always created under the standard paths used by systemd + (<filename>/var</filename>, <filename>/run</filename>, <filename>/etc</filename>, …). If the service needs + directories in a different location, a different mechanism has to be used to create them.</para> + + <para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> provides + functionality that overlaps with these options. Using these options is recommended, because the lifetime of + the directories is tied directly to the lifetime of the unit, and it is not necessary to ensure that the + <filename>tmpfiles.d</filename> configuration is executed before the unit is started.</para> + <para>Example: if a system service unit has the following, <programlisting>RuntimeDirectory=foo/bar baz</programlisting> the service manager creates <filename>/run/foo</filename> (if it does not exist), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/systemd.link.xml new/systemd-v242+suse.135.g0f9271c133/man/systemd.link.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/systemd.link.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/systemd.link.xml 2019-07-22 17:30:11.000000000 +0200 @@ -103,7 +103,7 @@ <term><varname>Driver=</varname></term> <listitem> <para>A whitespace-separated list of shell-style globs matching the driver currently bound to the - device, as exposed by the udev property <varname>DRIVER</varname> of its parent device, or if that + device, as exposed by the udev property <varname>ID_NET_DRIVER</varname> of its parent device, or if that is not set, the driver as exposed by <command>ethtool -i</command> of the device itself.</para> </listitem> </varlistentry> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/systemd.network.xml new/systemd-v242+suse.135.g0f9271c133/man/systemd.network.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/systemd.network.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/systemd.network.xml 2019-07-22 17:30:11.000000000 +0200 @@ -113,7 +113,7 @@ <listitem> <para>A whitespace-separated list of shell-style globs matching the driver currently bound to the device, as - exposed by the udev property <literal>DRIVER</literal> + exposed by the udev property <literal>ID_NET_DRIVER</literal> of its parent device, or if that is not set the driver as exposed by <literal>ethtool -i</literal> of the device itself. If the list is prefixed with a "!", the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/systemd.offline-updates.xml new/systemd-v242+suse.135.g0f9271c133/man/systemd.offline-updates.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/systemd.offline-updates.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/systemd.offline-updates.xml 2019-07-22 17:30:11.000000000 +0200 @@ -133,7 +133,7 @@ <listitem> <para>The update service should declare <varname>DefaultDependencies=no</varname>, <varname>Requires=sysinit.target</varname>, <varname>After=sysinit.target</varname>, - <varname>After=system-update-pre.target</varname> + <varname>After=system-update-pre.target</varname>, <varname>Before=system-update.target</varname> and explicitly pull in any other services it requires.</para> </listitem> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/systemd.service.xml new/systemd-v242+suse.135.g0f9271c133/man/systemd.service.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/systemd.service.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/systemd.service.xml 2019-07-22 17:30:11.000000000 +0200 @@ -191,11 +191,17 @@ main process of the service. systemd will proceed with starting follow-up units as soon as the parent process exits.</para></listitem> - <listitem><para>Behavior of <option>oneshot</option> is similar to <option>simple</option>; however, the - service manager will consider the unit started after the main process exits. It will then start follow-up - units. <varname>RemainAfterExit=</varname> is particularly useful for this type of - service. <varname>Type=</varname><option>oneshot</option> is the implied default if neither - <varname>Type=</varname> nor <varname>ExecStart=</varname> are specified.</para></listitem> + <listitem><para>Behavior of <option>oneshot</option> is similar to <option>simple</option>; + however, the service manager will consider the unit up after the main process exits. It will then + start follow-up units. <varname>RemainAfterExit=</varname> is particularly useful for this type + of service. <varname>Type=</varname><option>oneshot</option> is the implied default if neither + <varname>Type=</varname> nor <varname>ExecStart=</varname> are specified. Note that if this + option is used without <varname>RemainAfterExit=</varname> the service will never enter + <literal>active</literal> unit state, but directly transition from <literal>activating</literal> + to <literal>deactivating</literal> or <literal>dead</literal> since no process is configured that + shall run continously. In particular this means that after a service of this type ran (and which + has <varname>RemainAfterExit=</varname> not set) it will not show up as started afterwards, but + as dead.</para></listitem> <listitem><para>Behavior of <option>dbus</option> is similar to <option>simple</option>; however, it is expected that the service acquires a name on the D-Bus bus, as configured by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/systemd.timer.xml new/systemd-v242+suse.135.g0f9271c133/man/systemd.timer.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/systemd.timer.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/systemd.timer.xml 2019-07-22 17:30:11.000000000 +0200 @@ -301,13 +301,14 @@ <varlistentry> <term><varname>WakeSystem=</varname></term> - <listitem><para>Takes a boolean argument. If true, an elapsing - timer will cause the system to resume from suspend, should it - be suspended and if the system supports this. Note that this - option will only make sure the system resumes on the - appropriate times, it will not take care of suspending it - again after any work that is to be done is finished. Defaults - to <varname>false</varname>.</para></listitem> + <listitem><para>Takes a boolean argument. If true, an elapsing timer will cause the system to resume + from suspend, should it be suspended and if the system supports this. Note that this option will only + make sure the system resumes on the appropriate times, it will not take care of suspending it again + after any work that is to be done is finished. Defaults to + <varname>false</varname>.</para> + + <para>Note that this functionality requires privileges and is thus generally only available in the + system service manager.</para></listitem> </varlistentry> <varlistentry> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/systemd.unit.xml new/systemd-v242+suse.135.g0f9271c133/man/systemd.unit.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/systemd.unit.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/systemd.unit.xml 2019-07-22 17:30:11.000000000 +0200 @@ -123,34 +123,40 @@ do not need the prefix. Applications may use this to include additional information in the unit files.</para> - <para>Units can be aliased (have an alternative name), by creating a symlink from the new name - to the existing name in one of the unit search paths. For example, - <filename>systemd-networkd.service</filename> has the alias - <filename>dbus-org.freedesktop.network1.service</filename>, created during installation as the - symlink <filename>/usr/lib/systemd/system/dbus-org.freedesktop.network1.service</filename>. In - addition, unit files may specify aliases through the <varname>Alias=</varname> directive in the - [Install] section; those aliases are only effective when the unit is enabled. When the unit is - enabled, symlinks will be created for those names, and removed when the unit is disabled. For - example, <filename>reboot.target</filename> specifies - <varname>Alias=ctrl-alt-del.target</varname>, so when enabled it will be invoked whenever - CTRL+ALT+DEL is pressed. Alias names may be used in commands like <command>enable</command>, - <command>disable</command>, <command>start</command>, <command>stop</command>, - <command>status</command>, …, and in unit dependency directives <varname>Wants=</varname>, - <varname>Requires=</varname>, <varname>Before=</varname>, <varname>After=</varname>, …, with the - limitation that aliases specified through <varname>Alias=</varname> are only effective when the - unit is enabled. Aliases cannot be used with the <command>preset</command> command.</para> + <para>Units can be aliased (have an alternative name), by creating a symlink from the new name to the + existing name in one of the unit search paths. For example, <filename>systemd-networkd.service</filename> + has the alias <filename>dbus-org.freedesktop.network1.service</filename>, created during installation as + a symlink, so when <command>systemd</command> is asked through D-Bus to load + <filename>dbus-org.freedesktop.network1.service</filename>, it'll load + <filename>systemd-networkd.service</filename>. Alias names may be used in commands like + <command>enable</command>, <command>disable</command>, <command>start</command>, <command>stop</command>, + <command>status</command>, and similar, and in all unit dependency directives, including + <varname>Wants=</varname>, <varname>Requires=</varname>, <varname>Before=</varname>, + <varname>After=</varname>. Aliases cannot be used with the <command>preset</command> command.</para> + + <para>Unit files may specify aliases through the <varname>Alias=</varname> directive in the [Install] + section. When the unit is enabled, symlinks will be created for those names, and removed when the unit is + disabled. For example, <filename>reboot.target</filename> specifies + <varname>Alias=ctrl-alt-del.target</varname>, so when enabled, the symlink + <filename>/etc/systemd/systemd/ctrl-alt-del.service</filename> pointing to the + <filename>reboot.target</filename> file will be created, and when + <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Del</keycap></keycombo> is invoked, + <command>systemd</command> will look for the <filename>ctrl-alt-del.service</filename> and execute + <filename>reboot.service</filename>. <command>systemd</command> does not look at the [Install] section at + all during normal operation, so any directives in that section only have an effect through the symlinks + created during enablement.</para> <para>Along with a unit file <filename>foo.service</filename>, the directory - <filename>foo.service.wants/</filename> may exist. All unit files symlinked from such a - directory are implicitly added as dependencies of type <varname>Wants=</varname> to the unit. - This is useful to hook units into the start-up of other units, without having to modify their - unit files. For details about the semantics of <varname>Wants=</varname>, see below. The - preferred way to create symlinks in the <filename>.wants/</filename> directory of a unit file is - with the <command>enable</command> command of the - <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> - tool which reads information from the [Install] section of unit files (see below). A similar - functionality exists for <varname>Requires=</varname> type dependencies as well, the directory - suffix is <filename>.requires/</filename> in this case.</para> + <filename>foo.service.wants/</filename> may exist. All unit files symlinked from such a directory are + implicitly added as dependencies of type <varname>Wants=</varname> to the unit. Similar functionality + exists for <varname>Requires=</varname> type dependencies as well, the directory suffix is + <filename>.requires/</filename> in this case. This functionality is useful to hook units into the + start-up of other units, without having to modify their unit files. For details about the semantics of + <varname>Wants=</varname>, see below. The preferred way to create symlinks in the + <filename>.wants/</filename> or <filename>.requires/</filename> directory of a unit file is by embedding + the dependency in [Install] section of the target unit, and creating the symlink in the file system with + the with the <command>enable</command> or <command>preset</command> commands of + <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para> <para>Along with a unit file <filename>foo.service</filename>, a "drop-in" directory <filename>foo.service.d/</filename> may exist. All files with the suffix <literal>.conf</literal> from this diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/systemd.xml new/systemd-v242+suse.135.g0f9271c133/man/systemd.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/systemd.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/systemd.xml 2019-07-22 17:30:11.000000000 +0200 @@ -582,7 +582,7 @@ <filename>exit.target</filename> unit when this signal is received. This is mostly equivalent to <command>systemctl --user start exit.target - --job-mode=replace-irreversible</command>.</para></listitem> + --job-mode=replace-irreversibly</command>.</para></listitem> </varlistentry> <varlistentry> @@ -590,7 +590,7 @@ <listitem><para>Upon receiving this signal the systemd system manager will start the <filename>ctrl-alt-del.target</filename> unit. This is mostly equivalent to - <command>systemctl start ctrl-alt-del.target --job-mode=replace-irreversible</command>. If + <command>systemctl start ctrl-alt-del.target --job-mode=replace-irreversibly</command>. If this signal is received more than 7 times per 2s, an immediate reboot is triggered. Note that pressing <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Del</keycap></keycombo> on the @@ -682,7 +682,7 @@ <listitem><para>Halts the machine, starts the <filename>halt.target</filename> unit. This is mostly equivalent to <command>systemctl start halt.target - --job-mode=replace-irreversible</command>.</para> + --job-mode=replace-irreversibly</command>.</para> </listitem> </varlistentry> @@ -692,7 +692,7 @@ <listitem><para>Powers off the machine, starts the <filename>poweroff.target</filename> unit. This is mostly equivalent to <command>systemctl start poweroff.target - --job-mode=replace-irreversible</command>.</para> + --job-mode=replace-irreversibly</command>.</para> </listitem> </varlistentry> @@ -702,7 +702,7 @@ <listitem><para>Reboots the machine, starts the <filename>reboot.target</filename> unit. This is mostly equivalent to <command>systemctl start reboot.target - --job-mode=replace-irreversible</command>.</para> + --job-mode=replace-irreversibly</command>.</para> </listitem> </varlistentry> @@ -712,7 +712,7 @@ <listitem><para>Reboots the machine via kexec, starts the <filename>kexec.target</filename> unit. This is mostly equivalent to <command>systemctl start kexec.target - --job-mode=replace-irreversible</command>.</para> + --job-mode=replace-irreversibly</command>.</para> </listitem> </varlistentry> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/sysusers.d.xml new/systemd-v242+suse.135.g0f9271c133/man/sysusers.d.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/sysusers.d.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/sysusers.d.xml 2019-07-22 17:30:11.000000000 +0200 @@ -206,12 +206,12 @@ <title>Shell</title> <para>The login shell of the user. If not specified, this will be set to - <filename>/sbin/nologin</filename>, except if the UID of the user is 0, in + <filename>/usr/sbin/nologin</filename>, except if the UID of the user is 0, in which case <filename>/bin/sh</filename> will be used.</para> <para>Only applies to lines of type <varname>u</varname> and should otherwise be left unset (or <literal>-</literal>). It is recommended to omit this, unless - a shell different <filename>/sbin/nologin</filename> must be used.</para> + a shell different <filename>/usr/sbin/nologin</filename> must be used.</para> </refsect2> </refsect1> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/man/tmpfiles.d.xml new/systemd-v242+suse.135.g0f9271c133/man/tmpfiles.d.xml --- old/systemd-v242+suse.77.geaa7b8b148/man/tmpfiles.d.xml 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/man/tmpfiles.d.xml 2019-07-22 17:30:11.000000000 +0200 @@ -495,6 +495,14 @@ lines, when omitted or when set to <literal>-</literal>, the file ownership will not be modified. These parameters are ignored for <varname>x</varname>, <varname>r</varname>, <varname>R</varname>, <varname>L</varname>, <varname>t</varname>, and <varname>a</varname> lines.</para> + + <para>This field should generally only reference system users/groups, i.e. users/groups that are + guaranteed to be resolvable during early boot. If this field references users/groups that only become + resolveable during later boot (i.e. after NIS, LDAP or a similar networked directory service become + available), execution of the operations declared by the line will likely fail. Also see <ulink + url="https://systemd.io/UIDS-GIDS.html#notes-on-resolvability-of-user-and-group-names">Notes on + Resolvability of User and Group Names</ulink> for more information on requirements on system user/group + definitions.</para> </refsect2> <refsect2> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/meson.build new/systemd-v242+suse.135.g0f9271c133/meson.build --- old/systemd-v242+suse.77.geaa7b8b148/meson.build 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/meson.build 2019-07-22 17:30:11.000000000 +0200 @@ -625,6 +625,7 @@ ['umount', '/usr/bin/umount', 'UMOUNT_PATH'], ['loadkeys', '/usr/bin/loadkeys', 'KBD_LOADKEYS'], ['setfont', '/usr/bin/setfont', 'KBD_SETFONT'], + ['nologin', '/usr/sbin/nologin', ], ] foreach prog : progs path = get_option(prog[0] + '-path') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/meson_options.txt new/systemd-v242+suse.135.g0f9271c133/meson_options.txt --- old/systemd-v242+suse.77.geaa7b8b148/meson_options.txt 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/meson_options.txt 2019-07-22 17:30:11.000000000 +0200 @@ -43,6 +43,7 @@ option('umount-path', type : 'string', description : 'path to umount') option('loadkeys-path', type : 'string', description : 'path to loadkeys') option('setfont-path', type : 'string', description : 'path to setfont') +option('nologin-path', type : 'string', description : 'path to nologin') option('debug-shell', type : 'string', value : '/bin/sh', description : 'path to debug shell binary') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/activate/activate.c new/systemd-v242+suse.135.g0f9271c133/src/activate/activate.c --- old/systemd-v242+suse.77.geaa7b8b148/src/activate/activate.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/activate/activate.c 2019-07-22 17:30:11.000000000 +0200 @@ -49,8 +49,7 @@ static int open_sockets(int *epoll_fd, bool accept) { char **address; - int n, fd, r; - int count = 0; + int n, fd, r, count = 0; n = sd_listen_fds(true); if (n < 0) @@ -69,13 +68,18 @@ /* Close logging and all other descriptors */ if (arg_listen) { - int except[3 + n]; + _cleanup_free_ int *except = NULL; + int i; - for (fd = 0; fd < SD_LISTEN_FDS_START + n; fd++) - except[fd] = fd; + except = new(int, n); + if (!except) + return log_oom(); + + for (i = 0; i < n; i++) + except[i] = SD_LISTEN_FDS_START + i; log_close(); - r = close_all_fds(except, 3 + n); + r = close_all_fds(except, n); if (r < 0) return log_error_errno(r, "Failed to close all file descriptors: %m"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/basic/alloc-util.h new/systemd-v242+suse.135.g0f9271c133/src/basic/alloc-util.h --- old/systemd-v242+suse.77.geaa7b8b148/src/basic/alloc-util.h 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/basic/alloc-util.h 2019-07-22 17:30:11.000000000 +0200 @@ -58,7 +58,7 @@ }) void* memdup(const void *p, size_t l) _alloc_(2); -void* memdup_suffix0(const void *p, size_t l) _alloc_(2); +void* memdup_suffix0(const void *p, size_t l); /* We can't use _alloc_() here, since we return a buffer one byte larger than the specified size */ #define memdupa(p, l) \ ({ \ @@ -112,7 +112,9 @@ return memdup(p, size * need); } -_alloc_(2, 3) static inline void *memdup_suffix0_multiply(const void *p, size_t size, size_t need) { +/* Note that we can't decorate this function with _alloc_() since the returned memory area is one byte larger + * than the product of its parameters. */ +static inline void *memdup_suffix0_multiply(const void *p, size_t size, size_t need) { if (size_multiply_overflow(size, need)) return NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/basic/blockdev-util.c new/systemd-v242+suse.135.g0f9271c133/src/basic/blockdev-util.c --- old/systemd-v242+suse.77.geaa7b8b148/src/basic/blockdev-util.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/basic/blockdev-util.c 2019-07-22 17:30:11.000000000 +0200 @@ -21,6 +21,9 @@ assert(ret); + if (major(d) == 0) + return -ENODEV; + /* If it has a queue this is good enough for us */ xsprintf_sys_block_path(p, "/queue", d); if (access(p, F_OK) >= 0) { @@ -31,7 +34,7 @@ /* If it is a partition find the originating device */ xsprintf_sys_block_path(p, "/partition", d); if (access(p, F_OK) < 0) - return -ENOENT; + return -errno; /* Get parent dev_t */ xsprintf_sys_block_path(p, "/../dev", d); @@ -46,7 +49,7 @@ /* Only return this if it is really good enough for us. */ xsprintf_sys_block_path(p, "/queue", devt); if (access(p, F_OK) < 0) - return -ENOENT; + return -errno; *ret = devt; return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/basic/log.c new/systemd-v242+suse.135.g0f9271c133/src/basic/log.c --- old/systemd-v242+suse.77.geaa7b8b148/src/basic/log.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/basic/log.c 2019-07-22 17:30:11.000000000 +0200 @@ -1109,11 +1109,11 @@ e = getenv("SYSTEMD_LOG_COLOR"); if (e && log_show_color_from_string(e) < 0) - log_warning("Failed to parse bool '%s'. Ignoring.", e); + log_warning("Failed to parse log color '%s'. Ignoring.", e); e = getenv("SYSTEMD_LOG_LOCATION"); if (e && log_show_location_from_string(e) < 0) - log_warning("Failed to parse bool '%s'. Ignoring.", e); + log_warning("Failed to parse log location '%s'. Ignoring.", e); } LogTarget log_get_target(void) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/basic/user-util.c new/systemd-v242+suse.135.g0f9271c133/src/basic/user-util.c --- old/systemd-v242+suse.77.geaa7b8b148/src/basic/user-util.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/basic/user-util.c 2019-07-22 17:30:11.000000000 +0200 @@ -146,7 +146,7 @@ *home = FLAGS_SET(flags, USER_CREDS_CLEAN) ? NULL : "/"; if (shell) - *shell = FLAGS_SET(flags, USER_CREDS_CLEAN) ? NULL : "/sbin/nologin"; + *shell = FLAGS_SET(flags, USER_CREDS_CLEAN) ? NULL : NOLOGIN; return 0; } @@ -536,7 +536,7 @@ } if (synthesize_nobody() && u == UID_NOBODY) { - s = strdup("/sbin/nologin"); + s = strdup(NOLOGIN); if (!s) return -ENOMEM; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/core/load-fragment.c new/systemd-v242+suse.135.g0f9271c133/src/core/load-fragment.c --- old/systemd-v242+suse.77.geaa7b8b148/src/core/load-fragment.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/core/load-fragment.c 2019-07-22 17:30:11.000000000 +0200 @@ -2509,13 +2509,13 @@ return 0; } - trigger = rvalue[0] == '|'; + trigger = *rvalue == '|'; if (trigger) - rvalue++; + rvalue += 1 + strspn(rvalue + 1, WHITESPACE); - negate = rvalue[0] == '!'; + negate = *rvalue == '!'; if (negate) - rvalue++; + rvalue += 1 + strspn(rvalue + 1, WHITESPACE); r = unit_full_printf(u, rvalue, &s); if (r < 0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/core/main.c new/systemd-v242+suse.135.g0f9271c133/src/core/main.c --- old/systemd-v242+suse.77.geaa7b8b148/src/core/main.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/core/main.c 2019-07-22 17:30:11.000000000 +0200 @@ -1201,9 +1201,9 @@ #endif #if BUMP_PROC_SYS_FS_FILE_MAX - /* I so wanted to use STRINGIFY(ULONG_MAX) here, but alas we can't as glibc/gcc define that as - * "(0x7fffffffffffffffL * 2UL + 1UL)". Seriously. 😢 */ - if (asprintf(&t, "%lu\n", ULONG_MAX) < 0) { + /* The maximum the kernel allows for this since 5.2 is LONG_MAX, use that. (Previously thing where + * different but the operation would fail silently.) */ + if (asprintf(&t, "%li\n", LONG_MAX) < 0) { log_oom(); return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/core/service.c new/systemd-v242+suse.135.g0f9271c133/src/core/service.c --- old/systemd-v242+suse.77.geaa7b8b148/src/core/service.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/core/service.c 2019-07-22 17:30:11.000000000 +0200 @@ -2507,14 +2507,16 @@ return log_oom(); n = strlen(e); - if (!GREEDY_REALLOC(args, allocated, length + 1 + n + 1)) + if (!GREEDY_REALLOC(args, allocated, length + 2 + n + 2)) return log_oom(); if (length > 0) args[length++] = ' '; + args[length++] = '"'; memcpy(args + length, e, n); length += n; + args[length++] = '"'; } if (!GREEDY_REALLOC(args, allocated, length + 1)) @@ -2659,7 +2661,7 @@ for (;;) { _cleanup_free_ char *arg = NULL; - r = extract_first_word(&value, &arg, NULL, EXTRACT_CUNESCAPE); + r = extract_first_word(&value, &arg, NULL, EXTRACT_CUNESCAPE | EXTRACT_QUOTES); if (r < 0) return r; if (r == 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/cryptsetup/cryptsetup-generator.c new/systemd-v242+suse.135.g0f9271c133/src/cryptsetup/cryptsetup-generator.c --- old/systemd-v242+suse.77.geaa7b8b148/src/cryptsetup/cryptsetup-generator.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/cryptsetup/cryptsetup-generator.c 2019-07-22 17:30:11.000000000 +0200 @@ -517,9 +517,11 @@ continue; } - uuid = STARTSWITH_SET(device, "UUID=", "luks-"); + uuid = startswith(device, "UUID="); if (!uuid) uuid = path_startswith(device, "/dev/disk/by-uuid/"); + if (!uuid) + uuid = startswith(name, "luks-"); if (uuid) d = hashmap_get(arg_disks, uuid); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/cryptsetup/cryptsetup.c new/systemd-v242+suse.135.g0f9271c133/src/cryptsetup/cryptsetup.c --- old/systemd-v242+suse.77.geaa7b8b148/src/cryptsetup/cryptsetup.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/cryptsetup/cryptsetup.c 2019-07-22 17:30:11.000000000 +0200 @@ -647,6 +647,11 @@ log_setup_service(); + crypt_set_log_callback(NULL, cryptsetup_log_glue, NULL); + if (DEBUG_LOGGING) + /* libcryptsetup won't even consider debug messages by default */ + crypt_set_debug_level(CRYPT_DEBUG_ALL); + umask(0022); if (streq(argv[1], "attach")) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/journal/compress.c new/systemd-v242+suse.135.g0f9271c133/src/journal/compress.c --- old/systemd-v242+suse.77.geaa7b8b148/src/journal/compress.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/journal/compress.c 2019-07-22 17:30:11.000000000 +0200 @@ -26,6 +26,7 @@ #include "sparse-endian.h" #include "string-table.h" #include "string-util.h" +#include "unaligned.h" #include "util.h" #if HAVE_LZ4 @@ -101,7 +102,7 @@ if (r <= 0) return -ENOBUFS; - *(le64_t*) dst = htole64(src_size); + unaligned_write_le64(dst, src_size); *dst_size = r + 8; return 0; @@ -187,8 +188,8 @@ if (src_size <= 8) return -EBADMSG; - size = le64toh( *(le64_t*)src ); - if (size < 0 || (unsigned) size != le64toh(*(le64_t*)src)) + size = unaligned_read_le64(src); + if (size < 0 || (unsigned) size != unaligned_read_le64(src)) return -EFBIG; if ((size_t) size > *dst_alloc_size) { out = realloc(*dst, size); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/libsystemd/sd-netlink/netlink-socket.c new/systemd-v242+suse.135.g0f9271c133/src/libsystemd/sd-netlink/netlink-socket.c --- old/systemd-v242+suse.77.geaa7b8b148/src/libsystemd/sd-netlink/netlink-socket.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/libsystemd/sd-netlink/netlink-socket.c 2019-07-22 17:30:11.000000000 +0200 @@ -392,7 +392,7 @@ /* check that the size matches the message type */ if (new_msg->nlmsg_len < NLMSG_LENGTH(type_get_size(nl_type))) { - log_debug("sd-netlink: message larger than expected, dropping"); + log_debug("sd-netlink: message is shorter than expected, dropping"); continue; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/mount/mount-tool.c new/systemd-v242+suse.135.g0f9271c133/src/mount/mount-tool.c --- old/systemd-v242+suse.77.geaa7b8b148/src/mount/mount-tool.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/mount/mount-tool.c 2019-07-22 17:30:11.000000000 +0200 @@ -1542,7 +1542,8 @@ if (arg_action == ACTION_UMOUNT) return action_umount(bus, argc, argv); - if (!path_is_normalized(arg_mount_what)) { + if ((!arg_mount_type || !fstype_is_network(arg_mount_type)) + && !path_is_normalized(arg_mount_what)) { log_error("Path contains non-normalized components: %s", arg_mount_what); return -EINVAL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/network/meson.build new/systemd-v242+suse.135.g0f9271c133/src/network/meson.build --- old/systemd-v242+suse.77.geaa7b8b148/src/network/meson.build 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/network/meson.build 2019-07-22 17:30:11.000000000 +0200 @@ -179,7 +179,6 @@ []], [['src/network/test-network-tables.c', - 'src/network/test-network-tables.c', test_tables_h], [libnetworkd_core, libudev_static, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/network/networkd-brvlan.c new/systemd-v242+suse.135.g0f9271c133/src/network/networkd-brvlan.c --- old/systemd-v242+suse.77.geaa7b8b148/src/network/networkd-brvlan.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/network/networkd-brvlan.c 2019-07-22 17:30:11.000000000 +0200 @@ -54,7 +54,7 @@ assert(br_vid_bitmap); assert(br_untagged_bitmap); - i = cnt = -1; + cnt = 0; begin = end = UINT16_MAX; for (k = 0; k < BRIDGE_VLAN_BITMAP_LEN; k++) { @@ -130,9 +130,8 @@ i = j; } while (!done); } - if (!cnt) - return -EINVAL; + assert(cnt > 0); return cnt; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/network/networkd-link.c new/systemd-v242+suse.135.g0f9271c133/src/network/networkd-link.c --- old/systemd-v242+suse.77.geaa7b8b148/src/network/networkd-link.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/network/networkd-link.c 2019-07-22 17:30:11.000000000 +0200 @@ -1940,6 +1940,9 @@ assert(link->manager); assert(link->manager->rtnl); + if (!socket_ipv6_is_supported()) + return 0; + log_link_debug(link, "Setting address genmode for link"); r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_SETLINK, link->ifindex); @@ -2033,31 +2036,6 @@ return log_link_error_errno(link, r, "Could not set MAC address: %m"); } - if (link_ipv6_enabled(link)) { - r = sd_netlink_message_open_container(req, IFLA_AF_SPEC); - if (r < 0) - return log_link_error_errno(link, r, "Could not open IFLA_AF_SPEC container: %m"); - - /* if the kernel lacks ipv6 support setting IFF_UP fails if any ipv6 options are passed */ - r = sd_netlink_message_open_container(req, AF_INET6); - if (r < 0) - return log_link_error_errno(link, r, "Could not open AF_INET6 container: %m"); - - if (!in_addr_is_null(AF_INET6, &link->network->ipv6_token)) { - r = sd_netlink_message_append_in6_addr(req, IFLA_INET6_TOKEN, &link->network->ipv6_token.in6); - if (r < 0) - return log_link_error_errno(link, r, "Could not append IFLA_INET6_TOKEN: %m"); - } - - r = sd_netlink_message_close_container(req); - if (r < 0) - return log_link_error_errno(link, r, "Could not close AF_INET6 container: %m"); - - r = sd_netlink_message_close_container(req); - if (r < 0) - return log_link_error_errno(link, r, "Could not close IFLA_AF_SPEC container: %m"); - } - r = netlink_call_async(link->manager->rtnl, NULL, req, link_up_handler, link_netlink_destroy_callback, link); if (r < 0) @@ -3193,11 +3171,9 @@ if (r < 0) return r; - if (socket_ipv6_is_supported()) { - r = link_configure_addrgen_mode(link); - if (r < 0) - return r; - } + r = link_configure_addrgen_mode(link); + if (r < 0) + return r; return link_configure_after_setting_mtu(link); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/network/wait-online/manager.c new/systemd-v242+suse.135.g0f9271c133/src/network/wait-online/manager.c --- old/systemd-v242+suse.77.geaa7b8b148/src/network/wait-online/manager.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/network/wait-online/manager.c 2019-07-22 17:30:11.000000000 +0200 @@ -98,7 +98,7 @@ * and at least one link to gain a carrier */ HASHMAP_FOREACH(l, m->links, i) { if (manager_ignore_link(m, l)) { - log_link_info(l, "link is ignored"); + log_link_debug(l, "link is ignored"); continue; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/nspawn/nspawn.c new/systemd-v242+suse.135.g0f9271c133/src/nspawn/nspawn.c --- old/systemd-v242+suse.77.geaa7b8b148/src/nspawn/nspawn.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/nspawn/nspawn.c 2019-07-22 17:30:11.000000000 +0200 @@ -1283,7 +1283,7 @@ case ARG_RLIMIT: { const char *eq; - char *name; + _cleanup_free_ char *name = NULL; int rl; if (streq(optarg, "help")) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/nss-mymachines/nss-mymachines.c new/systemd-v242+suse.135.g0f9271c133/src/nss-mymachines/nss-mymachines.c --- old/systemd-v242+suse.77.geaa7b8b148/src/nss-mymachines/nss-mymachines.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/nss-mymachines/nss-mymachines.c 2019-07-22 17:30:11.000000000 +0200 @@ -503,7 +503,7 @@ pwd->pw_gecos = buffer; pwd->pw_passwd = (char*) "*"; /* locked */ pwd->pw_dir = (char*) "/"; - pwd->pw_shell = (char*) "/sbin/nologin"; + pwd->pw_shell = (char*) NOLOGIN; return NSS_STATUS_SUCCESS; @@ -583,7 +583,7 @@ pwd->pw_gecos = buffer; pwd->pw_passwd = (char*) "*"; /* locked */ pwd->pw_dir = (char*) "/"; - pwd->pw_shell = (char*) "/sbin/nologin"; + pwd->pw_shell = (char*) NOLOGIN; return NSS_STATUS_SUCCESS; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/nss-systemd/nss-systemd.c new/systemd-v242+suse.135.g0f9271c133/src/nss-systemd/nss-systemd.c --- old/systemd-v242+suse.77.geaa7b8b148/src/nss-systemd/nss-systemd.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/nss-systemd/nss-systemd.c 2019-07-22 17:30:11.000000000 +0200 @@ -24,7 +24,7 @@ #define DYNAMIC_USER_GECOS "Dynamic User" #define DYNAMIC_USER_PASSWD "*" /* locked */ #define DYNAMIC_USER_DIR "/" -#define DYNAMIC_USER_SHELL "/sbin/nologin" +#define DYNAMIC_USER_SHELL NOLOGIN static const struct passwd root_passwd = { .pw_name = (char*) "root", @@ -43,7 +43,7 @@ .pw_gid = GID_NOBODY, .pw_gecos = (char*) "User Nobody", .pw_dir = (char*) "/", - .pw_shell = (char*) "/sbin/nologin", + .pw_shell = (char*) NOLOGIN, }; static const struct group root_group = { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/partition/growfs.c new/systemd-v242+suse.135.g0f9271c133/src/partition/growfs.c --- old/systemd-v242+suse.77.geaa7b8b148/src/partition/growfs.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/partition/growfs.c 2019-07-22 17:30:11.000000000 +0200 @@ -128,7 +128,8 @@ #if HAVE_LIBCRYPTSETUP crypt_set_log_callback(NULL, cryptsetup_log_glue, NULL); - crypt_set_debug_level(1); + if (DEBUG_LOGGING) + crypt_set_debug_level(CRYPT_DEBUG_ALL); #endif r = get_block_device_harder(mountpath, &devno); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/resolve/resolved-manager.c new/systemd-v242+suse.135.g0f9271c133/src/resolve/resolved-manager.c --- old/systemd-v242+suse.77.geaa7b8b148/src/resolve/resolved-manager.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/resolve/resolved-manager.c 2019-07-22 17:30:11.000000000 +0200 @@ -15,6 +15,7 @@ #include "af-list.h" #include "alloc-util.h" +#include "bus-util.h" #include "dirent-util.h" #include "dns-domain.h" #include "fd-util.h" @@ -693,6 +694,8 @@ manager_mdns_stop(m); manager_dns_stub_stop(m); + bus_verify_polkit_async_registry_free(m->polkit_registry); + sd_bus_flush_close_unref(m->bus); sd_event_source_unref(m->sigusr1_event_source); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/shared/bus-unit-procs.c new/systemd-v242+suse.135.g0f9271c133/src/shared/bus-unit-procs.c --- old/systemd-v242+suse.77.geaa7b8b148/src/shared/bus-unit-procs.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/shared/bus-unit-procs.c 2019-07-22 17:30:11.000000000 +0200 @@ -387,8 +387,11 @@ break; r = add_process(cgroups, path, pid, name); - if (r < 0) + if (r == -ENOMEM) goto finish; + if (r < 0) + log_warning_errno(r, "Invalid process description in GetUnitProcesses reply: cgroup=\"%s\" pid="PID_FMT" command=\"%s\", ignoring: %m", + path, pid, name); } r = sd_bus_message_exit_container(reply); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/shared/condition.c new/systemd-v242+suse.135.g0f9271c133/src/shared/condition.c --- old/systemd-v242+suse.77.geaa7b8b148/src/shared/condition.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/shared/condition.c 2019-07-22 17:30:11.000000000 +0200 @@ -746,20 +746,23 @@ r = condition_test(c); if (logger) { + const char *p = c->type == CONDITION_NULL ? "true" : c->parameter; + assert(p); + if (r < 0) logger(userdata, LOG_WARNING, r, __FILE__, __LINE__, __func__, "Couldn't determine result for %s=%s%s%s, assuming failed: %m", to_string(c->type), c->trigger ? "|" : "", c->negate ? "!" : "", - c->parameter); + p); else logger(userdata, LOG_DEBUG, 0, __FILE__, __LINE__, __func__, "%s=%s%s%s %s.", to_string(c->type), c->trigger ? "|" : "", c->negate ? "!" : "", - c->parameter, + p, condition_result_to_string(c->result)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/shared/conf-parser.c new/systemd-v242+suse.135.g0f9271c133/src/shared/conf-parser.c --- old/systemd-v242+suse.77.geaa7b8b148/src/shared/conf-parser.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/shared/conf-parser.c 2019-07-22 17:30:11.000000000 +0200 @@ -138,7 +138,8 @@ /* Warn about unknown non-extension fields. */ if (!(flags & CONFIG_PARSE_RELAXED) && !startswith(lvalue, "X-")) - log_syntax(unit, LOG_WARNING, filename, line, 0, "Unknown lvalue '%s' in section '%s', ignoring", lvalue, section); + log_syntax(unit, LOG_WARNING, filename, line, 0, + "Unknown key name '%s' in section '%s', ignoring.", lvalue, section); return 0; } @@ -239,7 +240,6 @@ } if (sections && !*section) { - if (!(flags & CONFIG_PARSE_RELAXED) && !*section_ignored) log_syntax(unit, LOG_WARNING, filename, line, 0, "Assignment outside of section. Ignoring."); @@ -247,10 +247,12 @@ } e = strchr(l, '='); - if (!e) { - log_syntax(unit, LOG_WARNING, filename, line, 0, "Missing '='."); - return -EINVAL; - } + if (!e) + return log_syntax(unit, LOG_WARNING, filename, line, 0, + "Missing '=', ignoring line."); + if (e == l) + return log_syntax(unit, LOG_WARNING, filename, line, 0, + "Missing key name before '=', ignoring line."); *e = 0; e++; @@ -322,7 +324,8 @@ return r; } - if (strchr(COMMENTS, *skip_leading_chars(buf, WHITESPACE))) + l = skip_leading_chars(buf, WHITESPACE); + if (*l != '\0' && strchr(COMMENTS, *l)) continue; l = buf; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/shared/generator.c new/systemd-v242+suse.135.g0f9271c133/src/shared/generator.c --- old/systemd-v242+suse.77.geaa7b8b148/src/shared/generator.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/shared/generator.c 2019-07-22 17:30:11.000000000 +0200 @@ -166,7 +166,7 @@ } else { _cleanup_free_ char *_fsck = NULL; - const char *fsck; + const char *fsck, *dep; if (in_initrd() && path_equal(where, "/sysroot")) { r = write_fsck_sysroot_service(dir, what); @@ -174,7 +174,15 @@ return r; fsck = SPECIAL_FSCK_ROOT_SERVICE; + dep = "Requires"; } else { + /* When this is /usr, then let's add a Wants= dependency, otherwise a Requires= + * dependency. Why? We can't possibly unmount /usr during shutdown, but if we have a + * Requires= from /usr onto a [email protected] unit and that unit is shut down, then + * we'd have to unmount /usr too. */ + + dep = !in_initrd() && path_equal(where, "/usr") ? "Wants" : "Requires"; + r = unit_name_from_path_instance("systemd-fsck", what, ".service", &_fsck); if (r < 0) return log_error_errno(r, "Failed to create fsck service name: %m"); @@ -183,9 +191,9 @@ } fprintf(f, - "Requires=%1$s\n" - "After=%1$s\n", - fsck); + "%1$s=%2$s\n" + "After=%2$s\n", + dep, fsck); } return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/systemctl/systemctl.c new/systemd-v242+suse.135.g0f9271c133/src/systemctl/systemctl.c --- old/systemd-v242+suse.77.geaa7b8b148/src/systemctl/systemctl.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/systemctl/systemctl.c 2019-07-22 17:30:11.000000000 +0200 @@ -552,14 +552,16 @@ off = ansi_normal(); } - if (arg_all) + if (arg_all || strv_contains(arg_states, "inactive")) printf("%s%u loaded units listed.%s\n" "To show all installed unit files use 'systemctl list-unit-files'.\n", on, n_shown, off); - else + else if (!arg_states) printf("%s%u loaded units listed.%s Pass --all to see loaded but inactive units, too.\n" "To show all installed unit files use 'systemctl list-unit-files'.\n", on, n_shown, off); + else + printf("%u loaded units listed.\n", n_shown); } return 0; @@ -2498,13 +2500,14 @@ int r; /** - * Finds where the unit is defined on disk. Returns 0 if the unit is not found. Returns 1 if it is found, and - * sets: + * Finds where the unit is defined on disk. Returns 0 if the unit is not found. Returns 1 if it is + * found, and sets: * - the path to the unit in *ret_frament_path, if it exists on disk, - * - and a strv of existing drop-ins in *ret_dropin_paths, if the arg is not NULL and any dropins were found. + * - and a strv of existing drop-ins in *ret_dropin_paths, if the arg is not NULL and any dropins + * were found. * - * Returns -ERFKILL if the unit is masked, and -EKEYREJECTED if the unit file could not be loaded for some - * reason (the latter only applies if we are going through the service manager) + * Returns -ERFKILL if the unit is masked, and -EKEYREJECTED if the unit file could not be loaded for + * some reason (the latter only applies if we are going through the service manager). */ assert(unit_name); @@ -2539,7 +2542,7 @@ r = 0; goto not_found; } - if (!streq(load_state, "loaded")) + if (!STR_IN_SET(load_state, "loaded", "bad-setting")) return -EKEYREJECTED; r = sd_bus_get_property_string( @@ -4565,7 +4568,8 @@ show_cgroup_and_extra(SYSTEMD_CGROUP_CONTROLLER, i->control_group, prefix, c, extra, k, get_output_flags()); } else if (r < 0) - log_warning_errno(r, "Failed to dump process list for '%s', ignoring: %s", i->id, bus_error_message(&error, r)); + log_warning_errno(r, "Failed to dump process list for '%s', ignoring: %s", + i->id, bus_error_message(&error, r)); } if (i->id && arg_transport == BUS_TRANSPORT_LOCAL) @@ -5039,11 +5043,13 @@ return bus_log_parse_error(r); while ((r = sd_bus_message_read(m, "(stt)", &base, &v, &next_elapse)) > 0) { - char timespan1[FORMAT_TIMESPAN_MAX], timespan2[FORMAT_TIMESPAN_MAX]; + char timespan1[FORMAT_TIMESPAN_MAX] = "n/a", timespan2[FORMAT_TIMESPAN_MAX] = "n/a"; + + (void) format_timespan(timespan1, sizeof timespan1, v, 0); + (void) format_timespan(timespan2, sizeof timespan2, next_elapse, 0); - bus_print_property_valuef(name, expected_value, value, "{ %s=%s ; next_elapse=%s }", base, - format_timespan(timespan1, sizeof(timespan1), v, 0), - format_timespan(timespan2, sizeof(timespan2), next_elapse, 0)); + bus_print_property_valuef(name, expected_value, value, + "{ %s=%s ; next_elapse=%s }", base, timespan1, timespan2); } if (r < 0) return bus_log_parse_error(r); @@ -5063,10 +5069,11 @@ return bus_log_parse_error(r); while ((r = sd_bus_message_read(m, "(sst)", &base, &spec, &next_elapse)) > 0) { - char timestamp[FORMAT_TIMESTAMP_MAX]; + char timestamp[FORMAT_TIMESTAMP_MAX] = "n/a"; - bus_print_property_valuef(name, expected_value, value, "{ %s=%s ; next_elapse=%s }", base, spec, - format_timestamp(timestamp, sizeof(timestamp), next_elapse)); + (void) format_timestamp(timestamp, sizeof(timestamp), next_elapse); + bus_print_property_valuef(name, expected_value, value, + "{ %s=%s ; next_elapse=%s }", base, spec, timestamp); } if (r < 0) return bus_log_parse_error(r); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/sysusers/sysusers.c new/systemd-v242+suse.135.g0f9271c133/src/sysusers/sysusers.c --- old/systemd-v242+suse.77.geaa7b8b148/src/sysusers/sysusers.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/sysusers/sysusers.c 2019-07-22 17:30:11.000000000 +0200 @@ -361,7 +361,7 @@ } static const char* default_shell(uid_t uid) { - return uid == 0 ? "/bin/sh" : "/sbin/nologin"; + return uid == 0 ? "/bin/sh" : NOLOGIN; } static int write_temporary_passwd(const char *passwd_path, FILE **tmpfile, char **tmpfile_path) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/test/test-conf-parser.c new/systemd-v242+suse.135.g0f9271c133/src/test/test-conf-parser.c --- old/systemd-v242+suse.77.geaa7b8b148/src/test/test-conf-parser.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/test/test-conf-parser.c 2019-07-22 17:30:11.000000000 +0200 @@ -231,6 +231,13 @@ "setting1=1\n", /* repeated settings */ "[Section]\n" + "[Section]\n" + "setting1=1\n" + "setting1=2\\\n" + " \n" /* empty line breaks continuation */ + "setting1=1\n", /* repeated settings */ + + "[Section]\n" "setting1=1\\\n" /* normal continuation */ "2\\\n" "3\n", @@ -330,32 +337,32 @@ CONFIG_PARSE_WARN, NULL); switch (i) { - case 0 ... 3: + case 0 ... 4: assert_se(r == 0); assert_se(streq(setting1, "1")); break; - case 4 ... 9: + case 5 ... 10: assert_se(r == 0); assert_se(streq(setting1, "1 2 3")); break; - case 10: + case 11: assert_se(r == 0); assert_se(streq(setting1, "1\\\\ \\\\2")); break; - case 11: + case 12: assert_se(r == 0); assert_se(streq(setting1, x1000("ABCD"))); break; - case 12 ... 13: + case 13 ... 14: assert_se(r == 0); assert_se(streq(setting1, x1000("ABCD") " foobar")); break; - case 14 ... 15: + case 15 ... 16: assert_se(r == -ENOBUFS); assert_se(setting1 == NULL); break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/test/test-format-table.c new/systemd-v242+suse.135.g0f9271c133/src/test/test-format-table.c --- old/systemd-v242+suse.77.geaa7b8b148/src/test/test-format-table.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/test/test-format-table.c 2019-07-22 17:30:11.000000000 +0200 @@ -34,6 +34,7 @@ _cleanup_(table_unrefp) Table *t = NULL; _cleanup_free_ char *formatted = NULL; + assert_se(setenv("SYSTEMD_COLORS", "0", 1) >= 0); assert_se(setenv("COLUMNS", "40", 1) >= 0); assert_se(t = table_new("one", "two", "three")); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/src/test/test-user-util.c new/systemd-v242+suse.135.g0f9271c133/src/test/test-user-util.c --- old/systemd-v242+suse.77.geaa7b8b148/src/test/test-user-util.c 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/src/test/test-user-util.c 2019-07-22 17:30:11.000000000 +0200 @@ -205,8 +205,8 @@ test_get_user_creds_one("root", "root", 0, 0, "/root", "/bin/sh"); test_get_user_creds_one("0", "root", 0, 0, "/root", "/bin/sh"); - test_get_user_creds_one(NOBODY_USER_NAME, NOBODY_USER_NAME, UID_NOBODY, GID_NOBODY, "/", "/sbin/nologin"); - test_get_user_creds_one("65534", NOBODY_USER_NAME, UID_NOBODY, GID_NOBODY, "/", "/sbin/nologin"); + test_get_user_creds_one(NOBODY_USER_NAME, NOBODY_USER_NAME, UID_NOBODY, GID_NOBODY, "/", NOLOGIN); + test_get_user_creds_one("65534", NOBODY_USER_NAME, UID_NOBODY, GID_NOBODY, "/", NOLOGIN); test_get_group_creds_one("root", "root", 0); test_get_group_creds_one("0", "root", 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-1.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-1.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-1.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-1.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1 +1 @@ -u1:x:222:222::/:/sbin/nologin +u1:x:222:222::/:NOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-10.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-10.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-10.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-10.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1,2 +1,2 @@ -u1:x:300:300::/:/sbin/nologin -u2:x:SYSTEM_UID_MAX:SYSTEM_UID_MAX::/:/sbin/nologin +u1:x:300:300::/:NOLOGIN +u2:x:SYSTEM_UID_MAX:SYSTEM_UID_MAX::/:NOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-11.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-11.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-11.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-11.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -2,5 +2,5 @@ systemd-network:x:492:492:Systemd Network Management:/:/usr/sbin/nologin systemd-resolve:x:491:491:Systemd Resolver:/:/usr/sbin/nologin systemd-timesync:x:493:493:Systemd Time Synchronization:/:/usr/sbin/nologin -u1:x:222:222::/:/sbin/nologin +u1:x:222:222::/:NOLOGIN +:::::: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-12.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-12.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-12.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-12.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1,2 +1,2 @@ root:x:0:0:root:/root:/bin/bash -systemd-coredump:x:1:1:systemd Core Dumper:/:/sbin/nologin +systemd-coredump:x:1:1:systemd Core Dumper:/:NOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-2.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-2.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-2.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-2.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1,4 +1,4 @@ -u1:x:SYSTEM_UID_MAX:SYSTEM_UID_MAX:some gecos:/random/dir:/sbin/nologin +u1:x:SYSTEM_UID_MAX:SYSTEM_UID_MAX:some gecos:/random/dir:NOLOGIN u2:x:777:777:some gecos:/random/dir:/bin/zsh u3:x:778:778::/random/dir2:/bin/bash u4:x:779:779::/:/bin/csh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-3.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-3.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-3.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-3.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1,4 +1,4 @@ -foo:x:301:301::/:/sbin/nologin -aaa:x:303:302::/:/sbin/nologin -bbb:x:304:302::/:/sbin/nologin -ccc:x:305:305::/:/sbin/nologin +foo:x:301:301::/:NOLOGIN +aaa:x:303:302::/:NOLOGIN +bbb:x:304:302::/:NOLOGIN +ccc:x:305:305::/:NOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-4.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-4.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-4.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-4.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1,2 +1,2 @@ -yyy:x:311:310::/:/sbin/nologin -xxx:x:312:310::/:/sbin/nologin +yyy:x:311:310::/:NOLOGIN +xxx:x:312:310::/:NOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-5.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-5.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-5.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-5.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1,18 +1,18 @@ root:x:0:0::/root:/bin/sh -daemon:x:1:1::/usr/sbin:/sbin/nologin -bin:x:2:2::/bin:/sbin/nologin -sys:x:3:3::/dev:/sbin/nologin -sync:x:4:65534::/bin:/sbin/nologin -games:x:5:60::/usr/games:/sbin/nologin -man:x:6:12::/var/cache/man:/sbin/nologin -lp:x:7:7::/var/spool/lpd:/sbin/nologin -mail:x:8:8::/var/mail:/sbin/nologin -news:x:9:9::/var/spool/news:/sbin/nologin -uucp:x:10:10::/var/spool/uucp:/sbin/nologin -proxy:x:13:13::/bin:/sbin/nologin -www-data:x:33:33::/var/www:/sbin/nologin -backup:x:34:34::/var/backups:/sbin/nologin -list:x:38:38::/var/list:/sbin/nologin -irc:x:39:39::/var/run/ircd:/sbin/nologin -gnats:x:41:41::/var/lib/gnats:/sbin/nologin -nobody:x:65534:65534::/nonexistent:/sbin/nologin +daemon:x:1:1::/usr/sbin:NOLOGIN +bin:x:2:2::/bin:NOLOGIN +sys:x:3:3::/dev:NOLOGIN +sync:x:4:65534::/bin:NOLOGIN +games:x:5:60::/usr/games:NOLOGIN +man:x:6:12::/var/cache/man:NOLOGIN +lp:x:7:7::/var/spool/lpd:NOLOGIN +mail:x:8:8::/var/mail:NOLOGIN +news:x:9:9::/var/spool/news:NOLOGIN +uucp:x:10:10::/var/spool/uucp:NOLOGIN +proxy:x:13:13::/bin:NOLOGIN +www-data:x:33:33::/var/www:NOLOGIN +backup:x:34:34::/var/backups:NOLOGIN +list:x:38:38::/var/list:NOLOGIN +irc:x:39:39::/var/run/ircd:NOLOGIN +gnats:x:41:41::/var/lib/gnats:NOLOGIN +nobody:x:65534:65534::/nonexistent:NOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-6.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-6.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-6.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-6.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1 +1 @@ -u1:x:SYSTEM_UID_MAX:SYSTEM_UID_MAX::/:/sbin/nologin +u1:x:SYSTEM_UID_MAX:SYSTEM_UID_MAX::/:NOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-7.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-7.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-7.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-7.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1,5 +1,5 @@ -bin:x:1:1::/:/sbin/nologin -daemon:x:2:2::/:/sbin/nologin -mail:x:8:12::/var/spool/mail:/sbin/nologin -ftp:x:14:11::/srv/ftp:/sbin/nologin -http:x:33:33::/srv/http:/sbin/nologin +bin:x:1:1::/:NOLOGIN +daemon:x:2:2::/:NOLOGIN +mail:x:8:12::/var/spool/mail:NOLOGIN +ftp:x:14:11::/srv/ftp:NOLOGIN +http:x:33:33::/srv/http:NOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-8.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-8.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-8.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-8.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1 +1 @@ -username:x:SYSTEM_UID_MAX:300::/:/sbin/nologin +username:x:SYSTEM_UID_MAX:300::/:NOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-9.expected-passwd new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-9.expected-passwd --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test-9.expected-passwd 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test-9.expected-passwd 2019-07-22 17:30:11.000000000 +0200 @@ -1,2 +1,2 @@ -user1:x:300:300::/:/sbin/nologin -user2:x:SYSTEM_UID_MAX:300::/:/sbin/nologin +user1:x:300:300::/:NOLOGIN +user2:x:SYSTEM_UID_MAX:300::/:NOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test.sh new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test.sh --- old/systemd-v242+suse.77.geaa7b8b148/test/TEST-21-SYSUSERS/test.sh 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/test/TEST-21-SYSUSERS/test.sh 2019-07-22 17:30:11.000000000 +0200 @@ -25,7 +25,14 @@ # get this value from config.h, however the autopkgtest fails with # it SYSTEM_UID_MAX=$(awk 'BEGIN { uid=999 } /^\s*SYS_UID_MAX\s+/ { uid=$2 } END { print uid }' /etc/login.defs) - sed "s/SYSTEM_UID_MAX/${SYSTEM_UID_MAX}/g" "$in" + + # we can't rely on config.h to get the nologin path, as autopkgtest + # uses pre-compiled binaries, so extract it from the systemd-sysusers + # binary which we are about to execute + NOLOGIN=$(strings $(type -p systemd-sysusers) | grep nologin) + + sed -e "s/SYSTEM_UID_MAX/${SYSTEM_UID_MAX}/g" \ + -e "s#NOLOGIN#${NOLOGIN}#g" "$in" } compare() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v242+suse.77.geaa7b8b148/units/systemd-portabled.service.in new/systemd-v242+suse.135.g0f9271c133/units/systemd-portabled.service.in --- old/systemd-v242+suse.77.geaa7b8b148/units/systemd-portabled.service.in 2019-05-28 11:58:13.000000000 +0200 +++ new/systemd-v242+suse.135.g0f9271c133/units/systemd-portabled.service.in 2019-07-22 17:30:11.000000000 +0200 @@ -22,6 +22,7 @@ RestrictRealtime=yes RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6 SystemCallFilter=@system-service @mount +SystemCallErrorNumber=EPERM SystemCallArchitectures=native LockPersonality=yes IPAddressDeny=any
