[systemd/f19] Backport a bunch of fixes and hwdb updates
Zbigniew Jędrzejewski-Szmek
zbyszek at fedoraproject.org
Mon Dec 9 03:12:33 UTC 2013
commit 6cb7994365f5631eb00eb502a41bdf3b86298325
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date: Sun Dec 8 22:05:57 2013 -0500
Backport a bunch of fixes and hwdb updates
...rnal-correctly-convert-usec_t-to-timespec.patch | 3 -
...hon-do-not-attempt-to-convert-str-to-byte.patch | 3 -
0003-systemd-python-fix-iteration.patch | 3 -
...systemctl-honor-no-legend-in-list-sockets.patch | 3 -
...l-processes-with-SIGKILL-on-watchdog-fail.patch | 3 -
0006-Fix-CPUShares-configuration-option.patch | 3 -
...-recalculate-the-ACL-mask-but-only-if-it-.patch | 3 -
...-t-report-alien-child-as-alive-when-it-s-.patch | 3 -
...ember-last-direction-of-search-and-keep-o.patch | 3 -
0010-journal-letting-interleaved-seqnums-go.patch | 3 -
...rs-always-call-kmod-even-when-a-driver-is.patch | 3 -
...-slot.rules-only-rename-network-interface.patch | 3 -
0013-journal-fix-hashmap-leak-in-mmap-cache.patch | 3 -
...ator-read-rd.fstab-on-off-switch-correctl.patch | 3 -
...nerator-log_oom-if-automount_name-is-null.patch | 3 -
...-not-overwrite-syslog-facility-when-parsi.patch | 3 -
...ix-parsing-of-facility-in-syslog-messages.patch | 3 -
...budev-fix-memleak-when-enumerating-childs.patch | 3 -
...merate-fix-NULL-deref-for-subsystem-match.patch | 3 -
...edump-Ignore-coredumps-larger-than-COREDU.patch | 3 -
0021-journalctl-use-_COMM-match-for-scripts.patch | 3 -
0022-Allow-tabs-in-environment-files.patch | 3 -
...-Actually-allow-tabs-in-environment-files.patch | 3 -
...rocess-only-signals-for-jobs-we-really-wa.patch | 3 -
0025-cgtop-fixup-the-online-help.patch | 3 -
...kit-Avoid-race-condition-in-scraping-proc.patch | 3 -
0027-clarify-escaping-in-Exec-lines.patch | 3 -
...v-builtin-blkid-export-ID_PART_TABLE_UUID.patch | 3 -
...ess-liberal-about-creating-bind-mount-des.patch | 3 -
0030-fix-grammatical-error.patch | 3 -
...n-systemctl-add-missing-list-sockets-verb.patch | 3 -
0032-journalctl-1-s-adm-systemd-journal.patch | 3 -
0033-journald-accept-EPOLLERR-from-dev-kmsg.patch | 3 -
...-user-is-sitting-in-front-of-the-computer.patch | 3 -
...dbus-fix-introspection-for-TimerSlackNSec.patch | 3 -
...operly-expose-timeout-property-on-the-bus.patch | 3 -
0037-Remove-duplicated-line.patch | 3 -
...ore-explicit-message-to-help-confused-use.patch | 3 -
...Fix-buffer-overrun-when-enumerating-files.patch | 3 -
...nIsolate-true-for-systemd-cryptsetup-.ser.patch | 3 -
...ntion-the-systemd-homepage-from-systemd-1.patch | 3 -
0042-main-don-t-free-fds-array-twice.patch | 3 -
...ck-setup-fix-path-to-Smack-CIPSO-mappings.patch | 3 -
...re-pollfd.revent-for-loop_read-loop_write.patch | 3 -
...fix-OOM-handling-when-parsing-mount-optio.patch | 3 -
0046-journald-add-missing-error-check.patch | 3 -
...-dbus-fix-return-value-of-dispatch_rqueue.patch | 3 -
0048-modules-load-fix-error-handling.patch | 3 -
...ver-call-qsort-on-potentially-NULL-arrays.patch | 3 -
...n-t-access-potentially-NULL-string-arrays.patch | 3 -
0051-execute.c-always-set-SHELL.patch | 3 -
...-the-description-of-parameter-X-in-tmpfil.patch | 3 -
...er-remote-mounts-from-mountinfo-before-re.patch | 3 -
...n-verifying-whether-clients-may-change-en.patch | 3 -
...ibernation-only-if-there-s-enough-free-sw.patch | 3 -
0056-Assume-that-proc-meminfo-can-be-missing.patch | 3 -
...artition-in-proc-swaps-for-hibernation-te.patch | 3 -
...fileio-assume-that-Buffers-may-be-missing.patch | 3 -
...emove-duplicate-entries-from-syscall-list.patch | 3 -
...budev-add-missing-global-to-symbol-export.patch | 3 -
0061-man-fix-description-of-sysctl.d-order.patch | 3 -
0062-units-make-fsck-units-remain-after-exit.patch | 3 -
...temd-tmpfiles-setup-dev-remain-after-exit.patch | 3 -
0064-kmod-static-nodes-remain-after-exit.patch | 3 -
...w-overwriting-of-values-specified-in-late.patch | 3 -
0066-Restore-reading-of-etc-sysctl.conf.patch | 3 -
...learning-about-the-root-mount-from-mounti.patch | 3 -
...c-mount_dump-don-t-segfault-if-mount-is-n.patch | 3 -
...erialize-deserialize-forbid_restart-value.patch | 3 -
...the-way-we-denote-serialization-attribute.patch | 3 -
0071-journal-vacuum-cleanup.patch | 3 -
...ournald-always-vacuum-empty-offline-files.patch | 3 -
...urnald-fix-vacuuming-of-archived-journals.patch | 3 -
...ournald-fix-fd-leak-in-journal_file_empty.patch | 3 -
...nald-be-a-bit-more-verbose-when-vacuuming.patch | 3 -
0076-journald-fix-minor-memory-leak.patch | 3 -
...move-rotated-file-from-hashmap-when-rotat.patch | 3 -
...ml-document-resolve-names-option-for-test.patch | 3 -
0079-dbus-common-avoid-leak-in-error-path.patch | 3 -
0080-drop-ins-check-return-value.patch | 3 -
0081-man-add-more-markup-to-udevadm-8.patch | 3 -
...SEGV-in-systemd-bootchart-on-short-living.patch | 3 -
0083-man-document-the-b-special-boot-option.patch | 3 -
...ules-expose-loop-block-devices-to-systemd.patch | 3 -
...-limit-some-of-the-rules-to-the-add-actio.patch | 3 -
...g-unaccessible-FUSE-mount-points-only-as-.patch | 3 -
0087-rules-remove-pointless-MODE-settings.patch | 3 -
...pletion-dump-has-moved-to-systemd-analyze.patch | 3 -
0089-give-priority-to-etc-sysctl.conf.patch | 3 -
...-hwdb-validation-to-look-for-the-new-file.patch | 3 -
...g-remove-links-to-non-existent-wiki-pages.patch | 76 ++++
0092-udev-ata_id-log-faling-ioctls-as-debug.patch | 22 +
0093-libudev-default-log_priority-to-INFO.patch | 23 +
0094-man-explain-NAME-in-systemctl-man-page.patch | 33 ++
...md-python-convert-keyword-value-to-string.patch | 27 ++
...-systemctl-make-LOAD-column-width-dynamic.patch | 65 +++
...Make-hibernation-test-work-for-swap-files.patch | 25 +
...tl-return-r-instead-of-always-returning-0.patch | 22 +
...t-exit-if-we-cannot-handle-a-button-press.patch | 22 +
...rly-format-relative-timestamps-in-the-fut.patch | 120 +++++
0101-activate-mention-E-in-the-help-text.patch | 22 +
0102-activate-fix-crash-when-s-is-passed.patch | 23 +
...nal-timestamp-support-on-console-messages.patch | 85 ++++
...-console-to-the-active-tty-instead-of-jus.patch | 33 ++
...-manager-don-t-do-plymouth-in-a-container.patch | 26 ++
...ind-make-running-PID-1-in-valgrind-useful.patch | 59 +++
...tomount-log-info-about-triggering-process.patch | 26 ++
...k-if-return-value-from-ttyname_r-is-0-ins.patch | 28 ++
...-docs-remove-unneeded-the-s-in-gudev-docs.patch | 38 ++
0110-systemd-treat-reload-failure-as-failure.patch | 90 ++++
...l-silently-in-sd_j_sendv-if-journal-is-un.patch | 34 ++
...-journal-handle-multiline-syslog-messages.patch | 76 ++++
...ore-allow-nuking-of-symlinks-to-removed-u.patch | 33 ++
...mp-the-journal-per-unit-ratelimit-default.patch | 43 ++
...cute-ExecStopPost-commands-when-the-watch.patch | 28 ++
...led-match-converted-keymaps-before-legacy.patch | 327 ++++++++++++++
systemd-hwdb.patch | 468 +++++++++++++++++++-
systemd.spec | 228 ++++++----
118 files changed, 1995 insertions(+), 377 deletions(-)
---
diff --git a/0001-journal-correctly-convert-usec_t-to-timespec.patch b/0001-journal-correctly-convert-usec_t-to-timespec.patch
index faa6350..2dd7246 100644
--- a/0001-journal-correctly-convert-usec_t-to-timespec.patch
+++ b/0001-journal-correctly-convert-usec_t-to-timespec.patch
@@ -26,6 +26,3 @@ index cc52b8a..b717b92 100644
r = timerfd_settime(s->sync_timer_fd, 0, &sync_timer_enable, NULL);
if (r < 0)
---
-1.8.2.562.g931e949
-
diff --git a/0002-systemd-python-do-not-attempt-to-convert-str-to-byte.patch b/0002-systemd-python-do-not-attempt-to-convert-str-to-byte.patch
index e2379d3..51e057e 100644
--- a/0002-systemd-python-do-not-attempt-to-convert-str-to-byte.patch
+++ b/0002-systemd-python-do-not-attempt-to-convert-str-to-byte.patch
@@ -30,6 +30,3 @@ index 9ef1ede..8fd1bb3 100644
'COREDUMP': bytes,
'COREDUMP_PID': int,
'COREDUMP_UID': int,
---
-1.8.2.562.g931e949
-
diff --git a/0003-systemd-python-fix-iteration.patch b/0003-systemd-python-fix-iteration.patch
index ccb215e..1a6e846 100644
--- a/0003-systemd-python-fix-iteration.patch
+++ b/0003-systemd-python-fix-iteration.patch
@@ -57,6 +57,3 @@ index 8fd1bb3..adcc844 100644
def add_match(self, *args, **kwargs):
"""Add one or more matches to the filter journal log entries.
---
-1.8.2.562.g931e949
-
diff --git a/0004-systemctl-honor-no-legend-in-list-sockets.patch b/0004-systemctl-honor-no-legend-in-list-sockets.patch
index 8af5a60..c73e902 100644
--- a/0004-systemctl-honor-no-legend-in-list-sockets.patch
+++ b/0004-systemctl-honor-no-legend-in-list-sockets.patch
@@ -52,6 +52,3 @@ index 3cca861..e6bd855 100644
return 0;
}
---
-1.8.2.562.g931e949
-
diff --git a/0005-service-kill-processes-with-SIGKILL-on-watchdog-fail.patch b/0005-service-kill-processes-with-SIGKILL-on-watchdog-fail.patch
index 2fe682a..35a55c5 100644
--- a/0005-service-kill-processes-with-SIGKILL-on-watchdog-fail.patch
+++ b/0005-service-kill-processes-with-SIGKILL-on-watchdog-fail.patch
@@ -45,6 +45,3 @@ index 3617c24..e110a41 100644
static void service_enter_stop_post(Service *s, ServiceResult f) {
int r;
assert(s);
---
-1.8.2.562.g931e949
-
diff --git a/0006-Fix-CPUShares-configuration-option.patch b/0006-Fix-CPUShares-configuration-option.patch
index 968f62d..44c2bfc 100644
--- a/0006-Fix-CPUShares-configuration-option.patch
+++ b/0006-Fix-CPUShares-configuration-option.patch
@@ -22,6 +22,3 @@ index 82b02bb..7df9d01 100644
{ "memory", "memory.soft_limit_in_bytes", "MemorySoftLimit", false, parse_memory_limit, NULL, NULL },
{ "memory", "memory.limit_in_bytes", "MemoryLimit", false, parse_memory_limit, NULL, NULL },
{ "devices", "devices.allow", "DeviceAllow", true, parse_device, map_device, NULL },
---
-1.8.2.562.g931e949
-
diff --git a/0007-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch b/0007-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
index 0d90b99..a6ab1b3 100644
--- a/0007-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
+++ b/0007-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
@@ -82,6 +82,3 @@ index 23090d9..36ef490 100644
int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry);
+int calc_acl_mask_if_needed(acl_t *acl_p);
int search_acl_groups(char*** dst, const char* path, bool* belong);
---
-1.8.2.562.g931e949
-
diff --git a/0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch b/0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch
index 90f0f8e..0963aa6 100644
--- a/0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch
+++ b/0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch
@@ -27,6 +27,3 @@ index e110a41..973bd03 100644
return kill(s->main_pid, 0) >= 0 || errno != ESRCH;
/* .. otherwise assume we'll get a SIGCHLD for it,
---
-1.8.2.562.g931e949
-
diff --git a/0009-journal-remember-last-direction-of-search-and-keep-o.patch b/0009-journal-remember-last-direction-of-search-and-keep-o.patch
index b4392f9..a0dab03 100644
--- a/0009-journal-remember-last-direction-of-search-and-keep-o.patch
+++ b/0009-journal-remember-last-direction-of-search-and-keep-o.patch
@@ -117,6 +117,3 @@ index c21712b..c74b4a2 100644
return 1;
}
---
-1.8.2.562.g931e949
-
diff --git a/0010-journal-letting-interleaved-seqnums-go.patch b/0010-journal-letting-interleaved-seqnums-go.patch
index f78c56b..51c61e6 100644
--- a/0010-journal-letting-interleaved-seqnums-go.patch
+++ b/0010-journal-letting-interleaved-seqnums-go.patch
@@ -66,6 +66,3 @@ index da5b725..5813699 100644
free(p);
if (r < 0)
---
-1.8.2.562.g931e949
-
diff --git a/0011-rules-drivers-always-call-kmod-even-when-a-driver-is.patch b/0011-rules-drivers-always-call-kmod-even-when-a-driver-is.patch
index 173ed60..1b853ba 100644
--- a/0011-rules-drivers-always-call-kmod-even-when-a-driver-is.patch
+++ b/0011-rules-drivers-always-call-kmod-even-when-a-driver-is.patch
@@ -37,6 +37,3 @@ index 50523e4..0b22d73 100644
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN{builtin}="kmod load tifm_sd"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN{builtin}="kmod load tifm_ms"
SUBSYSTEM=="memstick", RUN{builtin}="kmod load ms_block mspro_block"
---
-1.8.2.562.g931e949
-
diff --git a/0012-80-net-name-slot.rules-only-rename-network-interface.patch b/0012-80-net-name-slot.rules-only-rename-network-interface.patch
index 59a006c..58952ff 100644
--- a/0012-80-net-name-slot.rules-only-rename-network-interface.patch
+++ b/0012-80-net-name-slot.rules-only-rename-network-interface.patch
@@ -37,6 +37,3 @@ index 15b5bc4..c5f1b38 100644
SUBSYSTEM!="net", GOTO="net_name_slot_end"
NAME!="", GOTO="net_name_slot_end"
---
-1.8.2.562.g931e949
-
diff --git a/0013-journal-fix-hashmap-leak-in-mmap-cache.patch b/0013-journal-fix-hashmap-leak-in-mmap-cache.patch
index 85544e9..5d527b4 100644
--- a/0013-journal-fix-hashmap-leak-in-mmap-cache.patch
+++ b/0013-journal-fix-hashmap-leak-in-mmap-cache.patch
@@ -35,6 +35,3 @@ index 767f555..03b57be 100644
while (m->unused)
window_free(m->unused);
---
-1.8.2.562.g931e949
-
diff --git a/0014-fstab-generator-read-rd.fstab-on-off-switch-correctl.patch b/0014-fstab-generator-read-rd.fstab-on-off-switch-correctl.patch
index cec42bb..62e946e 100644
--- a/0014-fstab-generator-read-rd.fstab-on-off-switch-correctl.patch
+++ b/0014-fstab-generator-read-rd.fstab-on-off-switch-correctl.patch
@@ -23,6 +23,3 @@ index c17299f..479938f 100644
else
arg_enabled = r;
}
---
-1.8.2.562.g931e949
-
diff --git a/0015-fstab-generator-log_oom-if-automount_name-is-null.patch b/0015-fstab-generator-log_oom-if-automount_name-is-null.patch
index 1eda128..e52996e 100644
--- a/0015-fstab-generator-log_oom-if-automount_name-is-null.patch
+++ b/0015-fstab-generator-log_oom-if-automount_name-is-null.patch
@@ -20,6 +20,3 @@ index 479938f..6b3e67e 100644
return log_oom();
automount_unit = strjoin(arg_dest, "/", automount_name, NULL);
---
-1.8.2.562.g931e949
-
diff --git a/0016-journald-do-not-overwrite-syslog-facility-when-parsi.patch b/0016-journald-do-not-overwrite-syslog-facility-when-parsi.patch
index 9a45451..0f18b46 100644
--- a/0016-journald-do-not-overwrite-syslog-facility-when-parsi.patch
+++ b/0016-journald-do-not-overwrite-syslog-facility-when-parsi.patch
@@ -22,6 +22,3 @@ index 000f5ac..4aeb9a3 100644
*p += k;
}
---
-1.8.2.562.g931e949
-
diff --git a/0017-journal-fix-parsing-of-facility-in-syslog-messages.patch b/0017-journal-fix-parsing-of-facility-in-syslog-messages.patch
index 6ae3701..1491bb9 100644
--- a/0017-journal-fix-parsing-of-facility-in-syslog-messages.patch
+++ b/0017-journal-fix-parsing-of-facility-in-syslog-messages.patch
@@ -84,6 +84,3 @@ index 324b70e..8ccdb77 100644
size_t syslog_parse_identifier(const char **buf, char **identifier, char **pid);
void server_forward_syslog(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred, struct timeval *tv);
---
-1.8.2.562.g931e949
-
diff --git a/0018-libudev-fix-memleak-when-enumerating-childs.patch b/0018-libudev-fix-memleak-when-enumerating-childs.patch
index 186304d..4677adc 100644
--- a/0018-libudev-fix-memleak-when-enumerating-childs.patch
+++ b/0018-libudev-fix-memleak-when-enumerating-childs.patch
@@ -47,6 +47,3 @@ index 5ccaabd..7e63820 100644
}
static int parent_crawl_children(struct udev_enumerate *enumerate, const char *path, int maxdepth)
---
-1.8.2.562.g931e949
-
diff --git a/0019-libudev-enumerate-fix-NULL-deref-for-subsystem-match.patch b/0019-libudev-enumerate-fix-NULL-deref-for-subsystem-match.patch
index eff6a0f..cc16439 100644
--- a/0019-libudev-enumerate-fix-NULL-deref-for-subsystem-match.patch
+++ b/0019-libudev-enumerate-fix-NULL-deref-for-subsystem-match.patch
@@ -42,6 +42,3 @@ index 7e63820..77f75bf 100644
udev_list_entry_foreach(list_entry, udev_list_get_entry(&udev_enumerate->subsystem_nomatch_list)) {
if (fnmatch(udev_list_entry_get_name(list_entry), subsystem, 0) == 0)
return false;
---
-1.8.2.562.g931e949
-
diff --git a/0020-systemd-coredump-Ignore-coredumps-larger-than-COREDU.patch b/0020-systemd-coredump-Ignore-coredumps-larger-than-COREDU.patch
index 3f8a6a1..7985836 100644
--- a/0020-systemd-coredump-Ignore-coredumps-larger-than-COREDU.patch
+++ b/0020-systemd-coredump-Ignore-coredumps-larger-than-COREDU.patch
@@ -38,6 +38,3 @@ index fd03e38..a7d3c34 100644
if (!GREEDY_REALLOC(coredump_data, coredump_bufsize, coredump_size + 1)) {
r = log_oom();
goto finish;
---
-1.8.2.562.g931e949
-
diff --git a/0021-journalctl-use-_COMM-match-for-scripts.patch b/0021-journalctl-use-_COMM-match-for-scripts.patch
index acaed30..7f02a9e 100644
--- a/0021-journalctl-use-_COMM-match-for-scripts.patch
+++ b/0021-journalctl-use-_COMM-match-for-scripts.patch
@@ -175,6 +175,3 @@ index d56f7cc..b08e796 100644
+ test_executable_is_script();
return 0;
}
---
-1.8.2.562.g931e949
-
diff --git a/0022-Allow-tabs-in-environment-files.patch b/0022-Allow-tabs-in-environment-files.patch
index 8e12272..2479d56 100644
--- a/0022-Allow-tabs-in-environment-files.patch
+++ b/0022-Allow-tabs-in-environment-files.patch
@@ -119,6 +119,3 @@ index b08e796..ce77304 100644
test_executable_is_script();
return 0;
}
---
-1.8.2.562.g931e949
-
diff --git a/0023-Actually-allow-tabs-in-environment-files.patch b/0023-Actually-allow-tabs-in-environment-files.patch
index 4ad16b7..310f040 100644
--- a/0023-Actually-allow-tabs-in-environment-files.patch
+++ b/0023-Actually-allow-tabs-in-environment-files.patch
@@ -21,6 +21,3 @@ index 113133f..c9e9b87 100644
return true;
return false;
---
-1.8.2.562.g931e949
-
diff --git a/0024-systemctl-process-only-signals-for-jobs-we-really-wa.patch b/0024-systemctl-process-only-signals-for-jobs-we-really-wa.patch
index 89beec9..b6edd0b 100644
--- a/0024-systemctl-process-only-signals-for-jobs-we-really-wa.patch
+++ b/0024-systemctl-process-only-signals-for-jobs-we-really-wa.patch
@@ -49,6 +49,3 @@ index e6bd855..50f61a3 100644
if (*result)
d->result = strdup(result);
---
-1.8.2.562.g931e949
-
diff --git a/0025-cgtop-fixup-the-online-help.patch b/0025-cgtop-fixup-the-online-help.patch
index 78e6acd..00fbf6f 100644
--- a/0025-cgtop-fixup-the-online-help.patch
+++ b/0025-cgtop-fixup-the-online-help.patch
@@ -25,6 +25,3 @@ index 1e21b00..f7d84da 100644
fflush(stdout);
sleep(3);
break;
---
-1.8.2.562.g931e949
-
diff --git a/0026-polkit-Avoid-race-condition-in-scraping-proc.patch b/0026-polkit-Avoid-race-condition-in-scraping-proc.patch
index b14a9e2..97afa9a 100644
--- a/0026-polkit-Avoid-race-condition-in-scraping-proc.patch
+++ b/0026-polkit-Avoid-race-condition-in-scraping-proc.patch
@@ -70,6 +70,3 @@ index cea7074..1c5e9e3 100644
!dbus_message_iter_close_container(&iter_dict, &iter_variant) ||
!dbus_message_iter_close_container(&iter_array, &iter_dict) ||
!dbus_message_iter_close_container(&iter_struct, &iter_array) ||
---
-1.8.2.562.g931e949
-
diff --git a/0027-clarify-escaping-in-Exec-lines.patch b/0027-clarify-escaping-in-Exec-lines.patch
index 386bc51..52afd70 100644
--- a/0027-clarify-escaping-in-Exec-lines.patch
+++ b/0027-clarify-escaping-in-Exec-lines.patch
@@ -22,6 +22,3 @@ index 0454cf2..7d32e5d 100644
argument (i.e. the program to execute)
may not be a variable, since it must
be a literal and absolute path
---
-1.8.2.562.g931e949
-
diff --git a/0028-udev-builtin-blkid-export-ID_PART_TABLE_UUID.patch b/0028-udev-builtin-blkid-export-ID_PART_TABLE_UUID.patch
index 77193aa..e2b8f12 100644
--- a/0028-udev-builtin-blkid-export-ID_PART_TABLE_UUID.patch
+++ b/0028-udev-builtin-blkid-export-ID_PART_TABLE_UUID.patch
@@ -21,6 +21,3 @@ index bae4293..b48dccc 100644
} else if (streq(name, "PART_ENTRY_NAME")) {
blkid_encode_string(value, s, sizeof(s));
udev_builtin_add_property(dev, test, "ID_PART_ENTRY_NAME", s);
---
-1.8.2.562.g931e949
-
diff --git a/0029-nspawn-be-less-liberal-about-creating-bind-mount-des.patch b/0029-nspawn-be-less-liberal-about-creating-bind-mount-des.patch
index cdbdfc3..e89a466 100644
--- a/0029-nspawn-be-less-liberal-about-creating-bind-mount-des.patch
+++ b/0029-nspawn-be-less-liberal-about-creating-bind-mount-des.patch
@@ -60,6 +60,3 @@ index 09153c8..33aaf14 100644
if (mount(*x, where, "bind", MS_BIND, NULL) < 0) {
log_error("mount(%s) failed: %m", where);
---
-1.8.2.562.g931e949
-
diff --git a/0030-fix-grammatical-error.patch b/0030-fix-grammatical-error.patch
index 2b8b54f..c91b0f4 100644
--- a/0030-fix-grammatical-error.patch
+++ b/0030-fix-grammatical-error.patch
@@ -20,6 +20,3 @@ index 33aaf14..847ad88 100644
*x, where);
return -EINVAL;
}
---
-1.8.2.562.g931e949
-
diff --git a/0031-completion-systemctl-add-missing-list-sockets-verb.patch b/0031-completion-systemctl-add-missing-list-sockets-verb.patch
index d9254c6..981528b 100644
--- a/0031-completion-systemctl-add-missing-list-sockets-verb.patch
+++ b/0031-completion-systemctl-add-missing-list-sockets-verb.patch
@@ -36,6 +36,3 @@ index 411646e..ff15da6 100644
"list-units:List units"
"start:Start (activate) one or more units"
"stop:Stop (deactivate) one or more units"
---
-1.8.2.562.g931e949
-
diff --git a/0032-journalctl-1-s-adm-systemd-journal.patch b/0032-journalctl-1-s-adm-systemd-journal.patch
index 5768bfb..d277d5f 100644
--- a/0032-journalctl-1-s-adm-systemd-journal.patch
+++ b/0032-journalctl-1-s-adm-systemd-journal.patch
@@ -24,6 +24,3 @@ index cc7d1a0..5bacf32 100644
group get access to the system journal and the
journals of other users.</para>
</refsect1>
---
-1.8.2.562.g931e949
-
diff --git a/0033-journald-accept-EPOLLERR-from-dev-kmsg.patch b/0033-journald-accept-EPOLLERR-from-dev-kmsg.patch
index 0a83792..41be6d3 100644
--- a/0033-journald-accept-EPOLLERR-from-dev-kmsg.patch
+++ b/0033-journald-accept-EPOLLERR-from-dev-kmsg.patch
@@ -67,6 +67,3 @@ index 5813699..6c03a0d 100644
log_error("Got invalid event from epoll.");
return -EIO;
}
---
-1.8.2.562.g931e949
-
diff --git a/0034-logind-if-a-user-is-sitting-in-front-of-the-computer.patch b/0034-logind-if-a-user-is-sitting-in-front-of-the-computer.patch
index bb1b88b..1ec7d59 100644
--- a/0034-logind-if-a-user-is-sitting-in-front-of-the-computer.patch
+++ b/0034-logind-if-a-user-is-sitting-in-front-of-the-computer.patch
@@ -21,6 +21,3 @@ index 0c551d4..b96d32d 100644
</defaults>
<annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.reboot</annotate>
</action>
---
-1.8.2.562.g931e949
-
diff --git a/0035-dbus-fix-introspection-for-TimerSlackNSec.patch b/0035-dbus-fix-introspection-for-TimerSlackNSec.patch
index b12c9da..a0f2815 100644
--- a/0035-dbus-fix-introspection-for-TimerSlackNSec.patch
+++ b/0035-dbus-fix-introspection-for-TimerSlackNSec.patch
@@ -20,6 +20,3 @@ index 91d70e5..698102f 100644
" <property name=\"CPUSchedulingResetOnFork\" type=\"b\" access=\"read\"/>\n" \
" <property name=\"NonBlocking\" type=\"b\" access=\"read\"/>\n" \
" <property name=\"StandardInput\" type=\"s\" access=\"read\"/>\n" \
---
-1.8.2.562.g931e949
-
diff --git a/0036-swap-properly-expose-timeout-property-on-the-bus.patch b/0036-swap-properly-expose-timeout-property-on-the-bus.patch
index 769f559..7848901 100644
--- a/0036-swap-properly-expose-timeout-property-on-the-bus.patch
+++ b/0036-swap-properly-expose-timeout-property-on-the-bus.patch
@@ -19,6 +19,3 @@ index 2e99fba..e72749a 100644
BUS_EXEC_COMMAND_PROPERTY("ExecActivate", offsetof(Swap, exec_command[SWAP_EXEC_ACTIVATE]), false),
BUS_EXEC_COMMAND_PROPERTY("ExecDeactivate", offsetof(Swap, exec_command[SWAP_EXEC_DEACTIVATE]), false),
{ "ControlPID", bus_property_append_pid, "u", offsetof(Swap, control_pid) },
---
-1.8.2.562.g931e949
-
diff --git a/0037-Remove-duplicated-line.patch b/0037-Remove-duplicated-line.patch
index 223ecb5..eb2e1dd 100644
--- a/0037-Remove-duplicated-line.patch
+++ b/0037-Remove-duplicated-line.patch
@@ -21,6 +21,3 @@ index 6c03a0d..8a9957c 100644
return -EIO;
}
---
-1.8.2.562.g931e949
-
diff --git a/0038-Add-a-bit-more-explicit-message-to-help-confused-use.patch b/0038-Add-a-bit-more-explicit-message-to-help-confused-use.patch
index 1dba27d..d401d1c 100644
--- a/0038-Add-a-bit-more-explicit-message-to-help-confused-use.patch
+++ b/0038-Add-a-bit-more-explicit-message-to-help-confused-use.patch
@@ -24,6 +24,3 @@ index ee86f2e..fcda00f 100644
-F /run/nologin 0644 - - - "System is booting up."
+F /run/nologin 0644 - - - "System is booting up. See pam_nologin(8)"
---
-1.8.2.562.g931e949
-
diff --git a/0039-Fix-buffer-overrun-when-enumerating-files.patch b/0039-Fix-buffer-overrun-when-enumerating-files.patch
index a2da543..0a1980a 100644
--- a/0039-Fix-buffer-overrun-when-enumerating-files.patch
+++ b/0039-Fix-buffer-overrun-when-enumerating-files.patch
@@ -138,6 +138,3 @@ index c9e9b87..eb9b0f7 100644
}
char *strjoin(const char *x, ...) {
---
-1.8.2.562.g931e949
-
diff --git a/0040-set-IgnoreOnIsolate-true-for-systemd-cryptsetup-.ser.patch b/0040-set-IgnoreOnIsolate-true-for-systemd-cryptsetup-.ser.patch
index c6ac659..22143d7 100644
--- a/0040-set-IgnoreOnIsolate-true-for-systemd-cryptsetup-.ser.patch
+++ b/0040-set-IgnoreOnIsolate-true-for-systemd-cryptsetup-.ser.patch
@@ -25,6 +25,3 @@ index 81b7708..edd0b40 100644
"After=systemd-readahead-collect.service systemd-readahead-replay.service\n",
f);
---
-1.8.2.562.g931e949
-
diff --git a/0041-man-mention-the-systemd-homepage-from-systemd-1.patch b/0041-man-mention-the-systemd-homepage-from-systemd-1.patch
index d4bec73..af6d0fd 100644
--- a/0041-man-mention-the-systemd-homepage-from-systemd-1.patch
+++ b/0041-man-mention-the-systemd-homepage-from-systemd-1.patch
@@ -19,6 +19,3 @@ index d009ed8..8b03417 100644
<citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
---
-1.8.2.562.g931e949
-
diff --git a/0042-main-don-t-free-fds-array-twice.patch b/0042-main-don-t-free-fds-array-twice.patch
index 0e72a2c..29543be 100644
--- a/0042-main-don-t-free-fds-array-twice.patch
+++ b/0042-main-don-t-free-fds-array-twice.patch
@@ -19,6 +19,3 @@ index 7fc06be..954b480 100644
if (serialization) {
fclose(serialization);
---
-1.8.2.562.g931e949
-
diff --git a/0043-smack-setup-fix-path-to-Smack-CIPSO-mappings.patch b/0043-smack-setup-fix-path-to-Smack-CIPSO-mappings.patch
index f3de8a3..d36ded7 100644
--- a/0043-smack-setup-fix-path-to-Smack-CIPSO-mappings.patch
+++ b/0043-smack-setup-fix-path-to-Smack-CIPSO-mappings.patch
@@ -23,6 +23,3 @@ index 73eeb04..d203a30 100644
static int write_rules(const char* dstpath, const char* srcdir) {
_cleanup_fclose_ FILE *dst = NULL;
---
-1.8.2.562.g931e949
-
diff --git a/0044-util.c-ignore-pollfd.revent-for-loop_read-loop_write.patch b/0044-util.c-ignore-pollfd.revent-for-loop_read-loop_write.patch
index 7beeef1..597fae6 100644
--- a/0044-util.c-ignore-pollfd.revent-for-loop_read-loop_write.patch
+++ b/0044-util.c-ignore-pollfd.revent-for-loop_read-loop_write.patch
@@ -38,6 +38,3 @@ index eb9b0f7..1b35c54 100644
continue;
}
---
-1.8.2.562.g931e949
-
diff --git a/0045-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch b/0045-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch
index 016fb2c..2fbef8d 100644
--- a/0045-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch
+++ b/0045-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch
@@ -31,6 +31,3 @@ index 347394d..c75b745 100644
free(opt_hash);
opt_hash = t;
---
-1.8.2.562.g931e949
-
diff --git a/0046-journald-add-missing-error-check.patch b/0046-journald-add-missing-error-check.patch
index d756edd..3634301 100644
--- a/0046-journald-add-missing-error-check.patch
+++ b/0046-journald-add-missing-error-check.patch
@@ -20,6 +20,3 @@ index 38499a6..bb80905 100644
o->field.hash = htole64(hash);
memcpy(o->field.payload, field, size);
---
-1.8.2.562.g931e949
-
diff --git a/0047-dbus-fix-return-value-of-dispatch_rqueue.patch b/0047-dbus-fix-return-value-of-dispatch_rqueue.patch
index 52b93c0..81af5fe 100644
--- a/0047-dbus-fix-return-value-of-dispatch_rqueue.patch
+++ b/0047-dbus-fix-return-value-of-dispatch_rqueue.patch
@@ -25,6 +25,3 @@ index 7d6d848..b0eb2f1 100644
}
int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *serial) {
---
-1.8.2.562.g931e949
-
diff --git a/0048-modules-load-fix-error-handling.patch b/0048-modules-load-fix-error-handling.patch
index a904c20..dbc0655 100644
--- a/0048-modules-load-fix-error-handling.patch
+++ b/0048-modules-load-fix-error-handling.patch
@@ -22,6 +22,3 @@ index 7b19ee0..49ee420 100644
}
r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs);
---
-1.8.2.562.g931e949
-
diff --git a/0049-efi-never-call-qsort-on-potentially-NULL-arrays.patch b/0049-efi-never-call-qsort-on-potentially-NULL-arrays.patch
index c04e911..08106c2 100644
--- a/0049-efi-never-call-qsort-on-potentially-NULL-arrays.patch
+++ b/0049-efi-never-call-qsort-on-potentially-NULL-arrays.patch
@@ -21,6 +21,3 @@ index 8d004ba..99340c9 100644
*options = list;
return count;
---
-1.8.2.562.g931e949
-
diff --git a/0050-strv-don-t-access-potentially-NULL-string-arrays.patch b/0050-strv-don-t-access-potentially-NULL-string-arrays.patch
index 689e177..edc07bb 100644
--- a/0050-strv-don-t-access-potentially-NULL-string-arrays.patch
+++ b/0050-strv-don-t-access-potentially-NULL-string-arrays.patch
@@ -22,6 +22,3 @@ index 6a52fb9..598222c 100644
return e;
}
---
-1.8.2.562.g931e949
-
diff --git a/0051-execute.c-always-set-SHELL.patch b/0051-execute.c-always-set-SHELL.patch
index 17605d3..3dce31d 100644
--- a/0051-execute.c-always-set-SHELL.patch
+++ b/0051-execute.c-always-set-SHELL.patch
@@ -240,6 +240,3 @@ index 3959ef9..27f88b9 100644
final_env = strv_env_merge(5,
environment,
---
-1.8.2.562.g931e949
-
diff --git a/0052-man-Improve-the-description-of-parameter-X-in-tmpfil.patch b/0052-man-Improve-the-description-of-parameter-X-in-tmpfil.patch
index 14645a1..105564e 100644
--- a/0052-man-Improve-the-description-of-parameter-X-in-tmpfil.patch
+++ b/0052-man-Improve-the-description-of-parameter-X-in-tmpfil.patch
@@ -40,6 +40,3 @@ index 519f9bc..f84d174 100644
names.</para></listitem>
</varlistentry>
---
-1.8.2.562.g931e949
-
diff --git a/0053-systemd-order-remote-mounts-from-mountinfo-before-re.patch b/0053-systemd-order-remote-mounts-from-mountinfo-before-re.patch
index 1974951..c52f1db 100644
--- a/0053-systemd-order-remote-mounts-from-mountinfo-before-re.patch
+++ b/0053-systemd-order-remote-mounts-from-mountinfo-before-re.patch
@@ -36,6 +36,3 @@ index 10073b5..8777b47 100644
if (r < 0)
goto fail;
---
-1.8.2.562.g931e949
-
diff --git a/0054-manager-when-verifying-whether-clients-may-change-en.patch b/0054-manager-when-verifying-whether-clients-may-change-en.patch
index 737f832..7374ea1 100644
--- a/0054-manager-when-verifying-whether-clients-may-change-en.patch
+++ b/0054-manager-when-verifying-whether-clients-may-change-en.patch
@@ -40,6 +40,3 @@ index 56b02a1..2b6d799 100644
if (!dbus_message_iter_init(message, &iter))
goto oom;
---
-1.8.2.562.g931e949
-
diff --git a/0055-Advertise-hibernation-only-if-there-s-enough-free-sw.patch b/0055-Advertise-hibernation-only-if-there-s-enough-free-sw.patch
index f2a0e98..102619b 100644
--- a/0055-Advertise-hibernation-only-if-there-s-enough-free-sw.patch
+++ b/0055-Advertise-hibernation-only-if-there-s-enough-free-sw.patch
@@ -205,6 +205,3 @@ index c3cb9c5..545dfab 100644
log_info("Suspend configured and possible: %s", yes_no(can_sleep("suspend") > 0));
log_info("Hibernation configured and possible: %s", yes_no(can_sleep("hibernate") > 0));
---
-1.8.2.562.g931e949
-
diff --git a/0056-Assume-that-proc-meminfo-can-be-missing.patch b/0056-Assume-that-proc-meminfo-can-be-missing.patch
index 78c224d..79d05bf 100644
--- a/0056-Assume-that-proc-meminfo-can-be-missing.patch
+++ b/0056-Assume-that-proc-meminfo-can-be-missing.patch
@@ -48,6 +48,3 @@ index 6c10d9f..a05640a 100644
puts(p);
assert_se(safe_atollu(p, &total) == 0);
---
-1.8.2.562.g931e949
-
diff --git a/0057-Use-first-partition-in-proc-swaps-for-hibernation-te.patch b/0057-Use-first-partition-in-proc-swaps-for-hibernation-te.patch
index 63da269..c4f730f 100644
--- a/0057-Use-first-partition-in-proc-swaps-for-hibernation-te.patch
+++ b/0057-Use-first-partition-in-proc-swaps-for-hibernation-te.patch
@@ -146,6 +146,3 @@ index 148c4dc..d068bfc 100644
return r;
}
---
-1.8.2.562.g931e949
-
diff --git a/0058-test-fileio-assume-that-Buffers-may-be-missing.patch b/0058-test-fileio-assume-that-Buffers-may-be-missing.patch
index ae85eda..42d8843 100644
--- a/0058-test-fileio-assume-that-Buffers-may-be-missing.patch
+++ b/0058-test-fileio-assume-that-Buffers-may-be-missing.patch
@@ -23,6 +23,3 @@ index a05640a..c589f19 100644
puts(s);
assert_se(safe_atollu(s, &buffers) == 0);
---
-1.8.2.562.g931e949
-
diff --git a/0059-Remove-duplicate-entries-from-syscall-list.patch b/0059-Remove-duplicate-entries-from-syscall-list.patch
index 2dc841e..2c00c04 100644
--- a/0059-Remove-duplicate-entries-from-syscall-list.patch
+++ b/0059-Remove-duplicate-entries-from-syscall-list.patch
@@ -22,6 +22,3 @@ index 3a196a6..82010a5 100644
src/core/syscall-from-name.gperf: src/core/syscall-list.txt Makefile
$(AM_V_at)$(MKDIR_P) $(dir $@)
---
-1.8.2.562.g931e949
-
diff --git a/0060-libudev-add-missing-global-to-symbol-export.patch b/0060-libudev-add-missing-global-to-symbol-export.patch
index 6a1c7ec..966fc29 100644
--- a/0060-libudev-add-missing-global-to-symbol-export.patch
+++ b/0060-libudev-add-missing-global-to-symbol-export.patch
@@ -18,6 +18,3 @@ index 8e09430..1e6f885 100644
+global:
udev_device_set_sysattr_value;
} LIBUDEV_196;
---
-1.8.2.562.g931e949
-
diff --git a/0061-man-fix-description-of-sysctl.d-order.patch b/0061-man-fix-description-of-sysctl.d-order.patch
index 060cd57..1968410 100644
--- a/0061-man-fix-description-of-sysctl.d-order.patch
+++ b/0061-man-fix-description-of-sysctl.d-order.patch
@@ -23,6 +23,3 @@ index 759b874..a5868e6 100644
contain the same variable setting.</para>
<para>If the administrator wants to disable a
---
-1.8.2.562.g931e949
-
diff --git a/0062-units-make-fsck-units-remain-after-exit.patch b/0062-units-make-fsck-units-remain-after-exit.patch
index e2602b3..a6d8036 100644
--- a/0062-units-make-fsck-units-remain-after-exit.patch
+++ b/0062-units-make-fsck-units-remain-after-exit.patch
@@ -48,6 +48,3 @@ index b3c71eb..e229cdc 100644
ExecStart=@rootlibexecdir@/systemd-fsck %f
StandardOutput=journal+console
TimeoutSec=0
---
-1.8.2.562.g931e949
-
diff --git a/0063-systemd-tmpfiles-setup-dev-remain-after-exit.patch b/0063-systemd-tmpfiles-setup-dev-remain-after-exit.patch
index da413ce..cc103c8 100644
--- a/0063-systemd-tmpfiles-setup-dev-remain-after-exit.patch
+++ b/0063-systemd-tmpfiles-setup-dev-remain-after-exit.patch
@@ -20,6 +20,3 @@ index f029285..0a814f0 100644
Type=oneshot
+RemainAfterExit=true
ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create
---
-1.8.2.562.g931e949
-
diff --git a/0064-kmod-static-nodes-remain-after-exit.patch b/0064-kmod-static-nodes-remain-after-exit.patch
index 773b0bc..83ce1b6 100644
--- a/0064-kmod-static-nodes-remain-after-exit.patch
+++ b/0064-kmod-static-nodes-remain-after-exit.patch
@@ -20,6 +20,3 @@ index 0a814f0..764da01 100644
-RemainAfterExit=true
+RemainAfterExit=yes
ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create
---
-1.8.2.562.g931e949
-
diff --git a/0065-sysctl-allow-overwriting-of-values-specified-in-late.patch b/0065-sysctl-allow-overwriting-of-values-specified-in-late.patch
index 6843ca0..7f98308 100644
--- a/0065-sysctl-allow-overwriting-of-values-specified-in-late.patch
+++ b/0065-sysctl-allow-overwriting-of-values-specified-in-late.patch
@@ -73,6 +73,3 @@ index 45e1ceb..5baf22c 100644
ConditionDirectoryNotEmpty=|/lib/sysctl.d
ConditionDirectoryNotEmpty=|/usr/lib/sysctl.d
ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d
---
-1.8.2.562.g931e949
-
diff --git a/0066-Restore-reading-of-etc-sysctl.conf.patch b/0066-Restore-reading-of-etc-sysctl.conf.patch
index 835042f..49904a5 100644
--- a/0066-Restore-reading-of-etc-sysctl.conf.patch
+++ b/0066-Restore-reading-of-etc-sysctl.conf.patch
@@ -33,6 +33,3 @@ index 5baf22c..45e1ceb 100644
ConditionDirectoryNotEmpty=|/lib/sysctl.d
ConditionDirectoryNotEmpty=|/usr/lib/sysctl.d
ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d
---
-1.8.2.562.g931e949
-
diff --git a/0067-mount-when-learning-about-the-root-mount-from-mounti.patch b/0067-mount-when-learning-about-the-root-mount-from-mounti.patch
index a443cea..0bc1bff 100644
--- a/0067-mount-when-learning-about-the-root-mount-from-mounti.patch
+++ b/0067-mount-when-learning-about-the-root-mount-from-mounti.patch
@@ -28,6 +28,3 @@ index 8777b47..605c56d 100644
unit_add_to_load_queue(u);
} else {
---
-1.8.3.1
-
diff --git a/0068-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch b/0068-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch
index b5959a7..c186ee5 100644
--- a/0068-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch
+++ b/0068-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch
@@ -29,6 +29,3 @@ index 605c56d..85f5000 100644
prefix, yes_no(m->from_proc_self_mountinfo),
prefix, yes_no(m->from_fragment),
prefix, m->directory_mode);
---
-1.8.3.1
-
diff --git a/0069-systemd-serialize-deserialize-forbid_restart-value.patch b/0069-systemd-serialize-deserialize-forbid_restart-value.patch
index dafcbfc..6149fb8 100644
--- a/0069-systemd-serialize-deserialize-forbid_restart-value.patch
+++ b/0069-systemd-serialize-deserialize-forbid_restart-value.patch
@@ -46,6 +46,3 @@ index 973bd03..0c8a81b 100644
} else
log_debug_unit(u->id, "Unknown serialization key '%s'", key);
---
-1.8.3.1
-
diff --git a/0070-core-unify-the-way-we-denote-serialization-attribute.patch b/0070-core-unify-the-way-we-denote-serialization-attribute.patch
index af38dcc..eaab7c0 100644
--- a/0070-core-unify-the-way-we-denote-serialization-attribute.patch
+++ b/0070-core-unify-the-way-we-denote-serialization-attribute.patch
@@ -35,6 +35,3 @@ index 0c8a81b..bc00f88 100644
else
s->forbid_restart = b;
} else
---
-1.8.3.1
-
diff --git a/0071-journal-vacuum-cleanup.patch b/0071-journal-vacuum-cleanup.patch
index 92f79e0..7558ebd 100644
--- a/0071-journal-vacuum-cleanup.patch
+++ b/0071-journal-vacuum-cleanup.patch
@@ -58,6 +58,3 @@ index 4a3a5a9..1ddb043 100644
-
return r;
}
---
-1.8.3.1
-
diff --git a/0072-journald-always-vacuum-empty-offline-files.patch b/0072-journald-always-vacuum-empty-offline-files.patch
index 5ee4b3c..7af5b9b 100644
--- a/0072-journald-always-vacuum-empty-offline-files.patch
+++ b/0072-journald-always-vacuum-empty-offline-files.patch
@@ -63,6 +63,3 @@ index 1ddb043..79572f1 100644
patch_realtime(directory, de->d_name, &st, &realtime);
GREEDY_REALLOC(list, n_allocated, n_list + 1);
---
-1.8.3.1
-
diff --git a/0073-journald-fix-vacuuming-of-archived-journals.patch b/0073-journald-fix-vacuuming-of-archived-journals.patch
index c050c40..82714e3 100644
--- a/0073-journald-fix-vacuuming-of-archived-journals.patch
+++ b/0073-journald-fix-vacuuming-of-archived-journals.patch
@@ -40,6 +40,3 @@ index 79572f1..ace7722 100644
GREEDY_REALLOC(list, n_allocated, n_list + 1);
---
-1.8.3.1
-
diff --git a/0074-journald-fix-fd-leak-in-journal_file_empty.patch b/0074-journald-fix-fd-leak-in-journal_file_empty.patch
index e5d8fde..4a54b03 100644
--- a/0074-journald-fix-fd-leak-in-journal_file_empty.patch
+++ b/0074-journald-fix-fd-leak-in-journal_file_empty.patch
@@ -30,6 +30,3 @@ index ace7722..178c803 100644
fd = openat(dir_fd, name, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK);
if (fd < 0)
---
-1.8.3.1
-
diff --git a/0075-journald-be-a-bit-more-verbose-when-vacuuming.patch b/0075-journald-be-a-bit-more-verbose-when-vacuuming.patch
index 02e28b9..2abd068 100644
--- a/0075-journald-be-a-bit-more-verbose-when-vacuuming.patch
+++ b/0075-journald-be-a-bit-more-verbose-when-vacuuming.patch
@@ -132,6 +132,3 @@ index 8a9957c..01f4678 100644
server_rotate(s);
server_vacuum(s);
return 1;
---
-1.8.3.1
-
diff --git a/0076-journald-fix-minor-memory-leak.patch b/0076-journald-fix-minor-memory-leak.patch
index 73c6e7b..c088eae 100644
--- a/0076-journald-fix-minor-memory-leak.patch
+++ b/0076-journald-fix-minor-memory-leak.patch
@@ -20,6 +20,3 @@ index c73ad8f..8d5effb 100644
continue;
}
---
-1.8.3.1
-
diff --git a/0077-journald-remove-rotated-file-from-hashmap-when-rotat.patch b/0077-journald-remove-rotated-file-from-hashmap-when-rotat.patch
index f31a977..87dae65 100644
--- a/0077-journald-remove-rotated-file-from-hashmap-when-rotat.patch
+++ b/0077-journald-remove-rotated-file-from-hashmap-when-rotat.patch
@@ -34,6 +34,3 @@ index 01f4678..7a316c2 100644
else {
hashmap_replace(s->user_journals, k, f);
server_fix_perms(s, f, PTR_TO_UINT32(k));
---
-1.8.3.1
-
diff --git a/0078-udevadm.xml-document-resolve-names-option-for-test.patch b/0078-udevadm.xml-document-resolve-names-option-for-test.patch
index e50c1f8..25db3ae 100644
--- a/0078-udevadm.xml-document-resolve-names-option-for-test.patch
+++ b/0078-udevadm.xml-document-resolve-names-option-for-test.patch
@@ -29,6 +29,3 @@ index d0b257d..b959216 100644
</listitem>
</varlistentry>
<varlistentry>
---
-1.8.3.1
-
diff --git a/0079-dbus-common-avoid-leak-in-error-path.patch b/0079-dbus-common-avoid-leak-in-error-path.patch
index c518924..bf415bd 100644
--- a/0079-dbus-common-avoid-leak-in-error-path.patch
+++ b/0079-dbus-common-avoid-leak-in-error-path.patch
@@ -66,6 +66,3 @@ index b8c15cb..9ec0343 100644
return 0;
}
---
-1.8.3.1
-
diff --git a/0080-drop-ins-check-return-value.patch b/0080-drop-ins-check-return-value.patch
index 5408371..bc46466 100644
--- a/0080-drop-ins-check-return-value.patch
+++ b/0080-drop-ins-check-return-value.patch
@@ -27,6 +27,3 @@ index 9b36b22..e744cd3 100644
if (unlink(q) < 0)
r = -errno;
else
---
-1.8.3.1
-
diff --git a/0081-man-add-more-markup-to-udevadm-8.patch b/0081-man-add-more-markup-to-udevadm-8.patch
index 7d63ef1..99d4cd7 100644
--- a/0081-man-add-more-markup-to-udevadm-8.patch
+++ b/0081-man-add-more-markup-to-udevadm-8.patch
@@ -92,6 +92,3 @@ index b959216..a1ffe42 100644
</listitem>
</varlistentry>
<varlistentry>
---
-1.8.3.1
-
diff --git a/0082-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch b/0082-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch
index d7d1e16..33d20c0 100644
--- a/0082-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch
+++ b/0082-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch
@@ -29,6 +29,3 @@ index b2afb8d..660644a 100755
ps->sample->runtime = atoll(rt);
ps->sample->waittime = atoll(wt);
---
-1.8.3.1
-
diff --git a/0083-man-document-the-b-special-boot-option.patch b/0083-man-document-the-b-special-boot-option.patch
index 9d68046..3bb3177 100644
--- a/0083-man-document-the-b-special-boot-option.patch
+++ b/0083-man-document-the-b-special-boot-option.patch
@@ -32,6 +32,3 @@ index 8b03417..a46f39d 100644
<term><varname>emergency</varname></term>
<listitem><para>Boot into emergency
---
-1.8.3.1
-
diff --git a/0084-rules-expose-loop-block-devices-to-systemd.patch b/0084-rules-expose-loop-block-devices-to-systemd.patch
index 89d00df..76b0b67 100644
--- a/0084-rules-expose-loop-block-devices-to-systemd.patch
+++ b/0084-rules-expose-loop-block-devices-to-systemd.patch
@@ -30,6 +30,3 @@ index d17bdd9..c0e137e 100644
# Ignore raid devices that are not yet assembled and started
SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0"
---
-1.8.3.1
-
diff --git a/0085-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch b/0085-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch
index 6760f01..8c20445 100644
--- a/0085-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch
+++ b/0085-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch
@@ -27,6 +27,3 @@ index c0e137e..f15100f 100644
+SUBSYSTEM=="module", KERNEL=="configfs", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-kernel-config.mount"
LABEL="systemd_end"
---
-1.8.3.1
-
diff --git a/0086-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch b/0086-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch
index 3fc18b8..9761734 100644
--- a/0086-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch
+++ b/0086-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch
@@ -32,6 +32,3 @@ index f4885ec..5822171 100644
continue;
}
---
-1.8.3.1
-
diff --git a/0087-rules-remove-pointless-MODE-settings.patch b/0087-rules-remove-pointless-MODE-settings.patch
index 3899db1..f61128a 100644
--- a/0087-rules-remove-pointless-MODE-settings.patch
+++ b/0087-rules-remove-pointless-MODE-settings.patch
@@ -38,6 +38,3 @@ index f764789..679dfdf 100644
KERNEL=="tun", MODE="0666", OPTIONS+="static_node=net/tun"
KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse"
---
-1.8.3.1
-
diff --git a/0088-shell-completion-dump-has-moved-to-systemd-analyze.patch b/0088-shell-completion-dump-has-moved-to-systemd-analyze.patch
index 8f5f7c6..12d2d60 100644
--- a/0088-shell-completion-dump-has-moved-to-systemd-analyze.patch
+++ b/0088-shell-completion-dump-has-moved-to-systemd-analyze.patch
@@ -78,6 +78,3 @@ index ff15da6..db8ca1e 100644
# emergency exit halt kexec list-jobs list-units
# list-unit-files poweroff reboot rescue show-environment'
# [NAME]='snapshot load'
---
-1.8.3.1
-
diff --git a/0089-give-priority-to-etc-sysctl.conf.patch b/0089-give-priority-to-etc-sysctl.conf.patch
index 00eb998..d6d3ee8 100644
--- a/0089-give-priority-to-etc-sysctl.conf.patch
+++ b/0089-give-priority-to-etc-sysctl.conf.patch
@@ -29,6 +29,3 @@ index c0cce49..783c610 100644
}
k = apply_all(sysctl_options);
---
-1.8.3.1
-
diff --git a/0090-libudev-fix-hwdb-validation-to-look-for-the-new-file.patch b/0090-libudev-fix-hwdb-validation-to-look-for-the-new-file.patch
index c59d175..45dfd27 100644
--- a/0090-libudev-fix-hwdb-validation-to-look-for-the-new-file.patch
+++ b/0090-libudev-fix-hwdb-validation-to-look-for-the-new-file.patch
@@ -20,6 +20,3 @@ index 42ab6d9..c2695b5 100644
return true;
if (timespec_load(&hwdb->st.st_mtim) != timespec_load(&st.st_mtim))
return true;
---
-1.8.3.1
-
diff --git a/0091-catalog-remove-links-to-non-existent-wiki-pages.patch b/0091-catalog-remove-links-to-non-existent-wiki-pages.patch
new file mode 100644
index 0000000..6e8891a
--- /dev/null
+++ b/0091-catalog-remove-links-to-non-existent-wiki-pages.patch
@@ -0,0 +1,76 @@
+From ed2759e4f3caea9e4780573a6c6d59bcd0db5f5c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Thu, 24 Oct 2013 00:45:10 -0400
+Subject: [PATCH] catalog: remove links to non-existent wiki pages
+
+AFAIK, we don't have even one page with message explanations.
+If/when we add them, we can add links.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1017161
+
+Conflicts:
+ catalog/systemd.catalog
+---
+ catalog/systemd.catalog | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/catalog/systemd.catalog b/catalog/systemd.catalog
+index 62635c8..8b0c9bf 100644
+--- a/catalog/systemd.catalog
++++ b/catalog/systemd.catalog
+@@ -204,7 +204,6 @@ Unit @UNIT@ has begun shutting down.
+ Subject: Unit @UNIT@ has finished shutting down
+ Defined-By: systemd
+ Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
+-Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/@MESSAGE_ID@
+
+ Unit @UNIT@ has finished shutting down.
+
+@@ -212,7 +211,6 @@ Unit @UNIT@ has finished shutting down.
+ Subject: Unit @UNIT@ has failed
+ Defined-By: systemd
+ Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
+-Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/@MESSAGE_ID@
+
+ Unit @UNIT@ has failed.
+
+@@ -222,7 +220,6 @@ The result is @RESULT at .
+ Subject: Unit @UNIT@ has begun with reloading its configuration
+ Defined-By: systemd
+ Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
+-Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/@MESSAGE_ID@
+
+ Unit @UNIT@ has begun with reloading its configuration
+
+@@ -230,7 +227,6 @@ Unit @UNIT@ has begun with reloading its configuration
+ Subject: Unit @UNIT@ has finished reloading its configuration
+ Defined-By: systemd
+ Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
+-Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/@MESSAGE_ID@
+
+ Unit @UNIT@ has finished reloading its configuration
+
+@@ -240,7 +236,6 @@ The result is @RESULT at .
+ Subject: Process @EXECUTABLE@ could not be executed
+ Defined-By: systemd
+ Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
+-Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/@MESSAGE_ID@
+
+ The process @EXECUTABLE@ could not be executed and failed.
+
+@@ -250,7 +245,6 @@ The error number returned while executing this process is @ERRNO at .
+ Subject: One or more messages could not be forwarded to syslog
+ Defined-By: systemd
+ Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
+-Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/@MESSAGE_ID@
+
+ One or more messages could not be forwarded to the syslog service
+ running side-by-side with journald. This usually indicates that the
+@@ -261,7 +255,6 @@ messages queued.
+ Subject: Mount point is not empty
+ Defined-By: systemd
+ Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
+-Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/@MESSAGE_ID@
+
+ The directory @WHERE@ is specified as the mount point (second field in
+ /etc/fstab or Where= field in systemd unit file) and is not empty.
diff --git a/0092-udev-ata_id-log-faling-ioctls-as-debug.patch b/0092-udev-ata_id-log-faling-ioctls-as-debug.patch
new file mode 100644
index 0000000..eb8e114
--- /dev/null
+++ b/0092-udev-ata_id-log-faling-ioctls-as-debug.patch
@@ -0,0 +1,22 @@
+From 335ee33408b0a26cdc87f79c468248f5e7f82851 Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay at vrfy.org>
+Date: Wed, 30 Oct 2013 14:34:58 +0100
+Subject: [PATCH] udev: ata_id: log faling ioctls as "debug"
+
+---
+ src/udev/ata_id/ata_id.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/udev/ata_id/ata_id.c b/src/udev/ata_id/ata_id.c
+index 68a06b9..d375d43 100644
+--- a/src/udev/ata_id/ata_id.c
++++ b/src/udev/ata_id/ata_id.c
+@@ -501,7 +501,7 @@ int main(int argc, char *argv[])
+ } else {
+ /* If this fails, then try HDIO_GET_IDENTITY */
+ if (ioctl(fd, HDIO_GET_IDENTITY, &id) != 0) {
+- log_info("HDIO_GET_IDENTITY failed for '%s': %m\n", node);
++ log_debug("HDIO_GET_IDENTITY failed for '%s': %m\n", node);
+ rc = 2;
+ goto close;
+ }
diff --git a/0093-libudev-default-log_priority-to-INFO.patch b/0093-libudev-default-log_priority-to-INFO.patch
new file mode 100644
index 0000000..57a3998
--- /dev/null
+++ b/0093-libudev-default-log_priority-to-INFO.patch
@@ -0,0 +1,23 @@
+From 7db9cd15dd8f80157880e948cbf1bc6e4d5276cf Mon Sep 17 00:00:00 2001
+From: Tom Gundersen <teg at jklm.no>
+Date: Wed, 30 Oct 2013 15:09:01 +0100
+Subject: [PATCH] libudev: default log_priority to INFO
+
+This brings it in sync with the default config file.
+---
+ src/libudev/libudev.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libudev/libudev.c b/src/libudev/libudev.c
+index 208039a..bc73a5a 100644
+--- a/src/libudev/libudev.c
++++ b/src/libudev/libudev.c
+@@ -125,7 +125,7 @@ _public_ struct udev *udev_new(void)
+ return NULL;
+ udev->refcount = 1;
+ udev->log_fn = log_stderr;
+- udev->log_priority = LOG_ERR;
++ udev->log_priority = LOG_INFO;
+ udev_list_init(udev, &udev->properties_list, true);
+
+ f = fopen("/etc/udev/udev.conf", "re");
diff --git a/0094-man-explain-NAME-in-systemctl-man-page.patch b/0094-man-explain-NAME-in-systemctl-man-page.patch
new file mode 100644
index 0000000..2ceb039
--- /dev/null
+++ b/0094-man-explain-NAME-in-systemctl-man-page.patch
@@ -0,0 +1,33 @@
+From 7f6c814a70a102ba0317e33c6a6bcc21e12a072d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpavlin at redhat.com>
+Date: Thu, 31 Oct 2013 14:36:41 +0100
+Subject: [PATCH] man: explain NAME in systemctl man page
+
+---
+ man/systemctl.xml | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/man/systemctl.xml b/man/systemctl.xml
+index 0afb0cc..a13661d 100644
+--- a/man/systemctl.xml
++++ b/man/systemctl.xml
+@@ -63,6 +63,19 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+ introspect and control the state of the
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ system and service manager.</para>
++
++ <para>For Unit Commands the <replaceable>NAME</replaceable> represents full name of unit.
++ <programlisting>
++systemctl start foo.service
++ </programlisting>
++ For Unit File Commands the <replaceable>NAME</replaceable> represents full name of the unit file, or absolute path to the unit file.
++ <programlisting>
++systemctl start /path/to/foo.service
++ </programlisting>
++ While working with services/service files, <command>systemctl</command> is able to append .service suffix when it is missing.
++ <programlisting>
++systemctl start foo
++ </programlisting></para>
+ </refsect1>
+
+ <refsect1>
diff --git a/0095-systemd-python-convert-keyword-value-to-string.patch b/0095-systemd-python-convert-keyword-value-to-string.patch
new file mode 100644
index 0000000..22aacbe
--- /dev/null
+++ b/0095-systemd-python-convert-keyword-value-to-string.patch
@@ -0,0 +1,27 @@
+From 0ea2d31ba70a325242f014c59ee39e927f5579d3 Mon Sep 17 00:00:00 2001
+From: Richard Marko <rmarko at fedoraproject.org>
+Date: Tue, 5 Nov 2013 15:41:20 +0100
+Subject: [PATCH] systemd-python: convert keyword value to string
+
+Allows using journal.send('msg', PRIORITY=journal.LOG_CRIT)
+
+Before this commit this results in
+TypeError: cannot concatenate 'str' and 'int' objects
+and requires passing PRIORITY value as string to work.
+---
+ src/python-systemd/journal.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/python-systemd/journal.py b/src/python-systemd/journal.py
+index adcc844..b157533 100644
+--- a/src/python-systemd/journal.py
++++ b/src/python-systemd/journal.py
+@@ -351,6 +351,8 @@ def get_catalog(mid):
+ def _make_line(field, value):
+ if isinstance(value, bytes):
+ return field.encode('utf-8') + b'=' + value
++ elif isinstance(value, int):
++ return field + '=' + str(value)
+ else:
+ return field + '=' + value
+
diff --git a/0096-systemctl-make-LOAD-column-width-dynamic.patch b/0096-systemctl-make-LOAD-column-width-dynamic.patch
new file mode 100644
index 0000000..aafd108
--- /dev/null
+++ b/0096-systemctl-make-LOAD-column-width-dynamic.patch
@@ -0,0 +1,65 @@
+From 798a9d956830621afe429678aa1631286e13189a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= <grawity at gmail.com>
+Date: Mon, 4 Nov 2013 23:01:17 +0200
+Subject: [PATCH] systemctl: make LOAD column width dynamic
+
+Otherwise 'not-found' overflows into the ACTIVE column.
+---
+ src/systemctl/systemctl.c | 19 +++++++++++--------
+ 1 file changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
+index 50f61a3..e5bfbca 100644
+--- a/src/systemctl/systemctl.c
++++ b/src/systemctl/systemctl.c
+@@ -311,14 +311,16 @@ static bool output_show_unit(const struct unit_info *u) {
+ }
+
+ static void output_units_list(const struct unit_info *unit_infos, unsigned c) {
+- unsigned id_len, max_id_len, active_len, sub_len, job_len, desc_len, n_shown = 0;
++ unsigned id_len, max_id_len, load_len, active_len, sub_len, job_len, desc_len;
++ unsigned n_shown = 0;
+ const struct unit_info *u;
+ int job_count = 0;
+
+- max_id_len = sizeof("UNIT")-1;
+- active_len = sizeof("ACTIVE")-1;
+- sub_len = sizeof("SUB")-1;
+- job_len = sizeof("JOB")-1;
++ max_id_len = strlen("UNIT");
++ load_len = strlen("LOAD");
++ active_len = strlen("ACTIVE");
++ sub_len = strlen("SUB");
++ job_len = strlen("JOB");
+ desc_len = 0;
+
+ for (u = unit_infos; u < unit_infos + c; u++) {
+@@ -326,6 +328,7 @@ static void output_units_list(const struct unit_info *unit_infos, unsigned c) {
+ continue;
+
+ max_id_len = MAX(max_id_len, strlen(u->id));
++ load_len = MAX(load_len, strlen(u->load_state));
+ active_len = MAX(active_len, strlen(u->active_state));
+ sub_len = MAX(sub_len, strlen(u->sub_state));
+ if (u->job_id != 0) {
+@@ -368,7 +371,7 @@ static void output_units_list(const struct unit_info *unit_infos, unsigned c) {
+ continue;
+
+ if (!n_shown && !arg_no_legend) {
+- printf("%-*s %-6s %-*s %-*s ", id_len, "UNIT", "LOAD",
++ printf("%-*s %-*s %-*s %-*s ", id_len, "UNIT", load_len, "LOAD",
+ active_len, "ACTIVE", sub_len, "SUB");
+ if (job_count)
+ printf("%-*s ", job_len, "JOB");
+@@ -394,9 +397,9 @@ static void output_units_list(const struct unit_info *unit_infos, unsigned c) {
+
+ e = arg_full ? NULL : ellipsize(u->id, id_len, 33);
+
+- printf("%s%-*s%s %s%-6s%s %s%-*s %-*s%s %-*s",
++ printf("%s%-*s%s %s%-*s%s %s%-*s %-*s%s %-*s",
+ on, id_len, e ? e : u->id, off,
+- on_loaded, u->load_state, off_loaded,
++ on_loaded, load_len, u->load_state, off_loaded,
+ on_active, active_len, u->active_state,
+ sub_len, u->sub_state, off_active,
+ job_count ? job_len + 1 : 0, u->job_id ? u->job_type : "");
diff --git a/0097-Make-hibernation-test-work-for-swap-files.patch b/0097-Make-hibernation-test-work-for-swap-files.patch
new file mode 100644
index 0000000..9206f2c
--- /dev/null
+++ b/0097-Make-hibernation-test-work-for-swap-files.patch
@@ -0,0 +1,25 @@
+From a5d9ab7ba1e392e1e7173b6c57ed6dbb10558b85 Mon Sep 17 00:00:00 2001
+From: Jan Janssen <medhefgo at web.de>
+Date: Thu, 31 Oct 2013 17:22:03 +0100
+Subject: [PATCH] Make hibernation test work for swap files
+
+Suspend to disk works for swap files too (even if it is located
+on an ecrypted file system):
+https://www.kernel.org/doc/Documentation/power/swsusp-and-swap-files.txt
+---
+ src/shared/sleep-config.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/shared/sleep-config.c b/src/shared/sleep-config.c
+index d068bfc..2bb0493 100644
+--- a/src/shared/sleep-config.c
++++ b/src/shared/sleep-config.c
+@@ -206,7 +206,7 @@ static int hibernation_partition_size(size_t *size, size_t *used) {
+ if (!d)
+ return -ENOMEM;
+
+- if (!streq(type, "partition")) {
++ if (!streq(type, "partition") && !streq(type, "file")) {
+ log_debug("Partition %s has type %s, ignoring.", d, type);
+ continue;
+ }
diff --git a/0098-systemctl-return-r-instead-of-always-returning-0.patch b/0098-systemctl-return-r-instead-of-always-returning-0.patch
new file mode 100644
index 0000000..6f19275
--- /dev/null
+++ b/0098-systemctl-return-r-instead-of-always-returning-0.patch
@@ -0,0 +1,22 @@
+From 16ba284432f0b24feb4cd28d63c0626bb4e80acd Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta at redhat.com>
+Date: Wed, 6 Nov 2013 11:18:02 +0100
+Subject: [PATCH] systemctl: return r instead of always returning 0
+
+---
+ src/systemctl/systemctl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
+index e5bfbca..8fae09e 100644
+--- a/src/systemctl/systemctl.c
++++ b/src/systemctl/systemctl.c
+@@ -1329,7 +1329,7 @@ static int list_jobs(DBusConnection *bus, char **args) {
+ }
+ free(jobs);
+
+- return 0;
++ return r;
+ }
+
+ static int load_unit(DBusConnection *bus, char **args) {
diff --git a/0099-button-don-t-exit-if-we-cannot-handle-a-button-press.patch b/0099-button-don-t-exit-if-we-cannot-handle-a-button-press.patch
new file mode 100644
index 0000000..2190fe7
--- /dev/null
+++ b/0099-button-don-t-exit-if-we-cannot-handle-a-button-press.patch
@@ -0,0 +1,22 @@
+From 4215779638bb241184f94dd5dfd41fdc68c6d5b7 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Sun, 10 Nov 2013 23:05:08 +0100
+Subject: [PATCH] button: don't exit if we cannot handle a button press
+
+---
+ src/login/logind-button.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/login/logind-button.c b/src/login/logind-button.c
+index ea45c28..4f456d2 100644
+--- a/src/login/logind-button.c
++++ b/src/login/logind-button.c
+@@ -172,7 +172,7 @@ static int button_handle(
+ * execute another one until the lid is opened/closed again */
+ b->lid_close_queued = false;
+
+- return r;
++ return 0;
+ }
+
+ int button_process(Button *b) {
diff --git a/0100-timer-properly-format-relative-timestamps-in-the-fut.patch b/0100-timer-properly-format-relative-timestamps-in-the-fut.patch
new file mode 100644
index 0000000..782f9f5
--- /dev/null
+++ b/0100-timer-properly-format-relative-timestamps-in-the-fut.patch
@@ -0,0 +1,120 @@
+From 3f870c6a21eddd5879943741dcb0dc72d85b1748 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Mon, 11 Nov 2013 03:02:52 +0100
+Subject: [PATCH] timer: properly format relative timestamps in the future
+
+---
+ src/shared/time-util.c | 69 ++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 44 insertions(+), 25 deletions(-)
+
+diff --git a/src/shared/time-util.c b/src/shared/time-util.c
+index 9ee711a..3441c81 100644
+--- a/src/shared/time-util.c
++++ b/src/shared/time-util.c
+@@ -169,55 +169,62 @@ char *format_timestamp(char *buf, size_t l, usec_t t) {
+ }
+
+ char *format_timestamp_relative(char *buf, size_t l, usec_t t) {
++ const char *s;
+ usec_t n, d;
+
+ n = now(CLOCK_REALTIME);
+
+- if (t <= 0 || t > n || t + USEC_PER_DAY*7 <= t)
++ if (t <= 0 || (t == (usec_t) -1))
+ return NULL;
+
+- d = n - t;
++ if (n > t) {
++ d = n - t;
++ s = "ago";
++ } else {
++ d = t - n;
++ s = "left";
++ }
+
+ if (d >= USEC_PER_YEAR)
+- snprintf(buf, l, "%llu years %llu months ago",
++ snprintf(buf, l, "%llu years %llu months %s",
+ (unsigned long long) (d / USEC_PER_YEAR),
+- (unsigned long long) ((d % USEC_PER_YEAR) / USEC_PER_MONTH));
++ (unsigned long long) ((d % USEC_PER_YEAR) / USEC_PER_MONTH), s);
+ else if (d >= USEC_PER_MONTH)
+- snprintf(buf, l, "%llu months %llu days ago",
++ snprintf(buf, l, "%llu months %llu days %s",
+ (unsigned long long) (d / USEC_PER_MONTH),
+- (unsigned long long) ((d % USEC_PER_MONTH) / USEC_PER_DAY));
++ (unsigned long long) ((d % USEC_PER_MONTH) / USEC_PER_DAY), s);
+ else if (d >= USEC_PER_WEEK)
+- snprintf(buf, l, "%llu weeks %llu days ago",
++ snprintf(buf, l, "%llu weeks %llu days %s",
+ (unsigned long long) (d / USEC_PER_WEEK),
+- (unsigned long long) ((d % USEC_PER_WEEK) / USEC_PER_DAY));
++ (unsigned long long) ((d % USEC_PER_WEEK) / USEC_PER_DAY), s);
+ else if (d >= 2*USEC_PER_DAY)
+- snprintf(buf, l, "%llu days ago", (unsigned long long) (d / USEC_PER_DAY));
++ snprintf(buf, l, "%llu days %s", (unsigned long long) (d / USEC_PER_DAY), s);
+ else if (d >= 25*USEC_PER_HOUR)
+- snprintf(buf, l, "1 day %lluh ago",
+- (unsigned long long) ((d - USEC_PER_DAY) / USEC_PER_HOUR));
++ snprintf(buf, l, "1 day %lluh %s",
++ (unsigned long long) ((d - USEC_PER_DAY) / USEC_PER_HOUR), s);
+ else if (d >= 6*USEC_PER_HOUR)
+- snprintf(buf, l, "%lluh ago",
+- (unsigned long long) (d / USEC_PER_HOUR));
++ snprintf(buf, l, "%lluh %s",
++ (unsigned long long) (d / USEC_PER_HOUR), s);
+ else if (d >= USEC_PER_HOUR)
+- snprintf(buf, l, "%lluh %llumin ago",
++ snprintf(buf, l, "%lluh %llumin %s",
+ (unsigned long long) (d / USEC_PER_HOUR),
+- (unsigned long long) ((d % USEC_PER_HOUR) / USEC_PER_MINUTE));
++ (unsigned long long) ((d % USEC_PER_HOUR) / USEC_PER_MINUTE), s);
+ else if (d >= 5*USEC_PER_MINUTE)
+- snprintf(buf, l, "%llumin ago",
+- (unsigned long long) (d / USEC_PER_MINUTE));
++ snprintf(buf, l, "%llumin %s",
++ (unsigned long long) (d / USEC_PER_MINUTE), s);
+ else if (d >= USEC_PER_MINUTE)
+- snprintf(buf, l, "%llumin %llus ago",
++ snprintf(buf, l, "%llumin %llus %s",
+ (unsigned long long) (d / USEC_PER_MINUTE),
+- (unsigned long long) ((d % USEC_PER_MINUTE) / USEC_PER_SEC));
++ (unsigned long long) ((d % USEC_PER_MINUTE) / USEC_PER_SEC), s);
+ else if (d >= USEC_PER_SEC)
+- snprintf(buf, l, "%llus ago",
+- (unsigned long long) (d / USEC_PER_SEC));
++ snprintf(buf, l, "%llus %s",
++ (unsigned long long) (d / USEC_PER_SEC), s);
+ else if (d >= USEC_PER_MSEC)
+- snprintf(buf, l, "%llums ago",
+- (unsigned long long) (d / USEC_PER_MSEC));
++ snprintf(buf, l, "%llums %s",
++ (unsigned long long) (d / USEC_PER_MSEC), s);
+ else if (d > 0)
+- snprintf(buf, l, "%lluus ago",
+- (unsigned long long) d);
++ snprintf(buf, l, "%lluus %s",
++ (unsigned long long) d, s);
+ else
+ snprintf(buf, l, "now");
+
+@@ -457,6 +464,18 @@ int parse_timestamp(const char *t, usec_t *usec) {
+ return r;
+
+ goto finish;
++ } else if (endswith(t, " left")) {
++ _cleanup_free_ char *z;
++
++ z = strndup(t, strlen(t) - 4);
++ if (!z)
++ return -ENOMEM;
++
++ r = parse_sec(z, &plus);
++ if (r < 0)
++ return r;
++
++ goto finish;
+ }
+
+ for (i = 0; i < ELEMENTSOF(day_nr); i++) {
diff --git a/0101-activate-mention-E-in-the-help-text.patch b/0101-activate-mention-E-in-the-help-text.patch
new file mode 100644
index 0000000..20b4800
--- /dev/null
+++ b/0101-activate-mention-E-in-the-help-text.patch
@@ -0,0 +1,22 @@
+From b3b1073e2b00e37760d897ce8e18293ca788bdef Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= <grawity at gmail.com>
+Date: Wed, 13 Nov 2013 13:36:17 +0200
+Subject: [PATCH] activate: mention -E in the help text
+
+---
+ src/activate/activate.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/activate/activate.c b/src/activate/activate.c
+index 87526d4..a24c66a 100644
+--- a/src/activate/activate.c
++++ b/src/activate/activate.c
+@@ -317,6 +317,8 @@ static int help(void) {
+ " -l --listen=ADDR Listen for raw connections at ADDR\n"
+ " -a --accept Spawn separate child for each connection\n"
+ " -h --help Show this help and exit\n"
++ " -E --environment=NAME[=VALUE]\n"
++ " Pass an environment variable to children\n"
+ " --version Print version string and exit\n"
+ "\n"
+ "Note: file descriptors from sd_listen_fds() will be passed through.\n"
diff --git a/0102-activate-fix-crash-when-s-is-passed.patch b/0102-activate-fix-crash-when-s-is-passed.patch
new file mode 100644
index 0000000..f33cb77
--- /dev/null
+++ b/0102-activate-fix-crash-when-s-is-passed.patch
@@ -0,0 +1,23 @@
+From 3a1149687f87d649102d7bd9219fc9acfb3418e6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= <grawity at gmail.com>
+Date: Wed, 13 Nov 2013 13:36:16 +0200
+Subject: [PATCH] activate: fix crash when -s is passed
+
+getopt_long() was told to accept -s which was never implemented.
+---
+ src/activate/activate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/activate/activate.c b/src/activate/activate.c
+index a24c66a..da93dbf 100644
+--- a/src/activate/activate.c
++++ b/src/activate/activate.c
+@@ -347,7 +347,7 @@ static int parse_argv(int argc, char *argv[]) {
+ assert(argc >= 0);
+ assert(argv);
+
+- while ((c = getopt_long(argc, argv, "+hl:saE:", options, NULL)) >= 0)
++ while ((c = getopt_long(argc, argv, "+hl:aE:", options, NULL)) >= 0)
+ switch(c) {
+ case 'h':
+ help();
diff --git a/0103-journal-timestamp-support-on-console-messages.patch b/0103-journal-timestamp-support-on-console-messages.patch
new file mode 100644
index 0000000..c5be767
--- /dev/null
+++ b/0103-journal-timestamp-support-on-console-messages.patch
@@ -0,0 +1,85 @@
+From 1e74ecdeda7e1b01886f66c02571ce5c1eec84e3 Mon Sep 17 00:00:00 2001
+From: Umut Tezduyar Lindskog <umut.tezduyar at axis.com>
+Date: Wed, 13 Nov 2013 15:27:19 +0100
+Subject: [PATCH] journal: timestamp support on console messages
+
+journald mimics the kernel here: timestamps will be printed if
+/sys/module/printk/parameters/time contains "Y".
+---
+ src/journal/journald-console.c | 34 +++++++++++++++++++++++++++++++---
+ 1 file changed, 31 insertions(+), 3 deletions(-)
+
+diff --git a/src/journal/journald-console.c b/src/journal/journald-console.c
+index be55f94..1ee3afe 100644
+--- a/src/journal/journald-console.c
++++ b/src/journal/journald-console.c
+@@ -19,13 +19,30 @@
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+ ***/
+
++#include <time.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <sys/socket.h>
+
++#include "fileio.h"
+ #include "journald-server.h"
+ #include "journald-console.h"
+
++static bool prefix_timestamp(void) {
++
++ static int cached_printk_time = -1;
++
++ if (_unlikely_(cached_printk_time < 0)) {
++ _cleanup_free_ char *p = NULL;
++
++ cached_printk_time =
++ read_one_line_file("/sys/module/printk/parameters/time", &p) >= 0
++ && parse_boolean(p) > 0;
++ }
++
++ return cached_printk_time;
++}
++
+ void server_forward_console(
+ Server *s,
+ int priority,
+@@ -33,8 +50,10 @@ void server_forward_console(
+ const char *message,
+ struct ucred *ucred) {
+
+- struct iovec iovec[4];
++ struct iovec iovec[5];
+ char header_pid[16];
++ struct timespec ts;
++ char tbuf[4 + DECIMAL_STR_MAX(ts.tv_sec) + DECIMAL_STR_MAX(ts.tv_nsec)-3 + 1];
+ int n = 0, fd;
+ char *ident_buf = NULL;
+ const char *tty;
+@@ -45,7 +64,16 @@ void server_forward_console(
+ if (LOG_PRI(priority) > s->max_level_console)
+ return;
+
+- /* First: identifier and PID */
++ /* First: timestamp */
++ if (prefix_timestamp()) {
++ assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0);
++ snprintf(tbuf, sizeof(tbuf), "[%5llu.%06llu] ",
++ (unsigned long long) ts.tv_sec,
++ (unsigned long long) ts.tv_nsec / 1000);
++ IOVEC_SET_STRING(iovec[n++], tbuf);
++ }
++
++ /* Second: identifier and PID */
+ if (ucred) {
+ if (!identifier) {
+ get_process_comm(ucred->pid, &ident_buf);
+@@ -64,7 +92,7 @@ void server_forward_console(
+ IOVEC_SET_STRING(iovec[n++], ": ");
+ }
+
+- /* Third: message */
++ /* Fourth: message */
+ IOVEC_SET_STRING(iovec[n++], message);
+ IOVEC_SET_STRING(iovec[n++], "\n");
+
diff --git a/0104-Resolve-dev-console-to-the-active-tty-instead-of-jus.patch b/0104-Resolve-dev-console-to-the-active-tty-instead-of-jus.patch
new file mode 100644
index 0000000..c63b19f
--- /dev/null
+++ b/0104-Resolve-dev-console-to-the-active-tty-instead-of-jus.patch
@@ -0,0 +1,33 @@
+From 5c294f2b21a891958ef232f4528fa35bb6c96ac7 Mon Sep 17 00:00:00 2001
+From: Olivier Brunel <jjk at jjacky.com>
+Date: Fri, 20 Sep 2013 22:18:28 +0200
+Subject: [PATCH] Resolve /dev/console to the active tty instead of just "tty0"
+
+When resolving /dev/console one would often get "tty0" meaning the active VT.
+Resolving to the actual tty (e.g. "tty1") will notably help on boot when
+determining whether or not PID1 can output to the console.
+---
+ src/shared/util.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/shared/util.c b/src/shared/util.c
+index 1b35c54..e3d4a94 100644
+--- a/src/shared/util.c
++++ b/src/shared/util.c
+@@ -3600,6 +3600,16 @@ char *resolve_dev_console(char **active) {
+ else
+ tty = *active;
+
++ if (streq(tty, "tty0")) {
++ char *tmp;
++
++ /* Get the active VC (e.g. tty1) */
++ if (read_one_line_file("/sys/class/tty/tty0/active", &tmp) >= 0) {
++ free(*active);
++ tty = *active = tmp;
++ }
++ }
++
+ return tty;
+ }
+
diff --git a/0105-manager-don-t-do-plymouth-in-a-container.patch b/0105-manager-don-t-do-plymouth-in-a-container.patch
new file mode 100644
index 0000000..244c672
--- /dev/null
+++ b/0105-manager-don-t-do-plymouth-in-a-container.patch
@@ -0,0 +1,26 @@
+From b48d4e5832f3c17b8aeb6af486ee3ea0f1c70376 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Wed, 20 Nov 2013 03:44:11 +0100
+Subject: [PATCH] manager: don't do plymouth in a container
+
+Given that plymouth listens on an abstract namespace socket and if
+CLONE_NEWNET is not used the abstract namespace is shared with the host
+we might actually end up send plymouth data to the host.
+---
+ src/core/manager.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/core/manager.c b/src/core/manager.c
+index c7f8f20..481ec30 100644
+--- a/src/core/manager.c
++++ b/src/core/manager.c
+@@ -1868,6 +1868,9 @@ void manager_send_unit_plymouth(Manager *m, Unit *u) {
+ if (m->running_as != SYSTEMD_SYSTEM)
+ return;
+
++ if (detect_container(NULL) > 0)
++ return;
++
+ if (u->type != UNIT_SERVICE &&
+ u->type != UNIT_MOUNT &&
+ u->type != UNIT_SWAP)
diff --git a/0106-valgrind-make-running-PID-1-in-valgrind-useful.patch b/0106-valgrind-make-running-PID-1-in-valgrind-useful.patch
new file mode 100644
index 0000000..ea72fc2
--- /dev/null
+++ b/0106-valgrind-make-running-PID-1-in-valgrind-useful.patch
@@ -0,0 +1,59 @@
+From b07c5b16a5deeb85b7fc434e1f3043c76d81bfc2 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Wed, 20 Nov 2013 22:11:10 +0100
+Subject: [PATCH] valgrind: make running PID 1 in valgrind useful
+
+Since valgrind only generates useful output on exit() (rather than
+exec()) we need to explicitly exit when valgrind is detected.
+
+Conflicts:
+ src/core/main.c
+---
+ configure.ac | 2 +-
+ src/core/main.c | 13 +++++++++++++
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index a918252..66d2407 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -704,7 +704,7 @@ AC_DEFINE_UNQUOTED(TELINIT, ["$TELINIT"], [Path to telinit])
+
+ AC_SUBST(TELINIT)
+
+-AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
++AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
+
+ # ------------------------------------------------------------------------------
+ have_myhostname=no
+diff --git a/src/core/main.c b/src/core/main.c
+index 954b480..80d0668 100644
+--- a/src/core/main.c
++++ b/src/core/main.c
+@@ -34,6 +34,10 @@
+ #include <sys/prctl.h>
+ #include <sys/mount.h>
+
++#ifdef HAVE_VALGRIND_VALGRIND_H
++#include <valgrind/valgrind.h>
++#endif
++
+ #include "manager.h"
+ #include "log.h"
+ #include "load-fragment.h"
+@@ -1920,6 +1924,15 @@ finish:
+ if (fds)
+ fdset_free(fds);
+
++#ifdef HAVE_VALGRIND_VALGRIND_H
++ /* If we are PID 1 and running under valgrind, then let's exit
++ * here explicitly. valgrind will only generate nice output on
++ * exit(), not on exec(), hence let's do the former not the
++ * latter here. */
++ if (getpid() == 1 && RUNNING_ON_VALGRIND)
++ return 0;
++#endif
++
+ if (shutdown_verb) {
+ const char * command_line[] = {
+ SYSTEMD_SHUTDOWN_BINARY_PATH,
diff --git a/0107-automount-log-info-about-triggering-process.patch b/0107-automount-log-info-about-triggering-process.patch
new file mode 100644
index 0000000..8581486
--- /dev/null
+++ b/0107-automount-log-info-about-triggering-process.patch
@@ -0,0 +1,26 @@
+From 3ed443abd12226292e7cf3dba3fef79c75d9d6e3 Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay at vrfy.org>
+Date: Thu, 28 Nov 2013 01:25:10 +0100
+Subject: [PATCH] automount: log info about triggering process
+
+Conflicts:
+ src/core/automount.c
+---
+ src/core/automount.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/core/automount.c b/src/core/automount.c
+index a20d534..c892519 100644
+--- a/src/core/automount.c
++++ b/src/core/automount.c
+@@ -801,8 +801,8 @@ static void automount_fd_event(Unit *u, int fd, uint32_t events, Watch *w) {
+ _cleanup_free_ char *p = NULL;
+
+ get_process_comm(packet.v5_packet.pid, &p);
+- log_debug_unit(u->id,
+- "Got direct mount request on %s, triggered by %lu (%s)",
++ log_info_unit(u->id,
++ "Got automount request for %s, triggered by %lu (%s)",
+ a->where, (unsigned long) packet.v5_packet.pid, strna(p));
+ } else
+ log_debug_unit(u->id, "Got direct mount request on %s", a->where);
diff --git a/0108-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch b/0108-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch
new file mode 100644
index 0000000..eb8544c
--- /dev/null
+++ b/0108-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch
@@ -0,0 +1,28 @@
+From e068005b8fddf77eca9145cdf405d788d808a760 Mon Sep 17 00:00:00 2001
+From: Thomas Hindoe Paaboel Andersen <phomes at gmail.com>
+Date: Sat, 30 Nov 2013 23:45:31 +0100
+Subject: [PATCH] util.c: check if return value from ttyname_r is > 0 instead
+ of != 0
+
+We must return a negative error code from getttyname_malloc but
+that would not be the case if ttyname_r returned a negative value.
+
+ttyname_r should only return EBADF, ENOTTY, or ERANGE so it should
+be safe to change.
+---
+ src/shared/util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/shared/util.c b/src/shared/util.c
+index e3d4a94..1526b92 100644
+--- a/src/shared/util.c
++++ b/src/shared/util.c
+@@ -2539,7 +2539,7 @@ int getttyname_malloc(int fd, char **r) {
+ assert(r);
+
+ k = ttyname_r(fd, path, sizeof(path));
+- if (k != 0)
++ if (k > 0)
+ return -k;
+
+ char_array_0(path);
diff --git a/0109-docs-remove-unneeded-the-s-in-gudev-docs.patch b/0109-docs-remove-unneeded-the-s-in-gudev-docs.patch
new file mode 100644
index 0000000..5846b84
--- /dev/null
+++ b/0109-docs-remove-unneeded-the-s-in-gudev-docs.patch
@@ -0,0 +1,38 @@
+From 4194ac9b57c891cfe34ff6c1d9342593d6fa4faf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Sat, 30 Nov 2013 20:27:54 -0500
+Subject: [PATCH] docs: remove unneeded the's in gudev docs
+
+https://bugs.freedesktop.org/show_bug.cgi?id=72164
+---
+ src/libudev/libudev-device.c | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
+index 6bb2e41..7ac464b 100644
+--- a/src/libudev/libudev-device.c
++++ b/src/libudev/libudev-device.c
+@@ -980,9 +980,8 @@ static struct udev_device *device_new_from_parent(struct udev_device *udev_devic
+ * Find the next parent device, and fill in information from the sys
+ * device and the udev database entry.
+ *
+- * The returned the device is not referenced. It is attached to the
+- * child device, and will be cleaned up when the child device
+- * is cleaned up.
++ * Returned device is not referenced. It is attached to the child
++ * device, and will be cleaned up when the child device is cleaned up.
+ *
+ * It is not necessarily just the upper level directory, empty or not
+ * recognized sys directories are ignored.
+@@ -1016,9 +1015,8 @@ _public_ struct udev_device *udev_device_get_parent(struct udev_device *udev_dev
+ * If devtype is #NULL, only subsystem is checked, and any devtype will
+ * match.
+ *
+- * The returned the device is not referenced. It is attached to the
+- * child device, and will be cleaned up when the child device
+- * is cleaned up.
++ * Returned device is not referenced. It is attached to the child
++ * device, and will be cleaned up when the child device is cleaned up.
+ *
+ * It can be called as many times as needed, without caring about
+ * references.
diff --git a/0110-systemd-treat-reload-failure-as-failure.patch b/0110-systemd-treat-reload-failure-as-failure.patch
new file mode 100644
index 0000000..a92853d
--- /dev/null
+++ b/0110-systemd-treat-reload-failure-as-failure.patch
@@ -0,0 +1,90 @@
+From fd3b3868816e7b2bd78d4a908c36e1d285fb72e3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Mon, 2 Dec 2013 21:52:51 -0500
+Subject: [PATCH] systemd: treat reload failure as failure
+
+systemctl reload "suceeded" on stopped units, but it is documented
+to fail in this case.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1036845
+---
+ src/core/job.c | 11 +++++++----
+ src/core/job.h | 3 ++-
+ src/core/unit.c | 5 ++++-
+ 3 files changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/src/core/job.c b/src/core/job.c
+index d304a16..74ced49 100644
+--- a/src/core/job.c
++++ b/src/core/job.c
+@@ -528,7 +528,7 @@ int job_run_and_invalidate(Job *j) {
+ else if (t == UNIT_ACTIVATING)
+ r = -EAGAIN;
+ else
+- r = -ENOEXEC;
++ r = -EBADR;
+ break;
+ }
+
+@@ -557,8 +557,10 @@ int job_run_and_invalidate(Job *j) {
+ if (j) {
+ if (r == -EALREADY)
+ r = job_finish_and_invalidate(j, JOB_DONE, true);
+- else if (r == -ENOEXEC)
++ else if (r == -EBADR)
+ r = job_finish_and_invalidate(j, JOB_SKIPPED, true);
++ else if (r == -ENOEXEC)
++ r = job_finish_and_invalidate(j, JOB_INVALID, true);
+ else if (r == -EAGAIN) {
+ j->state = JOB_WAITING;
+ m->n_running_jobs--;
+@@ -784,7 +786,7 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) {
+ goto finish;
+ }
+
+- if (result == JOB_FAILED)
++ if (result == JOB_FAILED || result == JOB_INVALID)
+ j->manager->n_failed_jobs ++;
+
+ job_uninstall(j);
+@@ -1137,7 +1139,8 @@ static const char* const job_result_table[_JOB_RESULT_MAX] = {
+ [JOB_TIMEOUT] = "timeout",
+ [JOB_FAILED] = "failed",
+ [JOB_DEPENDENCY] = "dependency",
+- [JOB_SKIPPED] = "skipped"
++ [JOB_SKIPPED] = "skipped",
++ [JOB_INVALID] = "invalid",
+ };
+
+ DEFINE_STRING_TABLE_LOOKUP(job_result, JobResult);
+diff --git a/src/core/job.h b/src/core/job.h
+index d90bc96..4237529 100644
+--- a/src/core/job.h
++++ b/src/core/job.h
+@@ -97,7 +97,8 @@ enum JobResult {
+ JOB_TIMEOUT, /* JobTimeout elapsed */
+ JOB_FAILED, /* Job failed */
+ JOB_DEPENDENCY, /* A required dependency job did not result in JOB_DONE */
+- JOB_SKIPPED, /* JOB_RELOAD of inactive unit; negative result of JOB_VERIFY_ACTIVE */
++ JOB_SKIPPED, /* Negative result of JOB_VERIFY_ACTIVE */
++ JOB_INVALID, /* JOB_RELOAD of inactive unit */
+ _JOB_RESULT_MAX,
+ _JOB_RESULT_INVALID = -1
+ };
+diff --git a/src/core/unit.c b/src/core/unit.c
+index e744cd3..cdeceae 100644
+--- a/src/core/unit.c
++++ b/src/core/unit.c
+@@ -1163,8 +1163,11 @@ int unit_reload(Unit *u) {
+ if (state == UNIT_RELOADING)
+ return -EALREADY;
+
+- if (state != UNIT_ACTIVE)
++ if (state != UNIT_ACTIVE) {
++ log_warning_unit(u->id, "Unit %s cannot be reloaded because it is inactive.",
++ u->id);
+ return -ENOEXEC;
++ }
+
+ if ((following = unit_following(u))) {
+ log_debug_unit(u->id, "Redirecting reload request from %s to %s.",
diff --git a/0111-journal-fail-silently-in-sd_j_sendv-if-journal-is-un.patch b/0111-journal-fail-silently-in-sd_j_sendv-if-journal-is-un.patch
new file mode 100644
index 0000000..c89fdd6
--- /dev/null
+++ b/0111-journal-fail-silently-in-sd_j_sendv-if-journal-is-un.patch
@@ -0,0 +1,34 @@
+From 9a184bf7fc9d24786ec2715c8897cb52e00086ad Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Tue, 3 Dec 2013 08:07:32 -0500
+Subject: [PATCH] journal: fail silently in sd_j_sendv() if journal is
+ unavailable
+
+"syslog(3) and sd_journal_print() may largely be used interchangeably
+functionality-wise" according to sd_journal_print(3). This socket
+should be always available except in rare circumstatances, and we
+don't random applications to fail on logging, so let's do what syslog
+did. The alternative of forcing all callers to do error handling for
+this rare case doesn't really have any benefits, since if they can't
+log there isn't much they can do anyway.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1023041
+---
+ src/journal/journal-send.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
+index 14c437d..72dbd29 100644
+--- a/src/journal/journal-send.c
++++ b/src/journal/journal-send.c
+@@ -306,6 +306,10 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) {
+ if (k >= 0)
+ return 0;
+
++ /* Fail silently if the journal is not available */
++ if (errno == ENOENT)
++ return 0;
++
+ if (errno != EMSGSIZE && errno != ENOBUFS)
+ return -errno;
+
diff --git a/0112-journal-handle-multiline-syslog-messages.patch b/0112-journal-handle-multiline-syslog-messages.patch
new file mode 100644
index 0000000..058e320
--- /dev/null
+++ b/0112-journal-handle-multiline-syslog-messages.patch
@@ -0,0 +1,76 @@
+From 8494c349d14590a57312ce660e4ee2e0a42a87b9 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 1 Aug 2013 12:14:02 +0200
+Subject: [PATCH] journal: handle multiline syslog messages
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Since the journal can handle multiple lines just well natively,
+and rsyslog can be configured to handle them as well, there is no need
+to truncate messages from syslog() after the first newline.
+
+Reproducer:
+
+1. Add following four lines to /etc/rsyslog.conf
+
+ ----------
+ $EscapeControlCharactersOnReceive off
+ $ActionFileDefaultTemplate RSYSLOG_SysklogdFileFormat
+ $SpaceLFOnReceive on
+ $DropTrailingLFOnReception off
+ ----------
+
+3. Restart rsyslog
+ # service rsyslog restart
+
+4. Compile and run the following program
+
+ ----------
+ #include <stdio.h>
+ #include <syslog.h>
+
+ int main()
+ {
+ syslog(LOG_INFO, "aaa%caaa", '\n');
+ return 0;
+ }
+ ----------
+
+Actual results:
+Below message appears in /var/log/messages.
+
+ ----------
+ Sep 7 19:19:39 localhost test2: aaa
+ ----------
+
+Expected results:
+Below message, which worked prior to systemd-journald
+appears in /var/log/messages.
+
+ ----------
+ Sep 7 19:19:39 localhost test2: aaa aaa
+
+https://bugzilla.redhat.com/show_bug.cgi?id=855313
+---
+ src/journal/journald-server.c | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
+index 7a316c2..de8ac68 100644
+--- a/src/journal/journald-server.c
++++ b/src/journal/journald-server.c
+@@ -1155,12 +1155,7 @@ int process_event(Server *s, struct epoll_event *ev) {
+ char *e;
+
+ if (n > 0 && n_fds == 0) {
+- e = memchr(s->buffer, '\n', n);
+- if (e)
+- *e = 0;
+- else
+- s->buffer[n] = 0;
+-
++ s->buffer[n] = 0;
+ server_process_syslog_message(s, strstrip(s->buffer), ucred, tv, label, label_len);
+ } else if (n_fds > 0)
+ log_warning("Got file descriptors via syslog socket. Ignoring.");
diff --git a/0113-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch b/0113-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch
new file mode 100644
index 0000000..b253b77
--- /dev/null
+++ b/0113-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch
@@ -0,0 +1,33 @@
+From 80e49428922df25a33a8d42dcc53e79a41e1553b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Mon, 3 Jun 2013 13:55:13 -0400
+Subject: [PATCH] systemctl,core: allow nuking of symlinks to removed units
+
+Before, one the unit file was deleted, install_context_for_removal()
+would refuse to look for symlinks. But we can remove dangling symlinks
+anyway.
+
+In principle, package installation/deinstallation scripts should do
+that before the unit is uninstalled, but they don't always do. Also,
+a user might have added additional symlinks manually.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=62395
+---
+ src/shared/install.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/shared/install.c b/src/shared/install.c
+index edf4d2a..a695e12 100644
+--- a/src/shared/install.c
++++ b/src/shared/install.c
+@@ -1413,7 +1413,9 @@ static int install_context_mark_for_removal(
+ assert_se(hashmap_move_one(c->have_installed, c->will_install, i->name) == 0);
+
+ q = unit_file_search(c, i, paths, root_dir, false);
+- if (q < 0) {
++ if (q == -ENOENT) {
++ /* do nothing */
++ } else if (q < 0) {
+ if (r >= 0)
+ r = q;
+
diff --git a/0114-journald-bump-the-journal-per-unit-ratelimit-default.patch b/0114-journald-bump-the-journal-per-unit-ratelimit-default.patch
new file mode 100644
index 0000000..9f67ebb
--- /dev/null
+++ b/0114-journald-bump-the-journal-per-unit-ratelimit-default.patch
@@ -0,0 +1,43 @@
+From 385f5f5e9722eefd287771008f90475fefe09b27 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Fri, 21 Jun 2013 15:56:45 +0200
+Subject: [PATCH] journald: bump the journal per-unit ratelimit defaults
+
+Too many people kept hitting them, so let's increase the limits a bit.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=965803
+---
+ src/journal/journald-server.c | 4 ++--
+ src/journal/journald.conf | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
+index de8ac68..24c5227 100644
+--- a/src/journal/journald-server.c
++++ b/src/journal/journald-server.c
+@@ -65,8 +65,8 @@
+ #define USER_JOURNALS_MAX 1024
+
+ #define DEFAULT_SYNC_INTERVAL_USEC (5*USEC_PER_MINUTE)
+-#define DEFAULT_RATE_LIMIT_INTERVAL (10*USEC_PER_SEC)
+-#define DEFAULT_RATE_LIMIT_BURST 200
++#define DEFAULT_RATE_LIMIT_INTERVAL (30*USEC_PER_SEC)
++#define DEFAULT_RATE_LIMIT_BURST 1000
+
+ #define RECHECK_AVAILABLE_SPACE_USEC (30*USEC_PER_SEC)
+
+diff --git a/src/journal/journald.conf b/src/journal/journald.conf
+index 5410477..54f6833 100644
+--- a/src/journal/journald.conf
++++ b/src/journal/journald.conf
+@@ -13,8 +13,8 @@
+ #Seal=yes
+ #SplitMode=login
+ #SyncIntervalSec=5m
+-#RateLimitInterval=10s
+-#RateLimitBurst=200
++#RateLimitInterval=30s
++#RateLimitBurst=1000
+ #SystemMaxUse=
+ #SystemKeepFree=
+ #SystemMaxFileSize=
diff --git a/0115-service-execute-ExecStopPost-commands-when-the-watch.patch b/0115-service-execute-ExecStopPost-commands-when-the-watch.patch
new file mode 100644
index 0000000..68d6e5a
--- /dev/null
+++ b/0115-service-execute-ExecStopPost-commands-when-the-watch.patch
@@ -0,0 +1,28 @@
+From 04a3f098eae9478dd58bd3b7c89afbc5d7b978b6 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Thu, 6 Jun 2013 09:10:12 +0200
+Subject: [PATCH] service: execute ExecStopPost= commands when the watchdog
+ timeout hits
+
+We can assume that a service for which a watchdog timeout was triggered
+is unresponsive to a clean shutdown. However, it still makes sense to
+execute the post-stop cleanup commands that can be configured with
+ExecStopPost=. Hence, when the timeout is hit enter STOP_SIGKILL rather
+than FINAL_SIGKILL.
+---
+ src/core/service.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/service.c b/src/core/service.c
+index bc00f88..6e0abe6 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -249,7 +249,7 @@ static void service_handle_watchdog(Service *s) {
+ offset = now(CLOCK_MONOTONIC) - s->watchdog_timestamp.monotonic;
+ if (offset >= s->watchdog_usec) {
+ log_error_unit(UNIT(s)->id, "%s watchdog timeout!", UNIT(s)->id);
+- service_enter_signal(s, SERVICE_FINAL_SIGKILL, SERVICE_FAILURE_WATCHDOG);
++ service_enter_signal(s, SERVICE_STOP_SIGKILL, SERVICE_FAILURE_WATCHDOG);
+ return;
+ }
+
diff --git a/0116-localed-match-converted-keymaps-before-legacy.patch b/0116-localed-match-converted-keymaps-before-legacy.patch
new file mode 100644
index 0000000..bcbbdb4
--- /dev/null
+++ b/0116-localed-match-converted-keymaps-before-legacy.patch
@@ -0,0 +1,327 @@
+From 818e7631dd6d3f0887e75022063c6291271684be Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Mon, 18 Nov 2013 13:42:57 -0500
+Subject: [PATCH] localed: match converted keymaps before legacy
+
+Before, X11 keymap fr-pc105-oss would be converted to fr,
+even though fr-oss exists. Now, if
+/usr/lib/kbd/keymaps/xkb/<layout>[-<variant>].map[.gz] exists,
+<layout>[-<variant>] will be used as the console keymap,
+falling back to the legacy mappings otherwise.
+
+% sudo localectl set-x11-keymap pl pc105
+% localectl
+ System Locale: LANG=en_US.UTF-8
+ VC Keymap: pl (was pl2 before)
+ X11 Layout: pl
+ X11 Model: pc105
+% sudo localectl set-x11-keymap fr pc105 oss
+% localectl
+ System Locale: LANG=en_US.UTF-8
+ VC Keymap: fr-oss (was fr before)
+ X11 Layout: fr
+ X11 Model: pc105
+ X11 Variant: oss
+% sudo localectl set-x11-keymap fr pc105
+% localectl
+ System Locale: LANG=en_US.UTF-8
+ VC Keymap: fr
+ X11 Layout: fr
+ X11 Model: pc105
+% sudo localectl set-x11-keymap gb
+% localectl
+ System Locale: LANG=en_US.UTF-8
+ VC Keymap: gb (was uk before)
+ X11 Layout: gb
+
+Conflicts:
+ src/locale/localed.c
+ src/shared/def.h
+
+Conflicts:
+ src/locale/localectl.c
+ src/shared/def.h
+---
+ src/locale/localectl.c | 7 +-
+ src/locale/localed.c | 189 ++++++++++++++++++++++++++++---------------------
+ src/shared/def.h | 13 ++++
+ 3 files changed, 126 insertions(+), 83 deletions(-)
+
+diff --git a/src/locale/localectl.c b/src/locale/localectl.c
+index 50250c4..e455182 100644
+--- a/src/locale/localectl.c
++++ b/src/locale/localectl.c
+@@ -38,6 +38,7 @@
+ #include "set.h"
+ #include "path-util.h"
+ #include "utf8.h"
++#include "def.h"
+
+ static bool arg_no_pager = false;
+ static enum transport {
+@@ -532,14 +533,14 @@ static int nftw_cb(
+
+ static int list_vconsole_keymaps(DBusConnection *bus, char **args, unsigned n) {
+ _cleanup_strv_free_ char **l = NULL;
++ const char *dir;
+
+ keymaps = set_new(string_hash_func, string_compare_func);
+ if (!keymaps)
+ return log_oom();
+
+- nftw("/usr/share/kbd/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS);
+- nftw("/usr/lib/kbd/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS);
+- nftw("/lib/kbd/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS);
++ NULSTR_FOREACH(dir, KBD_KEYMAP_DIRS)
++ nftw(dir, nftw_cb, 20, FTW_MOUNT|FTW_PHYS);
+
+ l = set_get_strv(keymaps);
+ if (!l) {
+diff --git a/src/locale/localed.c b/src/locale/localed.c
+index e160c04..b9b98f4 100644
+--- a/src/locale/localed.c
++++ b/src/locale/localed.c
+@@ -792,105 +792,135 @@ static int convert_vconsole_to_x11(DBusConnection *connection) {
+ return 0;
+ }
+
+-static int convert_x11_to_vconsole(DBusConnection *connection) {
+- bool modified = false;
++static int find_converted_keymap(char **new_keymap) {
++ const char *dir;
++ _cleanup_free_ char *n;
++
++ if (state.x11_variant)
++ n = strjoin(state.x11_layout, "-", state.x11_variant, NULL);
++ else
++ n = strdup(state.x11_layout);
++ if (!n)
++ return -ENOMEM;
+
+- assert(connection);
++ NULSTR_FOREACH(dir, KBD_KEYMAP_DIRS) {
++ _cleanup_free_ char *p = NULL, *pz = NULL;
+
+- if (isempty(state.x11_layout)) {
++ p = strjoin(dir, "xkb/", n, ".map", NULL);
++ pz = strjoin(dir, "xkb/", n, ".map.gz", NULL);
++ if (!p || !pz)
++ return -ENOMEM;
+
+- modified =
+- !isempty(state.vc_keymap) ||
+- !isempty(state.vc_keymap_toggle);
++ if (access(p, F_OK) == 0 || access(pz, F_OK) == 0) {
++ *new_keymap = n;
++ n = NULL;
++ return 1;
++ }
++ }
+
+- free_data_x11();
+- } else {
+- FILE *f;
+- unsigned n = 0;
+- unsigned best_matching = 0;
+- char *new_keymap = NULL;
++ return 0;
++}
+
+- f = fopen(SYSTEMD_KBD_MODEL_MAP, "re");
+- if (!f)
+- return -errno;
++static int find_legacy_keymap(char **new_keymap) {
++ _cleanup_fclose_ FILE *f;
++ unsigned n = 0;
++ unsigned best_matching = 0;
+
+- for (;;) {
+- char **a;
+- unsigned matching = 0;
+- int r;
+
+- r = read_next_mapping(f, &n, &a);
+- if (r < 0) {
+- fclose(f);
+- return r;
+- }
++ f = fopen(SYSTEMD_KBD_MODEL_MAP, "re");
++ if (!f)
++ return -errno;
+
+- if (r == 0)
+- break;
++ for (;;) {
++ _cleanup_strv_free_ char **a = NULL;
++ unsigned matching = 0;
++ int r;
+
+- /* Determine how well matching this entry is */
+- if (streq_ptr(state.x11_layout, a[1]))
+- /* If we got an exact match, this is best */
+- matching = 10;
+- else {
+- size_t x;
+-
+- x = strcspn(state.x11_layout, ",");
+-
+- /* We have multiple X layouts, look
+- * for an entry that matches our key
+- * with the everything but the first
+- * layout stripped off. */
+- if (x > 0 &&
+- strlen(a[1]) == x &&
+- strneq(state.x11_layout, a[1], x))
+- matching = 5;
+- else {
+- size_t w;
+-
+- /* If that didn't work, strip
+- * off the other layouts from
+- * the entry, too */
+-
+- w = strcspn(a[1], ",");
+-
+- if (x > 0 && x == w &&
+- memcmp(state.x11_layout, a[1], x) == 0)
+- matching = 1;
+- }
++ r = read_next_mapping(f, &n, &a);
++ if (r < 0)
++ return r;
++ if (r == 0)
++ break;
++
++ /* Determine how well matching this entry is */
++ if (streq_ptr(state.x11_layout, a[1]))
++ /* If we got an exact match, this is best */
++ matching = 10;
++ else {
++ size_t x;
++
++ x = strcspn(state.x11_layout, ",");
++
++ /* We have multiple X layouts, look for an
++ * entry that matches our key with everything
++ * but the first layout stripped off. */
++ if (x > 0 &&
++ strlen(a[1]) == x &&
++ strneq(state.x11_layout, a[1], x))
++ matching = 5;
++ else {
++ size_t w;
++
++ /* If that didn't work, strip off the
++ * other layouts from the entry, too */
++ w = strcspn(a[1], ",");
++
++ if (x > 0 && x == w &&
++ memcmp(state.x11_layout, a[1], x) == 0)
++ matching = 1;
+ }
++ }
++
++ if (matching > 0 &&
++ streq_ptr(state.x11_model, a[2])) {
++ matching++;
+
+- if (matching > 0 &&
+- streq_ptr(state.x11_model, a[2])) {
++ if (streq_ptr(state.x11_variant, a[3])) {
+ matching++;
+
+- if (streq_ptr(state.x11_variant, a[3])) {
++ if (streq_ptr(state.x11_options, a[4]))
+ matching++;
+-
+- if (streq_ptr(state.x11_options, a[4]))
+- matching++;
+- }
+ }
++ }
+
+- /* The best matching entry so far, then let's
+- * save that */
+- if (matching > best_matching) {
+- best_matching = matching;
++ /* The best matching entry so far, then let's save that */
++ if (matching > best_matching) {
++ best_matching = matching;
+
+- free(new_keymap);
+- new_keymap = strdup(a[0]);
++ free(*new_keymap);
++ *new_keymap = strdup(a[0]);
++ if (!*new_keymap)
++ return -ENOMEM;
++ }
++ }
+
+- if (!new_keymap) {
+- strv_free(a);
+- fclose(f);
+- return -ENOMEM;
+- }
+- }
++ return 0;
++}
+
+- strv_free(a);
+- }
++static int convert_x11_to_vconsole(DBusConnection *connection) {
++ bool modified = false;
++ int r;
+
+- fclose(f);
++ assert(connection);
++
++ if (isempty(state.x11_layout)) {
++
++ modified =
++ !isempty(state.vc_keymap) ||
++ !isempty(state.vc_keymap_toggle);
++
++ free_data_x11();
++ } else {
++ char *new_keymap = NULL;
++
++ r = find_converted_keymap(&new_keymap);
++ if (r < 0)
++ return r;
++ else if (r == 0) {
++ r = find_legacy_keymap(&new_keymap);
++ if (r < 0)
++ return r;
++ }
+
+ if (!streq_ptr(state.vc_keymap, new_keymap)) {
+ free(state.vc_keymap);
+@@ -907,7 +937,6 @@ static int convert_x11_to_vconsole(DBusConnection *connection) {
+ if (modified) {
+ dbus_bool_t b;
+ DBusMessage *changed;
+- int r;
+
+ r = write_data_vconsole();
+ if (r < 0)
+diff --git a/src/shared/def.h b/src/shared/def.h
+index 5ba170f..be1248e 100644
+--- a/src/shared/def.h
++++ b/src/shared/def.h
+@@ -33,3 +33,16 @@
+
+ #define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT
+ #define SIGNALS_IGNORE SIGKILL,SIGPIPE
++
++#ifdef HAVE_SPLIT_USR
++#define KBD_KEYMAP_DIRS \
++ "/usr/share/keymaps/\0" \
++ "/usr/share/kbd/keymaps/\0" \
++ "/usr/lib/kbd/keymaps/\0" \
++ "/lib/kbd/keymaps/\0"
++#else
++#define KBD_KEYMAP_DIRS \
++ "/usr/share/keymaps/\0" \
++ "/usr/share/kbd/keymaps/\0" \
++ "/usr/lib/kbd/keymaps/\0"
++#endif
diff --git a/systemd-hwdb.patch b/systemd-hwdb.patch
index 42e8b27..84f9c75 100644
--- a/systemd-hwdb.patch
+++ b/systemd-hwdb.patch
@@ -9288,6 +9288,440 @@ index 09fc3bd..9b3b009 100644
acpi:PNR*:
ID_VENDOR_FROM_DATABASE=Planar Systems, Inc.
+diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb
+index c8cb322..dcc25bb 100644
+--- a/hwdb/20-bluetooth-vendor-product.hwdb
++++ b/hwdb/20-bluetooth-vendor-product.hwdb
+@@ -46,7 +46,7 @@ bluetooth:v000D*
+ ID_VENDOR_FROM_DATABASE=Texas Instruments Inc.
+
+ bluetooth:v000E*
+- ID_VENDOR_FROM_DATABASE=Ceva, Inc. (formerly Parthus Technologies Inc.)
++ ID_VENDOR_FROM_DATABASE=Ceva, Inc. (formerly Parthus Technologies, Inc.)
+
+ bluetooth:v000F*
+ ID_VENDOR_FROM_DATABASE=Broadcom Corporation
+@@ -55,7 +55,7 @@ bluetooth:v0010*
+ ID_VENDOR_FROM_DATABASE=Mitel Semiconductor
+
+ bluetooth:v0011*
+- ID_VENDOR_FROM_DATABASE=Widcomm, Inc.
++ ID_VENDOR_FROM_DATABASE=Widcomm, Inc
+
+ bluetooth:v0012*
+ ID_VENDOR_FROM_DATABASE=Zeevo, Inc.
+@@ -73,13 +73,13 @@ bluetooth:v0016*
+ ID_VENDOR_FROM_DATABASE=KC Technology Inc.
+
+ bluetooth:v0017*
+- ID_VENDOR_FROM_DATABASE=Newlogic
++ ID_VENDOR_FROM_DATABASE=NewLogic
+
+ bluetooth:v0018*
+ ID_VENDOR_FROM_DATABASE=Transilica, Inc.
+
+ bluetooth:v0019*
+- ID_VENDOR_FROM_DATABASE=Rohde & Schwartz GmbH & Co. KG
++ ID_VENDOR_FROM_DATABASE=Rohde & Schwarz GmbH & Co. KG
+
+ bluetooth:v001A*
+ ID_VENDOR_FROM_DATABASE=TTPCom Limited
+@@ -151,7 +151,7 @@ bluetooth:v0030*
+ ID_VENDOR_FROM_DATABASE=ST Microelectronics
+
+ bluetooth:v0031*
+- ID_VENDOR_FROM_DATABASE=Synopsys
++ ID_VENDOR_FROM_DATABASE=Synopsis
+
+ bluetooth:v0032*
+ ID_VENDOR_FROM_DATABASE=Red-M (Communications) Ltd
+@@ -190,16 +190,16 @@ bluetooth:v003D*
+ ID_VENDOR_FROM_DATABASE=IPextreme, Inc.
+
+ bluetooth:v003E*
+- ID_VENDOR_FROM_DATABASE=Systems and Chips, Inc
++ ID_VENDOR_FROM_DATABASE=Systems and Chips, Inc.
+
+ bluetooth:v003F*
+- ID_VENDOR_FROM_DATABASE=Bluetooth SIG, Inc
++ ID_VENDOR_FROM_DATABASE=Bluetooth SIG, Inc.
+
+ bluetooth:v0040*
+ ID_VENDOR_FROM_DATABASE=Seiko Epson Corporation
+
+ bluetooth:v0041*
+- ID_VENDOR_FROM_DATABASE=Integrated Silicon Solution Taiwain, Inc.
++ ID_VENDOR_FROM_DATABASE=Integrated Silicon Solution Taiwan, Inc.
+
+ bluetooth:v0042*
+ ID_VENDOR_FROM_DATABASE=CONWISE Technology Corporation Ltd
+@@ -244,7 +244,7 @@ bluetooth:v004F*
+ ID_VENDOR_FROM_DATABASE=APT Licensing Ltd.
+
+ bluetooth:v0050*
+- ID_VENDOR_FROM_DATABASE=SiRF Technology, Inc.
++ ID_VENDOR_FROM_DATABASE=SiRF Technology
+
+ bluetooth:v0051*
+ ID_VENDOR_FROM_DATABASE=Tzero Technologies, Inc.
+@@ -366,6 +366,9 @@ bluetooth:v0077*
+ bluetooth:v0078*
+ ID_VENDOR_FROM_DATABASE=Nike, Inc.
+
++bluetooth:v0078p0001*
++ ID_PRODUCT_FROM_DATABASE=Nike+ FuelBand
++
+ bluetooth:v0079*
+ ID_VENDOR_FROM_DATABASE=lesswire AG
+
+@@ -379,7 +382,7 @@ bluetooth:v007C*
+ ID_VENDOR_FROM_DATABASE=A & R Cambridge
+
+ bluetooth:v007D*
+- ID_VENDOR_FROM_DATABASE=Seers Technology Co. Ltd.
++ ID_VENDOR_FROM_DATABASE=Seers Technology Co. Ltd
+
+ bluetooth:v007E*
+ ID_VENDOR_FROM_DATABASE=Sports Tracking Technologies Ltd.
+@@ -406,7 +409,7 @@ bluetooth:v0085*
+ ID_VENDOR_FROM_DATABASE=BlueRadios, Inc.
+
+ bluetooth:v0086*
+- ID_VENDOR_FROM_DATABASE=equinux AG
++ ID_VENDOR_FROM_DATABASE=equinox AG
+
+ bluetooth:v0087*
+ ID_VENDOR_FROM_DATABASE=Garmin International, Inc.
+@@ -421,7 +424,7 @@ bluetooth:v008A*
+ ID_VENDOR_FROM_DATABASE=Jawbone
+
+ bluetooth:v008B*
+- ID_VENDOR_FROM_DATABASE=Topcon Positioning Systems, LLC
++ ID_VENDOR_FROM_DATABASE=Topcorn Positioning Systems, LLC
+
+ bluetooth:v008C*
+ ID_VENDOR_FROM_DATABASE=Qualcomm Labs, Inc.
+@@ -433,13 +436,13 @@ bluetooth:v008E*
+ ID_VENDOR_FROM_DATABASE=Quintic Corp.
+
+ bluetooth:v008F*
+- ID_VENDOR_FROM_DATABASE=Stollmann E+V GmbH
++ ID_VENDOR_FROM_DATABASE=Stollman E+V GmbH
+
+ bluetooth:v0090*
+ ID_VENDOR_FROM_DATABASE=Funai Electric Co., Ltd.
+
+ bluetooth:v0091*
+- ID_VENDOR_FROM_DATABASE=Advanced PANMOBIL systems GmbH & Co. KG
++ ID_VENDOR_FROM_DATABASE=Advanced PANMOBIL Systems GmbH & Co. KG
+
+ bluetooth:v0092*
+ ID_VENDOR_FROM_DATABASE=ThinkOptics, Inc.
+@@ -457,10 +460,10 @@ bluetooth:v0096*
+ ID_VENDOR_FROM_DATABASE=ODM Technology, Inc.
+
+ bluetooth:v0097*
+- ID_VENDOR_FROM_DATABASE=Bluetrek Technologies Limited
++ ID_VENDOR_FROM_DATABASE=ConnecteDevice Ltd.
+
+ bluetooth:v0098*
+- ID_VENDOR_FROM_DATABASE=zero1.tv GmbH
++ ID_VENDOR_FROM_DATABASE=zer01.tv GmbH
+
+ bluetooth:v0099*
+ ID_VENDOR_FROM_DATABASE=i.Tech Dynamic Global Distribution Ltd.
+@@ -511,7 +514,7 @@ bluetooth:v00A8*
+ ID_VENDOR_FROM_DATABASE=ARP Devices Limited
+
+ bluetooth:v00A9*
+- ID_VENDOR_FROM_DATABASE=Magneti Marelli S.p.A.
++ ID_VENDOR_FROM_DATABASE=Magneti Marelli S.p.A
+
+ bluetooth:v00AA*
+ ID_VENDOR_FROM_DATABASE=CAEN RFID srl
+@@ -539,3 +542,282 @@ bluetooth:v00B1*
+
+ bluetooth:v00B2*
+ ID_VENDOR_FROM_DATABASE=Bekey A/S
++
++bluetooth:v00B3*
++ ID_VENDOR_FROM_DATABASE=Clarinox Technologies Pty. Ltd.
++
++bluetooth:v00B4*
++ ID_VENDOR_FROM_DATABASE=BDE Technology Co., Ltd.
++
++bluetooth:v00B5*
++ ID_VENDOR_FROM_DATABASE=Swirl Networks
++
++bluetooth:v00B6*
++ ID_VENDOR_FROM_DATABASE=Meso international
++
++bluetooth:v00B7*
++ ID_VENDOR_FROM_DATABASE=TreLab Ltd
++
++bluetooth:v00B8*
++ ID_VENDOR_FROM_DATABASE=Qualcomm Innovation Center, Inc. (QuIC)
++
++bluetooth:v00B9*
++ ID_VENDOR_FROM_DATABASE=Johnson Controls, Inc.
++
++bluetooth:v00BA*
++ ID_VENDOR_FROM_DATABASE=Starkey Laboratories Inc.
++
++bluetooth:v00BB*
++ ID_VENDOR_FROM_DATABASE=S-Power Electronics Limited
++
++bluetooth:v00BC*
++ ID_VENDOR_FROM_DATABASE=Ace Sensor Inc
++
++bluetooth:v00BD*
++ ID_VENDOR_FROM_DATABASE=Aplix Corporation
++
++bluetooth:v00BE*
++ ID_VENDOR_FROM_DATABASE=AAMP of America
++
++bluetooth:v00BF*
++ ID_VENDOR_FROM_DATABASE=Stalmart Technology Limited
++
++bluetooth:v00C0*
++ ID_VENDOR_FROM_DATABASE=AMICCOM Electronics Corporation
++
++bluetooth:v00C1*
++ ID_VENDOR_FROM_DATABASE=Shenzhen Excelsecu Data Technology Co.,Ltd
++
++bluetooth:v00C2*
++ ID_VENDOR_FROM_DATABASE=Geneq Inc.
++
++bluetooth:v00C3*
++ ID_VENDOR_FROM_DATABASE=adidas AG
++
++bluetooth:v00C4*
++ ID_VENDOR_FROM_DATABASE=LG Electronics
++
++bluetooth:v00C5*
++ ID_VENDOR_FROM_DATABASE=Onset Computer Corporation
++
++bluetooth:v00C6*
++ ID_VENDOR_FROM_DATABASE=Selfly BV
++
++bluetooth:v00C7*
++ ID_VENDOR_FROM_DATABASE=Quuppa Oy.
++
++bluetooth:v00C8*
++ ID_VENDOR_FROM_DATABASE=GeLo Inc
++
++bluetooth:v00C9*
++ ID_VENDOR_FROM_DATABASE=Evluma
++
++bluetooth:v00CA*
++ ID_VENDOR_FROM_DATABASE=MC10
++
++bluetooth:v00CB*
++ ID_VENDOR_FROM_DATABASE=Binauric SE
++
++bluetooth:v00CC*
++ ID_VENDOR_FROM_DATABASE=Beats Electronics
++
++bluetooth:v00CD*
++ ID_VENDOR_FROM_DATABASE=Microchip Technology Inc.
++
++bluetooth:v00CE*
++ ID_VENDOR_FROM_DATABASE=Elgato Systems GmbH
++
++bluetooth:v00CF*
++ ID_VENDOR_FROM_DATABASE=ARCHOS SA
++
++bluetooth:v00D1*
++ ID_VENDOR_FROM_DATABASE=Polar Electro Europe B.V.
++
++bluetooth:v00D2*
++ ID_VENDOR_FROM_DATABASE=Dialog Semiconductor B.V.
++
++bluetooth:v00D3*
++ ID_VENDOR_FROM_DATABASE=Taixingbang Technology (HK) Co,. LTD.
++
++bluetooth:v00D4*
++ ID_VENDOR_FROM_DATABASE=Kawantech
++
++bluetooth:v00D5*
++ ID_VENDOR_FROM_DATABASE=Austco Communication Systems
++
++bluetooth:v00D6*
++ ID_VENDOR_FROM_DATABASE=Timex Group USA, Inc.
++
++bluetooth:v00D7*
++ ID_VENDOR_FROM_DATABASE=Qualcomm Technologies, Inc.
++
++bluetooth:v00D8*
++ ID_VENDOR_FROM_DATABASE=Qualcomm Connected Experiences, Inc.
++
++bluetooth:v00D9*
++ ID_VENDOR_FROM_DATABASE=Voyetra Turtle Beach
++
++bluetooth:v00DA*
++ ID_VENDOR_FROM_DATABASE=txtr GmbH
++
++bluetooth:v00DB*
++ ID_VENDOR_FROM_DATABASE=Biosentronics
++
++bluetooth:v00DC*
++ ID_VENDOR_FROM_DATABASE=Procter & Gamble
++
++bluetooth:v00DD*
++ ID_VENDOR_FROM_DATABASE=Hosiden Corporation
++
++bluetooth:v00DE*
++ ID_VENDOR_FROM_DATABASE=Muzik LLC
++
++bluetooth:v00DF*
++ ID_VENDOR_FROM_DATABASE=Misfit Wearables Corp
++
++bluetooth:v00E0*
++ ID_VENDOR_FROM_DATABASE=Google
++
++bluetooth:v00E1*
++ ID_VENDOR_FROM_DATABASE=Danlers Ltd
++
++bluetooth:v00E2*
++ ID_VENDOR_FROM_DATABASE=Semilink Inc
++
++bluetooth:v00E3*
++ ID_VENDOR_FROM_DATABASE=inMusic Brands, Inc
++
++bluetooth:v00E4*
++ ID_VENDOR_FROM_DATABASE=L.S. Research Inc.
++
++bluetooth:v00E5*
++ ID_VENDOR_FROM_DATABASE=Eden Software Consultants Ltd.
++
++bluetooth:v00E6*
++ ID_VENDOR_FROM_DATABASE=Freshtemp
++
++bluetooth:v00E7*
++ ID_VENDOR_FROM_DATABASE=KS Technologies
++
++bluetooth:v00E8*
++ ID_VENDOR_FROM_DATABASE=ACTS Technologies
++
++bluetooth:v00E9*
++ ID_VENDOR_FROM_DATABASE=Vtrack Systems
++
++bluetooth:v00EA*
++ ID_VENDOR_FROM_DATABASE=Nielsen-Kellerman Company
++
++bluetooth:v00EB*
++ ID_VENDOR_FROM_DATABASE=Server Technology, Inc.
++
++bluetooth:v00EC*
++ ID_VENDOR_FROM_DATABASE=BioResearch Associates
++
++bluetooth:v00ED*
++ ID_VENDOR_FROM_DATABASE=Jolly Logic, LLC
++
++bluetooth:v00EE*
++ ID_VENDOR_FROM_DATABASE=Above Average Outcomes, Inc.
++
++bluetooth:v00EF*
++ ID_VENDOR_FROM_DATABASE=Bitsplitters GmbH
++
++bluetooth:v00F0*
++ ID_VENDOR_FROM_DATABASE=PayPal, Inc.
++
++bluetooth:v00F1*
++ ID_VENDOR_FROM_DATABASE=Witron Technology Limited
++
++bluetooth:v00F2*
++ ID_VENDOR_FROM_DATABASE=Morse Project Inc.
++
++bluetooth:v00F3*
++ ID_VENDOR_FROM_DATABASE=Kent Displays Inc.
++
++bluetooth:v00F4*
++ ID_VENDOR_FROM_DATABASE=Nautilus Inc.
++
++bluetooth:v00F5*
++ ID_VENDOR_FROM_DATABASE=Smartifier Oy
++
++bluetooth:v00F6*
++ ID_VENDOR_FROM_DATABASE=Elcometer Limited
++
++bluetooth:v00F7*
++ ID_VENDOR_FROM_DATABASE=VSN Technologies Inc.
++
++bluetooth:v00F8*
++ ID_VENDOR_FROM_DATABASE=AceUni Corp., Ltd.
++
++bluetooth:v00F9*
++ ID_VENDOR_FROM_DATABASE=StickNFind
++
++bluetooth:v00FA*
++ ID_VENDOR_FROM_DATABASE=Crystal Code AB
++
++bluetooth:v00FB*
++ ID_VENDOR_FROM_DATABASE=KOUKAAM a.s.
++
++bluetooth:v00FC*
++ ID_VENDOR_FROM_DATABASE=Delphi Corporation
++
++bluetooth:v00FD*
++ ID_VENDOR_FROM_DATABASE=ValenceTech Limited
++
++bluetooth:v00FE*
++ ID_VENDOR_FROM_DATABASE=Reserved
++
++bluetooth:v00FF*
++ ID_VENDOR_FROM_DATABASE=Typo Products, LLC
++
++bluetooth:v0100*
++ ID_VENDOR_FROM_DATABASE=TomTom International BV
++
++bluetooth:v0101*
++ ID_VENDOR_FROM_DATABASE=Fugoo, Inc
++
++bluetooth:v0102*
++ ID_VENDOR_FROM_DATABASE=Keiser Corporation
++
++bluetooth:v0103*
++ ID_VENDOR_FROM_DATABASE=Bang & Olufsen A/S
++
++bluetooth:v0104*
++ ID_VENDOR_FROM_DATABASE=PLUS Locations Systems Pty Ltd
++
++bluetooth:v0105*
++ ID_VENDOR_FROM_DATABASE=Ubiquitous Computing Technology Corporation
++
++bluetooth:v0106*
++ ID_VENDOR_FROM_DATABASE=Innovative Yachtter Solutions
++
++bluetooth:v0107*
++ ID_VENDOR_FROM_DATABASE=William Demant Holding A/S
++
++bluetooth:v0108*
++ ID_VENDOR_FROM_DATABASE=Chicony Electronics Co., Ltd.
++
++bluetooth:v0109*
++ ID_VENDOR_FROM_DATABASE=Atus BV
++
++bluetooth:v010A*
++ ID_VENDOR_FROM_DATABASE=Codegate Ltd.
++
++bluetooth:v010B*
++ ID_VENDOR_FROM_DATABASE=ERi, Inc.
++
++bluetooth:v010C*
++ ID_VENDOR_FROM_DATABASE=Transducers Direct, LLC
++
++bluetooth:v010D*
++ ID_VENDOR_FROM_DATABASE=Fujitsu Ten Limited
++
++bluetooth:v010E*
++ ID_VENDOR_FROM_DATABASE=Audi AG
++
++bluetooth:v010F*
++ ID_VENDOR_FROM_DATABASE=HiSilicon Technologies Co., Ltd.
++
++bluetooth:v0110*
++ ID_VENDOR_FROM_DATABASE=Nippon Seiki Co., Ltd.
diff --git a/hwdb/20-pci-vendor-model.hwdb b/hwdb/20-pci-vendor-model.hwdb
index a8dcc31..289f81c 100644
--- a/hwdb/20-pci-vendor-model.hwdb
@@ -19636,10 +20070,10 @@ index 8c9584b..da8385e 100644
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
new file mode 100644
-index 0000000..b497f92
+index 0000000..72cb993
--- /dev/null
+++ b/hwdb/60-keyboard.hwdb
-@@ -0,0 +1,1089 @@
+@@ -0,0 +1,1099 @@
+# This file is part of systemd.
+#
+# Keyboard mapping of scan codes to key codes, and
@@ -20154,11 +20588,6 @@ index 0000000..b497f92
+ KEYBOARD_KEY_17=prog1
+ KEYBOARD_KEY_1a=f20
+
-+#
-+keyboard:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*
-+ KEYBOARD_KEY_42=f23
-+ KEYBOARD_KEY_43=f22
-+
+# ThinkPad Keyboard with TrackPoint
+keyboard:usb:v17EFp6009*
+ KEYBOARD_KEY_090012=screenlock # Fn+F2
@@ -20214,19 +20643,27 @@ index 0000000..b497f92
+ KEYBOARD_KEY_69=enter # enter on d-pad
+
+# IdeaPad
++keyboard:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*
++ KEYBOARD_KEY_42=f23
++ KEYBOARD_KEY_43=f22
++
+keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr*
+ KEYBOARD_KEY_95=media
+ KEYBOARD_KEY_a3=play
+
-+# V480
-+keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr*
-+ KEYBOARD_KEY_f1=f21
-+
-+# IdeaPad
+keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr*
+ KEYBOARD_KEY_f1=f21
+ KEYBOARD_KEY_ce=f20
+
++keyboard:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr*
++ KEYBOARD_KEY_a0=!mute
++ KEYBOARD_KEY_ae=!volumedown
++ KEYBOARD_KEY_b0=!volumeup
++
++# V480
++keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr*
++ KEYBOARD_KEY_f1=f21
++
+###########################################################
+# Logitech
+###########################################################
@@ -20673,6 +21110,13 @@ index 0000000..b497f92
+ KEYBOARD_KEY_a9=switchvideomode # switch display outputs
+ KEYBOARD_KEY_d4=wlan # RF Switch Off
+
++# Satellite U940
++keyboard:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSATELLITEU940:pvr*
++ KEYBOARD_KEY_13c=brightnessdown
++ KEYBOARD_KEY_13d=brightnessup
++ KEYBOARD_KEY_13e=switchvideomode
++ KEYBOARD_KEY_13f=f21 # Touchpad toggle
++
+###########################################################
+# VIA
+###########################################################
diff --git a/systemd.spec b/systemd.spec
index 0e49c2e..7371d90 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -22,7 +22,7 @@
Name: systemd
Url: http://www.freedesktop.org/wiki/Software/systemd
Version: 204
-Release: 17%{?gitcommit:.git%{gitcommit}}%{?dist}
+Release: 18%{?gitcommit:.git%{gitcommit}}%{?dist}
# For a breakdown of the licensing, see README
License: LGPLv2+ and MIT and GPLv2+
Summary: A System and Service Manager
@@ -44,100 +44,127 @@ Source4: listen.conf
# Prevent accidental removal of the systemd package
Source6: yum-protect-systemd.conf
-# i=1; for p in 00*patch;do printf "Patch%02d: %s\n" $i $p; ((i++));done
-Patch01: 0001-journal-correctly-convert-usec_t-to-timespec.patch
-Patch02: 0002-systemd-python-do-not-attempt-to-convert-str-to-byte.patch
-Patch03: 0003-systemd-python-fix-iteration.patch
-Patch04: 0004-systemctl-honor-no-legend-in-list-sockets.patch
-Patch05: 0005-service-kill-processes-with-SIGKILL-on-watchdog-fail.patch
-Patch06: 0006-Fix-CPUShares-configuration-option.patch
-Patch07: 0007-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
-Patch08: 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch
-Patch09: 0009-journal-remember-last-direction-of-search-and-keep-o.patch
-Patch10: 0010-journal-letting-interleaved-seqnums-go.patch
-Patch11: 0011-rules-drivers-always-call-kmod-even-when-a-driver-is.patch
-Patch12: 0012-80-net-name-slot.rules-only-rename-network-interface.patch
-Patch13: 0013-journal-fix-hashmap-leak-in-mmap-cache.patch
-Patch14: 0014-fstab-generator-read-rd.fstab-on-off-switch-correctl.patch
-Patch15: 0015-fstab-generator-log_oom-if-automount_name-is-null.patch
-Patch16: 0016-journald-do-not-overwrite-syslog-facility-when-parsi.patch
-Patch17: 0017-journal-fix-parsing-of-facility-in-syslog-messages.patch
-Patch18: 0018-libudev-fix-memleak-when-enumerating-childs.patch
-Patch19: 0019-libudev-enumerate-fix-NULL-deref-for-subsystem-match.patch
-Patch20: 0020-systemd-coredump-Ignore-coredumps-larger-than-COREDU.patch
-Patch21: 0021-journalctl-use-_COMM-match-for-scripts.patch
-Patch22: 0022-Allow-tabs-in-environment-files.patch
-Patch23: 0023-Actually-allow-tabs-in-environment-files.patch
-Patch24: 0024-systemctl-process-only-signals-for-jobs-we-really-wa.patch
-Patch25: 0025-cgtop-fixup-the-online-help.patch
-Patch26: 0026-polkit-Avoid-race-condition-in-scraping-proc.patch
-Patch27: 0027-clarify-escaping-in-Exec-lines.patch
-Patch28: 0028-udev-builtin-blkid-export-ID_PART_TABLE_UUID.patch
-Patch29: 0029-nspawn-be-less-liberal-about-creating-bind-mount-des.patch
-Patch30: 0030-fix-grammatical-error.patch
-Patch31: 0031-completion-systemctl-add-missing-list-sockets-verb.patch
-Patch32: 0032-journalctl-1-s-adm-systemd-journal.patch
-Patch33: 0033-journald-accept-EPOLLERR-from-dev-kmsg.patch
-Patch34: 0034-logind-if-a-user-is-sitting-in-front-of-the-computer.patch
-Patch35: 0035-dbus-fix-introspection-for-TimerSlackNSec.patch
-Patch36: 0036-swap-properly-expose-timeout-property-on-the-bus.patch
-Patch37: 0037-Remove-duplicated-line.patch
-Patch38: 0038-Add-a-bit-more-explicit-message-to-help-confused-use.patch
-Patch39: 0039-Fix-buffer-overrun-when-enumerating-files.patch
-Patch40: 0040-set-IgnoreOnIsolate-true-for-systemd-cryptsetup-.ser.patch
-Patch41: 0041-man-mention-the-systemd-homepage-from-systemd-1.patch
-Patch42: 0042-main-don-t-free-fds-array-twice.patch
-Patch43: 0043-smack-setup-fix-path-to-Smack-CIPSO-mappings.patch
-Patch44: 0044-util.c-ignore-pollfd.revent-for-loop_read-loop_write.patch
-Patch45: 0045-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch
-Patch46: 0046-journald-add-missing-error-check.patch
-Patch47: 0047-dbus-fix-return-value-of-dispatch_rqueue.patch
-Patch48: 0048-modules-load-fix-error-handling.patch
-Patch49: 0049-efi-never-call-qsort-on-potentially-NULL-arrays.patch
-Patch50: 0050-strv-don-t-access-potentially-NULL-string-arrays.patch
-Patch51: 0051-execute.c-always-set-SHELL.patch
-Patch52: 0052-man-Improve-the-description-of-parameter-X-in-tmpfil.patch
-Patch53: 0053-systemd-order-remote-mounts-from-mountinfo-before-re.patch
-Patch54: 0054-manager-when-verifying-whether-clients-may-change-en.patch
-Patch55: 0055-Advertise-hibernation-only-if-there-s-enough-free-sw.patch
-Patch56: 0056-Assume-that-proc-meminfo-can-be-missing.patch
-Patch57: 0057-Use-first-partition-in-proc-swaps-for-hibernation-te.patch
-Patch58: 0058-test-fileio-assume-that-Buffers-may-be-missing.patch
-Patch59: 0059-Remove-duplicate-entries-from-syscall-list.patch
-Patch60: 0060-libudev-add-missing-global-to-symbol-export.patch
-Patch61: 0061-man-fix-description-of-sysctl.d-order.patch
-Patch62: 0062-units-make-fsck-units-remain-after-exit.patch
-Patch63: 0063-systemd-tmpfiles-setup-dev-remain-after-exit.patch
-Patch64: 0064-kmod-static-nodes-remain-after-exit.patch
-Patch65: 0065-sysctl-allow-overwriting-of-values-specified-in-late.patch
-Patch66: 0066-Restore-reading-of-etc-sysctl.conf.patch
-Patch67: 0067-mount-when-learning-about-the-root-mount-from-mounti.patch
-Patch68: 0068-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch
-Patch69: 0069-systemd-serialize-deserialize-forbid_restart-value.patch
-Patch70: 0070-core-unify-the-way-we-denote-serialization-attribute.patch
-Patch71: 0071-journal-vacuum-cleanup.patch
-Patch72: 0072-journald-always-vacuum-empty-offline-files.patch
-Patch73: 0073-journald-fix-vacuuming-of-archived-journals.patch
-Patch74: 0074-journald-fix-fd-leak-in-journal_file_empty.patch
-Patch75: 0075-journald-be-a-bit-more-verbose-when-vacuuming.patch
-Patch76: 0076-journald-fix-minor-memory-leak.patch
-Patch77: 0077-journald-remove-rotated-file-from-hashmap-when-rotat.patch
-Patch78: 0078-udevadm.xml-document-resolve-names-option-for-test.patch
-Patch79: 0079-dbus-common-avoid-leak-in-error-path.patch
-Patch80: 0080-drop-ins-check-return-value.patch
-Patch81: 0081-man-add-more-markup-to-udevadm-8.patch
-Patch82: 0082-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch
-Patch83: 0083-man-document-the-b-special-boot-option.patch
-Patch84: 0084-rules-expose-loop-block-devices-to-systemd.patch
-Patch85: 0085-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch
-Patch86: 0086-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch
-Patch87: 0087-rules-remove-pointless-MODE-settings.patch
-Patch88: 0088-shell-completion-dump-has-moved-to-systemd-analyze.patch
-Patch89: 0089-give-priority-to-etc-sysctl.conf.patch
-Patch90: 0090-libudev-fix-hwdb-validation-to-look-for-the-new-file.patch
-
-# git diff --src-prefix=a/ --dst-prefix=b/ v204 -- hwdb/ > systemd-hwdb.patch
-Patch99: systemd-hwdb.patch
+# GIT_DIR=~/src/systemd/.git git format-patch --src-prefix=a/ --dst-prefix=b/ -M -N --no-signature v204..v204-stable
+# i=1; for p in 0*patch;do printf "Patch%03d: %s\n" $i $p; ((i++));done
+Patch001: 0001-journal-correctly-convert-usec_t-to-timespec.patch
+Patch002: 0002-systemd-python-do-not-attempt-to-convert-str-to-byte.patch
+Patch003: 0003-systemd-python-fix-iteration.patch
+Patch004: 0004-systemctl-honor-no-legend-in-list-sockets.patch
+Patch005: 0005-service-kill-processes-with-SIGKILL-on-watchdog-fail.patch
+Patch006: 0006-Fix-CPUShares-configuration-option.patch
+Patch007: 0007-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch
+Patch008: 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch
+Patch009: 0009-journal-remember-last-direction-of-search-and-keep-o.patch
+Patch010: 0010-journal-letting-interleaved-seqnums-go.patch
+Patch011: 0011-rules-drivers-always-call-kmod-even-when-a-driver-is.patch
+Patch012: 0012-80-net-name-slot.rules-only-rename-network-interface.patch
+Patch013: 0013-journal-fix-hashmap-leak-in-mmap-cache.patch
+Patch014: 0014-fstab-generator-read-rd.fstab-on-off-switch-correctl.patch
+Patch015: 0015-fstab-generator-log_oom-if-automount_name-is-null.patch
+Patch016: 0016-journald-do-not-overwrite-syslog-facility-when-parsi.patch
+Patch017: 0017-journal-fix-parsing-of-facility-in-syslog-messages.patch
+Patch018: 0018-libudev-fix-memleak-when-enumerating-childs.patch
+Patch019: 0019-libudev-enumerate-fix-NULL-deref-for-subsystem-match.patch
+Patch020: 0020-systemd-coredump-Ignore-coredumps-larger-than-COREDU.patch
+Patch021: 0021-journalctl-use-_COMM-match-for-scripts.patch
+Patch022: 0022-Allow-tabs-in-environment-files.patch
+Patch023: 0023-Actually-allow-tabs-in-environment-files.patch
+Patch024: 0024-systemctl-process-only-signals-for-jobs-we-really-wa.patch
+Patch025: 0025-cgtop-fixup-the-online-help.patch
+Patch026: 0026-polkit-Avoid-race-condition-in-scraping-proc.patch
+Patch027: 0027-clarify-escaping-in-Exec-lines.patch
+Patch028: 0028-udev-builtin-blkid-export-ID_PART_TABLE_UUID.patch
+Patch029: 0029-nspawn-be-less-liberal-about-creating-bind-mount-des.patch
+Patch030: 0030-fix-grammatical-error.patch
+Patch031: 0031-completion-systemctl-add-missing-list-sockets-verb.patch
+Patch032: 0032-journalctl-1-s-adm-systemd-journal.patch
+Patch033: 0033-journald-accept-EPOLLERR-from-dev-kmsg.patch
+Patch034: 0034-logind-if-a-user-is-sitting-in-front-of-the-computer.patch
+Patch035: 0035-dbus-fix-introspection-for-TimerSlackNSec.patch
+Patch036: 0036-swap-properly-expose-timeout-property-on-the-bus.patch
+Patch037: 0037-Remove-duplicated-line.patch
+Patch038: 0038-Add-a-bit-more-explicit-message-to-help-confused-use.patch
+Patch039: 0039-Fix-buffer-overrun-when-enumerating-files.patch
+Patch040: 0040-set-IgnoreOnIsolate-true-for-systemd-cryptsetup-.ser.patch
+Patch041: 0041-man-mention-the-systemd-homepage-from-systemd-1.patch
+Patch042: 0042-main-don-t-free-fds-array-twice.patch
+Patch043: 0043-smack-setup-fix-path-to-Smack-CIPSO-mappings.patch
+Patch044: 0044-util.c-ignore-pollfd.revent-for-loop_read-loop_write.patch
+Patch045: 0045-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch
+Patch046: 0046-journald-add-missing-error-check.patch
+Patch047: 0047-dbus-fix-return-value-of-dispatch_rqueue.patch
+Patch048: 0048-modules-load-fix-error-handling.patch
+Patch049: 0049-efi-never-call-qsort-on-potentially-NULL-arrays.patch
+Patch050: 0050-strv-don-t-access-potentially-NULL-string-arrays.patch
+Patch051: 0051-execute.c-always-set-SHELL.patch
+Patch052: 0052-man-Improve-the-description-of-parameter-X-in-tmpfil.patch
+Patch053: 0053-systemd-order-remote-mounts-from-mountinfo-before-re.patch
+Patch054: 0054-manager-when-verifying-whether-clients-may-change-en.patch
+Patch055: 0055-Advertise-hibernation-only-if-there-s-enough-free-sw.patch
+Patch056: 0056-Assume-that-proc-meminfo-can-be-missing.patch
+Patch057: 0057-Use-first-partition-in-proc-swaps-for-hibernation-te.patch
+Patch058: 0058-test-fileio-assume-that-Buffers-may-be-missing.patch
+Patch059: 0059-Remove-duplicate-entries-from-syscall-list.patch
+Patch060: 0060-libudev-add-missing-global-to-symbol-export.patch
+Patch061: 0061-man-fix-description-of-sysctl.d-order.patch
+Patch062: 0062-units-make-fsck-units-remain-after-exit.patch
+Patch063: 0063-systemd-tmpfiles-setup-dev-remain-after-exit.patch
+Patch064: 0064-kmod-static-nodes-remain-after-exit.patch
+Patch065: 0065-sysctl-allow-overwriting-of-values-specified-in-late.patch
+Patch066: 0066-Restore-reading-of-etc-sysctl.conf.patch
+Patch067: 0067-mount-when-learning-about-the-root-mount-from-mounti.patch
+Patch068: 0068-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch
+Patch069: 0069-systemd-serialize-deserialize-forbid_restart-value.patch
+Patch070: 0070-core-unify-the-way-we-denote-serialization-attribute.patch
+Patch071: 0071-journal-vacuum-cleanup.patch
+Patch072: 0072-journald-always-vacuum-empty-offline-files.patch
+Patch073: 0073-journald-fix-vacuuming-of-archived-journals.patch
+Patch074: 0074-journald-fix-fd-leak-in-journal_file_empty.patch
+Patch075: 0075-journald-be-a-bit-more-verbose-when-vacuuming.patch
+Patch076: 0076-journald-fix-minor-memory-leak.patch
+Patch077: 0077-journald-remove-rotated-file-from-hashmap-when-rotat.patch
+Patch078: 0078-udevadm.xml-document-resolve-names-option-for-test.patch
+Patch079: 0079-dbus-common-avoid-leak-in-error-path.patch
+Patch080: 0080-drop-ins-check-return-value.patch
+Patch081: 0081-man-add-more-markup-to-udevadm-8.patch
+Patch082: 0082-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch
+Patch083: 0083-man-document-the-b-special-boot-option.patch
+Patch084: 0084-rules-expose-loop-block-devices-to-systemd.patch
+Patch085: 0085-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch
+Patch086: 0086-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch
+Patch087: 0087-rules-remove-pointless-MODE-settings.patch
+Patch088: 0088-shell-completion-dump-has-moved-to-systemd-analyze.patch
+Patch089: 0089-give-priority-to-etc-sysctl.conf.patch
+Patch090: 0090-libudev-fix-hwdb-validation-to-look-for-the-new-file.patch
+Patch091: 0091-catalog-remove-links-to-non-existent-wiki-pages.patch
+Patch092: 0092-udev-ata_id-log-faling-ioctls-as-debug.patch
+Patch093: 0093-libudev-default-log_priority-to-INFO.patch
+Patch094: 0094-man-explain-NAME-in-systemctl-man-page.patch
+Patch095: 0095-systemd-python-convert-keyword-value-to-string.patch
+Patch096: 0096-systemctl-make-LOAD-column-width-dynamic.patch
+Patch097: 0097-Make-hibernation-test-work-for-swap-files.patch
+Patch098: 0098-systemctl-return-r-instead-of-always-returning-0.patch
+Patch099: 0099-button-don-t-exit-if-we-cannot-handle-a-button-press.patch
+Patch100: 0100-timer-properly-format-relative-timestamps-in-the-fut.patch
+Patch101: 0101-activate-mention-E-in-the-help-text.patch
+Patch102: 0102-activate-fix-crash-when-s-is-passed.patch
+Patch103: 0103-journal-timestamp-support-on-console-messages.patch
+Patch104: 0104-Resolve-dev-console-to-the-active-tty-instead-of-jus.patch
+Patch105: 0105-manager-don-t-do-plymouth-in-a-container.patch
+Patch106: 0106-valgrind-make-running-PID-1-in-valgrind-useful.patch
+Patch107: 0107-automount-log-info-about-triggering-process.patch
+Patch108: 0108-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch
+Patch109: 0109-docs-remove-unneeded-the-s-in-gudev-docs.patch
+Patch110: 0110-systemd-treat-reload-failure-as-failure.patch
+Patch111: 0111-journal-fail-silently-in-sd_j_sendv-if-journal-is-un.patch
+Patch112: 0112-journal-handle-multiline-syslog-messages.patch
+Patch113: 0113-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch
+Patch114: 0114-journald-bump-the-journal-per-unit-ratelimit-default.patch
+Patch115: 0115-service-execute-ExecStopPost-commands-when-the-watch.patch
+Patch116: 0116-localed-match-converted-keymaps-before-legacy.patch
+
+# git diff --src-prefix=a/ --dst-prefix=b/ v204-stable..master -- hwdb/ > systemd-hwdb.patch
+Patch0999: systemd-hwdb.patch
# kernel-install patch for grubby, drop if grubby is obsolete
Patch1000: kernel-install-grubby.patch
@@ -901,6 +928,17 @@ fi
%{_libdir}/pkgconfig/gudev-1.0*
%changelog
+* Sun Dec 08 2013 Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl> 204-19
+- Update hardward database
+- Backport fixes: keyboard configuration, run ExecStopPost= on
+ watchdog timeouts, bump journal ratelimits, fix systemctl disable
+ for multiple units, fix handling of multiline syslog messages, fail
+ journal logging gracefuly in mock, various logging updates,
+ documentation updates, fix systemctl reload failure propagation,
+ allow running systemd under valgrind, make journald log timestamps
+ on the console, allow hibernation to swap files, do not advertise
+ non-existent wiki pages, assorted smaller bugfixes.
+
* Wed Oct 23 2013 Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl> 204-18
- Fix hwdb validation to look for the *new* file.
More information about the scm-commits
mailing list