diff --git a/0001-journal-fix-export-of-messages-containing-newlines.patch b/0001-journal-fix-export-of-messages-containing-newlines.patch new file mode 100644 index 00000000..75cdd023 --- /dev/null +++ b/0001-journal-fix-export-of-messages-containing-newlines.patch @@ -0,0 +1,80 @@ +From 0ade5ffe2778e7b238bba8d979ca4d53dee1e702 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 31 Mar 2014 08:57:28 -0400 +Subject: [PATCH] journal: fix export of messages containing newlines + +In "export" format, newlines are significant, and messages containing +newlines must be exported as "binary". +--- + src/shared/logs-show.c | 7 ++++--- + src/shared/utf8.c | 5 +++-- + src/shared/utf8.h | 5 ++++- + 3 files changed, 11 insertions(+), 6 deletions(-) + +diff --git src/shared/logs-show.c src/shared/logs-show.c +index 9d14933..b0b66f6 100644 +--- src/shared/logs-show.c ++++ src/shared/logs-show.c +@@ -547,7 +547,9 @@ static int output_export( + startswith(data, "_BOOT_ID=")) + continue; + +- if (!utf8_is_printable(data, length)) { ++ if (utf8_is_printable_newline(data, length, false)) ++ fwrite(data, length, 1, f); ++ else { + const char *c; + uint64_t le64; + +@@ -562,8 +564,7 @@ static int output_export( + le64 = htole64(length - (c - (const char*) data) - 1); + fwrite(&le64, sizeof(le64), 1, f); + fwrite(c + 1, length - (c - (const char*) data) - 1, 1, f); +- } else +- fwrite(data, length, 1, f); ++ } + + fputc('\n', f); + } +diff --git src/shared/utf8.c src/shared/utf8.c +index 0b524d8..c559c13 100644 +--- src/shared/utf8.c ++++ src/shared/utf8.c +@@ -136,7 +136,7 @@ int utf8_encoded_to_unichar(const char *str) { + return unichar; + } + +-bool utf8_is_printable(const char* str, size_t length) { ++bool utf8_is_printable_newline(const char* str, size_t length, bool newline) { + const uint8_t *p; + + assert(str); +@@ -145,7 +145,8 @@ bool utf8_is_printable(const char* str, size_t length) { + int encoded_len = utf8_encoded_valid_unichar((const char *)p); + int val = utf8_encoded_to_unichar((const char*)p); + +- if (encoded_len < 0 || val < 0 || is_unicode_control(val)) ++ if (encoded_len < 0 || val < 0 || is_unicode_control(val) || ++ (!newline && val == '\n')) + return false; + + length -= encoded_len; +diff --git src/shared/utf8.h src/shared/utf8.h +index c0eb73a..c087995 100644 +--- src/shared/utf8.h ++++ src/shared/utf8.h +@@ -31,7 +31,10 @@ const char *utf8_is_valid(const char *s) _pure_; + char *ascii_is_valid(const char *s) _pure_; + char *utf8_escape_invalid(const char *s); + +-bool utf8_is_printable(const char* str, size_t length) _pure_; ++bool utf8_is_printable_newline(const char* str, size_t length, bool newline) _pure_; ++_pure_ static inline bool utf8_is_printable(const char* str, size_t length) { ++ return utf8_is_printable_newline(str, length, true); ++} + + char *utf16_to_utf8(const void *s, size_t length); + +-- +1.7.9.2 + diff --git a/0002-systemctl-update-NAME-to-PATTERN-in-help.patch b/0002-systemctl-update-NAME-to-PATTERN-in-help.patch new file mode 100644 index 00000000..fd9096b9 --- /dev/null +++ b/0002-systemctl-update-NAME-to-PATTERN-in-help.patch @@ -0,0 +1,52 @@ +From b3ae710c251d0ce5cf2cef63208e325497b5e323 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 1 Apr 2014 20:43:15 -0400 +Subject: [PATCH] systemctl: update NAME to PATTERN in help() + +Previously the man page was modified, but not help(). +--- + TODO | 2 ++ + src/systemctl/systemctl.c | 14 +++++++------- + 2 files changed, 9 insertions(+), 7 deletions(-) + +diff --git TODO TODO +index 4ff69ff..0343b94 100644 +--- TODO ++++ TODO +@@ -1,4 +1,6 @@ + Bugfixes: ++* Should systemctl status \* work on all unit types, not just .service? ++ + * enabling an instance unit creates a pointless link, and + the unit will be started with getty@getty.service: + $ systemctl enable getty@.service +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 6b88f85..653a324 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -5403,15 +5403,15 @@ static int systemctl_help(void) { + " otherwise restart if active\n" + " isolate NAME Start one unit and stop all others\n" + " kill NAME... Send signal to processes of a unit\n" +- " is-active NAME... Check whether units are active\n" +- " is-failed NAME... Check whether units are failed\n" +- " status [NAME...|PID...] Show runtime status of one or more units\n" +- " show [NAME...|JOB...] Show properties of one or more\n" ++ " is-active PATTERN... Check whether units are active\n" ++ " is-failed PATTERN... Check whether units are failed\n" ++ " status [PATTERN...|PID...] Show runtime status of one or more units\n" ++ " show [PATTERN...|JOB...] Show properties of one or more\n" + " units/jobs or the manager\n" +- " cat NAME... Show files and drop-ins of one or more units\n" ++ " cat PATTERN... Show files and drop-ins of one or more units\n" + " set-property NAME ASSIGNMENT... Sets one or more properties of a unit\n" +- " help NAME...|PID... Show manual for one or more units\n" +- " reset-failed [NAME...] Reset failed state for all, one, or more\n" ++ " help PATTERN...|PID... Show manual for one or more units\n" ++ " reset-failed [PATTERN...] Reset failed state for all, one, or more\n" + " units\n" + " list-dependencies [NAME] Recursively show units which are required\n" + " or wanted by this unit or by which this\n" +-- +1.7.9.2 + diff --git a/0003-tty-ask-password-agent-return-negative-errno.patch b/0003-tty-ask-password-agent-return-negative-errno.patch new file mode 100644 index 00000000..9f839a7f --- /dev/null +++ b/0003-tty-ask-password-agent-return-negative-errno.patch @@ -0,0 +1,29 @@ +From ee0e4cca5ac37a094dfe1074907dae70c7b7701c Mon Sep 17 00:00:00 2001 +From: Florian Albrechtskirchinger +Date: Thu, 3 Apr 2014 21:17:20 +0200 +Subject: [PATCH] tty-ask-password-agent: return negative errno + +Return negative errno in wall_tty_block(). get_ctty_devnr() already +returns a negative errno in case of failure, no need to negate it again. + +Reported-by: Simon +--- + .../tty-ask-password-agent.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c +index 1d067af..3203474 100644 +--- src/tty-ask-password-agent/tty-ask-password-agent.c ++++ src/tty-ask-password-agent/tty-ask-password-agent.c +@@ -432,7 +432,7 @@ static int wall_tty_block(void) { + + r = get_ctty_devnr(0, &devnr); + if (r < 0) +- return -r; ++ return r; + + if (asprintf(&p, "/run/systemd/ask-password-block/%u:%u", major(devnr), minor(devnr)) < 0) + return -ENOMEM; +-- +1.7.9.2 + diff --git a/0004-systemd-python-use-.hex-instead-of-.get_hex.patch b/0004-systemd-python-use-.hex-instead-of-.get_hex.patch new file mode 100644 index 00000000..4ddad20e --- /dev/null +++ b/0004-systemd-python-use-.hex-instead-of-.get_hex.patch @@ -0,0 +1,46 @@ +From b532cf3722e04adb0bd075666eb9989a9390d0a2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 5 Apr 2014 13:23:25 -0400 +Subject: [PATCH] systemd-python: use .hex instead of .get_hex() + +It turns out the latter got removed in Python 3. + +https://bugs.freedesktop.org/show_bug.cgi?id=77086 +--- + src/python-systemd/journal.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/python-systemd/journal.py src/python-systemd/journal.py +index 9c7e004..dd1f229 100644 +--- src/python-systemd/journal.py ++++ src/python-systemd/journal.py +@@ -293,7 +293,7 @@ class Reader(_Reader): + monotonic = monotonic.totalseconds() + monotonic = int(monotonic * 1000000) + if isinstance(bootid, _uuid.UUID): +- bootid = bootid.get_hex() ++ bootid = bootid.hex + return super(Reader, self).seek_monotonic(monotonic, bootid) + + def log_level(self, level): +@@ -314,7 +314,7 @@ class Reader(_Reader): + Equivalent to add_match(MESSAGE_ID=`messageid`). + """ + if isinstance(messageid, _uuid.UUID): +- messageid = messageid.get_hex() ++ messageid = messageid.hex + self.add_match(MESSAGE_ID=messageid) + + def this_boot(self, bootid=None): +@@ -346,7 +346,7 @@ class Reader(_Reader): + + def get_catalog(mid): + if isinstance(mid, _uuid.UUID): +- mid = mid.get_hex() ++ mid = mid.hex + return _get_catalog(mid) + + def _make_line(field, value): +-- +1.7.9.2 + diff --git a/0005-systemd-python-fix-failing-assert.patch b/0005-systemd-python-fix-failing-assert.patch new file mode 100644 index 00000000..9b0290d3 --- /dev/null +++ b/0005-systemd-python-fix-failing-assert.patch @@ -0,0 +1,26 @@ +From b65f24238b0627143916a9c7f8315483a9666676 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 5 Apr 2014 13:29:50 -0400 +Subject: [PATCH] systemd-python: fix failing assert + +A parameter which was always null before, now get's set to +the module. +--- + src/python-systemd/_reader.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git src/python-systemd/_reader.c src/python-systemd/_reader.c +index 059b904..9a19a10 100644 +--- src/python-systemd/_reader.c ++++ src/python-systemd/_reader.c +@@ -902,7 +902,6 @@ static PyObject* get_catalog(PyObject *self, PyObject *args) { + sd_id128_t id; + _cleanup_free_ char *msg = NULL; + +- assert(!self); + assert(args); + + if (!PyArg_ParseTuple(args, "z:get_catalog", &id_)) +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 6e6334de..e24f9c07 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de + +- Add patch portmap-wants-rpcbind-socket.patch to make sure that + rpcbind socket as well as service is up with the target +- Add or port upstram bugfix patches: + 0001-journal-fix-export-of-messages-containing-newlines.patch + 0002-systemctl-update-NAME-to-PATTERN-in-help.patch + 0003-tty-ask-password-agent-return-negative-errno.patch + 0004-systemd-python-use-.hex-instead-of-.get_hex.patch + 0005-systemd-python-fix-failing-assert.patch + ------------------------------------------------------------------- Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 1a24806d..d4ab8668 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -329,6 +329,16 @@ Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch # PATCH-FIX-USTREAM added at 2014/03/28 Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch172: 0001-journal-fix-export-of-messages-containing-newlines.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch173: 0002-systemctl-update-NAME-to-PATTERN-in-help.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch175: 0005-systemd-python-fix-failing-assert.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -362,6 +372,9 @@ Patch1999: systemd-install-compat_pkgconfig-always.patch Patch2000: systemd-dbus-system-bus-address.patch # PATCH-FIX-SUSE During linkage of systemd-cryptsetup let linker find libudev for libdevmapper Patch2001: let-linker-find-libudev-for-libdevmapper.patch +# PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target +Patch2002: portmap-wants-rpcbind-socket.patch + # udev patches # PATCH-FIX-USTREAM added at 2014/03/03 Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch @@ -689,6 +702,11 @@ cp %{SOURCE7} m4/ %patch169 -p0 %patch170 -p0 %patch171 -p0 +%patch172 -p0 +%patch173 -p0 +%patch174 -p0 +%patch175 -p0 +%patch175 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 @@ -705,6 +723,7 @@ cp %{SOURCE7} m4/ %patch1999 -p1 %patch2000 -p1 %patch2001 -p1 +%patch2002 -p1 # udev patches %patch1034 -p0 %patch1035 -p0 diff --git a/systemd.changes b/systemd.changes index 0ebaa197..e24f9c07 100644 --- a/systemd.changes +++ b/systemd.changes @@ -3,6 +3,12 @@ Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de - Add patch portmap-wants-rpcbind-socket.patch to make sure that rpcbind socket as well as service is up with the target +- Add or port upstram bugfix patches: + 0001-journal-fix-export-of-messages-containing-newlines.patch + 0002-systemctl-update-NAME-to-PATTERN-in-help.patch + 0003-tty-ask-password-agent-return-negative-errno.patch + 0004-systemd-python-use-.hex-instead-of-.get_hex.patch + 0005-systemd-python-fix-failing-assert.patch ------------------------------------------------------------------- Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 0e0b9511..9ec254e0 100644 --- a/systemd.spec +++ b/systemd.spec @@ -324,6 +324,16 @@ Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch # PATCH-FIX-USTREAM added at 2014/03/28 Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch172: 0001-journal-fix-export-of-messages-containing-newlines.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch173: 0002-systemctl-update-NAME-to-PATTERN-in-help.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch175: 0005-systemd-python-fix-failing-assert.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -687,6 +697,11 @@ cp %{SOURCE7} m4/ %patch169 -p0 %patch170 -p0 %patch171 -p0 +%patch172 -p0 +%patch173 -p0 +%patch174 -p0 +%patch175 -p0 +%patch175 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1