Hello community,

here is the log from the commit of package systemd for openSUSE:Factory checked 
in at 2014-05-13 20:46:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-05-10 
08:32:42.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes        
2014-05-13 20:46:26.000000000 +0200
@@ -1,0 +2,35 @@
+Tue May 13 08:28:05 UTC 2014 - wer...@suse.de
+
+- Add patch log-target-null-instead-kmsg.patch from Thomas Blume
+  to enable the kernel developers to see a clean kmsg ring buffer
+  without any systemd/udev messages included (bnc#877021)
+
+-------------------------------------------------------------------
+Mon May 12 13:35:25 UTC 2014 - wer...@suse.de
+
+- Add upstram patches for backlight
+  0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch
+  0002-backlight-do-nothing-if-max_brightness-is-0.patch
+  0003-backlight-unify-error-messages.patch
+  0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch
+  0005-backlight-handle-saved-brightness-exceeding-max-brig.patch
+
+-------------------------------------------------------------------
+Mon May 12 13:28:20 UTC 2014 - wer...@suse.de
+
+- Add upstream patches
+  0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch
+  0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch
+  0003-analyze-fix-plot-with-bad-y-size.patch
+  0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch
+  0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch
+
+-------------------------------------------------------------------
+Mon May 12 12:25:13 UTC 2014 - rmila...@suse.com
+
+- Drop upstream-net_id-changes.patch and replace them with the correct
+  patches from upstream and their commits:
+  add: 1014-udev-update-net_id-comments.patch 
+  add: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch
+
+-------------------------------------------------------------------
systemd.changes: same change

Old:
----
  upstream-net_id-changes.patch

New:
----
  0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch
  0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch
  0002-backlight-do-nothing-if-max_brightness-is-0.patch
  0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch
  0003-analyze-fix-plot-with-bad-y-size.patch
  0003-backlight-unify-error-messages.patch
  0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch
  0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch
  0005-backlight-handle-saved-brightness-exceeding-max-brig.patch
  0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch
  1014-udev-update-net_id-comments.patch
  1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch
  log-target-null-instead-kmsg.patch

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

Other differences:
------------------
++++++ systemd-mini.spec ++++++
--- /var/tmp/diff_new_pack.MUrnLT/_old  2014-05-13 20:46:29.000000000 +0200
+++ /var/tmp/diff_new_pack.MUrnLT/_new  2014-05-13 20:46:29.000000000 +0200
@@ -407,6 +407,28 @@
 Patch207:       0001-tmpfiles-fix-permissions-on-new-journal-files.patch
 # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774)
 Patch208:       parse-crypttab-for-noauto-option.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch209:       0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch210:       0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch211:       0003-analyze-fix-plot-with-bad-y-size.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch212:       0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch213:       0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch214:       0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch215:       0002-backlight-do-nothing-if-max_brightness-is-0.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch216:       0003-backlight-unify-error-messages.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch217:       0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch218:       0005-backlight-handle-saved-brightness-exceeding-max-brig.patch
+# PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages 
(bnc#877021)
+Patch219:       log-target-null-instead-kmsg.patch
 
 # UDEV PATCHES
 # ============
@@ -440,8 +462,10 @@
 Patch1012:      1012-Skip-persistent-device-link-creation-on-multipath-de.patch
 # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931)
 Patch1013:      1013-no-runtime-PM-for-IBM-consoles.patch
-# PATCH-FIX-UPSTREAM Move forward to git Head for net_id
-Patch1014:      upstream-net_id-changes.patch
+# PATCH-FIX-USTREAM 1014-udev-update-net_id-comments.patch
+Patch1014:      1014-udev-update-net_id-comments.patch
+# PATCH-FIX-USTREAM 
1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch
+Patch1015:      1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch
 
 %description
 Systemd is a system and service manager, compatible with SysV and LSB
@@ -798,6 +822,17 @@
 %patch206 -p0
 %patch207 -p0
 %patch208 -p1
+%patch209 -p0
+%patch210 -p0
+%patch211 -p0
+%patch212 -p0
+%patch213 -p0
+%patch214 -p0
+%patch215 -p0
+%patch216 -p0
+%patch217 -p0
+%patch218 -p0
+%patch219 -p1
 
 # udev patches
 %patch1001 -p1
@@ -814,9 +849,8 @@
 %patch1011 -p1
 %patch1012 -p1
 %patch1013 -p1
-%if 0%{?suse_version} > 1310
-%patch1014 -p0
-%endif
+%patch1014 -p1
+%patch1015 -p1
 
 # ensure generate files are removed
 rm -f units/emergency.service

++++++ systemd.spec ++++++
--- /var/tmp/diff_new_pack.MUrnLT/_old  2014-05-13 20:46:29.000000000 +0200
+++ /var/tmp/diff_new_pack.MUrnLT/_new  2014-05-13 20:46:29.000000000 +0200
@@ -402,6 +402,28 @@
 Patch207:       0001-tmpfiles-fix-permissions-on-new-journal-files.patch
 # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774)
 Patch208:       parse-crypttab-for-noauto-option.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch209:       0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch210:       0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch211:       0003-analyze-fix-plot-with-bad-y-size.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch212:       0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch213:       0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch214:       0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch215:       0002-backlight-do-nothing-if-max_brightness-is-0.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch216:       0003-backlight-unify-error-messages.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch217:       0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch
+# PATCH-FIX-UPSTREAM added at 2014/05/12
+Patch218:       0005-backlight-handle-saved-brightness-exceeding-max-brig.patch
+# PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages 
(bnc#877021)
+Patch219:       log-target-null-instead-kmsg.patch
 
 # UDEV PATCHES
 # ============
@@ -435,8 +457,10 @@
 Patch1012:      1012-Skip-persistent-device-link-creation-on-multipath-de.patch
 # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931)
 Patch1013:      1013-no-runtime-PM-for-IBM-consoles.patch
-# PATCH-FIX-UPSTREAM Move forward to git Head for net_id
-Patch1014:      upstream-net_id-changes.patch
+# PATCH-FIX-USTREAM 1014-udev-update-net_id-comments.patch
+Patch1014:      1014-udev-update-net_id-comments.patch
+# PATCH-FIX-USTREAM 
1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch
+Patch1015:      1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch
 
 %description
 Systemd is a system and service manager, compatible with SysV and LSB
@@ -793,6 +817,17 @@
 %patch206 -p0
 %patch207 -p0
 %patch208 -p1
+%patch209 -p0
+%patch210 -p0
+%patch211 -p0
+%patch212 -p0
+%patch213 -p0
+%patch214 -p0
+%patch215 -p0
+%patch216 -p0
+%patch217 -p0
+%patch218 -p0
+%patch219 -p1
 
 # udev patches
 %patch1001 -p1
@@ -809,9 +844,8 @@
 %patch1011 -p1
 %patch1012 -p1
 %patch1013 -p1
-%if 0%{?suse_version} > 1310
-%patch1014 -p0
-%endif
+%patch1014 -p1
+%patch1015 -p1
 
 # ensure generate files are removed
 rm -f units/emergency.service

++++++ 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch ++++++
>From 7b909d7407965c03caaba30daae7aee113627a83 Mon Sep 17 00:00:00 2001
From: Josh Triplett <j...@joshtriplett.org>
Date: Tue, 11 Mar 2014 21:16:33 -0700
Subject: [PATCH] backlight: Avoid restoring brightness to an unreadably dim
 level

Some systems turn the backlight all the way off at the lowest levels.
Clamp saved brightness to at least 1 or 5% of max_brightness.  This
avoids preserving an unreadably dim screen, which would otherwise force
the user to disable state restoration.
---
 src/backlight/backlight.c |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git src/backlight/backlight.c src/backlight/backlight.c
index 81470b3..abf8bcf 100644
--- src/backlight/backlight.c
+++ src/backlight/backlight.c
@@ -192,6 +192,48 @@ static bool validate_device(struct udev *udev, struct 
udev_device *device) {
         return true;
 }
 
+/* Some systems turn the backlight all the way off at the lowest levels.
+ * clamp_brightness clamps the saved brightness to at least 1 or 5% of
+ * max_brightness.  This avoids preserving an unreadably dim screen, which
+ * would otherwise force the user to disable state restoration. */
+static void clamp_brightness(struct udev_device *device, char **value) {
+        int r;
+        const char *max_brightness_str;
+        unsigned brightness, max_brightness, new_brightness;
+
+        max_brightness_str = udev_device_get_sysattr_value(device, 
"max_brightness");
+        if (!max_brightness_str) {
+                log_warning("Failed to read max_brightness attribute; not 
checking saved brightness");
+                return;
+        }
+
+        r = safe_atou(*value, &brightness);
+        if (r < 0) {
+                log_warning("Failed to parse brightness \"%s\": %s", *value, 
strerror(-r));
+                return;
+        }
+
+        r = safe_atou(max_brightness_str, &max_brightness);
+        if (r < 0) {
+                log_warning("Failed to parse max_brightness \"%s\": %s", 
max_brightness_str, strerror(-r));
+                return;
+        }
+
+        new_brightness = MAX3(brightness, 1U, max_brightness/20);
+        if (new_brightness != brightness) {
+                char *old_value = *value;
+
+                r = asprintf(value, "%u", new_brightness);
+                if (r < 0) {
+                        log_oom();
+                        return;
+                }
+
+                log_debug("Saved brightness %s too low; increasing to %s.", 
old_value, *value);
+                free(old_value);
+        }
+}
+
 int main(int argc, char *argv[]) {
         _cleanup_udev_unref_ struct udev *udev = NULL;
         _cleanup_udev_device_unref_ struct udev_device *device = NULL;
@@ -306,6 +348,8 @@ int main(int argc, char *argv[]) {
                         return EXIT_FAILURE;
                 }
 
+                clamp_brightness(device, &value);
+
                 r = udev_device_set_sysattr_value(device, "brightness", value);
                 if (r < 0) {
                         log_error("Failed to write system attribute: %s", 
strerror(-r));
-- 
1.7.9.2

++++++ 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch ++++++
Based on 0d522a7a0547982eae9ab1b5971e4bed9c2fbc7c Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lenn...@poettering.net>
Date: Thu, 24 Apr 2014 08:11:39 +0200
Subject: [PATCH] errno: make sure to handle the 3 errnos that are aliases for
 others properly

---
 Makefile.am |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- Makefile.am
+++ Makefile.am 2014-05-12 00:00:00.000000000 +0000
@@ -1078,7 +1078,7 @@ BUILT_SOURCES += \
 
 src/shared/errno-list.txt:
        $(AM_V_at)$(MKDIR_P) $(dir $@)
-       $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include 
errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+[0-9]/ { print $$2; 
}'  > $@
+       $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include 
errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+/ { print $$2; }'  
> $@
 
 src/shared/errno-from-name.gperf: src/shared/errno-list.txt
        $(AM_V_at)$(MKDIR_P) $(dir $@)
@@ -1090,7 +1090,7 @@ src/shared/errno-from-name.h: src/shared
 
 src/shared/errno-to-name.h: src/shared/errno-list.txt
        $(AM_V_at)$(MKDIR_P) $(dir $@)
-       $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] 
= { "} { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@
+       $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] 
= { "} !/EDEADLOCK/ && !/EWOULDBLOCK/ && !/ENOTSUP/ { printf "[%s] = 
\"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@
 
 # 
------------------------------------------------------------------------------
 systemd_SOURCES = \
++++++ 0002-backlight-do-nothing-if-max_brightness-is-0.patch ++++++
>From 3cadce7d33e263ec7a6a83c00c11144930258b22 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <tho...@archlinux.org>
Date: Thu, 27 Mar 2014 23:41:59 +0100
Subject: [PATCH] backlight: do nothing if max_brightness is 0

On virtually any newer Asus mainboard, the eeepc-wmi driver is loaded.
It exposes a backlight device despite the lack of any physical backlight
devices. This fake backlight device has max_brightness set to 0. Since
the introduction of the clamp_brightness function, systemd-backlight
tries to write '1' to brightness and fails.

This patch changes systemd-backlight to exit gracefully when
max_brightness is 0 before performing any action. This affects
both the load and save actions.
---
 src/backlight/backlight.c |   44 ++++++++++++++++++++++++++++++--------------
 1 file changed, 30 insertions(+), 14 deletions(-)

diff --git src/backlight/backlight.c src/backlight/backlight.c
index abf8bcf..ce0385b 100644
--- src/backlight/backlight.c
+++ src/backlight/backlight.c
@@ -192,30 +192,37 @@ static bool validate_device(struct udev *udev, struct 
udev_device *device) {
         return true;
 }
 
-/* Some systems turn the backlight all the way off at the lowest levels.
- * clamp_brightness clamps the saved brightness to at least 1 or 5% of
- * max_brightness.  This avoids preserving an unreadably dim screen, which
- * would otherwise force the user to disable state restoration. */
-static void clamp_brightness(struct udev_device *device, char **value) {
+static unsigned get_max_brightness(struct udev_device *device) {
         int r;
         const char *max_brightness_str;
-        unsigned brightness, max_brightness, new_brightness;
+        unsigned max_brightness;
 
         max_brightness_str = udev_device_get_sysattr_value(device, 
"max_brightness");
         if (!max_brightness_str) {
-                log_warning("Failed to read max_brightness attribute; not 
checking saved brightness");
-                return;
+                log_warning("Failed to read max_brightness attribute");
+                return 0;
         }
 
-        r = safe_atou(*value, &brightness);
+        r = safe_atou(max_brightness_str, &max_brightness);
         if (r < 0) {
-                log_warning("Failed to parse brightness \"%s\": %s", *value, 
strerror(-r));
-                return;
+                log_warning("Failed to parse max_brightness \"%s\": %s", 
max_brightness_str, strerror(-r));
+                return 0;
         }
 
-        r = safe_atou(max_brightness_str, &max_brightness);
+        return max_brightness;
+}
+
+/* Some systems turn the backlight all the way off at the lowest levels.
+ * clamp_brightness clamps the saved brightness to at least 1 or 5% of
+ * max_brightness.  This avoids preserving an unreadably dim screen, which
+ * would otherwise force the user to disable state restoration. */
+static void clamp_brightness(struct udev_device *device, char **value, 
unsigned max_brightness) {
+        int r;
+        unsigned brightness, new_brightness;
+
+        r = safe_atou(*value, &brightness);
         if (r < 0) {
-                log_warning("Failed to parse max_brightness \"%s\": %s", 
max_brightness_str, strerror(-r));
+                log_warning("Failed to parse brightness \"%s\": %s", *value, 
strerror(-r));
                 return;
         }
 
@@ -239,6 +246,7 @@ int main(int argc, char *argv[]) {
         _cleanup_udev_device_unref_ struct udev_device *device = NULL;
         _cleanup_free_ char *saved = NULL, *ss = NULL, *escaped_ss = NULL, 
*escaped_sysname = NULL, *escaped_path_id = NULL;
         const char *sysname, *path_id;
+        unsigned max_brightness;
         int r;
 
         if (argc != 3) {
@@ -294,6 +302,14 @@ int main(int argc, char *argv[]) {
                 return EXIT_FAILURE;
         }
 
+        /* If max_brightness is 0, then there is no actual backlight
+         * device. This happens on desktops with Asus mainboards
+         * that load the eeepc-wmi module.
+         */
+        max_brightness = get_max_brightness(device);
+        if (max_brightness == 0)
+                return EXIT_SUCCESS;
+
         escaped_ss = cescape(ss);
         if (!escaped_ss) {
                 log_oom();
@@ -348,7 +364,7 @@ int main(int argc, char *argv[]) {
                         return EXIT_FAILURE;
                 }
 
-                clamp_brightness(device, &value);
+                clamp_brightness(device, &value, max_brightness);
 
                 r = udev_device_set_sysattr_value(device, "brightness", value);
                 if (r < 0) {
-- 
1.7.9.2

++++++ 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch ++++++
Based on e6c474723dc66cd4765fd09453d6b48bd5905ba4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbys...@in.waw.pl>
Date: Sun, 20 Apr 2014 13:57:26 -0400
Subject: [PATCH] udev: warn when name_to_handle_at is not implemented

We have a bunch of reports from people who have a custom kernel and
are confused why udev is not running. Issue a warning on
error. Barring an error in the code, the only error that is possible
is ENOSYS.

https://bugzilla.redhat.com/show_bug.cgi?id=1072966
---
 src/libudev/libudev-monitor.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- src/libudev/libudev-monitor.c
+++ src/libudev/libudev-monitor.c       2014-05-12 00:00:00.000000000 +0000
@@ -115,8 +115,11 @@ static bool udev_has_devtmpfs(struct ude
         int r;
 
         r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0);
-        if (r < 0)
+        if (r < 0) {
+                if (errno != EOPNOTSUPP)
+                        udev_err(udev, "name_to_handle_at on /dev: %m\n");
                 return false;
+        }
 
 
         f = fopen("/proc/self/mountinfo", "re");
++++++ 0003-analyze-fix-plot-with-bad-y-size.patch ++++++
>From a213b7e977221ca96bbc1b19a5a879c912ba2488 Mon Sep 17 00:00:00 2001
From: Jeffrey Clark <h0tw...@gmail.com>
Date: Wed, 23 Apr 2014 22:37:43 +0200
Subject: [PATCH] analyze: fix plot with bad y size

systemd-analyze plot > test.svg produces output with all y and height
element attributes equal to zero. This of course causes the resulting
svg to appear blank (zero height). Bug does not affect x86. Looks like
a compiler optimization may be the culprit.

https://github.com/archlinuxarm/PKGBUILDs/issues/815
---
 src/analyze/analyze.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git src/analyze/analyze.c src/analyze/analyze.c
index ba236d9..ebaa9d0 100644
--- src/analyze/analyze.c
+++ src/analyze/analyze.c
@@ -43,7 +43,7 @@
 #include "pager.h"
 
 #define SCALE_X (0.1 / 1000.0)   /* pixels per us */
-#define SCALE_Y 20.0
+#define SCALE_Y (20.0)
 
 #define compare(a, b) (((a) > (b))? 1 : (((b) > (a))? -1 : 0))
 
-- 
1.7.9.2

++++++ 0003-backlight-unify-error-messages.patch ++++++
Based on 938d2699d2e818bd996614e89ea3d668200ad2a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbys...@in.waw.pl>
Date: Mon, 7 Apr 2014 20:57:22 -0400
Subject: [PATCH] backlight: unify error messages

---
 src/backlight/backlight.c |   29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

--- src/backlight/backlight.c
+++ src/backlight/backlight.c   2014-05-12 13:31:50.502235843 +0000
@@ -24,6 +24,7 @@
 #include "fileio.h"
 #include "libudev.h"
 #include "udev-util.h"
+#include "def.h"
 
 static struct udev_device *find_pci_or_platform_parent(struct udev_device 
*device) {
         struct udev_device *parent;
@@ -50,7 +51,7 @@ static struct udev_device *find_pci_or_p
                 if (!c)
                         return NULL;
 
-                c += strspn(c, "0123456789");
+                c += strspn(c, DIGITS);
                 if (*c == '-') {
                         /* A connector DRM device, let's ignore all but LVDS 
and eDP! */
 
@@ -67,7 +68,8 @@ static struct udev_device *find_pci_or_p
                         unsigned long class = 0;
 
                         if (safe_atolu(value, &class) < 0) {
-                                log_warning("Cannot parse PCI class %s of 
device %s:%s.", value, subsystem, sysname);
+                                log_warning("Cannot parse PCI class %s of 
device %s:%s.",
+                                            value, subsystem, sysname);
                                 return NULL;
                         }
 
@@ -175,7 +177,9 @@ static bool validate_device(struct udev
                 if (same_device(parent, other_parent)) {
                         /* Both have the same PCI parent, that means
                          * we are out. */
-                        log_debug("Skipping backlight device %s, since 
backlight device %s is on same PCI device and, takes precedence.", 
udev_device_get_sysname(device), udev_device_get_sysname(other));
+                        log_debug("Skipping backlight device %s, since device 
%s is on same PCI device and takes precedence.",
+                                  udev_device_get_sysname(device),
+                                  udev_device_get_sysname(other));
                         return false;
                 }
 
@@ -184,7 +188,9 @@ static bool validate_device(struct udev
                         /* The other is connected to the platform bus
                          * and we are a PCI device, that also means we
                          * are out. */
-                        log_debug("Skipping backlight device %s, since 
backlight device %s is a platform device and takes precedence.", 
udev_device_get_sysname(device), udev_device_get_sysname(other));
+                        log_debug("Skipping backlight device %s, since device 
%s is a platform device and takes precedence.",
+                                  udev_device_get_sysname(device),
+                                  udev_device_get_sysname(other));
                         return false;
                 }
         }
@@ -199,13 +205,14 @@ static unsigned get_max_brightness(struc
 
         max_brightness_str = udev_device_get_sysattr_value(device, 
"max_brightness");
         if (!max_brightness_str) {
-                log_warning("Failed to read max_brightness attribute");
+                log_warning("Failed to read 'max_brightness' attribute");
                 return 0;
         }
 
         r = safe_atou(max_brightness_str, &max_brightness);
         if (r < 0) {
-                log_warning("Failed to parse max_brightness \"%s\": %s", 
max_brightness_str, strerror(-r));
+                log_warning("Failed to parse 'max_brightness' \"%s\": %s",
+                            max_brightness_str, strerror(-r));
                 return 0;
         }
 
@@ -262,7 +269,8 @@ int main(int argc, char *argv[]) {
 
         r = mkdir_p("/var/lib/systemd/backlight", 0755);
         if (r < 0) {
-                log_error("Failed to create backlight directory: %s", 
strerror(-r));
+                log_error("Failed to create backlight directory 
/var/lib/systemd/backlight: %s",
+                          strerror(-r));
                 return EXIT_FAILURE;
         }
 
@@ -274,7 +282,7 @@ int main(int argc, char *argv[]) {
 
         sysname = strchr(argv[2], ':');
         if (!sysname) {
-                log_error("Requires pair of subsystem and sysname for 
specifying backlight device.");
+                log_error("Requires a subsystem and sysname pair specifying a 
backlight device.");
                 return EXIT_FAILURE;
         }
 
@@ -368,7 +376,8 @@ int main(int argc, char *argv[]) {
 
                 r = udev_device_set_sysattr_value(device, "brightness", value);
                 if (r < 0) {
-                        log_error("Failed to write system attribute: %s", 
strerror(-r));
+                        log_error("Failed to write system 'brightness' 
attribute: %s",
+                                  strerror(-r));
                         return EXIT_FAILURE;
                 }
 
@@ -382,7 +391,7 @@ int main(int argc, char *argv[]) {
 
                 value = udev_device_get_sysattr_value(device, "brightness");
                 if (!value) {
-                        log_error("Failed to read system attribute: %s", 
strerror(-r));
+                        log_error("Failed to read system 'brightness' 
attribute: %s", strerror(-r));
                         return EXIT_FAILURE;
                 }
 
++++++ 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch ++++++
>From c7fdf44d08e1217d40dc092fb90a65978a0f541f Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lenn...@poettering.net>
Date: Wed, 23 Apr 2014 06:55:54 +0200
Subject: [PATCH] backlight: warn if kernel exposes backlight device with
 bogus max_brightness

We shouldn't silently tape over broken kernel drivers.
---
 src/backlight/backlight.c |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git src/backlight/backlight.c src/backlight/backlight.c
index 754a646..c708391 100644
--- src/backlight/backlight.c
+++ src/backlight/backlight.c
@@ -205,14 +205,18 @@ static unsigned get_max_brightness(struct udev_device 
*device) {
 
         max_brightness_str = udev_device_get_sysattr_value(device, 
"max_brightness");
         if (!max_brightness_str) {
-                log_warning("Failed to read 'max_brightness' attribute");
+                log_warning("Failed to read 'max_brightness' attribute.");
                 return 0;
         }
 
         r = safe_atou(max_brightness_str, &max_brightness);
         if (r < 0) {
-                log_warning("Failed to parse 'max_brightness' \"%s\": %s",
-                            max_brightness_str, strerror(-r));
+                log_warning("Failed to parse 'max_brightness' \"%s\": %s", 
max_brightness_str, strerror(-r));
+                return 0;
+        }
+
+        if (max_brightness <= 0) {
+                log_warning("Maximum brightness is 0, ignoring device.");
                 return 0;
         }
 
-- 
1.7.9.2

++++++ 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch ++++++
Based on 20a83d7bf4542875f8033b68682a4da4993010e8 Mon Sep 17 00:00:00 2001
From: Brandon Philips <bran...@ifup.co>
Date: Fri, 25 Apr 2014 09:31:59 -0600
Subject: [PATCH] job: add waiting jobs to run queue in unit_coldplug

When we have job installed and added to run queue for service which is
still in dead state and systemd initiates reload then after reload we
never add deserialized job to the run queue again. This is caused by
check in service_coldplug() where we check if deserialized state is
something else than dead state, which is not the case thus we never call
service_set_state() and finally unit_notify() where we would have added
job to the run queue.

Thanks to Michal Sekletar <msekl...@redhat.com> for the original patch.
---
 src/core/job.c |    3 +++
 1 file changed, 3 insertions(+)

--- src/core/job.c
+++ src/core/job.c      2014-05-12 12:58:30.354235531 +0000
@@ -1057,6 +1057,9 @@ int job_coldplug(Job *j) {
         if (j->timer_event_source)
                 j->timer_event_source = 
sd_event_source_unref(j->timer_event_source);
 
+        if (j->state == JOB_WAITING)
+                job_add_to_run_queue(j);
+
         r = sd_event_add_monotonic(j->manager->event, &j->timer_event_source, 
j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j);
         if (r < 0)
                 log_debug("Failed to restart timeout for job: %s", 
strerror(-r));
++++++ 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch ++++++
>From 0c9d8f1d4b5018199cb5a9b57580dc1480a7f915 Mon Sep 17 00:00:00 2001
From: Jani Nikula <jani.nik...@intel.com>
Date: Wed, 7 May 2014 12:01:01 +0300
Subject: [PATCH] backlight: handle saved brightness exceeding max brightness

If too high a brightness value has been saved (e.g. due to kernel
mechanism changing from one kernel version to another, or booting the
userspace on another system), the brightness update fails and the
process exits.

Clamp saved brightness between the policy minimum introduced in

commit 7b909d7407965c03caaba30daae7aee113627a83
Author: Josh Triplett <j...@joshtriplett.org>
Date:   Tue Mar 11 21:16:33 2014 -0700

    backlight: Avoid restoring brightness to an unreadably dim level

and the absolute maximum.

https://bugs.freedesktop.org/show_bug.cgi?id=78200
---
 src/backlight/backlight.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git src/backlight/backlight.c src/backlight/backlight.c
index c708391..691472c 100644
--- src/backlight/backlight.c
+++ src/backlight/backlight.c
@@ -229,7 +229,7 @@ static unsigned get_max_brightness(struct udev_device 
*device) {
  * would otherwise force the user to disable state restoration. */
 static void clamp_brightness(struct udev_device *device, char **value, 
unsigned max_brightness) {
         int r;
-        unsigned brightness, new_brightness;
+        unsigned brightness, new_brightness, min_brightness;
 
         r = safe_atou(*value, &brightness);
         if (r < 0) {
@@ -237,7 +237,8 @@ static void clamp_brightness(struct udev_device *device, 
char **value, unsigned
                 return;
         }
 
-        new_brightness = MAX3(brightness, 1U, max_brightness/20);
+        min_brightness = MAX(1U, max_brightness/20);
+        new_brightness = CLAMP(brightness, min_brightness, max_brightness);
         if (new_brightness != brightness) {
                 char *old_value = *value;
 
@@ -247,7 +248,11 @@ static void clamp_brightness(struct udev_device *device, 
char **value, unsigned
                         return;
                 }
 
-                log_debug("Saved brightness %s too low; increasing to %s.", 
old_value, *value);
+                log_info("Saved brightness %s %s to %s.", old_value,
+                         new_brightness > brightness ?
+                         "too low; increasing" : "too high; decreasing",
+                         *value);
+
                 free(old_value);
         }
 }
-- 
1.7.9.2

++++++ 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch ++++++
Based on 1727a595225132eb73ec134b6979d9c713b42e8c Mon Sep 17 00:00:00 2001
From: Michael Marineau <michael.marin...@coreos.com>
Date: Mon, 12 May 2014 09:26:16 +0200
Subject: [PATCH] job: always add waiting jobs to run queue during coldplug

commit 20a83d7bf was not equivalent to the original bug fix proposed by
Michal Sekletar <msekl...@redhat.com>. The committed version only added
the job to the run queue if the job had a timeout, which most jobs do
not have. Just re-ordering the code gets us the intended functionality
---
 src/core/job.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- src/core/job.c
+++ src/core/job.c      2014-05-12 13:11:24.918735646 +0000
@@ -1051,15 +1051,15 @@ int job_coldplug(Job *j) {
 
         assert(j);
 
+        if (j->state == JOB_WAITING)
+                job_add_to_run_queue(j);
+
         if (j->begin_usec == 0 || j->unit->job_timeout == 0)
                 return 0;
 
         if (j->timer_event_source)
                 j->timer_event_source = 
sd_event_source_unref(j->timer_event_source);
 
-        if (j->state == JOB_WAITING)
-                job_add_to_run_queue(j);
-
         r = sd_event_add_monotonic(j->manager->event, &j->timer_event_source, 
j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j);
         if (r < 0)
                 log_debug("Failed to restart timeout for job: %s", 
strerror(-r));
++++++ 1014-udev-update-net_id-comments.patch ++++++
>From d4b687c96adf207f0878aebf3ce3371f6160687f Mon Sep 17 00:00:00 2001
From: Kay Sievers <k...@vrfy.org>
Date: Thu, 27 Mar 2014 15:30:09 +0100
Subject: [PATCH] udev: update net_id comments

Signed-off-by: Robert Milasan <rmila...@suse.com>
---
 src/udev/udev-builtin-net_id.c | 31 +++++++++++++++----------------
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
index 4f2b2c1..9ac07de 100644
--- a/src/udev/udev-builtin-net_id.c
+++ b/src/udev/udev-builtin-net_id.c
@@ -33,8 +33,11 @@
  *   ww -- wwan
  *
  * Type of names:
+ *   b<number>                             -- BCMA bus core number
+ *   ccw<name>                             -- CCW bus group name
  *   o<index>                              -- on-board device index number
  *   s<slot>[f<function>][d<dev_id>]       -- hotplug slot index number
+ *   v<number>                             -- virtio number
  *   x<MAC>                                -- MAC address
  *   [P<domain>]p<bus>s<slot>[f<function>][d<dev_id>]
  *                                         -- PCI geographical location
@@ -119,12 +122,9 @@ struct netnames {
         const char *pci_onboard_label;
 
         char usb_ports[IFNAMSIZ];
-
         char bcma_core[IFNAMSIZ];
-
-        char virtio_core[IFNAMSIZ];
-
-        char ccw_core[IFNAMSIZ];
+        char virtio[IFNAMSIZ];
+        char ccw_group[IFNAMSIZ];
 };
 
 /* retrieve on-board index number and label from firmware */
@@ -353,18 +353,17 @@ static int names_bcma(struct udev_device *dev, struct 
netnames *names) {
 
 static int names_virtio(struct udev_device *dev, struct netnames *names) {
         struct udev_device *virtdev;
-        unsigned int core;
+        unsigned int num;
 
         virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", 
NULL);
         if (!virtdev)
                 return -ENOENT;
 
-        /* core num */
-        if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &core) != 1)
+        if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1)
                 return -EINVAL;
-        /* suppress the common core == 0 */
-        if (core > 0)
-                snprintf(names->virtio_core, sizeof(names->virtio_core), 
"v%u", core);
+        /* suppress the common num == 0 */
+        if (num > 0)
+                snprintf(names->virtio, sizeof(names->virtio), "v%u", num);
 
         names->type = NET_VIRTIO;
         return 0;
@@ -402,8 +401,8 @@ static int names_ccw(struct  udev_device *dev, struct 
netnames *names) {
                 return -EINVAL;
 
         /* Store the CCW bus-ID for use as network device name */
-        rc = snprintf(names->ccw_core, sizeof(names->ccw_core), "ccw%s", 
bus_id);
-        if (rc >= 0 && rc < (int)sizeof(names->ccw_core))
+        rc = snprintf(names->ccw_group, sizeof(names->ccw_group), "ccw%s", 
bus_id);
+        if (rc >= 0 && rc < (int)sizeof(names->ccw_group))
                 names->type = NET_CCWGROUP;
         return 0;
 }
@@ -517,7 +516,7 @@ static int builtin_net_id(struct udev_device *dev, int 
argc, char *argv[], bool
         if (err >= 0 && names.type == NET_CCWGROUP) {
                 char str[IFNAMSIZ];
 
-                if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_core) 
< (int)sizeof(str))
+                if (snprintf(str, sizeof(str), "%s%s", prefix, 
names.ccw_group) < (int)sizeof(str))
                         udev_builtin_add_property(dev, test, 
"ID_NET_NAME_PATH", str);
                 goto out;
         }
@@ -585,11 +584,11 @@ static int builtin_net_id(struct udev_device *dev, int 
argc, char *argv[], bool
                 char str[IFNAMSIZ];
 
                 if (names.pci_path[0])
-                        if (snprintf(str, sizeof(str), "%s%s%s", prefix, 
names.pci_path, names.virtio_core) < (int)sizeof(str))
+                        if (snprintf(str, sizeof(str), "%s%s%s", prefix, 
names.pci_path, names.virtio) < (int)sizeof(str))
                                 udev_builtin_add_property(dev, test, 
"ID_NET_NAME_PATH", str);
 
                 if (names.pci_slot[0])
-                        if (snprintf(str, sizeof(str), "%s%s%s", prefix, 
names.pci_slot, names.virtio_core) < (int)sizeof(str))
+                        if (snprintf(str, sizeof(str), "%s%s%s", prefix, 
names.pci_slot, names.virtio) < (int)sizeof(str))
                                 udev_builtin_add_property(dev, test, 
"ID_NET_NAME_SLOT", str);
                 goto out;
         }
-- 
1.8.4.5

++++++ 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch ++++++
>From bf81e792f3c0aed54edf004c1c95cc6f6d81d0ee Mon Sep 17 00:00:00 2001
From: Tom Gundersen <t...@jklm.no>
Date: Thu, 27 Mar 2014 21:47:14 +0100
Subject: [PATCH] udev: persistent naming - we cannot use virtio numbers as
 they are not stable

This reverts commit 8741f2defaf26aafe5ee0fd29954cfdf84ee519c: 'Add virtio-blk 
support to path_id' and
commit e3d563346c4237af23335cc6904e0662efdf62ad: 'udev: net_id - handle virtio 
buses'.

Distros may want to take note of this, as it changes behavior.

Signed-off-by: Robert Milasan <rmila...@suse.com>
---
 src/udev/udev-builtin-net_id.c  | 36 ------------------------------------
 src/udev/udev-builtin-path_id.c |  3 ---
 2 files changed, 39 deletions(-)

Index: systemd-210/src/udev/udev-builtin-net_id.c
===================================================================
--- systemd-210.orig/src/udev/udev-builtin-net_id.c
+++ systemd-210/src/udev/udev-builtin-net_id.c
@@ -37,7 +37,6 @@
  *   ccw<name>                             -- CCW bus group name
  *   o<index>                              -- on-board device index number
  *   s<slot>[f<function>][d<dev_id>]       -- hotplug slot index number
- *   v<number>                             -- virtio number
  *   x<MAC>                                -- MAC address
  *   [P<domain>]p<bus>s<slot>[f<function>][d<dev_id>]
  *                                         -- PCI geographical location
@@ -123,7 +122,6 @@ struct netnames {
 
         char usb_ports[IFNAMSIZ];
         char bcma_core[IFNAMSIZ];
-        char virtio[IFNAMSIZ];
         char ccw_group[IFNAMSIZ];
 };
 
@@ -351,24 +349,6 @@ static int names_bcma(struct udev_device
         return 0;
 }
 
-static int names_virtio(struct udev_device *dev, struct netnames *names) {
-        struct udev_device *virtdev;
-        unsigned int num;
-
-        virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", 
NULL);
-        if (!virtdev)
-                return -ENOENT;
-
-        if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1)
-                return -EINVAL;
-        /* suppress the common num == 0 */
-        if (num > 0)
-                snprintf(names->virtio, sizeof(names->virtio), "v%u", num);
-
-        names->type = NET_VIRTIO;
-        return 0;
-}
-
 static int names_ccw(struct  udev_device *dev, struct netnames *names) {
         struct udev_device *cdev;
         const char *bus_id;
@@ -577,22 +557,6 @@ static int builtin_net_id(struct udev_de
                                 udev_builtin_add_property(dev, test, 
"ID_NET_NAME_SLOT", str);
                 goto out;
         }
-
-        /* virtio bus */
-        err = names_virtio(dev, &names);
-        if (err >= 0 && names.type == NET_VIRTIO) {
-                char str[IFNAMSIZ];
-
-                if (names.pci_path[0])
-                        if (snprintf(str, sizeof(str), "%s%s%s", prefix, 
names.pci_path, names.virtio) < (int)sizeof(str))
-                                udev_builtin_add_property(dev, test, 
"ID_NET_NAME_PATH", str);
-
-                if (names.pci_slot[0])
-                        if (snprintf(str, sizeof(str), "%s%s%s", prefix, 
names.pci_slot, names.virtio) < (int)sizeof(str))
-                                udev_builtin_add_property(dev, test, 
"ID_NET_NAME_SLOT", str);
-                goto out;
-        }
-
 out:
         return EXIT_SUCCESS;
 }
Index: systemd-210/src/udev/udev-builtin-path_id.c
===================================================================
--- systemd-210.orig/src/udev/udev-builtin-path_id.c
+++ systemd-210/src/udev/udev-builtin-path_id.c
@@ -571,9 +571,6 @@ static int builtin_path_id(struct udev_d
                 } else if (streq(subsys, "xen")) {
                         path_prepend(&path, "xen-%s", 
udev_device_get_sysname(parent));
                         parent = skip_subsystem(parent, "xen");
-                } else if (streq(subsys, "virtio")) {
-                        path_prepend(&path, "virtio-pci-%s", 
udev_device_get_sysname(parent));
-                        parent = skip_subsystem(parent, "virtio");
                 } else if (streq(subsys, "scm")) {
                         path_prepend(&path, "scm-%s", 
udev_device_get_sysname(parent));
                         parent = skip_subsystem(parent, "scm");
++++++ log-target-null-instead-kmsg.patch ++++++
---
 src/journal/journald-kmsg.c |   16 +++++++++++++++-
 src/libudev/libudev-util.c  |   16 +++++++++++++++-
 src/shared/log.c            |   16 +++++++++++++++-
 src/shared/util.c           |    6 +++++-
 4 files changed, 50 insertions(+), 4 deletions(-)

--- systemd-210/src/journal/journald-kmsg.c
+++ systemd-210/src/journal/journald-kmsg.c     2014-05-09 07:35:02.880122386 
+0000
@@ -391,12 +391,26 @@
         return server_read_dev_kmsg(s);
 }
 
+static int parse_proc_cmdline_word(const char *word) {
+        int r;
+
+        if (streq(word, "systemd.log_target=null"))
+                return -115;
+
+        return 0;
+}
+
 int server_open_dev_kmsg(Server *s) {
         int r;
 
         assert(s);
 
-        s->dev_kmsg_fd = open("/dev/kmsg", 
O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
+        if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) {
+                s->dev_kmsg_fd = open("/dev/null", 
O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
+        } else {
+                s->dev_kmsg_fd = open("/dev/kmsg", 
O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
+        }
+
         if (s->dev_kmsg_fd < 0) {
                 log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING,
                          "Failed to open /dev/kmsg, ignoring: %m");
--- systemd-210/src/libudev/libudev-util.c
+++ systemd-210/src/libudev/libudev-util.c      2014-05-09 07:35:28.304122530 
+0000
@@ -416,6 +416,15 @@
         return bits;
 }
 
+static int parse_proc_cmdline_word(const char *word) {
+        int r;
+
+        if (streq(word, "systemd.log_target=null"))
+                return -115;
+
+        return 0;
+}
+
 ssize_t print_kmsg(const char *fmt, ...)
 {
         _cleanup_close_ int fd = -1;
@@ -424,7 +433,12 @@
         ssize_t len;
         ssize_t ret;
 
-        fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC);
+        if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) {
+                fd = open("/dev/null", O_WRONLY|O_NOCTTY|O_CLOEXEC);
+        } else {
+                fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC);
+        }
+
         if (fd < 0)
                 return -errno;
 
--- systemd-210/src/shared/log.c
+++ systemd-210/src/shared/log.c        2014-05-09 07:35:52.900122669 +0000
@@ -92,12 +92,26 @@
         kmsg_fd = -1;
 }
 
+static int parse_proc_cmdline_word(const char *word) {
+        int r;
+
+        if (streq(word, "systemd.log_target=null"))
+                return -115;
+
+        return 0;
+}
+
 static int log_open_kmsg(void) {
 
         if (kmsg_fd >= 0)
                 return 0;
 
-        kmsg_fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC);
+        if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) {
+                kmsg_fd = open("/dev/null", O_WRONLY|O_NOCTTY|O_CLOEXEC);
+        } else {
+                kmsg_fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC);
+        }
+
         if (kmsg_fd < 0)
                 return -errno;
 
--- systemd-210/src/shared/util.c
+++ systemd-210/src/shared/util.c       2014-05-09 08:51:55.436148462 +0000
@@ -5975,7 +5975,11 @@
 
                 r = parse_word(word);
                 if (r < 0) {
-                        log_error("Failed on cmdline argument %s: %s", word, 
strerror(-r));
+                        if (r == -115) {
+                                log_error("Warning: %s set, redirecting 
messages to /dev/null.", word);
+                        } else {
+                                log_error("Failed on cmdline argument %s: %s", 
word, strerror(-r));
+                        }
                         return r;
                 }
         }
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to