From c14a1e98d3adbdebd5ca5a11603ded60eeb3786fd6c979a53f8807367ec2defc Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 26 Jul 2014 10:19:44 +0000 Subject: [PATCH] Accepting request 242359 from Base:System - Disable blkrrpart for SLES12 and below - Add upstream patch 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch - Add with condition blkrrpart to be able to disable the patches 1025, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1037, and 1054 which uses the BLKRRPART ioctl for e.g. synthesize change events which may interfere with other tools like parted. - Update handle-disable_caplock-and-compose_table-and-kbd_rate.patch, handle-numlock-value-in-etc-sysconfig-keyboard.patch: read /etc/vconsole.conf after /etc/sysconfig/(keyboard,console) otherwise empty value in /etc/sysconfig/keyboard might override /etc/vconsole.conf values. - Update : 0001-journal-compress-return-early-in-uncompress_startswi.patch 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch 0002-vconsole-setup-run-setfont-before-loadkeys.patch 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch apply-ACL-for-nvidia-device-nodes.patch keep-crypt-password-prompt.patch log-target-null-instead-kmsg.patch parse-crypttab-for-noauto-option.patch set-and-use-default-logconsole.patch: fix all warnings in code - Remove 0001-compress-fix-return-value.patch: not relevant to systemd v210 code. - Also change udev-generate-peristent-rule to udev-generate-persistent-rule OBS-URL: https://build.opensuse.org/request/show/242359 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=195 --- 0001-compress-fix-return-value.patch | 34 ------- ...core-close-socket-fds-asynchronously.patch | 21 ++++- ...-return-early-in-uncompress_startswi.patch | 34 ++++--- ...der-tabs-special-in-string_has_cc-an.patch | 53 ++++------- ...le-setup-run-setfont-before-loadkeys.patch | 93 ++++++++++--------- ...der-failure-when-reading-drop-ins-fa.patch | 30 +++--- ...fsck-implementation-linked-to-bin-tr.patch | 22 ++++- ...from-block-device-ownership-event-lo.patch | 53 +++++++++++ apply-ACL-for-nvidia-device-nodes.patch | 12 ++- ...plock-and-compose_table-and-kbd_rate.patch | 60 ++++++------ ...lock-value-in-etc-sysconfig-keyboard.patch | 58 +++++++----- keep-crypt-password-prompt.patch | 14 +-- log-target-null-instead-kmsg.patch | 40 ++++---- parse-crypttab-for-noauto-option.patch | 19 ++-- set-and-use-default-logconsole.patch | 28 +++--- systemd-mini.changes | 52 ++++++++++- systemd-mini.spec | 30 ++++-- systemd.changes | 52 ++++++++++- systemd.spec | 30 ++++-- ...ule.sh => udev-generate-persistent-rule.sh | 0 20 files changed, 467 insertions(+), 268 deletions(-) delete mode 100644 0001-compress-fix-return-value.patch create mode 100644 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch rename udev-generate-peristent-rule.sh => udev-generate-persistent-rule.sh (100%) diff --git a/0001-compress-fix-return-value.patch b/0001-compress-fix-return-value.patch deleted file mode 100644 index b2e03c27..00000000 --- a/0001-compress-fix-return-value.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 01c3322e017989d25f7b4b51268245d5315ae678 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -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 - diff --git a/0001-core-close-socket-fds-asynchronously.patch b/0001-core-close-socket-fds-asynchronously.patch index b94b3802..90649f90 100644 --- a/0001-core-close-socket-fds-asynchronously.patch +++ b/0001-core-close-socket-fds-asynchronously.patch @@ -9,8 +9,10 @@ http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html src/core/service.c | 5 +++-- 2 files changed, 27 insertions(+), 2 deletions(-) ---- src/core/service.c -+++ src/core/service.c 2014-05-16 11:41:50.150735247 +0000 +Index: src/core/service.c +=================================================================== +--- src/core/service.c.orig ++++ src/core/service.c @@ -25,6 +25,7 @@ #include #include @@ -37,8 +39,10 @@ http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html s->socket_fd = fdset_remove(fds, fd); } } else if (streq(key, "main-exec-status-pid")) { ---- src/core/async.c -+++ src/core/async.c 2014-05-07 09:40:35.000000000 +0000 +Index: src/core/async.c +=================================================================== +--- src/core/async.c.orig ++++ src/core/async.c @@ -24,6 +24,7 @@ #include "async.h" @@ -74,3 +78,12 @@ http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html + + return -1; +} +Index: src/core/async.h +=================================================================== +--- src/core/async.h.orig ++++ src/core/async.h +@@ -23,3 +23,4 @@ + + int asynchronous_job(void* (*func)(void *p), void *arg); + int asynchronous_sync(void); ++int asynchronous_close(int fd); diff --git a/0001-journal-compress-return-early-in-uncompress_startswi.patch b/0001-journal-compress-return-early-in-uncompress_startswi.patch index 55476789..74777205 100644 --- a/0001-journal-compress-return-early-in-uncompress_startswi.patch +++ b/0001-journal-compress-return-early-in-uncompress_startswi.patch @@ -11,9 +11,19 @@ Reallocation policy was also strange. src/journal/compress.c | 91 ++++++++++++++----------------------------------- 1 file changed, 27 insertions(+), 64 deletions(-) ---- src/journal/compress.c -+++ src/journal/compress.c 2014-07-09 00:00:00.000000000 +0000 -@@ -69,10 +69,9 @@ fail: +Index: src/journal/compress.c +=================================================================== +--- src/journal/compress.c.orig ++++ src/journal/compress.c +@@ -25,6 +25,7 @@ + #include + + #include "macro.h" ++#include "util.h" + #include "compress.h" + + bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { +@@ -69,10 +70,9 @@ fail: bool uncompress_blob(const void *src, uint64_t src_size, void **dst, uint64_t *dst_alloc_size, uint64_t* dst_size, uint64_t dst_max) { @@ -25,7 +35,7 @@ Reallocation policy was also strange. assert(src); assert(src_size > 0); -@@ -85,26 +84,18 @@ bool uncompress_blob(const void *src, ui +@@ -85,26 +85,18 @@ bool uncompress_blob(const void *src, ui if (ret != LZMA_OK) return false; @@ -40,7 +50,7 @@ Reallocation policy was also strange. - *dst_alloc_size = src_size*2; - } + space = MIN(src_size * 2, dst_max ?: (uint64_t) -1); -+ if (!greedy_realloc(dst, dst_alloc_size, space, 1)) ++ if (!greedy_realloc(dst, dst_alloc_size, space)) + return false; s.next_in = src; @@ -56,7 +66,7 @@ Reallocation policy was also strange. ret = lzma_code(&s, LZMA_FINISH); -@@ -112,31 +103,25 @@ bool uncompress_blob(const void *src, ui +@@ -112,31 +104,25 @@ bool uncompress_blob(const void *src, ui break; if (ret != LZMA_OK) @@ -78,7 +88,7 @@ Reallocation policy was also strange. - space *= 2; + used = space - s.avail_out; + space = MIN(2 * space, dst_max ?: (uint64_t) -1); -+ if (!greedy_realloc(dst, dst_alloc_size, space, 1)) ++ if (!greedy_realloc(dst, dst_alloc_size, space)) + return false; - *dst = p; @@ -98,7 +108,7 @@ Reallocation policy was also strange. } bool uncompress_startswith(const void *src, uint64_t src_size, -@@ -144,9 +129,8 @@ bool uncompress_startswith(const void *s +@@ -144,9 +130,8 @@ bool uncompress_startswith(const void *s const void *prefix, uint64_t prefix_len, uint8_t extra) { @@ -109,7 +119,7 @@ Reallocation policy was also strange. /* Checks whether the uncompressed blob starts with the * mentioned prefix. The byte extra needs to follow the -@@ -163,16 +147,8 @@ bool uncompress_startswith(const void *s +@@ -163,16 +148,8 @@ bool uncompress_startswith(const void *s if (ret != LZMA_OK) return false; @@ -123,12 +133,12 @@ Reallocation policy was also strange. - *buffer = p; - *buffer_size = prefix_len*2; - } -+ if (!(greedy_realloc(buffer, buffer_size, prefix_len + 1, 1))) ++ if (!(greedy_realloc(buffer, buffer_size, prefix_len + 1))) + return false; s.next_in = src; s.avail_in = src_size; -@@ -181,36 +157,23 @@ bool uncompress_startswith(const void *s +@@ -181,36 +158,23 @@ bool uncompress_startswith(const void *s s.avail_out = *buffer_size; for (;;) { @@ -167,7 +177,7 @@ Reallocation policy was also strange. - -fail: - lzma_end(&s); -+ if (!(greedy_realloc(buffer, buffer_size, *buffer_size * 2, 1))) ++ if (!(greedy_realloc(buffer, buffer_size, *buffer_size * 2))) + return false; - return b; diff --git a/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch b/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch index aeb7ab26..7dd59ed5 100644 --- a/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch +++ b/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch @@ -12,11 +12,11 @@ Instead, take a list of exceptions to our usual CC check src/shared/util.h | 5 +++-- 5 files changed, 18 insertions(+), 15 deletions(-) -diff --git src/hostname/hostnamed.c src/hostname/hostnamed.c -index 14629dd..514554d 100644 ---- src/hostname/hostnamed.c +Index: src/hostname/hostnamed.c +=================================================================== +--- src/hostname/hostnamed.c.orig +++ src/hostname/hostnamed.c -@@ -550,8 +550,7 @@ static int set_machine_info(Context *c, sd_bus *bus, sd_bus_message *m, int prop +@@ -507,8 +507,7 @@ static int set_machine_info(Context *c, if (prop == PROP_ICON_NAME && !filename_is_safe(name)) return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid icon name '%s'", name); @@ -26,9 +26,9 @@ index 14629dd..514554d 100644 return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid pretty host name '%s'", name); if (prop == PROP_CHASSIS && !valid_chassis(name)) return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid chassis '%s'", name); -diff --git src/shared/env-util.c src/shared/env-util.c -index b2e4553..20b208f 100644 ---- src/shared/env-util.c +Index: src/shared/env-util.c +=================================================================== +--- src/shared/env-util.c.orig +++ src/shared/env-util.c @@ -78,7 +78,9 @@ bool env_value_is_valid(const char *e) { if (!utf8_is_valid(e)) @@ -41,11 +41,11 @@ index b2e4553..20b208f 100644 return false; /* POSIX says the overall size of the environment block cannot -diff --git src/shared/fileio.c src/shared/fileio.c -index fb1c1bc..b1de590 100644 ---- src/shared/fileio.c +Index: src/shared/fileio.c +=================================================================== +--- src/shared/fileio.c.orig +++ src/shared/fileio.c -@@ -738,7 +738,7 @@ static void write_env_var(FILE *f, const char *v) { +@@ -658,7 +658,7 @@ static void write_env_var(FILE *f, const p++; fwrite(v, 1, p-v, f); @@ -54,11 +54,11 @@ index fb1c1bc..b1de590 100644 fputc('\"', f); for (; *p; p++) { -diff --git src/shared/util.c src/shared/util.c -index d25ee66..d223ecf 100644 ---- src/shared/util.c +Index: src/shared/util.c +=================================================================== +--- src/shared/util.c.orig +++ src/shared/util.c -@@ -5350,16 +5350,14 @@ bool filename_is_safe(const char *p) { +@@ -5466,16 +5466,14 @@ bool filename_is_safe(const char *p) { bool string_is_safe(const char *p) { const char *t; @@ -78,7 +78,7 @@ index d25ee66..d223ecf 100644 return false; } -@@ -5367,16 +5365,19 @@ bool string_is_safe(const char *p) { +@@ -5483,16 +5481,19 @@ bool string_is_safe(const char *p) { } /** @@ -102,21 +102,11 @@ index d25ee66..d223ecf 100644 return true; if (*t == 127) -diff --git src/shared/util.h src/shared/util.h -index e23069c..8544940 100644 ---- src/shared/util.h +Index: src/shared/util.h +=================================================================== +--- src/shared/util.h.orig +++ src/shared/util.h -@@ -382,7 +382,8 @@ bool fstype_is_network(const char *fstype); - int chvt(int vt); - - int read_one_char(FILE *f, char *ret, usec_t timeout, bool *need_nl); --int ask(char *ret, const char *replies, const char *text, ...) _printf_(3, 4); -+int ask_char(char *ret, const char *replies, const char *text, ...) _printf_(3, 4); -+int ask_string(char **ret, const char *text, ...) _printf_(2, 3); - - int reset_terminal_fd(int fd, bool switch_to_text); - int reset_terminal(const char *name); -@@ -692,7 +693,7 @@ _alloc_(2, 3) static inline void *memdup_multiply(const void *p, size_t a, size_ +@@ -652,7 +652,7 @@ _alloc_(2, 3) static inline void *memdup bool filename_is_safe(const char *p) _pure_; bool path_is_safe(const char *p) _pure_; bool string_is_safe(const char *p) _pure_; @@ -125,6 +115,3 @@ index e23069c..8544940 100644 /** * Check if a string contains any glob patterns. --- -1.7.9.2 - diff --git a/0002-vconsole-setup-run-setfont-before-loadkeys.patch b/0002-vconsole-setup-run-setfont-before-loadkeys.patch index dab9f876..7ef05c2d 100644 --- a/0002-vconsole-setup-run-setfont-before-loadkeys.patch +++ b/0002-vconsole-setup-run-setfont-before-loadkeys.patch @@ -16,8 +16,10 @@ in the original commit the keymap_load() follows. src/vconsole/vconsole-setup.c | 93 +++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 46 deletions(-) ---- src/vconsole/vconsole-setup.c -+++ src/vconsole/vconsole-setup.c 2014-07-07 12:30:27.390235226 +0000 +Index: src/vconsole/vconsole-setup.c +=================================================================== +--- src/vconsole/vconsole-setup.c.orig ++++ src/vconsole/vconsole-setup.c @@ -340,23 +340,20 @@ static int set_kbd_rate(const char *vc, int main(int argc, char **argv) { @@ -66,14 +68,10 @@ in the original commit the keymap_load() follows. } utf8 = is_locale_utf8(); -@@ -464,61 +461,65 @@ int main(int argc, char **argv) { - } else - #endif - numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); -- - #endif +@@ -464,58 +461,62 @@ int main(int argc, char **argv) { + if (r < 0 && r != -ENOENT) + log_warning("Failed to read /proc/cmdline: %s", strerror(-r)); } - +#ifdef HAVE_SYSV_COMPAT +finish: + r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid); @@ -81,81 +79,84 @@ in the original commit the keymap_load() follows. + log_error("Failed to start /bin/kbdrate: %s", strerror(-r)); + return EXIT_FAILURE; + } -+#endif + ++ if (kbd_rate_pid > 0) ++ wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); ++#endif + if (utf8) enable_utf8(fd); else disable_utf8(fd); - r = EXIT_FAILURE; +- +- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && +-#ifdef HAVE_SYSV_COMPAT +- load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && +- set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && +-#endif +- font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) +- r = EXIT_SUCCESS; + r = font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid); + if (r < 0) { + log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); + return EXIT_FAILURE; + } -+ + +-finish: +- if (keymap_pid > 0) +- wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); +- if (numlock) +- touch("/run/numlock-on"); +- else +- unlink("/run/numlock-on"); + if (font_pid > 0) + wait_for_terminate_and_warn(KBD_SETFONT, font_pid); -- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && #ifdef HAVE_SYSV_COMPAT -- load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && -- set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && + r = load_compose_table(vc, vc_compose_table, &compose_table_pid); + if (r < 0) { -+ log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); -+ return EXIT_FAILURE; -+ } -+ -+ if (compose_table_pid > 0) -+ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); - #endif -- font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) -- r = EXIT_SUCCESS; - --finish: -+ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); -+ if (r < 0) { + log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); + return EXIT_FAILURE; + } + - if (keymap_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); -+ -+#ifdef HAVE_SYSV_COMPAT - if (numlock) - touch("/run/numlock-on"); - else - unlink("/run/numlock-on"); - --#ifdef HAVE_SYSV_COMPAT -- if (compose_table_pid > 0) -- wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); + if (compose_table_pid > 0) + wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); - - if (kbd_rate_pid > 0) - wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); +- if (kbd_rate_pid > 0) +- wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); #endif - if (font_pid > 0) { - wait_for_terminate_and_warn(KBD_SETFONT, font_pid); - if (font_copy) - font_copy_to_all_vcs(fd); -- } -- ++ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); ++ if (r < 0) { ++ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); ++ return EXIT_FAILURE; + } + - free(vc_keymap); - free(vc_font); - free(vc_font_map); - free(vc_font_unimap); - free(vc_kbd_numlock); --#ifdef HAVE_SYSV_COMPAT ++ if (keymap_pid > 0) ++ wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); ++ + #ifdef HAVE_SYSV_COMPAT - free(vc_kbd_delay); - free(vc_kbd_rate); - free(vc_kbd_disable_caps_lock); - free(vc_compose_table); --#endif -- ++ if (numlock) ++ touch("/run/numlock-on"); ++ else ++ unlink("/run/numlock-on"); + #endif + - if (fd >= 0) - close_nointr_nofail(fd); + /* Only copy the font when we started setfont successfully */ diff --git a/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch b/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch index 5ee22e2c..74a3f0e8 100644 --- a/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch +++ b/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch @@ -9,9 +9,9 @@ if we can't, complain if we cannot, but don't fail. src/core/load-dropin.c | 42 +++++++++++++----------------------------- 1 file changed, 13 insertions(+), 29 deletions(-) -diff --git src/core/load-dropin.c src/core/load-dropin.c -index 546e560..f2ffc97 100644 ---- src/core/load-dropin.c +Index: src/core/load-dropin.c +=================================================================== +--- src/core/load-dropin.c.orig +++ src/core/load-dropin.c @@ -58,6 +58,7 @@ static int iterate_dir( if (errno == ENOENT) @@ -21,16 +21,15 @@ index 546e560..f2ffc97 100644 return -errno; } -@@ -101,7 +102,7 @@ static int process_dir( +@@ -101,7 +102,6 @@ static int process_dir( char ***strv) { _cleanup_free_ char *path = NULL; - int r; -+ int r, q; assert(u); assert(unit_path); -@@ -112,11 +113,8 @@ static int process_dir( +@@ -112,11 +112,8 @@ static int process_dir( if (!path) return log_oom(); @@ -44,7 +43,7 @@ index 546e560..f2ffc97 100644 if (u->instance) { _cleanup_free_ char *template = NULL, *p = NULL; -@@ -130,11 +128,8 @@ static int process_dir( +@@ -130,11 +127,8 @@ static int process_dir( if (!p) return log_oom(); @@ -58,7 +57,7 @@ index 546e560..f2ffc97 100644 } return 0; -@@ -152,12 +147,8 @@ char **unit_find_dropin_paths(Unit *u) { +@@ -152,12 +146,8 @@ char **unit_find_dropin_paths(Unit *u) { SET_FOREACH(t, u->names, i) { char **p; @@ -73,7 +72,15 @@ index 546e560..f2ffc97 100644 } if (strv_isempty(strv)) -@@ -186,13 +177,8 @@ int unit_load_dropin(Unit *u) { +@@ -176,7 +166,6 @@ char **unit_find_dropin_paths(Unit *u) { + int unit_load_dropin(Unit *u) { + Iterator i; + char *t, **f; +- int r; + + assert(u); + +@@ -186,13 +175,8 @@ int unit_load_dropin(Unit *u) { char **p; STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { @@ -89,7 +96,7 @@ index 546e560..f2ffc97 100644 } } -@@ -201,11 +187,9 @@ int unit_load_dropin(Unit *u) { +@@ -201,11 +185,9 @@ int unit_load_dropin(Unit *u) { return 0; STRV_FOREACH(f, u->dropin_paths) { @@ -104,6 +111,3 @@ index 546e560..f2ffc97 100644 } u->dropin_mtime = now(CLOCK_REALTIME); --- -1.7.9.2 - diff --git a/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch b/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch index 8c53718c..27bfc4e6 100644 --- a/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch +++ b/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch @@ -9,9 +9,19 @@ Subject: [PATCH] fsck: consider a fsck implementation linked to /bin/true src/shared/path-util.c | 26 +++++++++++++++----------- 2 files changed, 37 insertions(+), 21 deletions(-) ---- src/fsck/fsck.c -+++ src/fsck/fsck.c 2014-06-26 09:19:58.591864710 +0000 -@@ -280,16 +280,28 @@ int main(int argc, char *argv[]) { +Index: src/fsck/fsck.c +=================================================================== +--- src/fsck/fsck.c.orig ++++ src/fsck/fsck.c +@@ -37,6 +37,7 @@ + #include "bus-errors.h" + #include "fileio.h" + #include "udev-util.h" ++#include "path-util.h" + + static bool arg_skip = false; + static bool arg_force = false; +@@ -280,16 +281,28 @@ int main(int argc, char *argv[]) { type = udev_device_get_property_value(udev_device, "ID_FS_TYPE"); if (type) { @@ -50,8 +60,10 @@ Subject: [PATCH] fsck: consider a fsck implementation linked to /bin/true } } ---- src/shared/path-util.c -+++ src/shared/path-util.c 2014-06-26 09:14:15.651559638 +0000 +Index: src/shared/path-util.c +=================================================================== +--- src/shared/path-util.c.orig ++++ src/shared/path-util.c @@ -425,19 +425,21 @@ int path_is_os_tree(const char *path) { int find_binary(const char *name, char **filename) { diff --git a/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch b/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch new file mode 100644 index 00000000..ecf11ad5 --- /dev/null +++ b/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch @@ -0,0 +1,53 @@ +From 2e5b17d01347d3c3118be2b8ad63d20415dbb1f0 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 24 Jul 2014 23:37:35 +0200 +Subject: [PATCH] udev: exclude MD from block device ownership event locking + +MD instantiates devices at open(). This is incomptible with the +locking logic, as the "change" event emitted when stopping a +device will bring it back. +--- + src/udev/udevd.c | 23 +++++++---------------- + 1 file changed, 7 insertions(+), 16 deletions(-) + +diff --git src/udev/udevd.c src/udev/udevd.c +index a45d324..db935d6 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -285,26 +285,17 @@ static void worker_new(struct event *event) + udev_event->exec_delay = exec_delay; + + /* +- * Take a "read lock" on the device node; this establishes ++ * Take a shared lock on the device node; this establishes + * a concept of device "ownership" to serialize device +- * access. External processes holding a "write lock" will ++ * access. External processes holding an exclusive lock will + * cause udev to skip the event handling; in the case udev +- * acquired the lock, the external process will block until ++ * acquired the lock, the external process can block until + * udev has finished its event handling. + */ +- +- /* +- * since we make check - device seems unused - we try +- * ioctl to deactivate - and device is found to be opened +- * sure, you try to take a write lock +- * if you get it udev is out +- * if you can't get it, udev is busy +- * we cannot deactivate openned device (as it is in-use) +- * maybe we should just exclude dm from that thing entirely +- * IMHO this sounds like a good plan for this moment +- */ +- if (streq_ptr("block", udev_device_get_subsystem(dev)) && +- !startswith(udev_device_get_sysname(dev), "dm-")) { ++ if (!streq_ptr(udev_device_get_action(dev), "remove") && ++ streq_ptr("block", udev_device_get_subsystem(dev)) && ++ !startswith(udev_device_get_sysname(dev), "dm-") && ++ !startswith(udev_device_get_sysname(dev), "md")) { + struct udev_device *d = dev; + + if (streq_ptr("partition", udev_device_get_devtype(d))) +-- +1.7.9.2 + diff --git a/apply-ACL-for-nvidia-device-nodes.patch b/apply-ACL-for-nvidia-device-nodes.patch index f17d6ede..d151032e 100644 --- a/apply-ACL-for-nvidia-device-nodes.patch +++ b/apply-ACL-for-nvidia-device-nodes.patch @@ -7,18 +7,20 @@ set ACL on nvidia devices (bnc#808319). logind-acl.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) ---- systemd-209/src/login/logind-acl.c -+++ systemd-209/src/login/logind-acl.c 2014-02-28 17:27:51.806239118 +0000 +Index: systemd-210/src/login/logind-acl.c +=================================================================== +--- systemd-210.orig/src/login/logind-acl.c ++++ systemd-210/src/login/logind-acl.c @@ -283,5 +283,17 @@ int devnode_acl_all(struct udev *udev, r = k; } + /* only apply ACL on nvidia* if /dev/nvidiactl exists */ + if (devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid) >= 0) { -+ int i; -+ for (i = 0; i <= 256 ; i++) { ++ int j; ++ for (j = 0; j <= 256 ; j++) { + _cleanup_free_ char *devname = NULL; -+ if (asprintf(&devname, "/dev/nvidia%d", i) < 0) ++ if (asprintf(&devname, "/dev/nvidia%d", j) < 0) + break; + if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) + break; diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index a6193b65..96213505 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -7,8 +7,10 @@ Subject: handle disable_caplock and compose_table and kbd_rate src/vconsole/vconsole-setup.c | 156 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 153 insertions(+), 3 deletions(-) ---- systemd-206_git201308300826.orig/src/vconsole/vconsole-setup.c -+++ systemd-206_git201308300826/src/vconsole/vconsole-setup.c +Index: systemd-210/src/vconsole/vconsole-setup.c +=================================================================== +--- systemd-210.orig/src/vconsole/vconsole-setup.c ++++ systemd-210/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ #include "macro.h" #include "virt.h" @@ -156,38 +158,36 @@ Subject: handle disable_caplock and compose_table and kbd_rate pid_t font_pid = 0, keymap_pid = 0; bool font_copy = false; int r = EXIT_FAILURE; -@@ -276,13 +382,43 @@ int main(int argc, char **argv) { - log_warning("Failed to read /proc/cmdline: %s", strerror(-r)); - } +@@ -251,6 +357,28 @@ int main(int argc, char **argv) { + + utf8 = is_locale_utf8(); -+ if (r <= 0) { +#ifdef HAVE_SYSV_COMPAT -+ r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, -+ "KEYTABLE", &vc_keymap, -+ "KBD_DELAY", &vc_kbd_delay, -+ "KBD_RATE", &vc_kbd_rate, -+ "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "COMPOSETABLE", &vc_compose_table, -+ NULL); -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r)); ++ r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, ++ "KEYTABLE", &vc_keymap, ++ "KBD_DELAY", &vc_kbd_delay, ++ "KBD_RATE", &vc_kbd_rate, ++ "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "COMPOSETABLE", &vc_compose_table, ++ NULL); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r)); + -+ r = parse_env_file("/etc/sysconfig/console", NEWLINE, -+ "CONSOLE_FONT", &vc_font, -+ "CONSOLE_SCREENMAP", &vc_font_map, -+ "CONSOLE_UNICODEMAP", &vc_font_unimap, -+ NULL); -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); -+ -+ disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++ r = parse_env_file("/etc/sysconfig/console", NEWLINE, ++ "CONSOLE_FONT", &vc_font, ++ "CONSOLE_SCREENMAP", &vc_font_map, ++ "CONSOLE_UNICODEMAP", &vc_font_unimap, ++ NULL); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); + ++ disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; +#endif -+ } + - if (utf8) - enable_utf8(fd); - else + r = parse_env_file("/etc/vconsole.conf", NEWLINE, + "KEYMAP", &vc_keymap, + "KEYMAP_TOGGLE", &vc_keymap_toggle, +@@ -282,7 +410,12 @@ int main(int argc, char **argv) { disable_utf8(fd); r = EXIT_FAILURE; @@ -201,7 +201,7 @@ Subject: handle disable_caplock and compose_table and kbd_rate font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) r = EXIT_SUCCESS; -@@ -290,6 +426,14 @@ finish: +@@ -290,6 +423,14 @@ finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -216,7 +216,7 @@ Subject: handle disable_caplock and compose_table and kbd_rate if (font_pid > 0) { wait_for_terminate_and_warn(KBD_SETFONT, font_pid); if (font_copy) -@@ -300,6 +444,12 @@ finish: +@@ -300,6 +441,12 @@ finish: free(vc_font); free(vc_font_map); free(vc_font_unimap); diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index 023e66a2..4278436c 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -6,8 +6,10 @@ Authors: Stanislav Brabec Cristian Rodríguez ---- systemd-206_git201308300826.orig/src/vconsole/vconsole-setup.c -+++ systemd-206_git201308300826/src/vconsole/vconsole-setup.c +Index: systemd-210/src/vconsole/vconsole-setup.c +=================================================================== +--- systemd-210.orig/src/vconsole/vconsole-setup.c ++++ systemd-210/src/vconsole/vconsole-setup.c @@ -42,6 +42,10 @@ #include "fileio.h" #include "strv.h" @@ -34,18 +36,18 @@ Cristian Rodríguez pid_t font_pid = 0, keymap_pid = 0; bool font_copy = false; int r = EXIT_FAILURE; -@@ -389,6 +395,7 @@ int main(int argc, char **argv) { - "KBD_DELAY", &vc_kbd_delay, - "KBD_RATE", &vc_kbd_rate, - "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "KBD_NUMLOCK", &vc_kbd_numlock, - "COMPOSETABLE", &vc_compose_table, - NULL); - if (r < 0 && r != -ENOENT) -@@ -403,6 +410,36 @@ int main(int argc, char **argv) { - log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); +@@ -363,6 +369,7 @@ int main(int argc, char **argv) { + "KBD_DELAY", &vc_kbd_delay, + "KBD_RATE", &vc_kbd_rate, + "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "KBD_NUMLOCK", &vc_kbd_numlock, + "COMPOSETABLE", &vc_compose_table, + NULL); + if (r < 0 && r != -ENOENT) +@@ -377,6 +384,36 @@ int main(int argc, char **argv) { + log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); - disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; + disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; +#if defined(__i386__) || defined(__x86_64__) + if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { + int _cleanup_close_ fdmem; @@ -76,10 +78,10 @@ Cristian Rodríguez + } else +#endif + numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); - #endif - } -@@ -425,6 +462,10 @@ int main(int argc, char **argv) { + + r = parse_env_file("/etc/vconsole.conf", NEWLINE, +@@ -422,6 +459,10 @@ int main(int argc, char **argv) { finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -90,7 +92,7 @@ Cristian Rodríguez #ifdef HAVE_SYSV_COMPAT if (compose_table_pid > 0) -@@ -444,6 +485,7 @@ finish: +@@ -441,6 +482,7 @@ finish: free(vc_font); free(vc_font_map); free(vc_font_unimap); @@ -98,9 +100,11 @@ Cristian Rodríguez #ifdef HAVE_SYSV_COMPAT free(vc_kbd_delay); free(vc_kbd_rate); ---- systemd-206_git201308300826.orig/Makefile.am -+++ systemd-206_git201308300826/Makefile.am -@@ -2488,6 +2488,19 @@ dist_udevrules_DATA += \ +Index: systemd-210/Makefile.am +=================================================================== +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2847,6 +2847,19 @@ dist_udevrules_DATA += \ rules/61-accelerometer.rules # ------------------------------------------------------------------------------ @@ -120,8 +124,10 @@ Cristian Rodríguez if ENABLE_GUDEV if ENABLE_GTK_DOC SUBDIRS += \ +Index: systemd-210/rules/73-seat-numlock.rules +=================================================================== --- /dev/null -+++ systemd-206_git201308300826/rules/73-seat-numlock.rules ++++ systemd-210/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of SUSE customization of systemd. +# @@ -131,8 +137,10 @@ Cristian Rodríguez +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" +Index: systemd-210/src/login/numlock-on.c +=================================================================== --- /dev/null -+++ systemd-206_git201308300826/src/login/numlock-on.c ++++ systemd-210/src/login/numlock-on.c @@ -0,0 +1,34 @@ +/* + * numlock-on.c: Turn numlock-on @@ -168,8 +176,10 @@ Cristian Rodríguez + + exit(0); +} ---- systemd-206_git201308300826.orig/units/systemd-vconsole-setup.service.in -+++ systemd-206_git201308300826/units/systemd-vconsole-setup.service.in +Index: systemd-210/units/systemd-vconsole-setup.service.in +=================================================================== +--- systemd-210.orig/units/systemd-vconsole-setup.service.in ++++ systemd-210/units/systemd-vconsole-setup.service.in @@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup DefaultDependencies=no Conflicts=shutdown.target diff --git a/keep-crypt-password-prompt.patch b/keep-crypt-password-prompt.patch index 10ddf398..ba356b54 100644 --- a/keep-crypt-password-prompt.patch +++ b/keep-crypt-password-prompt.patch @@ -1,6 +1,8 @@ ---- systemd-210/src/core/manager.c 2014-05-05 11:46:17.700483956 +0200 -+++ systemd-210/src/core/manager.c 2014-05-05 13:29:13.296503646 +0200 -@@ -152,6 +152,29 @@ +Index: systemd-210/src/core/manager.c +=================================================================== +--- systemd-210.orig/src/core/manager.c ++++ systemd-210/src/core/manager.c +@@ -152,6 +152,29 @@ void manager_flip_auto_status(Manager *m } } @@ -30,13 +32,13 @@ static void manager_print_jobs_in_progress(Manager *m) { static int is_ansi_console = -1; _cleanup_free_ char *job_of_n = NULL; -@@ -195,6 +217,10 @@ +@@ -195,6 +218,10 @@ static void manager_print_jobs_in_progre m->jobs_in_progress_iteration++; + //don't overwrite the crypt password prompt with job status messages -+ if (check_for_password_prompt() == 0); -+ return 0; ++ if (check_for_password_prompt() == 0) ++ return; + if (m->n_running_jobs > 1) if (asprintf(&job_of_n, "(%u of %u) ", counter, m->n_running_jobs) < 0) diff --git a/log-target-null-instead-kmsg.patch b/log-target-null-instead-kmsg.patch index f1d429b6..4e715385 100644 --- a/log-target-null-instead-kmsg.patch +++ b/log-target-null-instead-kmsg.patch @@ -5,15 +5,15 @@ 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 @@ +Index: systemd-210/src/journal/journald-kmsg.c +=================================================================== +--- systemd-210.orig/src/journal/journald-kmsg.c ++++ systemd-210/src/journal/journald-kmsg.c +@@ -391,12 +391,24 @@ static int dispatch_dev_kmsg(sd_event_so 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; + @@ -35,15 +35,15 @@ 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 @@ +Index: systemd-210/src/libudev/libudev-util.c +=================================================================== +--- systemd-210.orig/src/libudev/libudev-util.c ++++ systemd-210/src/libudev/libudev-util.c +@@ -416,6 +416,13 @@ uint64_t util_string_bloom64(const char return bits; } +static int parse_proc_cmdline_word(const char *word) { -+ int r; -+ + if (streq(word, "systemd.log_target=null")) + return -115; + @@ -53,7 +53,7 @@ ssize_t print_kmsg(const char *fmt, ...) { _cleanup_close_ int fd = -1; -@@ -424,7 +433,12 @@ +@@ -424,7 +431,12 @@ ssize_t print_kmsg(const char *fmt, ...) ssize_t len; ssize_t ret; @@ -67,15 +67,15 @@ 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 @@ +Index: systemd-210/src/shared/log.c +=================================================================== +--- systemd-210.orig/src/shared/log.c ++++ systemd-210/src/shared/log.c +@@ -92,12 +92,24 @@ void log_close_kmsg(void) { kmsg_fd = -1; } +static int parse_proc_cmdline_word(const char *word) { -+ int r; -+ + if (streq(word, "systemd.log_target=null")) + return -115; + @@ -97,9 +97,11 @@ 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 @@ +Index: systemd-210/src/shared/util.c +=================================================================== +--- systemd-210.orig/src/shared/util.c ++++ systemd-210/src/shared/util.c +@@ -6069,7 +6069,11 @@ int parse_proc_cmdline(int (*parse_word) r = parse_word(word); if (r < 0) { diff --git a/parse-crypttab-for-noauto-option.patch b/parse-crypttab-for-noauto-option.patch index cb390f87..13f576db 100644 --- a/parse-crypttab-for-noauto-option.patch +++ b/parse-crypttab-for-noauto-option.patch @@ -2,23 +2,22 @@ src/fstab-generator/fstab-generator.c | 52 ++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) ---- systemd-210/src/fstab-generator/fstab-generator.c -+++ systemd-210/src/fstab-generator/fstab-generator.c 2014-05-07 09:15:01.003911151 +0000 -@@ -37,6 +37,53 @@ +Index: systemd-210/src/fstab-generator/fstab-generator.c +=================================================================== +--- systemd-210.orig/src/fstab-generator/fstab-generator.c ++++ systemd-210/src/fstab-generator/fstab-generator.c +@@ -37,6 +37,50 @@ static const char *arg_dest = "/tmp"; static bool arg_enabled = true; +static int check_crypttab(const char *what) { + _cleanup_fclose_ FILE *f = NULL; + unsigned n = 0; -+ int r; + + f = fopen("/etc/crypttab", "re"); + if (!f) { -+ if (errno == ENOENT) -+ r = EXIT_SUCCESS; -+ else -+ log_error("Failed to open /etc/crypttab: %m"); ++ if (errno != ENOENT) ++ log_error("Failed to open /etc/crypttab: %m"); + + return 1; + } @@ -58,7 +57,7 @@ static int mount_find_pri(struct mntent *me, int *ret) { char *end, *pri; unsigned long r; -@@ -212,7 +259,7 @@ +@@ -212,7 +256,7 @@ static int add_mount( *name = NULL, *unit = NULL, *lnk = NULL, *automount_name = NULL, *automount_unit = NULL; _cleanup_fclose_ FILE *f = NULL; @@ -67,7 +66,7 @@ assert(what); assert(where); -@@ -286,7 +333,8 @@ +@@ -288,7 +332,8 @@ static int add_mount( return -errno; } diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch index 59c5ff56..559892d5 100644 --- a/set-and-use-default-logconsole.patch +++ b/set-and-use-default-logconsole.patch @@ -6,8 +6,10 @@ Use and set default logging console for both journald and kernel messages 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 +Index: src/journal/journald-console.c +=================================================================== +--- src/journal/journald-console.c.orig ++++ src/journal/journald-console.c @@ -23,6 +23,14 @@ #include #include @@ -68,7 +70,7 @@ Use and set default logging console for both journald and kernel messages + return; + + if (access(vc, F_OK) < 0) -+ return false; ++ return; + + fd = open_terminal(vc, O_RDWR|O_NOCTTY|O_CLOEXEC); + if (fd < 0) @@ -98,17 +100,17 @@ Use and set default logging console for both journald and kernel messages void server_forward_console( Server *s, int priority, -@@ -63,6 +139,10 @@ void server_forward_console( - +@@ -64,6 +140,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()) { + assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0); @@ -101,7 +181,23 @@ void server_forward_console( fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); if (fd < 0) { @@ -133,8 +135,10 @@ Use and set default logging console for both journald and kernel messages } if (writev(fd, iovec, n) < 0) ---- src/journal/journald-console.h -+++ src/journal/journald-console.h 2014-07-22 11:20:52.754235644 +0000 +Index: src/journal/journald-console.h +=================================================================== +--- src/journal/journald-console.h.orig ++++ src/journal/journald-console.h @@ -24,3 +24,7 @@ #include "journald-server.h" @@ -143,8 +147,10 @@ Use and set default logging console for both journald and kernel messages +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 +Index: src/journal/journald-server.c +=================================================================== +--- src/journal/journald-server.c.orig ++++ src/journal/journald-server.c @@ -1509,6 +1509,11 @@ int server_init(Server *s) { server_parse_config_file(s); diff --git a/systemd-mini.changes b/systemd-mini.changes index bd231f90..f97f18df 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de + +- Disable blkrrpart for SLES12 and below + +------------------------------------------------------------------- +Fri Jul 25 09:37:56 UTC 2014 - werner@suse.de + +- Add upstream patch + 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch +- Add with condition blkrrpart to be able to disable the patches + 1025, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1037, and 1054 + which uses the BLKRRPART ioctl for e.g. synthesize change events + which may interfere with other tools like parted. + +------------------------------------------------------------------- +Thu Jul 24 13:05:42 UTC 2014 - fcrozat@suse.com + +- Update + handle-disable_caplock-and-compose_table-and-kbd_rate.patch, + handle-numlock-value-in-etc-sysconfig-keyboard.patch: read + /etc/vconsole.conf after /etc/sysconfig/(keyboard,console) + otherwise empty value in /etc/sysconfig/keyboard might override + /etc/vconsole.conf values. +- Update : + 0001-journal-compress-return-early-in-uncompress_startswi.patch + 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch + 0002-vconsole-setup-run-setfont-before-loadkeys.patch + 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch + 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch + apply-ACL-for-nvidia-device-nodes.patch + keep-crypt-password-prompt.patch + log-target-null-instead-kmsg.patch + parse-crypttab-for-noauto-option.patch + set-and-use-default-logconsole.patch: fix all warnings in code +- Remove 0001-compress-fix-return-value.patch: not relevant to + systemd v210 code. + +------------------------------------------------------------------- +Thu Jul 24 10:07:08 UTC 2014 - werner@suse.de + +- Also change udev-generate-peristent-rule to udev-generate-persistent-rule + in file list + +------------------------------------------------------------------- +Thu Jul 24 09:00:43 UTC 2014 - rmilasan@suse.com + +- Rename (fix typo in script name): + udev-generate-peristent-rule.sh to udev-generate-persistent-rule.sh + ------------------------------------------------------------------- Wed Jul 23 09:19:52 UTC 2014 - rmilasan@suse.com @@ -296,7 +346,7 @@ Wed Jun 25 17:06:07 UTC 2014 - werner@suse.de - Add upstream patch 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it - fixes udevadm settle exit code which may had roken dracut scripts + fixes udevadm settle exit code which may had broken dracut scripts (bnc#884271 comment#18) ------------------------------------------------------------------- diff --git a/systemd-mini.spec b/systemd-mini.spec index 821ddb1c..98584596 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -31,8 +31,14 @@ %else %define has_efi 0 %endif -%bcond_with udevsettle %bcond_with permission +%if 0%{?suse_version} > 1315 +%bcond_without blkrrpart +%bcond_without udevsettle +%else +%bcond_with blkrrpart +%bcond_with udevsettle +%endif Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd @@ -182,7 +188,7 @@ Source11: after-local.service Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink -Source1063: udev-generate-peristent-rule.sh +Source1063: udev-generate-persistent-rule.sh Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs @@ -709,8 +715,6 @@ Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.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 @@ -837,6 +841,8 @@ Patch1051: 1051-check-if-NAME-has-a-value.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 +# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch +Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1340,7 +1346,6 @@ cp %{SOURCE7} m4/ %patch342 -p0 %patch343 -p0 %patch344 -p0 -%patch345 -p0 %patch346 -p0 %patch347 -p0 %patch348 -p0 @@ -1377,19 +1382,27 @@ cp %{SOURCE7} m4/ %endif %patch1023 -p0 %patch1024 -p0 +%if %{with blkrrpart} %patch1025 -p1 +%endif %patch1026 -p1 +%if %{with blkrrpart} %patch1027 -p1 +%endif %patch1028 -p1 +%if %{with blkrrpart} %patch1029 -p1 %patch1030 -p1 %patch1031 -p1 %patch1032 -p1 %patch1033 -p1 %patch1034 -p1 +%endif %patch1035 -p1 %patch1036 -p1 +%if %{with blkrrpart} %patch1037 -p1 +%endif %patch1038 -p0 %if %{with udevsettle} %patch1039 -p0 @@ -1410,6 +1423,9 @@ cp %{SOURCE7} m4/ %patch1051 -p1 %patch1052 -p0 %patch1053 -p1 +%if %{with blkrrpart} +%patch1054 -p0 +%endif # ensure generate files are removed rm -f units/emergency.service @@ -1590,7 +1606,7 @@ sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-peristent-rule +install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants @@ -2302,7 +2318,7 @@ exit 0 %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule -%{_prefix}/lib/udev/udev-generate-peristent-rule +%{_prefix}/lib/udev/udev-generate-persistent-rule %{_prefix}/lib/udev/net-set-sriov-names %{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rule_generator.functions diff --git a/systemd.changes b/systemd.changes index bd231f90..f97f18df 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de + +- Disable blkrrpart for SLES12 and below + +------------------------------------------------------------------- +Fri Jul 25 09:37:56 UTC 2014 - werner@suse.de + +- Add upstream patch + 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch +- Add with condition blkrrpart to be able to disable the patches + 1025, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1037, and 1054 + which uses the BLKRRPART ioctl for e.g. synthesize change events + which may interfere with other tools like parted. + +------------------------------------------------------------------- +Thu Jul 24 13:05:42 UTC 2014 - fcrozat@suse.com + +- Update + handle-disable_caplock-and-compose_table-and-kbd_rate.patch, + handle-numlock-value-in-etc-sysconfig-keyboard.patch: read + /etc/vconsole.conf after /etc/sysconfig/(keyboard,console) + otherwise empty value in /etc/sysconfig/keyboard might override + /etc/vconsole.conf values. +- Update : + 0001-journal-compress-return-early-in-uncompress_startswi.patch + 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch + 0002-vconsole-setup-run-setfont-before-loadkeys.patch + 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch + 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch + apply-ACL-for-nvidia-device-nodes.patch + keep-crypt-password-prompt.patch + log-target-null-instead-kmsg.patch + parse-crypttab-for-noauto-option.patch + set-and-use-default-logconsole.patch: fix all warnings in code +- Remove 0001-compress-fix-return-value.patch: not relevant to + systemd v210 code. + +------------------------------------------------------------------- +Thu Jul 24 10:07:08 UTC 2014 - werner@suse.de + +- Also change udev-generate-peristent-rule to udev-generate-persistent-rule + in file list + +------------------------------------------------------------------- +Thu Jul 24 09:00:43 UTC 2014 - rmilasan@suse.com + +- Rename (fix typo in script name): + udev-generate-peristent-rule.sh to udev-generate-persistent-rule.sh + ------------------------------------------------------------------- Wed Jul 23 09:19:52 UTC 2014 - rmilasan@suse.com @@ -296,7 +346,7 @@ Wed Jun 25 17:06:07 UTC 2014 - werner@suse.de - Add upstream patch 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it - fixes udevadm settle exit code which may had roken dracut scripts + fixes udevadm settle exit code which may had broken dracut scripts (bnc#884271 comment#18) ------------------------------------------------------------------- diff --git a/systemd.spec b/systemd.spec index 0e5ecf3a..e151db11 100644 --- a/systemd.spec +++ b/systemd.spec @@ -29,8 +29,14 @@ %else %define has_efi 0 %endif -%bcond_with udevsettle %bcond_with permission +%if 0%{?suse_version} > 1315 +%bcond_without blkrrpart +%bcond_without udevsettle +%else +%bcond_with blkrrpart +%bcond_with udevsettle +%endif Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd @@ -177,7 +183,7 @@ Source11: after-local.service Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink -Source1063: udev-generate-peristent-rule.sh +Source1063: udev-generate-persistent-rule.sh Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs @@ -704,8 +710,6 @@ Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.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 @@ -832,6 +836,8 @@ Patch1051: 1051-check-if-NAME-has-a-value.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 +# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch +Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1335,7 +1341,6 @@ cp %{SOURCE7} m4/ %patch342 -p0 %patch343 -p0 %patch344 -p0 -%patch345 -p0 %patch346 -p0 %patch347 -p0 %patch348 -p0 @@ -1372,19 +1377,27 @@ cp %{SOURCE7} m4/ %endif %patch1023 -p0 %patch1024 -p0 +%if %{with blkrrpart} %patch1025 -p1 +%endif %patch1026 -p1 +%if %{with blkrrpart} %patch1027 -p1 +%endif %patch1028 -p1 +%if %{with blkrrpart} %patch1029 -p1 %patch1030 -p1 %patch1031 -p1 %patch1032 -p1 %patch1033 -p1 %patch1034 -p1 +%endif %patch1035 -p1 %patch1036 -p1 +%if %{with blkrrpart} %patch1037 -p1 +%endif %patch1038 -p0 %if %{with udevsettle} %patch1039 -p0 @@ -1405,6 +1418,9 @@ cp %{SOURCE7} m4/ %patch1051 -p1 %patch1052 -p0 %patch1053 -p1 +%if %{with blkrrpart} +%patch1054 -p0 +%endif # ensure generate files are removed rm -f units/emergency.service @@ -1585,7 +1601,7 @@ sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-peristent-rule +install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants @@ -2297,7 +2313,7 @@ exit 0 %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule -%{_prefix}/lib/udev/udev-generate-peristent-rule +%{_prefix}/lib/udev/udev-generate-persistent-rule %{_prefix}/lib/udev/net-set-sriov-names %{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rule_generator.functions diff --git a/udev-generate-peristent-rule.sh b/udev-generate-persistent-rule.sh similarity index 100% rename from udev-generate-peristent-rule.sh rename to udev-generate-persistent-rule.sh