From 293bde0225e93bbf8cfbf2476544a86a8ce31274a77f5967b6672faeda7a7b92 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 7 Mar 2014 09:33:04 +0000 Subject: [PATCH] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=537 --- 0001-Fix-systemd-stdio-bridge-symlink.patch | 28 ++++ ...ectory-path-if-we-fail-to-remove-it-.patch | 54 ++++++++ ...rint-invalid-UTF-8-in-error-messages.patch | 128 ++++++++++++++++++ ...ument-missing-options-of-systemd-run.patch | 113 ++++++++++++++++ ...emd-run-add-some-extra-safety-checks.patch | 34 +++++ ...hat-next-entry-is-after-previous-ent.patch | 70 ++++++++++ ...get-file-after-encountering-an-error.patch | 74 ++++++++++ ...-unregister-PIDs-from-PID-hashtables.patch | 102 ++++++++++++++ ...ence-to-systemd-user-sessions.servic.patch | 25 ++++ 0010-man-update-link-to-LSB.patch | 35 +++++ ...emd-bootchart-fix-spacing-in-command.patch | 28 ++++ 0012-man-add-missing-comma.patch | 26 ++++ ...scape-instance-name-in-systemd-backl.patch | 38 ++++++ systemd-mini.changes | 41 +++++- systemd-mini.spec | 82 ++++++++--- systemd.changes | 41 +++++- systemd.spec | 82 ++++++++--- 17 files changed, 963 insertions(+), 38 deletions(-) create mode 100644 0001-Fix-systemd-stdio-bridge-symlink.patch create mode 100644 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch create mode 100644 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch create mode 100644 0004-man-document-missing-options-of-systemd-run.patch create mode 100644 0005-systemd-run-add-some-extra-safety-checks.patch create mode 100644 0006-journal-assume-that-next-entry-is-after-previous-ent.patch create mode 100644 0007-journal-forget-file-after-encountering-an-error.patch create mode 100644 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch create mode 100644 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch create mode 100644 0010-man-update-link-to-LSB.patch create mode 100644 0011-man-systemd-bootchart-fix-spacing-in-command.patch create mode 100644 0012-man-add-missing-comma.patch create mode 100644 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch diff --git a/0001-Fix-systemd-stdio-bridge-symlink.patch b/0001-Fix-systemd-stdio-bridge-symlink.patch new file mode 100644 index 0000000..02e7e1c --- /dev/null +++ b/0001-Fix-systemd-stdio-bridge-symlink.patch @@ -0,0 +1,28 @@ +From 8100c1a8f58b2fb5d97e156420a7e16562e93bc4 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert +Date: Sun, 2 Mar 2014 23:37:39 -0500 +Subject: [PATCH] Fix systemd-stdio-bridge symlink + +The symlink is created in bindir (/usr/bin), and points to a binary +which lives in rootlibexecdir (/lib/systemd or /usr/lib/systemd). A +relative symlink does not work here. +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git Makefile.am Makefile.am +index 38445fb..e7134a2 100644 +--- Makefile.am ++++ Makefile.am +@@ -1978,7 +1978,7 @@ systemd_bus_proxyd_LDADD = \ + + bus-proxyd-install-hook: + $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir) +- $(AM_V_LN)$(LN_S) -f ../lib/systemd/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge ++ $(AM_V_LN)$(LN_S) -f $(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge + + bus-proxyd-uninstall-hook: + rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge +-- +1.7.9.2 + diff --git a/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch b/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch new file mode 100644 index 0000000..67454ea --- /dev/null +++ b/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch @@ -0,0 +1,54 @@ +From 98b47d54ce946ad3524f84eb38d2413498a333dc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Mar 2014 17:11:39 +0100 +Subject: [PATCH] execute: free directory path if we fail to remove it because + we cannot allocate a thread + +--- + src/core/execute.c | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +diff --git src/core/execute.c src/core/execute.c +index 9de6e87..3312885 100644 +--- src/core/execute.c ++++ src/core/execute.c +@@ -2713,6 +2713,8 @@ static void *remove_tmpdir_thread(void *p) { + } + + void exec_runtime_destroy(ExecRuntime *rt) { ++ int r; ++ + if (!rt) + return; + +@@ -2722,13 +2724,25 @@ void exec_runtime_destroy(ExecRuntime *rt) { + + if (rt->tmp_dir) { + log_debug("Spawning thread to nuke %s", rt->tmp_dir); +- asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); ++ ++ r = asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); ++ if (r < 0) { ++ log_warning("Failed to nuke %s: %s", rt->tmp_dir, strerror(-r)); ++ free(rt->tmp_dir); ++ } ++ + rt->tmp_dir = NULL; + } + + if (rt->var_tmp_dir) { + log_debug("Spawning thread to nuke %s", rt->var_tmp_dir); +- asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); ++ ++ r = asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); ++ if (r < 0) { ++ log_warning("Failed to nuke %s: %s", rt->var_tmp_dir, strerror(-r)); ++ free(rt->var_tmp_dir); ++ } ++ + rt->var_tmp_dir = NULL; + } + +-- +1.7.9.2 + diff --git a/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch new file mode 100644 index 0000000..e3d1355 --- /dev/null +++ b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch @@ -0,0 +1,128 @@ +From b5d742138f71e87312541a89aac5657015f50f48 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 4 Mar 2014 09:50:26 -0500 +Subject: [PATCH] Do not print invalid UTF-8 in error messages + +Inexplicably, 550a40ec ('core: do not print invalid utf-8 in error +messages') only fixed two paths. Convert all of them now. +--- + src/core/load-fragment.c | 13 ++++--------- + src/shared/conf-parser.c | 7 +++---- + src/shared/conf-parser.h | 6 ++++++ + src/shared/fileio.c | 9 ++++++--- + 4 files changed, 19 insertions(+), 16 deletions(-) + +diff --git src/core/load-fragment.c src/core/load-fragment.c +index d77bf5c..5628d8c 100644 +--- src/core/load-fragment.c ++++ src/core/load-fragment.c +@@ -536,9 +536,7 @@ int config_parse_exec(const char *unit, + } + + if (!utf8_is_valid(path)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", +- rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + r = 0; + goto fail; + } +@@ -553,9 +551,7 @@ int config_parse_exec(const char *unit, + } + + if (!utf8_is_valid(c)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", +- rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + r = 0; + goto fail; + } +@@ -1960,8 +1956,7 @@ int config_parse_unit_requires_mounts_for( + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + continue; + } + +diff --git src/shared/conf-parser.c src/shared/conf-parser.c +index 0a87a71..d27b1b7 100644 +@@ -618,8 +618,7 @@ int config_parse_string(const char *unit + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "String is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + free(n); + return 0; + } +@@ -656,8 +655,7 @@ int config_parse_path(const char *unit, + assert(data); + + if (!utf8_is_valid(rvalue)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + return 0; + } + +@@ -725,8 +723,7 @@ int config_parse_strv(const char *unit, + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "String is not UTF-8 clean, ignoring: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + continue; + } + +diff --git src/shared/conf-parser.h src/shared/conf-parser.h +index e1c7ab4..ba0e58d 100644 +--- src/shared/conf-parser.h ++++ src/shared/conf-parser.h +@@ -121,6 +121,12 @@ int log_syntax_internal(const char *unit, int level, + config_file, config_line, \ + error, __VA_ARGS__) + ++#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) { \ ++ _cleanup_free_ char *__p = utf8_escape_invalid(rvalue); \ ++ log_syntax(unit, level, config_file, config_line, error, \ ++ "String is not UTF-8 clean, ignoring assignment: %s", __p); \ ++ } ++ + #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ + int function(const char *unit, \ + const char *filename, \ +diff --git src/shared/fileio.c src/shared/fileio.c +index d591567..f101269 100644 +--- src/shared/fileio.c ++++ src/shared/fileio.c +@@ -598,15 +598,18 @@ static int load_env_file_push(const char *filename, unsigned line, + int r; + + if (!utf8_is_valid(key)) { ++ _cleanup_free_ char *t = utf8_escape_invalid(key); ++ + log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.", +- filename, line, key); ++ filename, line, t); + return -EINVAL; + } + + if (value && !utf8_is_valid(value)) { +- /* FIXME: filter UTF-8 */ ++ _cleanup_free_ char *t = utf8_escape_invalid(value); ++ + log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.", +- filename, line, key, value); ++ filename, line, key, t); + return -EINVAL; + } + +-- +1.7.9.2 + diff --git a/0004-man-document-missing-options-of-systemd-run.patch b/0004-man-document-missing-options-of-systemd-run.patch new file mode 100644 index 0000000..a6e6551 --- /dev/null +++ b/0004-man-document-missing-options-of-systemd-run.patch @@ -0,0 +1,113 @@ +From 981ee551945f4e00de52fcbb7780fd7476bcd47e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 5 Mar 2014 03:37:48 +0100 +Subject: [PATCH] man: document missing options of systemd-run + +--- + man/systemd-run.xml | 71 +++++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 60 insertions(+), 11 deletions(-) + +diff --git man/systemd-run.xml man/systemd-run.xml +index 95c1cb7..81d41dc 100644 +--- man/systemd-run.xml ++++ man/systemd-run.xml +@@ -121,9 +121,9 @@ along with systemd; If not, see . + + + +- Provide description for the unit. If not +- specified, the command itself will be used as a description. +- See Description= in ++ Provide description for the service or scope ++ unit. If not specified, the command itself will be used as a ++ description. See Description= in + systemd.unit5. + + +@@ -140,10 +140,10 @@ along with systemd; If not, see . + + + +- After the service's process has terminated, keep +- the service around until it is explicitly stopped. This is +- useful to collect runtime information about the service after +- it finished running. Also see ++ After the service or scope process has ++ terminated, keep the service around until it is explicitly ++ stopped. This is useful to collect runtime information about ++ the service after it finished running. Also see + RemainAfterExit= in + systemd.service5. + +@@ -153,15 +153,64 @@ along with systemd; If not, see . + + + +- When terminating the scope unit, send a SIGHUP +- immediately after SIGTERM. This is useful to indicate to +- shells and shell-like processes that the connection has been +- severed. Also see SendSIGHUP= in ++ When terminating the scope or service unit, ++ send a SIGHUP immediately after SIGTERM. This is useful to ++ indicate to shells and shell-like processes that the ++ connection has been severed. Also see ++ SendSIGHUP= in + systemd.kill5. + + + + ++ ++ ++ ++ Sets the service type. Also see ++ Type= in ++ systemd.service5. This ++ option has no effect in conjunction with ++ . Defaults to ++ simple. ++ ++ ++ ++ ++ ++ ++ ++ Runs the service process under the UNIX user ++ and group. Also see User= and ++ Group= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ ++ ++ ++ ++ Runs the service process with the specified ++ nice level. Also see Nice= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ ++ ++ ++ ++ Runs the service process with the specified ++ environment variables set. Also see ++ Environment= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ + + + +-- +1.7.9.2 + diff --git a/0005-systemd-run-add-some-extra-safety-checks.patch b/0005-systemd-run-add-some-extra-safety-checks.patch new file mode 100644 index 0000000..22d4188 --- /dev/null +++ b/0005-systemd-run-add-some-extra-safety-checks.patch @@ -0,0 +1,34 @@ +From 1ac67edb7c4d31a287fa98c0b554ae98bd34e71b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 5 Mar 2014 03:38:36 +0100 +Subject: [PATCH] systemd-run: add some extra safety checks + +--- + src/run/run.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/run/run.c src/run/run.c +index 81763c9..e71ca7d 100644 +--- src/run/run.c ++++ src/run/run.c +@@ -37,7 +37,7 @@ static const char *arg_description = NULL; + static const char *arg_slice = NULL; + static bool arg_send_sighup = false; + static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; +-static char *arg_host = NULL; ++static const char *arg_host = NULL; + static bool arg_user = false; + static const char *arg_service_type = NULL; + static const char *arg_exec_user = NULL; +@@ -186,7 +186,7 @@ static int parse_argv(int argc, char *argv[]) { + + case ARG_NICE: + r = safe_atoi(optarg, &arg_nice); +- if (r < 0) { ++ if (r < 0 || arg_nice < PRIO_MIN || arg_nice >= PRIO_MAX) { + log_error("Failed to parse nice value"); + return -EINVAL; + } +-- +1.7.9.2 + diff --git a/0006-journal-assume-that-next-entry-is-after-previous-ent.patch b/0006-journal-assume-that-next-entry-is-after-previous-ent.patch new file mode 100644 index 0000000..aa974fa --- /dev/null +++ b/0006-journal-assume-that-next-entry-is-after-previous-ent.patch @@ -0,0 +1,70 @@ +From fb099c8d2af6620db2709e826a258089d10cdfe8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 27 Feb 2014 00:07:29 -0500 +Subject: [PATCH] journal: assume that next entry is after previous entry + +With a corrupted file, we can get in a situation where two entries +in the entry array point to the same object. Then journal_file_next_entry +will find the first one using generic_arrray_bisect, and try to move to +the second one, but since the address is the same, generic_array_get will +return the first one. journal_file_next_entry ends up in an infinite loop. + +https://bugzilla.redhat.com/show_bug.cgi?id=1047039 +--- + src/journal/journal-file.c | 26 ++++++++++++++++++++------ + 1 file changed, 20 insertions(+), 6 deletions(-) + +diff --git src/journal/journal-file.c src/journal/journal-file.c +index 5876733..0e1fc7f 100644 +--- src/journal/journal-file.c ++++ src/journal/journal-file.c +@@ -1359,7 +1359,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st + } + + typedef struct ChainCacheItem { +- uint64_t first; /* the array at the begin of the chain */ ++ uint64_t first; /* the array at the beginning of the chain */ + uint64_t array; /* the cached array */ + uint64_t begin; /* the first item in the cached array */ + uint64_t total; /* the total number of items in all arrays before this one in the chain */ +@@ -1945,7 +1945,7 @@ int journal_file_next_entry( + direction_t direction, + Object **ret, uint64_t *offset) { + +- uint64_t i, n; ++ uint64_t i, n, ofs; + int r; + + assert(f); +@@ -1986,10 +1986,24 @@ int journal_file_next_entry( + } + + /* And jump to it */ +- return generic_array_get(f, +- le64toh(f->header->entry_array_offset), +- i, +- ret, offset); ++ r = generic_array_get(f, ++ le64toh(f->header->entry_array_offset), ++ i, ++ ret, &ofs); ++ if (r <= 0) ++ return r; ++ ++ if (p > 0 && ++ (direction == DIRECTION_DOWN ? ofs <= p : ofs >= p)) { ++ log_debug("%s: entry array corrupted at entry %"PRIu64, ++ f->path, i); ++ return -EBADMSG; ++ } ++ ++ if (offset) ++ *offset = ofs; ++ ++ return 1; + } + + int journal_file_skip_entry( +-- +1.7.9.2 + diff --git a/0007-journal-forget-file-after-encountering-an-error.patch b/0007-journal-forget-file-after-encountering-an-error.patch new file mode 100644 index 0000000..e195e6b --- /dev/null +++ b/0007-journal-forget-file-after-encountering-an-error.patch @@ -0,0 +1,74 @@ +From a9a245c128af6c0418085062c60251bc51fa4a94 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 27 Feb 2014 00:11:54 -0500 +Subject: [PATCH] journal: forget file after encountering an error + +If we encounter an inconsistency in a file, let's just +ignore it. Otherwise, after previous patch, we would try, +and fail, to use this file in every invocation of sd_journal_next +or sd_journal_previous that happens afterwards. +--- + src/journal/sd-journal.c | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git src/journal/sd-journal.c src/journal/sd-journal.c +index ef455e9..b54bc21 100644 +--- src/journal/sd-journal.c ++++ src/journal/sd-journal.c +@@ -51,6 +51,8 @@ + + #define DEFAULT_DATA_THRESHOLD (64*1024) + ++static void remove_file_real(sd_journal *j, JournalFile *f); ++ + static bool journal_pid_changed(sd_journal *j) { + assert(j); + +@@ -885,6 +887,7 @@ static int real_journal_next(sd_journal *j, direction_t direction) { + r = next_beyond_location(j, f, direction, &o, &p); + if (r < 0) { + log_debug("Can't iterate through %s, ignoring: %s", f->path, strerror(-r)); ++ remove_file_real(j, f); + continue; + } else if (r == 0) + continue; +@@ -1339,7 +1342,7 @@ static int add_file(sd_journal *j, const char *prefix, const char *filename) { + } + + static int remove_file(sd_journal *j, const char *prefix, const char *filename) { +- char *path; ++ _cleanup_free_ char *path; + JournalFile *f; + + assert(j); +@@ -1351,10 +1354,17 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) + return -ENOMEM; + + f = hashmap_get(j->files, path); +- free(path); + if (!f) + return 0; + ++ remove_file_real(j, f); ++ return 0; ++} ++ ++static void remove_file_real(sd_journal *j, JournalFile *f) { ++ assert(j); ++ assert(f); ++ + hashmap_remove(j->files, f->path); + + log_debug("File %s removed.", f->path); +@@ -1372,8 +1382,6 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) + journal_file_close(f); + + j->current_invalidate_counter ++; +- +- return 0; + } + + static int add_directory(sd_journal *j, const char *prefix, const char *dirname) { +-- +1.7.9.2 + diff --git a/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch b/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch new file mode 100644 index 0000000..8dfd01b --- /dev/null +++ b/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch @@ -0,0 +1,102 @@ +From bd44e61b0480712ec5585ff7b0295362a5f9dd36 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 6 Mar 2014 02:19:42 +0100 +Subject: [PATCH] core: correctly unregister PIDs from PID hashtables + +--- + src/core/unit.c | 42 ++++++++++++++++++------------------------ + 1 file changed, 18 insertions(+), 24 deletions(-) + +diff --git src/core/unit.c src/core/unit.c +index 2437ee3..85250ca 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -1704,11 +1704,11 @@ int unit_watch_pid(Unit *u, pid_t pid) { + /* Watch a specific PID. We only support one or two units + * watching each PID for now, not more. */ + +- r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); ++ r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); + if (r < 0) + return r; + +- r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); ++ r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); + if (r < 0) + return r; + +@@ -1737,7 +1737,17 @@ void unit_unwatch_pid(Unit *u, pid_t pid) { + set_remove(u->pids, LONG_TO_PTR(pid)); + } + +-static int watch_pids_in_path(Unit *u, const char *path) { ++void unit_unwatch_all_pids(Unit *u) { ++ assert(u); ++ ++ while (!set_isempty(u->pids)) ++ unit_unwatch_pid(u, PTR_TO_LONG(set_first(u->pids))); ++ ++ set_free(u->pids); ++ u->pids = NULL; ++} ++ ++static int unit_watch_pids_in_path(Unit *u, const char *path) { + _cleanup_closedir_ DIR *d = NULL; + _cleanup_fclose_ FILE *f = NULL; + int ret = 0, r; +@@ -1775,7 +1785,7 @@ static int watch_pids_in_path(Unit *u, const char *path) { + if (!p) + return -ENOMEM; + +- r = watch_pids_in_path(u, p); ++ r = unit_watch_pids_in_path(u, p); + if (r < 0 && ret >= 0) + ret = r; + } +@@ -1788,31 +1798,15 @@ static int watch_pids_in_path(Unit *u, const char *path) { + return ret; + } + +- + int unit_watch_all_pids(Unit *u) { + assert(u); + +- if (!u->cgroup_path) +- return -ENOENT; +- + /* Adds all PIDs from our cgroup to the set of PIDs we watch */ + +- return watch_pids_in_path(u, u->cgroup_path); +-} +- +-void unit_unwatch_all_pids(Unit *u) { +- Iterator i; +- void *e; +- +- assert(u); +- +- SET_FOREACH(e, u->pids, i) { +- hashmap_remove_value(u->manager->watch_pids1, e, u); +- hashmap_remove_value(u->manager->watch_pids2, e, u); +- } ++ if (!u->cgroup_path) ++ return -ENOENT; + +- set_free(u->pids); +- u->pids = NULL; ++ return unit_watch_pids_in_path(u, u->cgroup_path); + } + + void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { +@@ -1830,7 +1824,7 @@ void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { + continue; + + if (!pid_is_unwaited(pid)) +- set_remove(u->pids, e); ++ unit_unwatch_pid(u, pid); + } + } + +-- +1.7.9.2 + diff --git a/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch b/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch new file mode 100644 index 0000000..5bf1987 --- /dev/null +++ b/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch @@ -0,0 +1,25 @@ +From 646e392e10924454576f10b072f78d7676422816 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 6 Mar 2014 04:52:31 +0100 +Subject: [PATCH] logind: fix reference to systemd-user-sessions.service + +--- + src/login/logind-session.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/logind-session.c src/login/logind-session.c +index 548f049..3700522 100644 +--- src/login/logind-session.c ++++ src/login/logind-session.c +@@ -490,7 +490,7 @@ static int session_start_scope(Session *s) { + if (!scope) + return log_oom(); + +- r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-session.service", &error, &job); ++ r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-sessions.service", &error, &job); + if (r < 0) { + log_error("Failed to start session scope %s: %s %s", + scope, bus_error_message(&error, r), error.name); +-- +1.7.9.2 + diff --git a/0010-man-update-link-to-LSB.patch b/0010-man-update-link-to-LSB.patch new file mode 100644 index 0000000..07a96f0 --- /dev/null +++ b/0010-man-update-link-to-LSB.patch @@ -0,0 +1,35 @@ +From 27d14fb331ba8144f99f4da2d13f15cf5c8b8a9f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 6 Mar 2014 08:10:19 -0500 +Subject: [PATCH] man: update link to LSB + +https://bugzilla.redhat.com/show_bug.cgi?id=1073402 +--- + man/daemon.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/daemon.xml man/daemon.xml +index fd29ba7..ab58d08 100644 +--- man/daemon.xml ++++ man/daemon.xml +@@ -252,7 +252,7 @@ + detect service errors and problems. It + is recommended to follow the exit code + scheme as defined in the LSB ++ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB + recommendations for SysV init + scripts. + +@@ -395,7 +395,7 @@ + exclusively on boot (and manually by the + administrator) via SysV init scripts, as + detailed in the LSB ++ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB + Linux Standard Base Core + Specification. This method of + activation is supported ubiquitously on Linux +-- +1.7.9.2 + diff --git a/0011-man-systemd-bootchart-fix-spacing-in-command.patch b/0011-man-systemd-bootchart-fix-spacing-in-command.patch new file mode 100644 index 0000000..60c206b --- /dev/null +++ b/0011-man-systemd-bootchart-fix-spacing-in-command.patch @@ -0,0 +1,28 @@ +From 82ed60080d327d7301fcd55f5a1f8511f894b9d5 Mon Sep 17 00:00:00 2001 +From: Zachary Cook +Date: Thu, 6 Mar 2014 03:49:49 -0500 +Subject: [PATCH] man: systemd-bootchart - fix spacing in command + +Use the same formatting as the systemd-analyze man page, so that man shows a space. +--- + man/systemd-bootchart.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/systemd-bootchart.xml man/systemd-bootchart.xml +index d0adaad..1715d5d 100644 +--- man/systemd-bootchart.xml ++++ man/systemd-bootchart.xml +@@ -78,8 +78,8 @@ + in which order, and where possible problems + exist in the startup sequence of the system. + It is essentially a more detailed version of +- the systemd-analyze +- plot function. ++ the systemd-analyze plot ++ function. + + + Of course, bootchart can also be used at any +-- +1.7.9.2 + diff --git a/0012-man-add-missing-comma.patch b/0012-man-add-missing-comma.patch new file mode 100644 index 0000000..9d779f4 --- /dev/null +++ b/0012-man-add-missing-comma.patch @@ -0,0 +1,26 @@ +From 7d06ef0a5cd2f0a4e021d3d12f3841cce529e0f2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 6 Mar 2014 23:54:13 -0500 +Subject: [PATCH] man: add missing comma + +marcosf0> missing comma in udevadm "see also" section +--- + man/udevadm.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git man/udevadm.xml man/udevadm.xml +index a3f8d54..21d1443 100644 +--- man/udevadm.xml ++++ man/udevadm.xml +@@ -594,7 +594,7 @@ + See Also + + udev7 +- ++ , + + systemd-udevd.service8 + +-- +1.7.9.2 + diff --git a/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch b/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch new file mode 100644 index 0000000..f65e5d3 --- /dev/null +++ b/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch @@ -0,0 +1,38 @@ +From 6c49212741253dae05b89d22374186f092ef1e5a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Fri, 7 Mar 2014 01:50:34 +0100 +Subject: [PATCH] units: Do not unescape instance name in + systemd-backlight@.service + +The instance name is never escaped in the udev rule, but unescaped in the unit. +This results in the following error message on Asus boards: + + Failed to get backlight or LED device 'backlight:eeepc/wmi': No such file or directory +--- + units/systemd-backlight@.service.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git units/systemd-backlight@.service.in units/systemd-backlight@.service.in +index 5caa5d5..e945d87 100644 +--- units/systemd-backlight@.service.in ++++ units/systemd-backlight@.service.in +@@ -6,7 +6,7 @@ + # (at your option) any later version. + + [Unit] +-Description=Load/Save Screen Backlight Brightness of %I ++Description=Load/Save Screen Backlight Brightness of %i + Documentation=man:systemd-backlight@.service(8) + DefaultDependencies=no + RequiresMountsFor=/var/lib/systemd/backlight +@@ -17,5 +17,5 @@ Before=sysinit.target shutdown.target + [Service] + Type=oneshot + RemainAfterExit=yes +-ExecStart=@rootlibexecdir@/systemd-backlight load %I +-ExecStop=@rootlibexecdir@/systemd-backlight save %I ++ExecStart=@rootlibexecdir@/systemd-backlight load %i ++ExecStop=@rootlibexecdir@/systemd-backlight save %i +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 59fc865..4ef46a1 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Fri Mar 7 09:25:53 UTC 2014 - werner@suse.de + +- Add or port upstream bugfix patches: + 0001-Fix-systemd-stdio-bridge-symlink.patch + 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch + 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch + 0004-man-document-missing-options-of-systemd-run.patch + 0005-systemd-run-add-some-extra-safety-checks.patch + 0006-journal-assume-that-next-entry-is-after-previous-ent.patch + 0007-journal-forget-file-after-encountering-an-error.patch + 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch + 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch + 0010-man-update-link-to-LSB.patch + 0011-man-systemd-bootchart-fix-spacing-in-command.patch + 0012-man-add-missing-comma.patch + 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch + +------------------------------------------------------------------- +Fri Mar 7 08:00:31 UTC 2014 - werner@suse.de + +- Add linker scripts as place holder of the old systemd shared + libraries now all included in libsystemd.so (bnc#867128) + ------------------------------------------------------------------- Tue Mar 4 10:37:02 UTC 2014 - werner@suse.de @@ -13,8 +37,23 @@ Mon Mar 3 15:23:57 UTC 2014 - thomas.blume@suse.com ------------------------------------------------------------------- Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de -- Generate the bash completion files on the fly for th ecase of +- Generate the bash completion files on the fly for the case of not having the package bash-completion around +- Add or port upstream bugfix patches: + 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + 0002-cdrom_id-use-the-old-MMC-fallback.patch + 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch + 0004-logs-show-fix-corrupt-output-with-empty-messages.patch + 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + 0008-README-document-that-var-run-must-be-a-symlink-run.patch + 0010-Replace-var-run-with-run-in-remaining-places.patch + 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch + 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch + 0014-login-fix-pos-array-allocation.patch ------------------------------------------------------------------- Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 5a3f9fd..6aca11a 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -222,32 +222,58 @@ Patch117: 0001-make-209-working-on-older-dist.patch Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch122: 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch123: 0004-logs-show-fix-corrupt-output-with-empty-messages.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch124: 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch125: 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch126: 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch127: 0008-README-document-that-var-run-must-be-a-symlink-run.patch # PATCH-FIX-USTREAM added at 2014/0303 Patch128: 0010-Replace-var-run-with-run-in-remaining-places.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch129: 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch130: 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch133: 0014-login-fix-pos-array-allocation.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch137: 0004-man-document-missing-options-of-systemd-run.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch140: 0007-journal-forget-file-after-encountering-an-error.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch143: 0010-man-update-link-to-LSB.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch145: 0012-man-add-missing-comma.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.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) @@ -272,8 +298,8 @@ Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch Patch1999: systemd-install-compat_pkgconfig-always.patch # udev patches -# PATCH-FIX-USTREAM added at 2014/0303 -Patch134: 0002-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch1034: 0002-cdrom_id-use-the-old-MMC-fallback.patch # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -557,6 +583,19 @@ cp %{SOURCE7} m4/ %patch131 -p0 %patch132 -p0 %patch133 -p0 +%patch134 -p0 +%patch135 -p0 +%patch136 -p0 +%patch137 -p0 +%patch138 -p0 +%patch139 -p0 +%patch140 -p0 +%patch141 -p0 +%patch142 -p0 +%patch143 -p0 +%patch144 -p0 +%patch145 -p0 +%patch146 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 @@ -568,9 +607,8 @@ cp %{SOURCE7} m4/ %patch1021 -p1 %patch1022 -p1 %patch1999 -p1 - # udev patches -%patch134 -p0 +%patch1034 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -803,6 +841,16 @@ done > files.completion rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd %endif +%if %{without compat_libs} +lib=%{buildroot}%{_libdir}/libsystemd.so +for lnk in daemon login id128 journal +do + lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so + echo '/* GNU ld script */' > ${lnk} + echo 'INPUT('${lib}')' >> ${lnk} +done +%endif + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 @@ -1190,12 +1238,10 @@ exit 0 %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd.so -%if %{with compat_libs} %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so %{_libdir}/libsystemd-journal.so -%endif %dir %{_includedir}/systemd %{_includedir}/systemd/sd-login.h %{_includedir}/systemd/sd-daemon.h diff --git a/systemd.changes b/systemd.changes index 59fc865..4ef46a1 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Fri Mar 7 09:25:53 UTC 2014 - werner@suse.de + +- Add or port upstream bugfix patches: + 0001-Fix-systemd-stdio-bridge-symlink.patch + 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch + 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch + 0004-man-document-missing-options-of-systemd-run.patch + 0005-systemd-run-add-some-extra-safety-checks.patch + 0006-journal-assume-that-next-entry-is-after-previous-ent.patch + 0007-journal-forget-file-after-encountering-an-error.patch + 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch + 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch + 0010-man-update-link-to-LSB.patch + 0011-man-systemd-bootchart-fix-spacing-in-command.patch + 0012-man-add-missing-comma.patch + 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch + +------------------------------------------------------------------- +Fri Mar 7 08:00:31 UTC 2014 - werner@suse.de + +- Add linker scripts as place holder of the old systemd shared + libraries now all included in libsystemd.so (bnc#867128) + ------------------------------------------------------------------- Tue Mar 4 10:37:02 UTC 2014 - werner@suse.de @@ -13,8 +37,23 @@ Mon Mar 3 15:23:57 UTC 2014 - thomas.blume@suse.com ------------------------------------------------------------------- Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de -- Generate the bash completion files on the fly for th ecase of +- Generate the bash completion files on the fly for the case of not having the package bash-completion around +- Add or port upstream bugfix patches: + 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + 0002-cdrom_id-use-the-old-MMC-fallback.patch + 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch + 0004-logs-show-fix-corrupt-output-with-empty-messages.patch + 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + 0008-README-document-that-var-run-must-be-a-symlink-run.patch + 0010-Replace-var-run-with-run-in-remaining-places.patch + 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch + 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch + 0014-login-fix-pos-array-allocation.patch ------------------------------------------------------------------- Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index bd96e03..cab0796 100644 --- a/systemd.spec +++ b/systemd.spec @@ -217,32 +217,58 @@ Patch117: 0001-make-209-working-on-older-dist.patch Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch122: 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch123: 0004-logs-show-fix-corrupt-output-with-empty-messages.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch124: 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch125: 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch126: 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch127: 0008-README-document-that-var-run-must-be-a-symlink-run.patch # PATCH-FIX-USTREAM added at 2014/0303 Patch128: 0010-Replace-var-run-with-run-in-remaining-places.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch129: 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch130: 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch133: 0014-login-fix-pos-array-allocation.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch137: 0004-man-document-missing-options-of-systemd-run.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch140: 0007-journal-forget-file-after-encountering-an-error.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch143: 0010-man-update-link-to-LSB.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch145: 0012-man-add-missing-comma.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.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) @@ -267,8 +293,8 @@ Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch Patch1999: systemd-install-compat_pkgconfig-always.patch # udev patches -# PATCH-FIX-USTREAM added at 2014/0303 -Patch134: 0002-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch1034: 0002-cdrom_id-use-the-old-MMC-fallback.patch # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -552,6 +578,19 @@ cp %{SOURCE7} m4/ %patch131 -p0 %patch132 -p0 %patch133 -p0 +%patch134 -p0 +%patch135 -p0 +%patch136 -p0 +%patch137 -p0 +%patch138 -p0 +%patch139 -p0 +%patch140 -p0 +%patch141 -p0 +%patch142 -p0 +%patch143 -p0 +%patch144 -p0 +%patch145 -p0 +%patch146 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 @@ -563,9 +602,8 @@ cp %{SOURCE7} m4/ %patch1021 -p1 %patch1022 -p1 %patch1999 -p1 - # udev patches -%patch134 -p0 +%patch1034 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -798,6 +836,16 @@ done > files.completion rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd %endif +%if %{without compat_libs} +lib=%{buildroot}%{_libdir}/libsystemd.so +for lnk in daemon login id128 journal +do + lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so + echo '/* GNU ld script */' > ${lnk} + echo 'INPUT('${lib}')' >> ${lnk} +done +%endif + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 @@ -1185,12 +1233,10 @@ exit 0 %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd.so -%if %{with compat_libs} %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so %{_libdir}/libsystemd-journal.so -%endif %dir %{_includedir}/systemd %{_includedir}/systemd/sd-login.h %{_includedir}/systemd/sd-daemon.h