Hello community, here is the log from the commit of package systemd for openSUSE:Factory checked in at 2018-01-30 15:38:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/systemd (Old) and /work/SRC/openSUSE:Factory/.systemd.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd" Tue Jan 30 15:38:43 2018 rev:269 rq:570497 version:234 Changes: -------- --- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2018-01-17 21:43:55.951585177 +0100 +++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes 2018-01-30 15:38:49.710221886 +0100 @@ -1,0 +2,36 @@ +Mon Jan 29 09:52:50 UTC 2018 - f...@suse.com + +- Do not optionally remove /usr/lib/systemd/system/tmp.mnt anymore (bsc#1071224) + + This was done to make sure that tmpfs wouldn't be used for /tmp by + defaut in case the dir layout created by the installer did not + create a customized tmp.mount. + + But it had the bad side effect to break "rpm -V systemd" and updates + of systemd via delta-RPMs. + + Now instead of removing tmp.mount unit file, we mask it (still only + if no other tmp.mount would override the default one). It's the + official way to disable tmpfs on /tmp after all. + + Since we cannot rely on the presence of fstab during package + installations, we introduced a service which is run once on the + first boot and which figures out if tmpfs would be used. If so it + masks the unit. + + We also handle the upgrade path and make sure to preserve admin's + settings (if any). + + Another advantage of this is that we will only need to remove the + introduced service the day when tmpfs will be the default for SUSE + distros. + +------------------------------------------------------------------- +Fri Jan 26 14:40:38 UTC 2018 - f...@suse.com + +- Import commit 83067827cc891ddc90def200fdbe725917ec9fa3 + + 3d60486f7 core/timer: Prevent timer looping when unit cannot start (bsc#1068588) + 460bd0cd6 Revert "handle SYSTEMCTL_OPTIONS environment variable" (fate#323393) + +------------------------------------------------------------------- systemd.changes: same change New: ---- suse-disable-tmpfs-for-tmp.service ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ systemd-mini.spec ++++++ --- /var/tmp/diff_new_pack.TQ1F25/_old 2018-01-30 15:38:51.754126461 +0100 +++ /var/tmp/diff_new_pack.TQ1F25/_new 2018-01-30 15:38:51.754126461 +0100 @@ -148,6 +148,7 @@ Source11: after-local.service Source12: systemd-sysv-install Source14: kbd-model-map.legacy +Source15: suse-disable-tmpfs-for-tmp.service Source100: scripts-systemd-fix-machines-btrfs-subvol.sh Source101: scripts-systemd-upgrade-from-pre-210.sh @@ -513,11 +514,10 @@ # customized for openSUSE distros. install -m0644 %{S:2} %{buildroot}%{_sysconfdir}/pam.d/ -# We keep a copy of tmp.mount because it may be removed if not used -# (see %post): we want to be sure tmpfs won't be used for /tmp by -# default on Suse distros. -rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount -cp %{buildroot}/%{_prefix}/lib/systemd/system/tmp.mount %{buildroot}/%{_datadir}/systemd/ +# Install the service which will disable/mask tmpfs for /tmp (if +# needed) on first boot. +install -m0644 -D %{S:15} %{buildroot}/%{_prefix}/lib/systemd/system/suse-disable-tmpfs-for-tmp.service +ln -s ../suse-disable-tmpfs-for-tmp.service %{buildroot}/%{_prefix}/lib/systemd/system/sysinit.target.wants/ # don't enable wall ask password service, it spams every console (bnc#747783) rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path @@ -648,12 +648,19 @@ %find_lang systemd +# Build of installation images uses a hard coded list of packages with +# a %pre that needs to be run during the build. systemd is one of them +# so keep the section even if it's empty. %pre -# Build of installation images uses an hard coded list of some -# packages with a %pre that needs to be run during the -# build. Unfortunately, systemd in one of them. To make thing simpler -# we use a %pre section even if it is not needed. -exit 0 +if [ $1 -gt 1 ] ; then + # Check if tmp.mount has been restored by either the admin or + # was added at package installation. In both cases do nothing + # and prevent the service to be executed during %post for the + # former case. + if test -e %{_unitdir}/tmp.mount; then + touch %{_unitdir}/.disable-tmpfs-for-tmp~done + fi +fi %post # Make /etc/machine-id an empty file during package installation. On @@ -695,16 +702,6 @@ %endif fi >/dev/null -# Keep tmp.mount if it's been enabled explicitly by the user otherwise -# make sure it wont be activated since it's the default for Suse -# distros. This unit can be pulled (implicitely) in various ways -# (private /tmp, etc..) and it's required by the basic.target -# explicitly since v220. -case $(systemctl is-enabled tmp.mount 2>/dev/null) in -enabled) ;; -*) rm -f %{_prefix}/lib/systemd/system/tmp.mount -esac - # v228 wrongly set world writable suid root permissions on timestamp # files used by permanent timers. Fix the timestamps that might have # been created by the affected versions of systemd (bsc#1020601). @@ -720,23 +717,30 @@ # This includes all hacks needed when upgrading from SysV. %{_prefix}/lib/systemd/scripts/upgrade-from-pre-210.sh || : -# Convert /var/lib/machines subvolume to make it suitable for -# rollbacks, if needed. See bsc#992573. The installer has been fixed -# to create it at installation time. -# -# The convertion might only be problematic for openSUSE distros -# (TW/Factory) where previous versions had already created the -# subvolume at the wrong place (via tmpfiles for example) and user -# started to populate and use it. In this case we'll let the user fix -# it manually. -# -# For SLE12 this subvolume was only introduced during the upgrade from -# v210 to v228 when we added this workaround. Note that the subvolume -# is still created at the wrong place due to the call to -# tmpfiles_create macro previously however it's empty so there -# shouldn't be any issues. if [ $1 -gt 1 ]; then + # Convert /var/lib/machines subvolume to make it suitable for + # rollbacks, if needed. See bsc#992573. The installer has been fixed + # to create it at installation time. + # + # The convertion might only be problematic for openSUSE distros + # (TW/Factory) where previous versions had already created the + # subvolume at the wrong place (via tmpfiles for example) and user + # started to populate and use it. In this case we'll let the user fix + # it manually. + # + # For SLE12 this subvolume was only introduced during the upgrade from + # v210 to v228 when we added this workaround. Note that the subvolume + # is still created at the wrong place due to the call to + # tmpfiles_create macro previously however it's empty so there + # shouldn't be any issues. %{_prefix}/lib/systemd/scripts/fix-machines-btrfs-subvol.sh || : + + # Should we mask tmpfs ? If tmp.mount was already installed in + # /usr/lib then this is a nop as sysadmin restored the unit + # most likely to use tmpfs (see %pre) otherwise mask the mount + # unit unless it's overriden by a tmp.mount unit installed + # either by sysadmin or fstab-generator. + systemctl start suse-disable-tmpfs-for-tmp.service || : fi %postun ++++++ systemd.spec ++++++ --- /var/tmp/diff_new_pack.TQ1F25/_old 2018-01-30 15:38:51.786124967 +0100 +++ /var/tmp/diff_new_pack.TQ1F25/_new 2018-01-30 15:38:51.790124780 +0100 @@ -146,6 +146,7 @@ Source11: after-local.service Source12: systemd-sysv-install Source14: kbd-model-map.legacy +Source15: suse-disable-tmpfs-for-tmp.service Source100: scripts-systemd-fix-machines-btrfs-subvol.sh Source101: scripts-systemd-upgrade-from-pre-210.sh @@ -511,11 +512,10 @@ # customized for openSUSE distros. install -m0644 %{S:2} %{buildroot}%{_sysconfdir}/pam.d/ -# We keep a copy of tmp.mount because it may be removed if not used -# (see %post): we want to be sure tmpfs won't be used for /tmp by -# default on Suse distros. -rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount -cp %{buildroot}/%{_prefix}/lib/systemd/system/tmp.mount %{buildroot}/%{_datadir}/systemd/ +# Install the service which will disable/mask tmpfs for /tmp (if +# needed) on first boot. +install -m0644 -D %{S:15} %{buildroot}/%{_prefix}/lib/systemd/system/suse-disable-tmpfs-for-tmp.service +ln -s ../suse-disable-tmpfs-for-tmp.service %{buildroot}/%{_prefix}/lib/systemd/system/sysinit.target.wants/ # don't enable wall ask password service, it spams every console (bnc#747783) rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path @@ -646,12 +646,19 @@ %find_lang systemd +# Build of installation images uses a hard coded list of packages with +# a %pre that needs to be run during the build. systemd is one of them +# so keep the section even if it's empty. %pre -# Build of installation images uses an hard coded list of some -# packages with a %pre that needs to be run during the -# build. Unfortunately, systemd in one of them. To make thing simpler -# we use a %pre section even if it is not needed. -exit 0 +if [ $1 -gt 1 ] ; then + # Check if tmp.mount has been restored by either the admin or + # was added at package installation. In both cases do nothing + # and prevent the service to be executed during %post for the + # former case. + if test -e %{_unitdir}/tmp.mount; then + touch %{_unitdir}/.disable-tmpfs-for-tmp~done + fi +fi %post # Make /etc/machine-id an empty file during package installation. On @@ -693,16 +700,6 @@ %endif fi >/dev/null -# Keep tmp.mount if it's been enabled explicitly by the user otherwise -# make sure it wont be activated since it's the default for Suse -# distros. This unit can be pulled (implicitely) in various ways -# (private /tmp, etc..) and it's required by the basic.target -# explicitly since v220. -case $(systemctl is-enabled tmp.mount 2>/dev/null) in -enabled) ;; -*) rm -f %{_prefix}/lib/systemd/system/tmp.mount -esac - # v228 wrongly set world writable suid root permissions on timestamp # files used by permanent timers. Fix the timestamps that might have # been created by the affected versions of systemd (bsc#1020601). @@ -718,23 +715,30 @@ # This includes all hacks needed when upgrading from SysV. %{_prefix}/lib/systemd/scripts/upgrade-from-pre-210.sh || : -# Convert /var/lib/machines subvolume to make it suitable for -# rollbacks, if needed. See bsc#992573. The installer has been fixed -# to create it at installation time. -# -# The convertion might only be problematic for openSUSE distros -# (TW/Factory) where previous versions had already created the -# subvolume at the wrong place (via tmpfiles for example) and user -# started to populate and use it. In this case we'll let the user fix -# it manually. -# -# For SLE12 this subvolume was only introduced during the upgrade from -# v210 to v228 when we added this workaround. Note that the subvolume -# is still created at the wrong place due to the call to -# tmpfiles_create macro previously however it's empty so there -# shouldn't be any issues. if [ $1 -gt 1 ]; then + # Convert /var/lib/machines subvolume to make it suitable for + # rollbacks, if needed. See bsc#992573. The installer has been fixed + # to create it at installation time. + # + # The convertion might only be problematic for openSUSE distros + # (TW/Factory) where previous versions had already created the + # subvolume at the wrong place (via tmpfiles for example) and user + # started to populate and use it. In this case we'll let the user fix + # it manually. + # + # For SLE12 this subvolume was only introduced during the upgrade from + # v210 to v228 when we added this workaround. Note that the subvolume + # is still created at the wrong place due to the call to + # tmpfiles_create macro previously however it's empty so there + # shouldn't be any issues. %{_prefix}/lib/systemd/scripts/fix-machines-btrfs-subvol.sh || : + + # Should we mask tmpfs ? If tmp.mount was already installed in + # /usr/lib then this is a nop as sysadmin restored the unit + # most likely to use tmpfs (see %pre) otherwise mask the mount + # unit unless it's overriden by a tmp.mount unit installed + # either by sysadmin or fstab-generator. + systemctl start suse-disable-tmpfs-for-tmp.service || : fi %postun ++++++ suse-disable-tmpfs-for-tmp.service ++++++ # # By default, /tmp doesn't use tmpfs on SUSE distros. # # This service is either run automatically during the firstboot (i.e. # only once) of the system. # # Or it can also be (manually) started during systemd update (%post) # only and only if tmp.mount wasn't already installed by the admin in # /usr/lib during %pre. In this case tmp.mount should also masked. # # In any cases this service will never mask tmp.mount if the service # has been created by either the admin or fstab-generator. # [Unit] Description=Mask tmp.mount by default on SUSE systems DefaultDependencies=no Conflicts=shutdown.target After=systemd-remount-fs.service Before=tmp.mount ConditionPathIsReadWrite=/etc ConditionPathExists=!/usr/lib/systemd/system/.disable-tmpfs-for-tmp~done [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/sh -c ' \ case "$(systemctl show -pFragmentPath tmp.mount)" in \ FragmentPath=/usr/lib/systemd/system/tmp.mount) \ systemctl mask --now tmp.mount ;; \ FragmentPath=/usr/share/systemd/tmp.mount) \ ln -sf /usr/lib/systemd/system/tmp.mount /etc/systemd/system/ ;; \ esac' ExecStartPost=/usr/bin/touch /usr/lib/systemd/system/.disable-tmpfs-for-tmp~done ++++++ systemd-234.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/core/timer.c new/systemd-234/src/core/timer.c --- old/systemd-234/src/core/timer.c 2018-01-16 11:22:50.000000000 +0100 +++ new/systemd-234/src/core/timer.c 2018-01-26 15:40:25.000000000 +0100 @@ -419,6 +419,7 @@ if (base <= 0) continue; + base = MAX(base, t->last_trigger.monotonic); break; @@ -431,6 +432,7 @@ if (base <= 0) continue; + base = MAX(base, t->last_trigger.monotonic); break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-234/src/systemctl/systemctl.c new/systemd-234/src/systemctl/systemctl.c --- old/systemd-234/src/systemctl/systemctl.c 2018-01-16 11:22:50.000000000 +0100 +++ new/systemd-234/src/systemctl/systemctl.c 2018-01-26 15:40:25.000000000 +0100 @@ -8546,31 +8546,6 @@ * ellipsized. */ original_stdout_is_tty = isatty(STDOUT_FILENO); - if (secure_getenv("SYSTEMCTL_OPTIONS") && - (!program_invocation_short_name || - (program_invocation_short_name && strstr(program_invocation_short_name, "systemctl")))) { - char **parsed_systemctl_options; - - strv_split_extract(&parsed_systemctl_options, getenv("SYSTEMCTL_OPTIONS"), - WHITESPACE, EXTRACT_QUOTES); - - if (*parsed_systemctl_options && **parsed_systemctl_options) { - char **k,**a; - char **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); - new_argv[0] = strdup(argv[0]); - for (k = new_argv+1, a = parsed_systemctl_options; *a; k++, a++) { - *k = strdup(*a); - } - for (a = argv+1; *a; k++, a++) { - *k = strdup(*a); - } - *k = NULL; - argv = new_argv; - argc = strv_length(new_argv); - strv_free (parsed_systemctl_options); - } - } - r = parse_argv(argc, argv); if (r <= 0) goto finish;