Hello community,

here is the log from the commit of package systemd for openSUSE:Factory checked 
in at 2014-07-23 22:06:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd (Old)
 and      /work/SRC/openSUSE:Factory/.systemd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "systemd"

Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes     2014-07-18 
06:41:05.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes        
2014-07-23 22:06:20.000000000 +0200
@@ -1,0 +2,52 @@
+Wed Jul 23 09:19:52 UTC 2014 - rmila...@suse.com
+
+- Enable better checks in write_net_rules to skip adding duplicated
+  entries in the generate rules (bnc#888178).
+  Add 1053-better-checks-in-write_net_rules.patch 
+
+-------------------------------------------------------------------
+Wed Jul 23 09:13:43 UTC 2014 - wer...@suse.de
+
+- Change patch set-and-use-default-logconsole.patch to avoid to
+  write security/authorization (private) messages to console 
+
+-------------------------------------------------------------------
+Tue Jul 22 11:50:44 UTC 2014 - wer...@suse.de
+
+- Add patch set-and-use-default-logconsole.patch to use and set
+  the default logging console for both journald and kernel messages
+
+-------------------------------------------------------------------
+Mon Jul 21 13:22:35 UTC 2014 - wer...@suse.de
+
+- Add upstream patches
+  0001-bash-completion-p-option-for-journalctl.patch
+  0002-journalctl-man-allow-only-between-terms.patch
+  0003-systemd-use-pager-for-test-and-help.patch
+
+-------------------------------------------------------------------
+Mon Jul 21 12:49:00 UTC 2014 - wer...@suse.de
+
+- Use verify scripts and add permission files for systemd logger
+- Avoid useless warning about static systemd unit files
+- Make pam file a config file 
+- Remove non-break-space from this changelog
+
+-------------------------------------------------------------------
+Mon Jul 21 11:09:44 UTC 2014 - wer...@suse.de
+
+- Add upstream patches
+  0001-compress-fix-return-value.patch
+  0002-Be-more-verbose-when-bind-or-listen-fails.patch
+  0003-Add-quotes-to-warning-message.patch
+  0004-systemd-return-the-first-error-from-manager_startup.patch
+
+-------------------------------------------------------------------
+Mon Jul 21 10:42:10 UTC 2014 - wer...@suse.de
+
+- Replace patch 0001-fix-only-discover-Xen-domU.patch with
+  upstream patch 0001-detect-virt-Fix-Xen-domU-discovery.patch
+- Replace patch 0001-detect-s390-virt.patch with upstream
+  patch 0001-systemd-detect-virt-detect-s390-virtualization.patch
+
+-------------------------------------------------------------------
@@ -2507,2 +2559,2 @@
-    that generates static device nodes earlier during boot, and
-    can run in conjunction with udev.
+    that generates static device nodes earlier during boot, and
+    can run in conjunction with udev.
@@ -2510 +2562 @@
-    top-level cgroup directory in the name=systemd hierarchy.
+    top-level cgroup directory in the name=systemd hierarchy.
@@ -2513 +2565 @@
-    switches.
+    switches.
@@ -2515 +2567 @@
-    command line switch. If a configured key file is missing, it
+    line switch. If a configured key file is missing, it
systemd.changes: same change

Old:
----
  0001-detect-s390-virt.patch
  0001-fix-only-discover-Xen-domU.patch

New:
----
  0001-bash-completion-p-option-for-journalctl.patch
  0001-compress-fix-return-value.patch
  0001-detect-virt-Fix-Xen-domU-discovery.patch
  0001-systemd-detect-virt-detect-s390-virtualization.patch
  0002-Be-more-verbose-when-bind-or-listen-fails.patch
  0002-journalctl-man-allow-only-between-terms.patch
  0003-Add-quotes-to-warning-message.patch
  0003-systemd-use-pager-for-test-and-help.patch
  0004-systemd-return-the-first-error-from-manager_startup.patch
  1053-better-checks-in-write_net_rules.patch
  set-and-use-default-logconsole.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ systemd-mini.spec ++++++
--- /var/tmp/diff_new_pack.sNsJba/_old  2014-07-23 22:06:24.000000000 +0200
+++ /var/tmp/diff_new_pack.sNsJba/_new  2014-07-23 22:06:24.000000000 +0200
@@ -32,6 +32,7 @@
 %define has_efi 0
 %endif
 %bcond_with udevsettle
+%bcond_with     permission
 
 Name:           systemd-mini
 Url:            http://www.freedesktop.org/wiki/Software/systemd
@@ -577,8 +578,8 @@
 Patch278:       0001-core-fix-invalid-free-in-killall.patch
 # PATCH-FIX-UPSTREAM added at 2014/06/17
 Patch279:       0003-install-fix-invalid-free-in-unit_file_mask.patch
-# PATCH-FIX-SUSE detect virtualization layers on S390 (bnc#880438)
-Patch280:       0001-detect-s390-virt.patch
+# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438)
+Patch280:       0001-systemd-detect-virt-detect-s390-virtualization.patch
 # PATCH-FIX-UPSTREAM 
0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch 
arvidj...@gmail.com -- Ensure legacy services are started after network is 
available
 Patch281:       0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch
 # PATCH-FIX-UPSTREAM added at 2014/06/24
@@ -705,8 +706,24 @@
 Patch342:       0002-man-document-yearly-and-annually-in-systemd.time-7.patch
 # PATCH-FIX-UPSTREAM added at 2014/07/17
 Patch343:       0003-core-nicer-message-when-inotify-watches-are-exhauste.patch
-# PATCH-FIX-SUSE Fix patch 
0004-systemd-detect-virt-only-discover-Xen-domU.patch
-Patch344:       0001-fix-only-discover-Xen-domU.patch
+# PATCH-FIX-UPSTREAM Fix patch 
0004-systemd-detect-virt-only-discover-Xen-domU.patch
+Patch344:       0001-detect-virt-Fix-Xen-domU-discovery.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch345:       0001-compress-fix-return-value.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch346:       0002-Be-more-verbose-when-bind-or-listen-fails.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch347:       0003-Add-quotes-to-warning-message.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch348:       0004-systemd-return-the-first-error-from-manager_startup.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch349:       0001-bash-completion-p-option-for-journalctl.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch350:       0002-journalctl-man-allow-only-between-terms.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch351:       0003-systemd-use-pager-for-test-and-help.patch
+# PATCH-FIX-SUSE
+Patch352:       set-and-use-default-logconsole.patch
 
 # UDEV PATCHES
 # ============
@@ -818,6 +835,8 @@
 Patch1051:      1051-check-if-NAME-has-a-value.patch
 # PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
 Patch1052:      1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
+# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178)
+Patch1053:      1053-better-checks-in-write_net_rules.patch
 
 %description
 Systemd is a system and service manager, compatible with SysV and LSB
@@ -992,6 +1011,7 @@
 Requires(post): /usr/bin/getent 
 Requires(post): /usr/bin/setfacl 
 Requires(post): /usr/bin/systemctl
+Requires(post): permissions
 Conflicts:      otherproviders(syslog)
 
 %description logger
@@ -1255,7 +1275,7 @@
 %patch277 -p0
 %patch278 -p0
 %patch279 -p0
-%patch280 -p1
+%patch280 -p0
 %patch281 -p1
 %patch282 -p0
 %patch283 -p0
@@ -1319,7 +1339,15 @@
 %patch341 -p0
 %patch342 -p0
 %patch343 -p0
-%patch344 -p1
+%patch344 -p0
+%patch345 -p0
+%patch346 -p0
+%patch347 -p0
+%patch348 -p0
+%patch349 -p0
+%patch350 -p0
+%patch351 -p0
+%patch352 -p0
 
 # udev patches
 %patch1001 -p1
@@ -1381,6 +1409,7 @@
 %patch1050 -p1
 %patch1051 -p1
 %patch1052 -p0
+%patch1053 -p1
 
 # ensure generate files are removed
 rm -f units/emergency.service
@@ -1408,6 +1437,14 @@
 done
 %endif
 
+#
+# In combination with Patch352 set-and-use-default-logconsole.patch
+# Ensure that journald log on tty10
+#
+%ifarch %ix86 x86_64 x32
+sed -ri 's:#TTYPath=/dev/console:#TTYPath=/dev/tty10:' 
src/journal/journald.conf
+%endif
+
 %build
 cflags ()
 {
@@ -1751,6 +1788,17 @@
   ln -sf ../systemd-update-utmp-runlevel.service 
%{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/
 done
 
+# Add permission files for logger
+%if %{with permission}
+mkdir -p %{buildroot}%{_sysconfdir}/permissions.d
+cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger <<-'EOF'
+       %{_localstatedir}/log/journal/  root:systemd-journal    2755
+EOF
+cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger.paranoid <<-'EOF'
+       %{_localstatedir}/log/journal/  root:systemd-journal    2755
+EOF
+%endif
+
 %find_lang systemd
 
 %pre
@@ -1922,11 +1970,19 @@
 
 %postun -n libgudev-1_0-0 -p /sbin/ldconfig
 
+%if %{with permission}
+%verifyscript logger
+%verify_permissions -e %{_localstatedir}/log/journal
+%endif
+
 %pre logger
 getent group systemd-journal >/dev/null || groupadd -r systemd-journal || :
 exit 0
 
 %post logger
+%if %{with permission}
+%set_permissions %{_localstatedir}/log/journal
+%endif
 getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx 
%{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
 getent group adm   && setfacl -Rnm g:adm:rx,d:g:adm:rx     
%{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
 if [ "$1" -eq 1 ]; then
@@ -1960,7 +2016,7 @@
 
 %endif
 
-%files
+%files -f systemd.lang
 %defattr(-,root,root)
 /bin/systemd
 /bin/systemd-ask-password
@@ -2064,7 +2120,7 @@
 %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator
 %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator
 /%{_lib}/security/pam_systemd.so
-/etc/pam.d/systemd-user
+%config /etc/pam.d/systemd-user
 
 %dir %{_libexecdir}/modules-load.d
 %dir %{_sysconfdir}/modules-load.d
@@ -2132,7 +2188,6 @@
 %exclude %{_datadir}/systemd/gatewayd
 %endif
 %{_datadir}/systemd
-%{_datadir}/locale/*/LC_MESSAGES
 
 %if ! 0%{?bootstrap}
 # Packaged in sysvinit subpackage
@@ -2329,6 +2384,10 @@
 
 %files logger
 %defattr(-,root,root)
+%if %{with permission}
+%config %{_sysconfdir}/permissions.d/systemd-logger
+%config %{_sysconfdir}/permissions.d/systemd-logger.paranoid
+%endif
 %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal
 %{_localstatedir}/log/README
 /etc/init.d/systemd-journald

++++++ systemd.spec ++++++
--- /var/tmp/diff_new_pack.sNsJba/_old  2014-07-23 22:06:24.000000000 +0200
+++ /var/tmp/diff_new_pack.sNsJba/_new  2014-07-23 22:06:24.000000000 +0200
@@ -30,6 +30,7 @@
 %define has_efi 0
 %endif
 %bcond_with udevsettle
+%bcond_with     permission
 
 Name:           systemd
 Url:            http://www.freedesktop.org/wiki/Software/systemd
@@ -572,8 +573,8 @@
 Patch278:       0001-core-fix-invalid-free-in-killall.patch
 # PATCH-FIX-UPSTREAM added at 2014/06/17
 Patch279:       0003-install-fix-invalid-free-in-unit_file_mask.patch
-# PATCH-FIX-SUSE detect virtualization layers on S390 (bnc#880438)
-Patch280:       0001-detect-s390-virt.patch
+# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438)
+Patch280:       0001-systemd-detect-virt-detect-s390-virtualization.patch
 # PATCH-FIX-UPSTREAM 
0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch 
arvidj...@gmail.com -- Ensure legacy services are started after network is 
available
 Patch281:       0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch
 # PATCH-FIX-UPSTREAM added at 2014/06/24
@@ -700,8 +701,24 @@
 Patch342:       0002-man-document-yearly-and-annually-in-systemd.time-7.patch
 # PATCH-FIX-UPSTREAM added at 2014/07/17
 Patch343:       0003-core-nicer-message-when-inotify-watches-are-exhauste.patch
-# PATCH-FIX-SUSE Fix patch 
0004-systemd-detect-virt-only-discover-Xen-domU.patch
-Patch344:       0001-fix-only-discover-Xen-domU.patch
+# PATCH-FIX-UPSTREAM Fix patch 
0004-systemd-detect-virt-only-discover-Xen-domU.patch
+Patch344:       0001-detect-virt-Fix-Xen-domU-discovery.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch345:       0001-compress-fix-return-value.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch346:       0002-Be-more-verbose-when-bind-or-listen-fails.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch347:       0003-Add-quotes-to-warning-message.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch348:       0004-systemd-return-the-first-error-from-manager_startup.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch349:       0001-bash-completion-p-option-for-journalctl.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch350:       0002-journalctl-man-allow-only-between-terms.patch
+# PATCH-FIX-UPSTREAM added at 2014/07/21
+Patch351:       0003-systemd-use-pager-for-test-and-help.patch
+# PATCH-FIX-SUSE
+Patch352:       set-and-use-default-logconsole.patch
 
 # UDEV PATCHES
 # ============
@@ -813,6 +830,8 @@
 Patch1051:      1051-check-if-NAME-has-a-value.patch
 # PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
 Patch1052:      1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
+# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178)
+Patch1053:      1053-better-checks-in-write_net_rules.patch
 
 %description
 Systemd is a system and service manager, compatible with SysV and LSB
@@ -987,6 +1006,7 @@
 Requires(post): /usr/bin/getent 
 Requires(post): /usr/bin/setfacl 
 Requires(post): /usr/bin/systemctl
+Requires(post): permissions
 Conflicts:      otherproviders(syslog)
 
 %description logger
@@ -1250,7 +1270,7 @@
 %patch277 -p0
 %patch278 -p0
 %patch279 -p0
-%patch280 -p1
+%patch280 -p0
 %patch281 -p1
 %patch282 -p0
 %patch283 -p0
@@ -1314,7 +1334,15 @@
 %patch341 -p0
 %patch342 -p0
 %patch343 -p0
-%patch344 -p1
+%patch344 -p0
+%patch345 -p0
+%patch346 -p0
+%patch347 -p0
+%patch348 -p0
+%patch349 -p0
+%patch350 -p0
+%patch351 -p0
+%patch352 -p0
 
 # udev patches
 %patch1001 -p1
@@ -1376,6 +1404,7 @@
 %patch1050 -p1
 %patch1051 -p1
 %patch1052 -p0
+%patch1053 -p1
 
 # ensure generate files are removed
 rm -f units/emergency.service
@@ -1403,6 +1432,14 @@
 done
 %endif
 
+#
+# In combination with Patch352 set-and-use-default-logconsole.patch
+# Ensure that journald log on tty10
+#
+%ifarch %ix86 x86_64 x32
+sed -ri 's:#TTYPath=/dev/console:#TTYPath=/dev/tty10:' 
src/journal/journald.conf
+%endif
+
 %build
 cflags ()
 {
@@ -1746,6 +1783,17 @@
   ln -sf ../systemd-update-utmp-runlevel.service 
%{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/
 done
 
+# Add permission files for logger
+%if %{with permission}
+mkdir -p %{buildroot}%{_sysconfdir}/permissions.d
+cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger <<-'EOF'
+       %{_localstatedir}/log/journal/  root:systemd-journal    2755
+EOF
+cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger.paranoid <<-'EOF'
+       %{_localstatedir}/log/journal/  root:systemd-journal    2755
+EOF
+%endif
+
 %find_lang systemd
 
 %pre
@@ -1917,11 +1965,19 @@
 
 %postun -n libgudev-1_0-0 -p /sbin/ldconfig
 
+%if %{with permission}
+%verifyscript logger
+%verify_permissions -e %{_localstatedir}/log/journal
+%endif
+
 %pre logger
 getent group systemd-journal >/dev/null || groupadd -r systemd-journal || :
 exit 0
 
 %post logger
+%if %{with permission}
+%set_permissions %{_localstatedir}/log/journal
+%endif
 getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx 
%{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
 getent group adm   && setfacl -Rnm g:adm:rx,d:g:adm:rx     
%{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
 if [ "$1" -eq 1 ]; then
@@ -1955,7 +2011,7 @@
 
 %endif
 
-%files
+%files -f systemd.lang
 %defattr(-,root,root)
 /bin/systemd
 /bin/systemd-ask-password
@@ -2059,7 +2115,7 @@
 %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator
 %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator
 /%{_lib}/security/pam_systemd.so
-/etc/pam.d/systemd-user
+%config /etc/pam.d/systemd-user
 
 %dir %{_libexecdir}/modules-load.d
 %dir %{_sysconfdir}/modules-load.d
@@ -2127,7 +2183,6 @@
 %exclude %{_datadir}/systemd/gatewayd
 %endif
 %{_datadir}/systemd
-%{_datadir}/locale/*/LC_MESSAGES
 
 %if ! 0%{?bootstrap}
 # Packaged in sysvinit subpackage
@@ -2324,6 +2379,10 @@
 
 %files logger
 %defattr(-,root,root)
+%if %{with permission}
+%config %{_sysconfdir}/permissions.d/systemd-logger
+%config %{_sysconfdir}/permissions.d/systemd-logger.paranoid
+%endif
 %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal
 %{_localstatedir}/log/README
 /etc/init.d/systemd-journald

++++++ 0001-bash-completion-p-option-for-journalctl.patch ++++++
>From be8f4a9fa732d61e845e1ab1a62ac3a6b368d3a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbys...@in.waw.pl>
Date: Sat, 19 Jul 2014 19:46:04 -0400
Subject: [PATCH] bash-completion: -p option for journalctl

---
 shell-completion/bash/journalctl |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git shell-completion/bash/journalctl shell-completion/bash/journalctl
index e4b2f4a..14dcd22 100644
--- shell-completion/bash/journalctl
+++ shell-completion/bash/journalctl
@@ -35,6 +35,8 @@ __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC}
                   _UDEV_{SYSNAME,DEVNODE,DEVLINK}
                   __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP)
 
+__syslog_priorities=(emerg alert crit err warning notice info debug)
+
 _journalctl() {
         local field_vals= cur=${COMP_WORDS[COMP_CWORD]} 
prev=${COMP_WORDS[COMP_CWORD-1]}
         local -A OPTS=(
@@ -44,8 +46,8 @@ _journalctl() {
                               --no-tail -q --quiet --setup-keys --this-boot 
--verify
                               --version --list-catalog --update-catalog 
--list-boots'
                        [ARG]='-b --boot --this-boot -D --directory --file -F 
--field
-                              -o --output -u --unit --user-unit'
-                [ARGUNKNOWN]='-c --cursor --interval -n --lines -p --priority 
--since --until
+                              -o --output -u --unit --user-unit -p --priority'
+                [ARGUNKNOWN]='-c --cursor --interval -n --lines --since --until
                               --verify-key'
         )
 
@@ -68,6 +70,9 @@ _journalctl() {
                         --field|-F)
                                 comps=${__journal_fields[*]}
                         ;;
+                        --priority|-p)
+                                comps=${__syslog_priorities[*]}
+                        ;;
                         --unit|-u)
                                 comps=$(journalctl -F '_SYSTEMD_UNIT' 
2>/dev/null)
                         ;;
-- 
1.7.9.2

++++++ 0001-compress-fix-return-value.patch ++++++
>From 01c3322e017989d25f7b4b51268245d5315ae678 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbys...@in.waw.pl>
Date: Fri, 18 Jul 2014 21:44:36 -0400
Subject: [PATCH] compress: fix return value

---
 src/journal/compress.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git src/journal/compress.c src/journal/compress.c
index 316c1a6..ee18bc8 100644
--- src/journal/compress.c
+++ src/journal/compress.c
@@ -132,7 +132,7 @@ int decompress_blob_xz(const void *src, uint64_t src_size,
 
         space = MIN(src_size * 2, dst_max ?: (uint64_t) -1);
         if (!greedy_realloc(dst, dst_alloc_size, space, 1))
-                return false;
+                return -ENOMEM;
 
         s.next_in = src;
         s.avail_in = src_size;
@@ -158,7 +158,7 @@ int decompress_blob_xz(const void *src, uint64_t src_size,
                 used = space - s.avail_out;
                 space = MIN(2 * space, dst_max ?: (uint64_t) -1);
                 if (!greedy_realloc(dst, dst_alloc_size, space, 1))
-                        return false;
+                        return -ENOMEM;
 
                 s.avail_out = space - used;
                 s.next_out = *dst + used;
-- 
1.7.9.2

++++++ 0001-detect-virt-Fix-Xen-domU-discovery.patch ++++++
>From a71516dfd1858f37712ef52a288bf5fb274383e0 Mon Sep 17 00:00:00 2001
From: Thomas Blume <thomas.bl...@suse.com>
Date: Thu, 17 Jul 2014 11:25:37 +0200
Subject: [PATCH] detect-virt: Fix Xen domU discovery

The conditional for detection xen virtualization contained a little mistake.
It is checking for i to be empty: 'if (!i)  {', but it must check for cap 
instead,
because: 'cap = strsep(&i, ",")' will set cap to the discovered value and i to
the next value after the separator.
Hence, i would be empty, if there is only control_d in domcap, leading to a 
wrong
domU detection.

https://bugs.freedesktop.org/show_bug.cgi?id=77271
---
 src/shared/virt.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git src/shared/virt.c src/shared/virt.c
index 774915f..20a8d7c 100644
--- src/shared/virt.c
+++ src/shared/virt.c
@@ -173,7 +173,7 @@ int detect_vm(const char **id) {
                         if (streq(cap, "control_d"))
                                 break;
 
-                if (!i)  {
+                if (!cap)  {
                         _id = "xen";
                         r = 1;
                 }
-- 
1.7.9.2

++++++ 0001-systemd-detect-virt-detect-s390-virtualization.patch ++++++
>From f41925b4e442a34c93ad120ef1426c974a047ed1 Mon Sep 17 00:00:00 2001
From: Thomas Blume <thomas.bl...@suse.com>
Date: Fri, 18 Jul 2014 09:13:36 -0400
Subject: [PATCH] systemd-detect-virt: detect s390 virtualization

A system that is running on a logical partition (LPAR) provided by
PR/SM has access to physical hardware (except CPU). It is true that
PR/SM abstracts the hardware, but only for sharing purposes.

Details are statet at:

http://publib.boulder.ibm.com/infocenter/eserver/v1r2/topic/eicaz/eicazzlpar.htm

-->--
In other words, PR/SM transforms physical resources into virtual resources so
that many logical partitions can share the same physical resources.
--<--

Still, from the OS point of view, the shared virtual resource is real
hardware. ConditionVirtualization must be set to false if the OS runs
directly on PR/SM (e.g. in an LPAR).

[zj: reorder code so that variables are not allocated when #if-def is
false. Add commit message.]
---
 man/systemd.unit.xml |    1 +
 src/shared/virt.c    |   17 +++++++++++++++++
 2 files changed, 18 insertions(+)

diff --git man/systemd.unit.xml man/systemd.unit.xml
index 6447584..86a8cbb 100644
--- man/systemd.unit.xml
+++ man/systemd.unit.xml
@@ -996,6 +996,7 @@
                                 virtualization solution, or one of
                                 <varname>qemu</varname>,
                                 <varname>kvm</varname>,
+                                <varname>zvm</varname>,
                                 <varname>vmware</varname>,
                                 <varname>microsoft</varname>,
                                 <varname>oracle</varname>,
diff --git src/shared/virt.c src/shared/virt.c
index 20a8d7c..b436895 100644
--- src/shared/virt.c
+++ src/shared/virt.c
@@ -220,6 +220,23 @@ int detect_vm(const char **id) {
                 goto finish;
         }
 
+#if defined(__s390__)
+        {
+                _cleanup_free_ char *t = NULL;
+
+                r = get_status_field("/proc/sysinfo", "VM00 Control Program:", 
&t);
+                if (r >= 0) {
+                        if (streq(t, "z/VM"))
+                                _id = "zvm";
+                        else
+                                _id = "kvm";
+                        r = 1;
+
+                        goto finish;
+                }
+        }
+#endif
+
         r = 0;
 
 finish:
-- 
1.7.9.2

++++++ 0002-Be-more-verbose-when-bind-or-listen-fails.patch ++++++
Based on 6b9732b2bf0499c5e4ea8a9d4f6051d98033f680 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbys...@in.waw.pl>
Date: Mon, 3 Mar 2014 19:49:40 -0500
Subject: [PATCH] Be more verbose when bind or listen fails

Also be more verbose in devnode_acl_all().
---
 src/core/manager.c            |    2 +-
 src/journal/journald-native.c |    2 +-
 src/journal/journald-stream.c |    4 ++--
 src/journal/journald-syslog.c |    2 +-
 src/login/logind-acl.c        |    5 ++++-
 src/shared/ask-password-api.c |    2 +-
 6 files changed, 10 insertions(+), 7 deletions(-)

--- src/core/manager.c
+++ src/core/manager.c  2014-07-21 10:57:20.286367050 +0000
@@ -571,7 +571,7 @@ static int manager_setup_notify(Manager
 
                 r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 
1 + strlen(sa.un.sun_path+1));
                 if (r < 0) {
-                        log_error("bind() failed: %m");
+                        log_error("bind(@%s) failed: %m", sa.un.sun_path+1);
                         return -errno;
                 }
 
--- src/journal/journald-native.c
+++ src/journal/journald-native.c       2014-07-21 00:00:00.000000000 +0000
@@ -405,7 +405,7 @@ int server_open_native_socket(Server*s)
 
                 r = bind(s->native_fd, &sa.sa, offsetof(union sockaddr_union, 
un.sun_path) + strlen(sa.un.sun_path));
                 if (r < 0) {
-                        log_error("bind() failed: %m");
+                        log_error("bind(%s) failed: %m", sa.un.sun_path);
                         return -errno;
                 }
 
--- src/journal/journald-stream.c
+++ src/journal/journald-stream.c       2014-07-21 00:00:00.000000000 +0000
@@ -447,14 +447,14 @@ int server_open_stdout_socket(Server *s)
 
                 r = bind(s->stdout_fd, &sa.sa, offsetof(union sockaddr_union, 
un.sun_path) + strlen(sa.un.sun_path));
                 if (r < 0) {
-                        log_error("bind() failed: %m");
+                        log_error("bind(%s) failed: %m", sa.un.sun_path);
                         return -errno;
                 }
 
                 chmod(sa.un.sun_path, 0666);
 
                 if (listen(s->stdout_fd, SOMAXCONN) < 0) {
-                        log_error("listen() failed: %m");
+                        log_error("listen(%s) failed: %m", sa.un.sun_path);
                         return -errno;
                 }
         } else
--- src/journal/journald-syslog.c
+++ src/journal/journald-syslog.c       2014-07-21 00:00:00.000000000 +0000
@@ -437,7 +437,7 @@ int server_open_syslog_socket(Server *s)
 
                 r = bind(s->syslog_fd, &sa.sa, offsetof(union sockaddr_union, 
un.sun_path) + strlen(sa.un.sun_path));
                 if (r < 0) {
-                        log_error("bind() failed: %m");
+                        log_error("bind(%s) failed: %m", sa.un.sun_path);
                         return -errno;
                 }
 
--- src/login/logind-acl.c
+++ src/login/logind-acl.c      2014-07-21 10:59:04.986235573 +0000
@@ -277,7 +277,10 @@ int devnode_acl_all(struct udev *udev,
         SET_FOREACH(n, nodes, i) {
                 int k;
 
-                log_debug("Fixing up ACLs at %s for seat %s", n, seat);
+                log_debug("Changing ACLs at %s for seat %s (uid 
"UID_FMT"→"UID_FMT"%s%s)",
+                          n, seat, old_uid, new_uid,
+                          del ? " del" : "", add ? " add" : "");
+
                 k = devnode_acl(n, flush, del, old_uid, add, new_uid);
                 if (k < 0)
                         r = k;
--- src/shared/ask-password-api.c
+++ src/shared/ask-password-api.c       2014-07-21 00:00:00.000000000 +0000
@@ -275,7 +275,7 @@ static int create_socket(char **name) {
 
         if (r < 0) {
                 r = -errno;
-                log_error("bind() failed: %m");
+                log_error("bind(%s) failed: %m", sa.un.sun_path);
                 goto fail;
         }
 
++++++ 0002-journalctl-man-allow-only-between-terms.patch ++++++
>From 4e6029435111adcad71489aca2dd68bc65aeffd4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbys...@in.waw.pl>
Date: Sat, 19 Jul 2014 21:05:07 -0400
Subject: [PATCH] journalctl,man: allow + only between terms

https://bugzilla.redhat.com/show_bug.cgi?id=1110712
---
 man/journalctl.xml       |   19 +++++++++++++++----
 src/journal/journalctl.c |   20 +++++++++++++++++---
 2 files changed, 32 insertions(+), 7 deletions(-)

diff --git man/journalctl.xml man/journalctl.xml
index 47b5a05..df9c794 100644
--- man/journalctl.xml
+++ man/journalctl.xml
@@ -84,10 +84,11 @@
                 field, then they are automatically matched as
                 alternatives, i.e. the resulting output will show
                 entries matching any of the specified matches for the
-                same field. Finally, if the character
-                <literal>+</literal> appears as a separate word on the
-                command line, all matches before and after are combined
-                in a disjunction (i.e. logical OR).</para>
+                same field. Finally, the character
+                <literal>+</literal> may appears as a separate word
+                between other terms on the command line. This causes
+                all matches before and after to be combined in a
+                disjunction (i.e. logical OR).</para>
 
                 <para>As shortcuts for a few types of field/value
                 matches, file paths may be specified. If a file path
@@ -98,11 +99,21 @@
                 <literal>_KERNEL_DEVICE=</literal> match for the
                 device.</para>
 
+                <para>Additional contraints may be added using options
+                <option>--boot</option>, <option>--unit=</option>,
+                etc, to futher limit what entries will be shown
+                (logical AND).</para>
+
                 <para>Output is interleaved from all accessible
                 journal files, whether they are rotated or currently
                 being written, and regardless of whether they belong to the
                 system itself or are accessible user journals.</para>
 
+                <para>The set of journal files which will be used
+                can be modified using the <option>--user</option>,
+                <option>--system</option>, <option>--directory</option>,
+                and <option>--file</option> options, see below.</para>
+
                 <para>All users are granted access to their private
                 per-user journals. However, by default, only root and
                 users who are members of the <literal>systemd-journal</literal>
diff --git src/journal/journalctl.c src/journal/journalctl.c
index 92e8286..7aedbf0 100644
--- src/journal/journalctl.c
+++ src/journal/journalctl.c
@@ -699,15 +699,20 @@ static int generate_new_id128(void) {
 
 static int add_matches(sd_journal *j, char **args) {
         char **i;
+        bool have_term = false;
 
         assert(j);
 
         STRV_FOREACH(i, args) {
                 int r;
 
-                if (streq(*i, "+"))
+                if (streq(*i, "+")) {
+                        if (!have_term)
+                                break;
                         r = sd_journal_add_disjunction(j);
-                else if (path_is_absolute(*i)) {
+                        have_term = false;
+
+                } else if (path_is_absolute(*i)) {
                         _cleanup_free_ char *p, *t = NULL, *t2 = NULL;
                         const char *path;
                         _cleanup_free_ char *interpreter = NULL;
@@ -756,8 +761,12 @@ static int add_matches(sd_journal *j, char **args) {
                         r = sd_journal_add_match(j, t, 0);
                         if (t2)
                                 r = sd_journal_add_match(j, t2, 0);
-                } else
+                        have_term = true;
+
+                } else {
                         r = sd_journal_add_match(j, *i, 0);
+                        have_term = true;
+                }
 
                 if (r < 0) {
                         log_error("Failed to add match '%s': %s", *i, 
strerror(-r));
@@ -765,6 +774,11 @@ static int add_matches(sd_journal *j, char **args) {
                 }
         }
 
+        if (!strv_isempty(args) && !have_term) {
+                log_error("\"+\" can only be used between terms");
+                return -EINVAL;
+        }
+
         return 0;
 }
 
-- 
1.7.9.2

++++++ 0003-Add-quotes-to-warning-message.patch ++++++
>From f0ea29eaeb3449822bfbdfa839b00e323dfc523e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbys...@in.waw.pl>
Date: Sun, 20 Jul 2014 19:47:42 -0400
Subject: [PATCH] Add quotes to warning message

The message for SYSTEMD_LOG_LEVEL= looked a bit strange.
---
 src/shared/log.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git src/shared/log.c src/shared/log.c
index 9039db3..3941e3e 100644
--- src/shared/log.c
+++ src/shared/log.c
@@ -884,19 +884,19 @@ void log_parse_environment(void) {
 
         e = secure_getenv("SYSTEMD_LOG_TARGET");
         if (e && log_set_target_from_string(e) < 0)
-                log_warning("Failed to parse log target %s. Ignoring.", e);
+                log_warning("Failed to parse log target '%s'. Ignoring.", e);
 
         e = secure_getenv("SYSTEMD_LOG_LEVEL");
         if (e && log_set_max_level_from_string(e) < 0)
-                log_warning("Failed to parse log level %s. Ignoring.", e);
+                log_warning("Failed to parse log level '%s'. Ignoring.", e);
 
         e = secure_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 bool '%s'. Ignoring.", e);
 
         e = secure_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 bool '%s'. Ignoring.", e);
 }
 
 LogTarget log_get_target(void) {
-- 
1.7.9.2

++++++ 0003-systemd-use-pager-for-test-and-help.patch ++++++
>From b87c2aa6bf1247c298c9bd9f56b9b56a87836b2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbys...@in.waw.pl>
Date: Tue, 7 Jan 2014 00:00:05 -0500
Subject: [PATCH] systemd: use pager for --test and --help

---
 src/core/main.c |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git src/core/main.c src/core/main.c
index f9ee297..ae38b43 100644
--- src/core/main.c
+++ src/core/main.c
@@ -50,6 +50,7 @@
 #include "conf-parser.h"
 #include "missing.h"
 #include "label.h"
+#include "pager.h"
 #include "build.h"
 #include "strv.h"
 #include "def.h"
@@ -94,6 +95,7 @@ static int arg_crash_chvt = -1;
 static bool arg_confirm_spawn = false;
 static ShowStatus arg_show_status = _SHOW_STATUS_UNSET;
 static bool arg_switched_root = false;
+static int arg_no_pager = -1;
 static char ***arg_join_controllers = NULL;
 static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL;
 static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT;
@@ -117,6 +119,14 @@ static bool arg_default_memory_accounting = false;
 
 static void nop_handler(int sig) {}
 
+static void pager_open_if_enabled(void) {
+
+        if (arg_no_pager <= 0)
+                return;
+
+        pager_open(false);
+}
+
 noreturn static void crash(int sig) {
 
         if (getpid() != 1)
@@ -704,6 +714,7 @@ static int parse_argv(int argc, char *argv[]) {
                 ARG_SYSTEM,
                 ARG_USER,
                 ARG_TEST,
+                ARG_NO_PAGER,
                 ARG_VERSION,
                 ARG_DUMP_CONFIGURATION_ITEMS,
                 ARG_DUMP_CORE,
@@ -725,6 +736,7 @@ static int parse_argv(int argc, char *argv[]) {
                 { "system",                   no_argument,       NULL, 
ARG_SYSTEM                   },
                 { "user",                     no_argument,       NULL, 
ARG_USER                     },
                 { "test",                     no_argument,       NULL, 
ARG_TEST                     },
+                { "no-pager",                 no_argument,       NULL, 
ARG_NO_PAGER                 },
                 { "help",                     no_argument,       NULL, 'h'     
                     },
                 { "version",                  no_argument,       NULL, 
ARG_VERSION                  },
                 { "dump-configuration-items", no_argument,       NULL, 
ARG_DUMP_CONFIGURATION_ITEMS },
@@ -832,6 +844,12 @@ static int parse_argv(int argc, char *argv[]) {
 
                 case ARG_TEST:
                         arg_action = ACTION_TEST;
+                        if (arg_no_pager < 0)
+                                arg_no_pager = true;
+                        break;
+
+                case ARG_NO_PAGER:
+                        arg_no_pager = true;
                         break;
 
                 case ARG_VERSION:
@@ -912,6 +930,8 @@ static int parse_argv(int argc, char *argv[]) {
 
                 case 'h':
                         arg_action = ACTION_HELP;
+                        if (arg_no_pager < 0)
+                                arg_no_pager = true;
                         break;
 
                 case 'D':
@@ -984,6 +1004,7 @@ static int help(void) {
                "Starts up and maintains the system or user services.\n\n"
                "  -h --help                      Show this help\n"
                "     --test                      Determine startup sequence, 
dump it and exit\n"
+               "     --no-pager                  Do not pipe output into a 
pager\n"
                "     --dump-configuration-items  Dump understood unit 
configuration items\n"
                "     --unit=UNIT                 Set default unit\n"
                "     --system                    Run a system instance, even 
if PID != 1\n"
@@ -1452,6 +1473,8 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
+        pager_open_if_enabled();
+
         if (arg_action == ACTION_HELP) {
                 retval = help();
                 goto finish;
@@ -1798,6 +1821,8 @@ int main(int argc, char *argv[]) {
         }
 
 finish:
+        pager_close();
+
         if (m) {
                 manager_free(m);
                 m = NULL;
-- 
1.7.9.2

++++++ 0004-systemd-return-the-first-error-from-manager_startup.patch ++++++
>From 1cd974edfd7cd91dcdf321e7202bd220bac50a2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbys...@in.waw.pl>
Date: Fri, 18 Jul 2014 17:05:18 -0400
Subject: [PATCH] systemd: return the first error from manager_startup()

---
 src/core/manager.c |   15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git src/core/manager.c src/core/manager.c
index 2e63c5e..0653d7e 100644
--- src/core/manager.c
+++ src/core/manager.c
@@ -1005,11 +1005,8 @@ int manager_startup(Manager *m, FILE *serialization, 
FDSet *fds) {
         dual_timestamp_get(&m->units_load_finish_timestamp);
 
         /* Second, deserialize if there is something to deserialize */
-        if (serialization) {
-                q = manager_deserialize(m, serialization, fds);
-                if (q < 0)
-                        r = q;
-        }
+        if (serialization)
+                r = manager_deserialize(m, serialization, fds);
 
         /* Any fds left? Find some unit which wants them. This is
          * useful to allow container managers to pass some file
@@ -1017,13 +1014,15 @@ int manager_startup(Manager *m, FILE *serialization, 
FDSet *fds) {
          * socket-based activation of entire containers. */
         if (fdset_size(fds) > 0) {
                 q = manager_distribute_fds(m, fds);
-                if (q < 0)
+                if (q < 0 && r == 0)
                         r = q;
         }
 
         /* We might have deserialized the notify fd, but if we didn't
          * then let's create the bus now */
-        manager_setup_notify(m);
+        q = manager_setup_notify(m);
+        if (q < 0 && r == 0)
+                r = q;
 
         /* We might have deserialized the kdbus control fd, but if we
          * didn't, then let's create the bus now. */
@@ -1033,7 +1032,7 @@ int manager_startup(Manager *m, FILE *serialization, 
FDSet *fds) {
 
         /* Third, fire things up! */
         q = manager_coldplug(m);
-        if (q < 0)
+        if (q < 0 && r == 0)
                 r = q;
 
         if (serialization) {
-- 
1.7.9.2

++++++ 1053-better-checks-in-write_net_rules.patch ++++++
Index: systemd-210/src/udev/rule_generator/write_net_rules
===================================================================
--- systemd-210.orig/src/udev/rule_generator/write_net_rules
+++ systemd-210/src/udev/rule_generator/write_net_rules
@@ -89,6 +89,12 @@ choose_rules_file
 
 # the DRIVERS key is needed to not match bridges and VLAN sub-interfaces
 if [ "$MATCHADDR" ]; then
+        # Check if MACADDR doesn't exist already in the generated rules
+        MAC="$(/usr/bin/grep -w -o -C1 -m1 "$MATCHADDR" "$RULES_FILE" 
2>/dev/null || true)"
+        if [ "$MAC" == "$MATCHADDR" ]; then
+                unlock_rules_file
+                exit 0
+        fi
         match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\""
 fi
 
@@ -101,8 +107,9 @@ if [ "$MATCHDEVID" ]; then
 fi
 
 if [ "$MATCHID" ]; then
-        ID="$(find_all_rules 'KERNELS==' "$MATCHID")"
-        if [ "$ID" == "$MATCHID" ]; then
+        # Check if KERNEL doesn't exist already in the generated rules
+        KERNEL="$(find_all_rules 'KERNELS==' "$MATCHID")"
+        if [ "$KERNEL" == "$MATCHID" ]; then
                 unlock_rules_file
                 exit 0
         fi
++++++ set-and-use-default-logconsole.patch ++++++
Use and set default logging console for both journald and kernel messages

---
 src/journal/journald-console.c |   96 +++++++++++++++++++++++++++++++++++++++++
 src/journal/journald-console.h |    4 +
 src/journal/journald-server.c  |    5 ++
 3 files changed, 105 insertions(+)

--- src/journal/journald-console.c
+++ src/journal/journald-console.c      2014-07-23 09:08:29.522235688 +0000
@@ -23,6 +23,14 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <sys/socket.h>
+#ifdef HAVE_SYSV_COMPAT
+# include <linux/tiocl.h>
+# include <linux/vt.h>
+# include <sys/ioctl.h>
+# include <sys/klog.h>
+# include <errno.h>
+# include "util.h"
+#endif
 
 #include "fileio.h"
 #include "journald-server.h"
@@ -43,6 +51,74 @@ static bool prefix_timestamp(void) {
         return cached_printk_time;
 }
 
+#ifdef HAVE_SYSV_COMPAT
+void defaul_tty_path(Server *s)
+{
+        static const char list[] = "/dev/tty10\0" "/dev/console\0";
+        const char *vc;
+
+        if (s->tty_path)
+                return;
+
+        NULSTR_FOREACH(vc, list) {
+                _cleanup_close_ int fd = -1;
+
+                if (access(vc, F_OK) < 0)
+                        continue;
+
+                fd = open_terminal(vc, O_WRONLY|O_NOCTTY|O_CLOEXEC);
+                if (fd < 0)
+                        continue;
+
+                s->tty_path = strdup(vc);
+                break;
+        }
+}
+
+void klogconsole(Server *s)
+{
+        _cleanup_free_ char *klogconsole_params = NULL;
+        _cleanup_close_ int fd = -1;
+        const char *vc = s->tty_path;
+        const char *num;
+        int tiocl[2];
+        int r;
+
+        if (!vc || *vc == 0 || !strneq("/dev/tty", vc, 8))
+                return;
+
+        num = vc + strcspn(vc, "0123456789");
+        if (safe_atoi(num, &r) < 0)
+                return;
+
+        if (access(vc, F_OK) < 0)
+                return false;
+
+        fd = open_terminal(vc, O_RDWR|O_NOCTTY|O_CLOEXEC);
+        if (fd < 0)
+                return;
+
+        tiocl[0] = TIOCL_SETKMSGREDIRECT;
+        tiocl[1] = r;
+
+        if (ioctl(fd, TIOCLINUX, tiocl) < 0)
+                return;
+
+        zero(klogconsole_params);
+        r = parse_env_file("/etc/sysconfig/boot", NEWLINE,
+                           "KLOGCONSOLE_PARAMS", &klogconsole_params,
+                           NULL);
+        if (r < 0)
+                return;
+        if (!klogconsole_params || *klogconsole_params == 0)
+                return;
+
+        num = klogconsole_params + strcspn(klogconsole_params, "0123456789");
+        if (safe_atoi(num, &r) == 0)
+                klogctl(8, 0, r);
+}
+#endif
+
 void server_forward_console(
                 Server *s,
                 int priority,
@@ -63,6 +139,10 @@ void server_forward_console(
 
         if (LOG_PRI(priority) > s->max_level_console)
                 return;
+        
+        /* Do not write security/authorization (private) messages to console */
+        if (priority & LOG_AUTHPRIV)
+                return;
 
         /* First: timestamp */
         if (prefix_timestamp()) {
@@ -101,7 +181,23 @@ void server_forward_console(
         fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC);
         if (fd < 0) {
                 log_debug("Failed to open %s for logging: %m", tty);
+#ifdef HAVE_SYSV_COMPAT
+                if (fd != -ENOENT && fd != -ENODEV)
+                        return;
+                if (tty != s->tty_path)
+                        return;
+                if (!streq("/dev/console", tty)) {
+                        if (s->tty_path)
+                                free(s->tty_path);
+                        s->tty_path = NULL;
+                        tty = "/dev/console";
+                        fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC);
+                        if (fd < 0)
+                                return;
+                }
+#else
                 return;
+#endif
         }
 
         if (writev(fd, iovec, n) < 0)
--- src/journal/journald-console.h
+++ src/journal/journald-console.h      2014-07-22 11:20:52.754235644 +0000
@@ -24,3 +24,7 @@
 #include "journald-server.h"
 
 void server_forward_console(Server *s, int priority, const char *identifier, 
const char *message, struct ucred *ucred);
+#ifdef HAVE_SYSV_COMPAT
+void klogconsole(Server *s);
+void defaul_tty_path(Server *s);
+#endif
--- src/journal/journald-server.c
+++ src/journal/journald-server.c       2014-07-22 11:16:45.966236859 +0000
@@ -1509,6 +1509,11 @@ int server_init(Server *s) {
 
         server_parse_config_file(s);
         server_parse_proc_cmdline(s);
+        defaul_tty_path(s);
+
+        if (s->tty_path)
+                klogconsole(s);
+
         if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) {
                 log_debug("Setting both rate limit interval and burst from 
%llu,%u to 0,0",
                           (long long unsigned) s->rate_limit_interval,
++++++ systemd-mini-rpmlintrc ++++++
--- /var/tmp/diff_new_pack.sNsJba/_old  2014-07-23 22:06:25.000000000 +0200
+++ /var/tmp/diff_new_pack.sNsJba/_new  2014-07-23 22:06:25.000000000 +0200
@@ -18,3 +18,10 @@
 addFilter("nss-myhostname.*shlib-policy-name-error.*")
 addFilter("systemd-logger.*useless-provides sysvinit(syslog).*")
 
addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*")
+addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*")
+addFilter(".*files-duplicate.*/systemd-logger.*")
+addFilter(".*missing-call-to-setgroups-before-setuid.*")
+addFilter(".*missing-call-to-chdir-with-chroot.*")
+addFilter(".*systemd-service-without-service.*")
+addFilter(".*shlib-policy-missing-suffix.*")
+addFilter(".*suse-missing-rclink.*")

++++++ systemd-rpmlintrc ++++++
--- /var/tmp/diff_new_pack.sNsJba/_old  2014-07-23 22:06:25.000000000 +0200
+++ /var/tmp/diff_new_pack.sNsJba/_new  2014-07-23 22:06:25.000000000 +0200
@@ -18,3 +18,10 @@
 addFilter("nss-myhostname.*shlib-policy-name-error.*")
 addFilter("systemd-logger.*useless-provides sysvinit(syslog).*")
 
addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*")
+addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*")
+addFilter(".*files-duplicate.*/systemd-logger.*")
+addFilter(".*missing-call-to-setgroups-before-setuid.*")
+addFilter(".*missing-call-to-chdir-with-chroot.*")
+addFilter(".*systemd-service-without-service.*")
+addFilter(".*shlib-policy-missing-suffix.*")
+addFilter(".*suse-missing-rclink.*")

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to