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;


Reply via email to