[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