zbyszek pushed to systemd (f22). "Patches for outstanding annoyances"

notifications at fedoraproject.org notifications at fedoraproject.org
Wed Apr 29 14:06:42 UTC 2015


>From 0453073a30b97126618ea2152de2613c360378ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
Date: Wed, 29 Apr 2015 10:05:09 -0400
Subject: Patches for outstanding annoyances


diff --git a/0113-console-getty.service-don-t-start-when-dev-console-i.patch b/0113-console-getty.service-don-t-start-when-dev-console-i.patch
new file mode 100644
index 0000000..9119113
--- /dev/null
+++ b/0113-console-getty.service-don-t-start-when-dev-console-i.patch
@@ -0,0 +1,51 @@
+From 78bce4363bb349a64ed98ac307421698c8f8e06e Mon Sep 17 00:00:00 2001
+From: Jan Pazdziora <jpazdziora at redhat.com>
+Date: Fri, 13 Mar 2015 12:57:18 +0100
+Subject: [PATCH] console-getty.service: don't start when /dev/console is
+ missing
+
+Create minimal image which runs systemd
+
+   FROM rhel7.1
+   RUN yum install -y /usr/bin/ps
+   ENV container docker
+   CMD [ "/usr/sbin/init" ]
+
+When you run the container without -t, the process
+
+   /sbin/agetty --noclear --keep-baud console 115200 38400 9600
+
+is not happy and checking the journal in the container, there is a stream of
+
+Mar 13 04:50:15 11bf07f59fff agetty[66]: /dev/console: No such file or directory
+Mar 13 04:50:25 11bf07f59fff systemd[1]: console-getty.service holdoff time over, scheduling restart.
+Mar 13 04:50:25 11bf07f59fff systemd[1]: Stopping Console Getty...
+Mar 13 04:50:25 11bf07f59fff systemd[1]: Starting Console Getty...
+Mar 13 04:50:25 11bf07f59fff systemd[1]: Started Console Getty.
+Mar 13 04:50:25 11bf07f59fff agetty[67]: /dev/console: No such file or directory
+Mar 13 04:50:35 11bf07f59fff systemd[1]: console-getty.service holdoff time over, scheduling restart.
+Mar 13 04:50:35 11bf07f59fff systemd[1]: Stopping Console Getty...
+Mar 13 04:50:35 11bf07f59fff systemd[1]: Starting Console Getty...
+Mar 13 04:50:35 11bf07f59fff systemd[1]: Started Console Getty.
+Mar 13 04:50:35 11bf07f59fff agetty[74]: /dev/console: No such file or directory
+Mar 13 04:50:45 11bf07f59fff systemd[1]: console-getty.service holdoff time over, scheduling restart.
+Mar 13 04:50:45 11bf07f59fff systemd[1]: Stopping Console Getty...
+Mar 13 04:50:45 11bf07f59fff systemd[1]: Starting Console Getty...
+
+(cherry picked from commit 1b41981d9a62443d566df6bcabc1b5024e9f5e4a)
+---
+ units/console-getty.service.m4.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in
+index 8ac51a471b..413d94094b 100644
+--- a/units/console-getty.service.m4.in
++++ b/units/console-getty.service.m4.in
+@@ -9,6 +9,7 @@
+ Description=Console Getty
+ Documentation=man:agetty(8)
+ After=systemd-user-sessions.service plymouth-quit-wait.service
++ConditionPathExists=/dev/console
+ m4_ifdef(`HAVE_SYSV_COMPAT',
+ After=rc-local.service
+ )m4_dnl
diff --git a/0114-resolved-Do-not-add-.busname-dependencies-when-compi.patch b/0114-resolved-Do-not-add-.busname-dependencies-when-compi.patch
new file mode 100644
index 0000000..43da8e4
--- /dev/null
+++ b/0114-resolved-Do-not-add-.busname-dependencies-when-compi.patch
@@ -0,0 +1,60 @@
+From 412dc90d0b48e3253786309eb563a8c1e79db22a Mon Sep 17 00:00:00 2001
+From: Dimitri John Ledkov <dimitri.j.ledkov at intel.com>
+Date: Tue, 17 Mar 2015 16:37:07 +0100
+Subject: [PATCH] resolved: Do not add .busname dependencies, when compiling
+ without kdbus.
+
+(cherry picked from commit defa8e675b2903ad53e093bb2847c7256f0779a5)
+---
+ Makefile.am                                                           | 2 +-
+ units/.gitignore                                                      | 1 +
+ units/{systemd-resolved.service.in => systemd-resolved.service.m4.in} | 2 ++
+ 3 files changed, 4 insertions(+), 1 deletion(-)
+ rename units/{systemd-resolved.service.in => systemd-resolved.service.m4.in} (96%)
+
+diff --git a/Makefile.am b/Makefile.am
+index aadaad2b8d..78f77d7090 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -5459,7 +5459,7 @@ dist_dbussystemservice_DATA += \
+ 	src/resolve/org.freedesktop.resolve1.service
+ 
+ EXTRA_DIST += \
+-	units/systemd-resolved.service.in
++	units/systemd-resolved.service.m4.in
+ 
+ SYSTEM_UNIT_ALIASES += \
+ 	systemd-resolved.service dbus-org.freedesktop.resolve1.service
+diff --git a/units/.gitignore b/units/.gitignore
+index 6fdb629c3d..c59676c95b 100644
+--- a/units/.gitignore
++++ b/units/.gitignore
+@@ -55,6 +55,7 @@
+ /systemd-reboot.service
+ /systemd-remount-fs.service
+ /systemd-resolved.service
++/systemd-resolved.service.m4
+ /systemd-hibernate-resume at .service
+ /systemd-rfkill at .service
+ /systemd-shutdownd.service
+diff --git a/units/systemd-resolved.service.in b/units/systemd-resolved.service.m4.in
+similarity index 96%
+rename from units/systemd-resolved.service.in
+rename to units/systemd-resolved.service.m4.in
+index b643da9a73..d133847d5e 100644
+--- a/units/systemd-resolved.service.in
++++ b/units/systemd-resolved.service.m4.in
+@@ -10,11 +10,13 @@ Description=Network Name Resolution
+ Documentation=man:systemd-resolved.service(8)
+ After=systemd-networkd.service network.service
+ 
++m4_ifdef(`ENABLE_KDBUS',
+ # On kdbus systems we pull in the busname explicitly, because it
+ # carries policy that allows the daemon to acquire its name.
+ Wants=org.freedesktop.resolve1.busname
+ After=org.freedesktop.resolve1.busname
+ 
++)m4_dnl
+ [Service]
+ Type=notify
+ Restart=always
diff --git a/0115-man-add-journal-remote.conf-5.patch b/0115-man-add-journal-remote.conf-5.patch
new file mode 100644
index 0000000..ee73a1d
--- /dev/null
+++ b/0115-man-add-journal-remote.conf-5.patch
@@ -0,0 +1,178 @@
+From b66b41c3b5c9567cafce132782bae32055d6a69a Mon Sep 17 00:00:00 2001
+From: Chris Morgan <chmorgan at gmail.com>
+Date: Sat, 21 Mar 2015 20:47:46 -0400
+Subject: [PATCH] man: add journal-remote.conf(5)
+
+(cherry picked from commit eaa5251d9167027275d8275862e23e0b7dc8866e)
+---
+ Makefile-man.am                |   7 +++
+ man/journal-remote.conf.xml    | 114 +++++++++++++++++++++++++++++++++++++++++
+ man/systemd-journal-remote.xml |   1 +
+ 3 files changed, 122 insertions(+)
+ create mode 100644 man/journal-remote.conf.xml
+
+diff --git a/Makefile-man.am b/Makefile-man.am
+index d0fb9aa1ae..28e1007c38 100644
+--- a/Makefile-man.am
++++ b/Makefile-man.am
+@@ -1330,14 +1330,20 @@ endif
+ 
+ if HAVE_MICROHTTPD
+ MANPAGES += \
++	man/journal-remote.conf.5 \
+ 	man/systemd-journal-gatewayd.service.8 \
+ 	man/systemd-journal-remote.8 \
+ 	man/systemd-journal-upload.8
+ MANPAGES_ALIAS += \
++	man/journal-remote.conf.d.5 \
+ 	man/systemd-journal-gatewayd.8 \
+ 	man/systemd-journal-gatewayd.socket.8
++man/journal-remote.conf.d.5: man/journal-remote.conf.5
+ man/systemd-journal-gatewayd.8: man/systemd-journal-gatewayd.service.8
+ man/systemd-journal-gatewayd.socket.8: man/systemd-journal-gatewayd.service.8
++man/journal-remote.conf.d.html: man/journal-remote.conf.html
++	$(html-alias)
++
+ man/systemd-journal-gatewayd.html: man/systemd-journal-gatewayd.service.html
+ 	$(html-alias)
+ 
+@@ -1634,6 +1640,7 @@ EXTRA_DIST += \
+ 	man/hostname.xml \
+ 	man/hostnamectl.xml \
+ 	man/hwdb.xml \
++	man/journal-remote.conf.xml \
+ 	man/journalctl.xml \
+ 	man/journald.conf.xml \
+ 	man/kernel-command-line.xml \
+diff --git a/man/journal-remote.conf.xml b/man/journal-remote.conf.xml
+new file mode 100644
+index 0000000000..a7b2227182
+--- /dev/null
++++ b/man/journal-remote.conf.xml
+@@ -0,0 +1,114 @@
++<?xml version='1.0'?> <!--*-nxml-*-->
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
++  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
++
++<!--
++  This file is part of systemd.
++
++  Copyright 2015 Chris Morgan
++
++  systemd is free software; you can redistribute it and/or modify it
++  under the terms of the GNU Lesser General Public License as published by
++  the Free Software Foundation; either version 2.1 of the License, or
++  (at your option) any later version.
++
++  systemd is distributed in the hope that it will be useful, but
++  WITHOUT ANY WARRANTY; without even the implied warranty of
++  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++  Lesser General Public License for more details.
++
++  You should have received a copy of the GNU Lesser General Public License
++  along with systemd; If not, see <http://www.gnu.org/licenses/>.
++-->
++
++<refentry id="journal-remote.conf" conditional='HAVE_MICROHTTPD'
++          xmlns:xi="http://www.w3.org/2001/XInclude">
++  <refentryinfo>
++    <title>journal-remote.conf</title>
++    <productname>systemd</productname>
++
++    <authorgroup>
++      <author>
++        <contrib>Developer</contrib>
++        <firstname>Chris</firstname>
++        <surname>Morgan</surname>
++        <email>chmorgan at gmail.com</email>
++      </author>
++    </authorgroup>
++  </refentryinfo>
++
++  <refmeta>
++    <refentrytitle>journal-remote.conf</refentrytitle>
++    <manvolnum>5</manvolnum>
++  </refmeta>
++
++  <refnamediv>
++    <refname>journal-remote.conf</refname>
++    <refname>journal-remote.conf.d</refname>
++    <refpurpose>Journal remote service configuration files</refpurpose>
++  </refnamediv>
++
++  <refsynopsisdiv>
++    <para><filename>/etc/systemd/journal-remote.conf</filename></para>
++    <para><filename>/etc/systemd/journald.conf.d/*.conf</filename></para>
++    <para><filename>/run/systemd/journald.conf.d/*.conf</filename></para>
++    <para><filename>/usr/lib/systemd/journald.conf.d/*.conf</filename></para>
++  </refsynopsisdiv>
++
++  <refsect1>
++    <title>Description</title>
++
++    <para>These files configure various parameters of the systemd-remote-journal
++    application,
++    <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
++  </refsect1>
++
++  <xi:include href="standard-conf.xml" xpointer="main-conf" />
++
++  <refsect1>
++    <title>Options</title>
++
++    <para>All options are configured in the
++    <literal>[Remote]</literal> section:</para>
++
++    <variablelist>
++
++      <varlistentry>
++        <term><varname>SplitMode=</varname></term>
++
++        <listitem><para>One of <literal>host</literal> or <literal>none</literal>.
++        </para></listitem>
++      </varlistentry>
++
++      <varlistentry>
++        <term><varname>ServerKeyFile=</varname></term>
++
++        <listitem><para>SSL key in PEM format</para></listitem>
++      </varlistentry>
++
++      <varlistentry>
++        <term><varname>ServerCertificateFile=</varname></term>
++
++        <listitem><para>SSL CA certificate in PEM format.</para></listitem>
++      </varlistentry>
++
++      <varlistentry>
++        <term><varname>TrustedCertificateFile=</varname></term>
++
++        <listitem><para>SSL CA certificate.</para></listitem>
++      </varlistentry>
++
++    </variablelist>
++
++  </refsect1>
++
++  <refsect1>
++      <title>See Also</title>
++      <para>
++        <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
++        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
++        <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
++      </para>
++  </refsect1>
++
++</refentry>
+diff --git a/man/systemd-journal-remote.xml b/man/systemd-journal-remote.xml
+index 2687662a14..d5bda635c4 100644
+--- a/man/systemd-journal-remote.xml
++++ b/man/systemd-journal-remote.xml
+@@ -310,6 +310,7 @@ systemd-journal-remote --url http://some.host:19531/
+       <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+       <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+       <citerefentry><refentrytitle>systemd-journal-gatewayd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
++      <citerefentry><refentrytitle>journal-remote.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+     </para>
+   </refsect1>
+ </refentry>
diff --git a/0116-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0116-hwdb-Update-database-of-Bluetooth-company-identifier.patch
new file mode 100644
index 0000000..04ed2ce
--- /dev/null
+++ b/0116-hwdb-Update-database-of-Bluetooth-company-identifier.patch
@@ -0,0 +1,54 @@
+From 85967d7434a798b1d73429d87229cfaadfbf44b0 Mon Sep 17 00:00:00 2001
+From: Marcel Holtmann <marcel at holtmann.org>
+Date: Tue, 31 Mar 2015 22:59:12 +0200
+Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers
+
+(cherry picked from commit c185834d77335d50ef0247c39d7e9dffc74707bd)
+---
+ hwdb/20-bluetooth-vendor-product.hwdb | 36 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 36 insertions(+)
+
+diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb
+index 4fd951a584..ff8862b9ea 100644
+--- a/hwdb/20-bluetooth-vendor-product.hwdb
++++ b/hwdb/20-bluetooth-vendor-product.hwdb
+@@ -1472,3 +1472,39 @@ bluetooth:v01E7*
+ 
+ bluetooth:v01E8*
+  ID_VENDOR_FROM_DATABASE=STIR
++
++bluetooth:v01E9*
++ ID_VENDOR_FROM_DATABASE=Sano, Inc
++
++bluetooth:v01EA*
++ ID_VENDOR_FROM_DATABASE=Advanced Application Design, Inc.
++
++bluetooth:v01EB*
++ ID_VENDOR_FROM_DATABASE=AutoMap LLC
++
++bluetooth:v01EC*
++ ID_VENDOR_FROM_DATABASE=Spreadtrum Communications Shanghai Ltd
++
++bluetooth:v01ED*
++ ID_VENDOR_FROM_DATABASE=CuteCircuit LTD
++
++bluetooth:v01EE*
++ ID_VENDOR_FROM_DATABASE=Valeo Service
++
++bluetooth:v01EF*
++ ID_VENDOR_FROM_DATABASE=Fullpower Technologies, Inc.
++
++bluetooth:v01F0*
++ ID_VENDOR_FROM_DATABASE=KloudNation
++
++bluetooth:v01F1*
++ ID_VENDOR_FROM_DATABASE=Zebra Technologies Corporation
++
++bluetooth:v01F2*
++ ID_VENDOR_FROM_DATABASE=Itron, Inc.
++
++bluetooth:v01F3*
++ ID_VENDOR_FROM_DATABASE=The University of Tokyo
++
++bluetooth:v01F4*
++ ID_VENDOR_FROM_DATABASE=UTC Fire and Security
diff --git a/0117-mount-don-t-run-quotaon-only-for-network-filesystems.patch b/0117-mount-don-t-run-quotaon-only-for-network-filesystems.patch
new file mode 100644
index 0000000..fbaeca8
--- /dev/null
+++ b/0117-mount-don-t-run-quotaon-only-for-network-filesystems.patch
@@ -0,0 +1,29 @@
+From 76e5c9cfb1df3991f631cc7b593ab25a15f8d3eb Mon Sep 17 00:00:00 2001
+From: Lukas Nykryn <lnykryn at redhat.com>
+Date: Mon, 30 Mar 2015 14:42:02 +0200
+Subject: [PATCH] mount: don't run quotaon only for network filesystems
+
+If you have for example ext4 on iscsi devices it is possible to setup
+qoutas there. Unfortunately, because such fstab entry contains _netdev,
+systemd will not add dependency to quotaon.service.
+
+(cherry picked from commit 11041c8488e956924870379a9203d7f1cac3b038)
+---
+ src/core/mount.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/core/mount.c b/src/core/mount.c
+index 3ae0eb4621..3359220251 100644
+--- a/src/core/mount.c
++++ b/src/core/mount.c
+@@ -107,7 +107,9 @@ static bool mount_is_auto(const MountParameters *p) {
+ static bool needs_quota(const MountParameters *p) {
+         assert(p);
+ 
+-        if (mount_is_network(p))
++        /* Quotas are not enabled on network filesystems,
++         * but we them, for example, on storages connected via iscsi */
++        if (p->fstype && fstype_is_network(p->fstype))
+                 return false;
+ 
+         if (mount_is_bind(p))
diff --git a/0118-mount-fix-up-wording-in-the-comment.patch b/0118-mount-fix-up-wording-in-the-comment.patch
new file mode 100644
index 0000000..cf5e0d3
--- /dev/null
+++ b/0118-mount-fix-up-wording-in-the-comment.patch
@@ -0,0 +1,23 @@
+From b9b1f41397212bb0a692454b75434b62a4ade1dc Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta at redhat.com>
+Date: Wed, 1 Apr 2015 13:08:25 +0200
+Subject: [PATCH] mount: fix up wording in the comment
+
+(cherry picked from commit 340a1d2330ddc1dd18ad75bcdddf32f63c84b4a1)
+---
+ src/core/mount.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/mount.c b/src/core/mount.c
+index 3359220251..fd4fb6f1b2 100644
+--- a/src/core/mount.c
++++ b/src/core/mount.c
+@@ -108,7 +108,7 @@ static bool needs_quota(const MountParameters *p) {
+         assert(p);
+ 
+         /* Quotas are not enabled on network filesystems,
+-         * but we them, for example, on storages connected via iscsi */
++         * but we want them, for example, on storage connected via iscsi */
+         if (p->fstype && fstype_is_network(p->fstype))
+                 return false;
+ 
diff --git a/0119-udev-net_id-fix-copy-paste-error.patch b/0119-udev-net_id-fix-copy-paste-error.patch
new file mode 100644
index 0000000..f7aeaac
--- /dev/null
+++ b/0119-udev-net_id-fix-copy-paste-error.patch
@@ -0,0 +1,25 @@
+From e219205ca3accd36ce59ed19bb0e6d079311d505 Mon Sep 17 00:00:00 2001
+From: Tom Gundersen <teg at jklm.no>
+Date: Wed, 1 Apr 2015 16:41:41 +0200
+Subject: [PATCH] udev: net_id - fix copy-paste error
+
+In case pci_slot overflows we were truncating pci_path instead.
+
+(cherry picked from commit 16f948cb208f1db9a1665f07ac9b22e416dc19d4)
+---
+ src/udev/udev-builtin-net_id.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
+index 37ff1b8008..71f3a5970f 100644
+--- a/src/udev/udev-builtin-net_id.c
++++ b/src/udev/udev-builtin-net_id.c
+@@ -248,7 +248,7 @@ static int dev_pci_slot(struct udev_device *dev, struct netnames *names) {
+                 if (dev_port > 0)
+                         l = strpcpyf(&s, l, "d%d", dev_port);
+                 if (l == 0)
+-                        names->pci_path[0] = '\0';
++                        names->pci_slot[0] = '\0';
+         }
+ out:
+         udev_device_unref(pci);
diff --git a/0120-man-don-t-mention-journalctl-dev-sda.patch b/0120-man-don-t-mention-journalctl-dev-sda.patch
new file mode 100644
index 0000000..cf16e2d
--- /dev/null
+++ b/0120-man-don-t-mention-journalctl-dev-sda.patch
@@ -0,0 +1,28 @@
+From 4e19d468a0d5af50fcff6db4f67572689d28b706 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Thu, 2 Apr 2015 12:14:57 +0200
+Subject: [PATCH] man: don't mention "journalctl /dev/sda"
+
+It never worked, and nobody ever worked on it, hence don't mention it.
+
+(cherry picked from commit c4f54721175bde35e2051d61d3d23285def9619d)
+---
+ man/journalctl.xml | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/man/journalctl.xml b/man/journalctl.xml
+index 770cf9bb29..08de0ff068 100644
+--- a/man/journalctl.xml
++++ b/man/journalctl.xml
+@@ -817,11 +817,6 @@
+ 
+     <programlisting>journalctl /usr/bin/dbus-daemon</programlisting>
+ 
+-    <para>Show all logs of the kernel device node
+-    <filename noindex='true'>/dev/sda</filename>:</para>
+-
+-    <programlisting>journalctl /dev/sda</programlisting>
+-
+     <para>Show all kernel logs from previous boot:</para>
+ 
+     <programlisting>journalctl -k -b -1</programlisting>
diff --git a/0121-units-move-After-systemd-hwdb-update.service-depende.patch b/0121-units-move-After-systemd-hwdb-update.service-depende.patch
new file mode 100644
index 0000000..de80ec8
--- /dev/null
+++ b/0121-units-move-After-systemd-hwdb-update.service-depende.patch
@@ -0,0 +1,43 @@
+From bf38766c3a48427673527e7ae8894aeca2e34ffe Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Fri, 3 Apr 2015 14:27:16 +0200
+Subject: [PATCH] units: move After=systemd-hwdb-update.service dependency from
+ udev to udev-trigger
+
+Let's move the hwdb regeneration a bit later. Given that hwdb is
+non-essential it should be OK to allow udev to run without it until we
+do the full trigger.
+
+http://lists.freedesktop.org/archives/systemd-devel/2015-April/030074.html
+(cherry picked from commit d8f0930eec248c2f54c85aa5029e1b3775c8dc75)
+---
+ units/systemd-udev-trigger.service.in | 2 +-
+ units/systemd-udevd.service.in        | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/units/systemd-udev-trigger.service.in b/units/systemd-udev-trigger.service.in
+index 0c33909cee..1e04d11fe3 100644
+--- a/units/systemd-udev-trigger.service.in
++++ b/units/systemd-udev-trigger.service.in
+@@ -10,7 +10,7 @@ Description=udev Coldplug all Devices
+ Documentation=man:udev(7) man:systemd-udevd.service(8)
+ DefaultDependencies=no
+ Wants=systemd-udevd.service
+-After=systemd-udevd-kernel.socket systemd-udevd-control.socket
++After=systemd-udevd-kernel.socket systemd-udevd-control.socket systemd-hwdb-update.service
+ Before=sysinit.target
+ ConditionPathIsReadWrite=/sys
+ 
+diff --git a/units/systemd-udevd.service.in b/units/systemd-udevd.service.in
+index 2791f73ac3..a133044005 100644
+--- a/units/systemd-udevd.service.in
++++ b/units/systemd-udevd.service.in
+@@ -10,7 +10,7 @@ Description=udev Kernel Device Manager
+ Documentation=man:systemd-udevd.service(8) man:udev(7)
+ DefaultDependencies=no
+ Wants=systemd-udevd-control.socket systemd-udevd-kernel.socket
+-After=systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-hwdb-update.service systemd-sysusers.service
++After=systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-sysusers.service
+ Before=sysinit.target
+ ConditionPathIsReadWrite=/sys
+ 
diff --git a/0122-units-explicitly-order-systemd-user-sessions.service.patch b/0122-units-explicitly-order-systemd-user-sessions.service.patch
new file mode 100644
index 0000000..b2d69f8
--- /dev/null
+++ b/0122-units-explicitly-order-systemd-user-sessions.service.patch
@@ -0,0 +1,26 @@
+From 2f9c8a3cacc7f6743925c8f8eb7fdffd1558c688 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Fri, 3 Apr 2015 14:31:35 +0200
+Subject: [PATCH] units: explicitly order systemd-user-sessions.service after
+ nss-user-lookup.target
+
+We should not allow logins before NIS/LDAP users are available.
+
+(cherry picked from commit efb3e19be9c568974b221990b9e84fb5304c5537)
+---
+ units/systemd-user-sessions.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/units/systemd-user-sessions.service.in b/units/systemd-user-sessions.service.in
+index 0869e73991..c09c05d4d5 100644
+--- a/units/systemd-user-sessions.service.in
++++ b/units/systemd-user-sessions.service.in
+@@ -8,7 +8,7 @@
+ [Unit]
+ Description=Permit User Sessions
+ Documentation=man:systemd-user-sessions.service(8)
+-After=remote-fs.target
++After=remote-fs.target nss-user-lookup.target
+ 
+ [Service]
+ Type=oneshot
diff --git a/0123-zsh-completion-update-loginctl.patch b/0123-zsh-completion-update-loginctl.patch
new file mode 100644
index 0000000..311a284
--- /dev/null
+++ b/0123-zsh-completion-update-loginctl.patch
@@ -0,0 +1,28 @@
+From 33783ab52be4b52be91b3565948a29fbfc1d0799 Mon Sep 17 00:00:00 2001
+From: Ronny Chevalier <chevalier.ronny at gmail.com>
+Date: Tue, 7 Apr 2015 19:35:13 +0200
+Subject: [PATCH] zsh-completion: update loginctl
+
+(cherry picked from commit 8470025541039f39391815b2ac93952003b7eee8)
+---
+ shell-completion/zsh/_loginctl | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/shell-completion/zsh/_loginctl b/shell-completion/zsh/_loginctl
+index 0de66e191f..bd33b66fae 100644
+--- a/shell-completion/zsh/_loginctl
++++ b/shell-completion/zsh/_loginctl
+@@ -102,10 +102,11 @@ _arguments -s \
+     '--kill-who=[Who to send signal to]:killwho:(main control all)' \
+     {-s+,--signal=}'[Which signal to send]:signal:_signals' \
+     {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \
+-    {-M+,--machine=}'[Operate on local container]:machine' \
+-    {-P,--privileged}'[Acquire privileges before execution]' \
++    {-M+,--machine=}'[Operate on local container]:machine:_sd_machines' \
+     {-l,--full}'[Do not ellipsize output]' \
+     '--no-pager[Do not pipe output into a pager]' \
+     '--no-legend[Do not show the headers and footers]' \
+     '--no-ask-password[Do not ask for system passwords]' \
++    {-n+,--lines=}'[Number of journal entries to show]' \
++    {-o+,--output=}'[Change journal output mode]:output modes:_sd_outputmodes' \
+     '*::loginctl command:_loginctl_command'
diff --git a/0124-zsh-completion-add-missing-M-completion-for-journalc.patch b/0124-zsh-completion-add-missing-M-completion-for-journalc.patch
new file mode 100644
index 0000000..7064f58
--- /dev/null
+++ b/0124-zsh-completion-add-missing-M-completion-for-journalc.patch
@@ -0,0 +1,22 @@
+From 5fa78764c2405083d5023f56799e518e641abb2f Mon Sep 17 00:00:00 2001
+From: Ronny Chevalier <chevalier.ronny at gmail.com>
+Date: Tue, 7 Apr 2015 19:35:57 +0200
+Subject: [PATCH] zsh-completion: add missing -M completion for journalctl
+
+(cherry picked from commit b178d279d92fdf002b18dd2f06f2353af14d0a6e)
+---
+ shell-completion/zsh/_journalctl | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/shell-completion/zsh/_journalctl b/shell-completion/zsh/_journalctl
+index a469bbc9a7..863348e050 100644
+--- a/shell-completion/zsh/_journalctl
++++ b/shell-completion/zsh/_journalctl
+@@ -76,6 +76,7 @@ _arguments -s \
+     {-F,--field=}'[List all values a certain field takes]:Fields:_list_fields' \
+     '--system[Show system and kernel messages]' \
+     '--user[Show messages from user services]' \
++    {-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \
+     {-D+,--directory=}'[Show journal files from directory]:directories:_directories' \
+     '--file=[Operate on specified journal files]:file:_files' \
+     '--root=[Operate on catalog hierarchy under specified directory]:directories:_directories' \
diff --git a/0125-zsh-completion-update-hostnamectl.patch b/0125-zsh-completion-update-hostnamectl.patch
new file mode 100644
index 0000000..2a0f7db
--- /dev/null
+++ b/0125-zsh-completion-update-hostnamectl.patch
@@ -0,0 +1,45 @@
+From 8a4bf5dd52fe70734d566df3315927e41d27ac0e Mon Sep 17 00:00:00 2001
+From: Ronny Chevalier <chevalier.ronny at gmail.com>
+Date: Tue, 7 Apr 2015 20:14:28 +0200
+Subject: [PATCH] zsh-completion: update hostnamectl
+
+(cherry picked from commit d67b1f525f488e5dfc076972cccf2a6411257fb8)
+---
+ shell-completion/zsh/_hostnamectl | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/shell-completion/zsh/_hostnamectl b/shell-completion/zsh/_hostnamectl
+index a7217a1999..7528e0649d 100644
+--- a/shell-completion/zsh/_hostnamectl
++++ b/shell-completion/zsh/_hostnamectl
+@@ -33,6 +33,14 @@ _hostnamectl_set-deployment() {
+     fi
+ }
+ 
++_hostnamectl_set-location() {
++    if (( CURRENT <= 3 )); then
++        _message "new location"
++    else
++        _message "no more options"
++    fi
++}
++
+ _hostnamectl_command() {
+     local -a _hostnamectl_cmds
+     _hostnamectl_cmds=(
+@@ -40,7 +48,8 @@ _hostnamectl_command() {
+         "set-hostname:Set system hostname"
+         "set-icon-name:Set icon name for host"
+         "set-chassis:Set chassis type for host"
+-        "set-deployment:Set deployment environment"
++        "set-deployment:Set deployment environment for host"
++        "set-location:Set location for host"
+     )
+     if (( CURRENT == 1 )); then
+         _describe -t commands 'hostnamectl commands' _hostnamectl_cmds || compadd "$@"
+@@ -67,4 +76,5 @@ _arguments -s \
+     '--pretty[Only set pretty hostname]' \
+     '--no-ask-password[Do not prompt for password]' \
+     {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \
++    {-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \
+     '*::hostnamectl commands:_hostnamectl_command'
diff --git a/0126-shell-completion-systemctl-switch-root-verb.patch b/0126-shell-completion-systemctl-switch-root-verb.patch
new file mode 100644
index 0000000..9fa0bcb
--- /dev/null
+++ b/0126-shell-completion-systemctl-switch-root-verb.patch
@@ -0,0 +1,50 @@
+From 51265c779c2c9ed84971405827595a41a10c5398 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Thu, 2 Apr 2015 22:54:35 -0400
+Subject: [PATCH] shell-completion: systemctl switch-root verb
+
+The completion is rudimentary (all files). I think this is OK since
+this is used so rarely. But not having it proposed at all is annoying.
+
+(cherry picked from commit 7b742b3130941b5c8d5e178b6694428fb3b61086)
+---
+ shell-completion/bash/systemctl.in | 2 +-
+ shell-completion/zsh/_systemctl.in | 5 +++++
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/shell-completion/bash/systemctl.in b/shell-completion/bash/systemctl.in
+index 8063316ec6..3d787cdb77 100644
+--- a/shell-completion/bash/systemctl.in
++++ b/shell-completion/bash/systemctl.in
+@@ -160,7 +160,7 @@ _systemctl () {
+                              reboot rescue show-environment suspend get-default
+                              is-system-running'
+                      [NAME]='snapshot'
+-                     [FILE]='link'
++                     [FILE]='link switch-root'
+                   [TARGETS]='set-default'
+         )
+ 
+diff --git a/shell-completion/zsh/_systemctl.in b/shell-completion/zsh/_systemctl.in
+index 7f2d5ac0fa..82edfd3d74 100644
+--- a/shell-completion/zsh/_systemctl.in
++++ b/shell-completion/zsh/_systemctl.in
+@@ -59,6 +59,7 @@
+     "reboot:Shut down and reboot the system"
+     "kexec:Shut down and reboot the system with kexec"
+     "exit:Ask for user instance termination"
++    "switch-root:Change root directory"
+   )
+ 
+   if (( CURRENT == 1 )); then
+@@ -297,6 +298,10 @@ done
+    _sd_unit_files
+ }
+ 
++(( $+functions[_systemctl_switch-root] )) || _systemctl_switch-root() {
++   _files
++}
++
+ # no systemctl completion for:
+ #    [STANDALONE]='daemon-reexec daemon-reload default
+ #                  emergency exit halt kexec list-jobs list-units
diff --git a/0127-core-automount-beef-up-error-message.patch b/0127-core-automount-beef-up-error-message.patch
new file mode 100644
index 0000000..2b91967
--- /dev/null
+++ b/0127-core-automount-beef-up-error-message.patch
@@ -0,0 +1,26 @@
+From 7a6c9117eca12a1a59f1323ba7407e7b6dedfa66 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Thu, 2 Apr 2015 22:58:39 -0400
+Subject: [PATCH] core/automount: beef up error message
+
+This should not happen... but when it does more information is nice.
+
+(cherry picked from commit 50b03c8ea1248f2d35a9042a3fa959adc0ceb819)
+---
+ src/core/automount.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/core/automount.c b/src/core/automount.c
+index e4c79415d1..b391f6198e 100644
+--- a/src/core/automount.c
++++ b/src/core/automount.c
+@@ -734,7 +734,8 @@ static int automount_dispatch_io(sd_event_source *s, int fd, uint32_t events, vo
+         assert(fd == a->pipe_fd);
+ 
+         if (events != EPOLLIN) {
+-                log_unit_error(UNIT(a)->id, "Got invalid poll event on pipe.");
++                log_unit_error(UNIT(a)->id, "%s: got invalid poll event %"PRIu32" on pipe (fd=%d)",
++                               UNIT(a)->id, events, fd);
+                 goto fail;
+         }
+ 
diff --git a/0128-man-remove-fs-from-rootfsflags.patch b/0128-man-remove-fs-from-rootfsflags.patch
new file mode 100644
index 0000000..26695e7
--- /dev/null
+++ b/0128-man-remove-fs-from-rootfsflags.patch
@@ -0,0 +1,25 @@
+From d0d6d8081f89fd03cc2bdb4068239928e36db73c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Fri, 3 Apr 2015 08:28:21 -0400
+Subject: [PATCH] man: remove 'fs' from 'rootfsflags'
+
+rootfsflags does not appear anywhere else.
+
+(cherry picked from commit d6a12e7ca3a17ce0224fd6c95d827e4f97fe2c9a)
+---
+ man/kernel-command-line.xml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/man/kernel-command-line.xml b/man/kernel-command-line.xml
+index 919bd13745..eb73727027 100644
+--- a/man/kernel-command-line.xml
++++ b/man/kernel-command-line.xml
+@@ -295,7 +295,7 @@
+       <varlistentry>
+         <term><varname>root=</varname></term>
+         <term><varname>rootfstype=</varname></term>
+-        <term><varname>rootfsflags=</varname></term>
++        <term><varname>rootflags=</varname></term>
+         <term><varname>ro</varname></term>
+         <term><varname>rw</varname></term>
+ 
diff --git a/0129-shared-fix-memleak.patch b/0129-shared-fix-memleak.patch
new file mode 100644
index 0000000..a2b8b1c
--- /dev/null
+++ b/0129-shared-fix-memleak.patch
@@ -0,0 +1,53 @@
+From 7b0a1d188bf80e77d833f1c624a9a9f467f3af25 Mon Sep 17 00:00:00 2001
+From: Ronny Chevalier <chevalier.ronny at gmail.com>
+Date: Fri, 10 Apr 2015 15:44:02 +0200
+Subject: [PATCH] shared: fix memleak
+
+path was used for 2 purposes but it was not freed before being reused.
+
+(cherry picked from commit 0d67448869bd881fd6aea57de6da98800395cf1f)
+---
+ src/shared/install.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/shared/install.c b/src/shared/install.c
+index 92b8d6e8ef..efd489ec08 100644
+--- a/src/shared/install.c
++++ b/src/shared/install.c
+@@ -515,7 +515,7 @@ static int find_symlinks_in_scope(
+                 UnitFileState *state) {
+ 
+         int r;
+-        _cleanup_free_ char *path = NULL;
++        _cleanup_free_ char *normal_path = NULL, *runtime_path = NULL;
+         bool same_name_link_runtime = false, same_name_link = false;
+ 
+         assert(scope >= 0);
+@@ -523,11 +523,11 @@ static int find_symlinks_in_scope(
+         assert(name);
+ 
+         /* First look in runtime config path */
+-        r = get_config_path(scope, true, root_dir, &path);
++        r = get_config_path(scope, true, root_dir, &normal_path);
+         if (r < 0)
+                 return r;
+ 
+-        r = find_symlinks(name, path, &same_name_link_runtime);
++        r = find_symlinks(name, normal_path, &same_name_link_runtime);
+         if (r < 0)
+                 return r;
+         else if (r > 0) {
+@@ -536,11 +536,11 @@ static int find_symlinks_in_scope(
+         }
+ 
+         /* Then look in the normal config path */
+-        r = get_config_path(scope, false, root_dir, &path);
++        r = get_config_path(scope, false, root_dir, &runtime_path);
+         if (r < 0)
+                 return r;
+ 
+-        r = find_symlinks(name, path, &same_name_link);
++        r = find_symlinks(name, runtime_path, &same_name_link);
+         if (r < 0)
+                 return r;
+         else if (r > 0) {
diff --git a/0130-udev-restore-udevadm-settle-timeout.patch b/0130-udev-restore-udevadm-settle-timeout.patch
new file mode 100644
index 0000000..8d1ddc5
--- /dev/null
+++ b/0130-udev-restore-udevadm-settle-timeout.patch
@@ -0,0 +1,52 @@
+From 6ee163ccd848bc0283a4895dddd55f3a71626d6a Mon Sep 17 00:00:00 2001
+From: Nir Soffer <nirsof at gmail.com>
+Date: Wed, 8 Apr 2015 04:04:16 +0300
+Subject: [PATCH] udev: restore udevadm settle timeout
+
+Commit 9ea28c55a2 (udev: remove seqnum API and all assumptions about
+seqnums) introduced a regresion, ignoring the timeout option when
+waiting until the event queue is empty.
+
+Previously, if the udev event queue was not empty when the timeout was
+expired, udevadm settle was returning with exit code 1.  To check if the
+queue is empty, you could invoke udevadm settle with timeout=0. This
+patch restores the previous behavior.
+
+(David: fixed timeout==0 handling and dropped redundant assignment)
+
+(cherry picked from commit 0736455b1186c9515e0f093e1e686e684d225787)
+---
+ src/udev/udevadm-settle.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c
+index fff5de7a8b..e60c4623bd 100644
+--- a/src/udev/udevadm-settle.c
++++ b/src/udev/udevadm-settle.c
+@@ -56,6 +56,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) {
+                 { "quiet",          no_argument,       NULL, 'q' }, /* removed */
+                 {}
+         };
++        usec_t deadline;
+         const char *exists = NULL;
+         unsigned int timeout = 120;
+         struct pollfd pfd[1] = { {.fd = -1}, };
+@@ -105,6 +106,8 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) {
+                 return EXIT_FAILURE;
+         }
+ 
++        deadline = now(CLOCK_MONOTONIC) + timeout * USEC_PER_SEC;
++
+         /* guarantee that the udev daemon isn't pre-processing */
+         if (getuid() == 0) {
+                 struct udev_ctrl *uctrl;
+@@ -146,6 +149,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) {
+                         break;
+                 }
+ 
++                if (timeout > 0 && now(CLOCK_MONOTONIC) >= deadline)
++                        break;
++
+                 /* wake up when queue is empty */
+                 if (poll(pfd, 1, MSEC_PER_SEC) > 0 && pfd[0].revents & POLLIN)
+                         udev_queue_flush(queue);
diff --git a/0131-hwdb-add-Samsung-ATIV-Book-6-8.patch b/0131-hwdb-add-Samsung-ATIV-Book-6-8.patch
new file mode 100644
index 0000000..c41055e
--- /dev/null
+++ b/0131-hwdb-add-Samsung-ATIV-Book-6-8.patch
@@ -0,0 +1,30 @@
+From cc2497363c22f32a4e38ca048f546a651ec45655 Mon Sep 17 00:00:00 2001
+From: Gavin Li <git at thegavinli.com>
+Date: Tue, 7 Apr 2015 03:30:10 -0700
+Subject: [PATCH] hwdb: add Samsung ATIV Book 6 / 8
+
+This adds support for the keyboard illumination keys and fixes
+Fn+F1.
+
+(cherry picked from commit af97ebf2dd8a2ec0d46f2924e35a63a55523c133)
+---
+ hwdb/60-keyboard.hwdb | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
+index 88906655ef..9f99ca8cac 100644
+--- a/hwdb/60-keyboard.hwdb
++++ b/hwdb/60-keyboard.hwdb
+@@ -1009,6 +1009,12 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:pvr*
+  KEYBOARD_KEY_b3=!prog3                                 # Fn+F11 fan/cooling mode changer
+  KEYBOARD_KEY_d5=!wlan                                  # Fn+F12 wlan/airplane switch
+ 
++# ATIV Book 6 / 8
++evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*[68][78]0Z*:pvr*
++ KEYBOARD_KEY_ce=!prog1                                 # Fn+F1 launch settings
++ KEYBOARD_KEY_96=!kbdillumup                            # Fn+F10 keyboard backlight up
++ KEYBOARD_KEY_97=!kbdillumdown                          # Fn+F9 keyboard backlight down
++
+ # SQ1US
+ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr*
+  KEYBOARD_KEY_d4=menu
diff --git a/0132-udevd-fix-synchronization-with-settle-when-handling-.patch b/0132-udevd-fix-synchronization-with-settle-when-handling-.patch
new file mode 100644
index 0000000..f64dfe5
--- /dev/null
+++ b/0132-udevd-fix-synchronization-with-settle-when-handling-.patch
@@ -0,0 +1,67 @@
+From bb9b6abb1a73cadcd1ce48a83376183163f7ecd6 Mon Sep 17 00:00:00 2001
+From: Daniel Drake <drake at endlessm.com>
+Date: Mon, 6 Apr 2015 16:03:43 -0600
+Subject: [PATCH] udevd: fix synchronization with settle when handling inotify
+ events
+
+udev uses inotify to implement a scheme where when the user closes
+a writable device node, a change uevent is forcefully generated.
+In the case of block devices, it actually requests a partition rescan.
+
+This currently can't be synchronized with "udevadm settle", i.e. this
+is not reliable in a script:
+
+ sfdisk --change-id /dev/sda 1 81
+ udevadm settle
+ mount /dev/sda1 /foo
+
+The settle call doesn't synchronize there, so at the same time we try
+to mount the device, udevd is busy removing the partition device nodes and
+readding them again. The mount call often happens in that moment where the
+partition node has been removed but not readded yet.
+
+This exact issue was fixed long ago:
+http://git.kernel.org/cgit/linux/hotplug/udev.git/commit/?id=bb38678e3ccc02bcd970ccde3d8166a40edf92d3
+
+but that fix is no longer valid now that sequence numbers are no longer
+used.
+
+Fix this by forcing another mainloop iteration after handling inotify events
+before unblocking settle. If the inotify event caused us to generate a
+"change" event, we'll pick that up in the following loop iteration, before
+we reach the end of the loop where we respond to settle's control message,
+unblocking it.
+
+(cherry picked from commit 07ba8037bf2a2d6a683fa107ee6f2b9545fca23e)
+---
+ src/udev/udevd.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/src/udev/udevd.c b/src/udev/udevd.c
+index e98c1fd6da..87a3f69e90 100644
+--- a/src/udev/udevd.c
++++ b/src/udev/udevd.c
+@@ -1502,9 +1502,22 @@ int main(int argc, char *argv[]) {
+                         continue;
+ 
+                 /* device node watch */
+-                if (is_inotify)
++                if (is_inotify) {
+                         handle_inotify(udev);
+ 
++                        /*
++                         * settle might be waiting on us to determine the queue
++                         * state. If we just handled an inotify event, we might have
++                         * generated a "change" event, but we won't have queued up
++                         * the resultant uevent yet.
++                         *
++                         * Before we go ahead and potentially tell settle that the
++                         * queue is empty, lets loop one more time to update the
++                         * queue state again before deciding.
++                         */
++                        continue;
++                }
++
+                 /* tell settle that we are busy or idle, this needs to be before the
+                  * PING handling
+                  */
diff --git a/0133-python-systemd-fix-is_socket_inet-to-cope-with-ports.patch b/0133-python-systemd-fix-is_socket_inet-to-cope-with-ports.patch
new file mode 100644
index 0000000..f67159d
--- /dev/null
+++ b/0133-python-systemd-fix-is_socket_inet-to-cope-with-ports.patch
@@ -0,0 +1,39 @@
+From 9aa4f0e0a69e610ca38ed34692e42be330cb7041 Mon Sep 17 00:00:00 2001
+From: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
+Date: Wed, 25 Mar 2015 17:00:09 +0000
+Subject: [PATCH] python-systemd: fix is_socket_inet to cope with ports
+
+Just a couple of trivial oversights.
+
+(cherry picked from commit 9f1a574d50c1ffd19f18805cc8a3a433c4f2da37)
+---
+ src/python-systemd/_daemon.c | 2 +-
+ src/python-systemd/daemon.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/python-systemd/_daemon.c b/src/python-systemd/_daemon.c
+index 65cfec7ce8..7c5f1b2bb6 100644
+--- a/src/python-systemd/_daemon.c
++++ b/src/python-systemd/_daemon.c
+@@ -225,7 +225,7 @@ static PyObject* is_socket_inet(PyObject *self, PyObject *args) {
+                               &fd, &family, &type, &listening, &port))
+                 return NULL;
+ 
+-        if (port < 0 || port > INT16_MAX) {
++        if (port < 0 || port > UINT16_MAX) {
+                 set_error(-EINVAL, NULL, "port must fit into uint16_t");
+                 return NULL;
+         }
+diff --git a/src/python-systemd/daemon.py b/src/python-systemd/daemon.py
+index 1c386bb6fc..82011ca606 100644
+--- a/src/python-systemd/daemon.py
++++ b/src/python-systemd/daemon.py
+@@ -26,7 +26,7 @@ def is_socket(fileobj, family=_AF_UNSPEC, type=0, listening=-1):
+ 
+ def is_socket_inet(fileobj, family=_AF_UNSPEC, type=0, listening=-1, port=0):
+     fd = _convert_fileobj(fileobj)
+-    return _is_socket_inet(fd, family, type, listening)
++    return _is_socket_inet(fd, family, type, listening, port)
+ 
+ def is_socket_unix(fileobj, type=0, listening=-1, path=None):
+     fd = _convert_fileobj(fileobj)
diff --git a/0134-man-fix-examples-indentation-in-tmpfiles.d-5.patch b/0134-man-fix-examples-indentation-in-tmpfiles.d-5.patch
new file mode 100644
index 0000000..bb30920
--- /dev/null
+++ b/0134-man-fix-examples-indentation-in-tmpfiles.d-5.patch
@@ -0,0 +1,33 @@
+From 1625df2abbb82af7a0b2c02291e8379f00bdb8c4 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Mon, 13 Apr 2015 15:23:07 +0200
+Subject: [PATCH] man: fix examples indentation in tmpfiles.d(5)
+
+(cherry picked from commit bd1100898d63e9e2d8f6327b6895454f9abd5bd0)
+---
+ man/tmpfiles.d.xml | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
+index 4bd0fcf751..9b4e11c1b9 100644
+--- a/man/tmpfiles.d.xml
++++ b/man/tmpfiles.d.xml
+@@ -504,15 +504,15 @@
+       boot with specific modes and ownership.</para>
+ 
+       <programlisting>d /run/screens  1777 root root 10d
+-      d /run/uscreens 0755 root root 10d12h
+-      t /run/screen - - - - user.name="John Smith" security.SMACK64=screen</programlisting>
++d /run/uscreens 0755 root root 10d12h
++t /run/screen - - - - user.name="John Smith" security.SMACK64=screen</programlisting>
+     </example>
+     <example>
+       <title>/etc/tmpfiles.d/abrt.conf example</title>
+       <para><command>abrt</command> needs a directory created at boot with specific mode and ownership and its content should be preserved.</para>
+ 
+       <programlisting>d /var/tmp/abrt 0755 abrt abrt
+-      x /var/tmp/abrt/*</programlisting>
++x /var/tmp/abrt/*</programlisting>
+     </example>
+   </refsect1>
+ 
diff --git a/0135-systemctl-avoid-bumping-NOFILE-rlimit-unless-needed.patch b/0135-systemctl-avoid-bumping-NOFILE-rlimit-unless-needed.patch
new file mode 100644
index 0000000..d525dab
--- /dev/null
+++ b/0135-systemctl-avoid-bumping-NOFILE-rlimit-unless-needed.patch
@@ -0,0 +1,43 @@
+From 8bdb345984f8a00ff866c1b4198888a9eef03395 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Tue, 14 Apr 2015 20:47:20 -0500
+Subject: [PATCH] systemctl: avoid bumping NOFILE rlimit unless needed
+
+We actually only use the journal when showing status. Move setrlimit call
+so it is only called for status.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1184712
+(cherry picked from commit 40acc203c043fd419f3c045dc6f116c3a28411d8)
+---
+ src/systemctl/systemctl.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
+index 4ec0cff21d..089c25f83f 100644
+--- a/src/systemctl/systemctl.c
++++ b/src/systemctl/systemctl.c
+@@ -4449,6 +4449,12 @@ static int show(sd_bus *bus, char **args) {
+         if (show_properties)
+                 pager_open_if_enabled();
+ 
++        if (show_status)
++                /* Increase max number of open files to 16K if we can, we
++                 * might needs this when browsing journal files, which might
++                 * be split up into many files. */
++                setrlimit_closest(RLIMIT_NOFILE, &RLIMIT_MAKE_CONST(16384));
++
+         /* If no argument is specified inspect the manager itself */
+ 
+         if (show_properties && strv_length(args) <= 1)
+@@ -7207,11 +7213,6 @@ found:
+                 }
+         }
+ 
+-        /* Increase max number of open files to 16K if we can, we
+-         * might needs this when browsing journal files, which might
+-         * be split up into many files. */
+-        setrlimit_closest(RLIMIT_NOFILE, &RLIMIT_MAKE_CONST(16384));
+-
+         return verb->dispatch(bus, argv + optind);
+ }
+ 
diff --git a/0136-exit-status-Fix-NOTINSSTALLED-typo.patch b/0136-exit-status-Fix-NOTINSSTALLED-typo.patch
new file mode 100644
index 0000000..256c40f
--- /dev/null
+++ b/0136-exit-status-Fix-NOTINSSTALLED-typo.patch
@@ -0,0 +1,23 @@
+From 25a7f022e7e2e004f12757b7e73d7b7aecfe8926 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Sat, 18 Apr 2015 22:38:13 +0100
+Subject: [PATCH] exit-status: Fix "NOTINSSTALLED" typo
+
+(cherry picked from commit 9f8f87e375175536a972feab79c2ff8901c47f8e)
+---
+ src/shared/exit-status.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/shared/exit-status.c b/src/shared/exit-status.c
+index 5c73b4d3c0..90c83a47a8 100644
+--- a/src/shared/exit-status.c
++++ b/src/shared/exit-status.c
+@@ -167,7 +167,7 @@ const char* exit_status_to_string(ExitStatus status, ExitStatusLevel level) {
+                         return "NOPERMISSION";
+ 
+                 case EXIT_NOTINSTALLED:
+-                        return "NOTINSSTALLED";
++                        return "NOTINSTALLED";
+ 
+                 case EXIT_NOTCONFIGURED:
+                         return "NOTCONFIGURED";
diff --git a/0137-udev-settle-should-return-immediately-when-timeout-i.patch b/0137-udev-settle-should-return-immediately-when-timeout-i.patch
new file mode 100644
index 0000000..be348c1
--- /dev/null
+++ b/0137-udev-settle-should-return-immediately-when-timeout-i.patch
@@ -0,0 +1,37 @@
+From 8d89839589bf8d8498ee21f4257242d38df9b7e0 Mon Sep 17 00:00:00 2001
+From: Nir Soffer <nirsof at gmail.com>
+Date: Sun, 19 Apr 2015 03:41:26 +0300
+Subject: [PATCH] udev: settle should return immediately when timeout is 0
+
+udevadm manual says:
+
+    A value of 0 will check if the queue is empty and always return
+    immediately.
+
+However, currently we ignore the deadline if the value is 0, and wait
+without any limit.
+
+Zero timeout behaved according to the documentation until commit
+ead7c62ab7 (udevadm: settle - kill alarm()). Looking at this patch, it
+seems that the behavior change was unintended.
+
+This patch restores the documented behavior.
+
+(cherry picked from commit bf23b9f86f6807c3029a6a46e1999ae0c87ca22a)
+---
+ src/udev/udevadm-settle.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c
+index e60c4623bd..40e3e28b1e 100644
+--- a/src/udev/udevadm-settle.c
++++ b/src/udev/udevadm-settle.c
+@@ -149,7 +149,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) {
+                         break;
+                 }
+ 
+-                if (timeout > 0 && now(CLOCK_MONOTONIC) >= deadline)
++                if (now(CLOCK_MONOTONIC) >= deadline)
+                         break;
+ 
+                 /* wake up when queue is empty */
diff --git a/0138-importd-add-CAP_DAC_OVERRIDE-capability.patch b/0138-importd-add-CAP_DAC_OVERRIDE-capability.patch
new file mode 100644
index 0000000..5473fba
--- /dev/null
+++ b/0138-importd-add-CAP_DAC_OVERRIDE-capability.patch
@@ -0,0 +1,32 @@
+From 989f43ac4c07d47147facd62d3703d3d97b50e01 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak at v3.sk>
+Date: Mon, 13 Apr 2015 19:46:59 +0200
+Subject: [PATCH] importd: add CAP_DAC_OVERRIDE capability
+
+Fedora's filesystem package ships /usr/bin (and other directories) which are
+not writable by its owner. machinectl pull-dkr (and possibly others) are not
+able to extract those:
+
+  14182 mkdirat(3, "usr", 0700)           = 0
+  14182 mkdirat(3, "usr/bin", 0500)       = 0
+  14182 openat(3, "usr/bin/[", O_WRONLY|O_CREAT|O_EXCL|O_NOCTTY|O_NONBLOCK|O_CLOEXEC, 0700) = -1 EACCES (Permission denied)
+  ...
+
+(cherry picked from commit 15d7b51724cc9775f03f2af4d3eec7f48f39f7de)
+---
+ units/systemd-importd.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/units/systemd-importd.service.in b/units/systemd-importd.service.in
+index 26759ea0fb..45e98fd320 100644
+--- a/units/systemd-importd.service.in
++++ b/units/systemd-importd.service.in
+@@ -12,7 +12,7 @@ Documentation=man:systemd-importd.service(8)
+ [Service]
+ ExecStart=@rootlibexecdir@/systemd-importd
+ BusName=org.freedesktop.import1
+-CapabilityBoundingSet=CAP_CHOWN CAP_FOWNER CAP_FSETID CAP_MKNOD CAP_SETFCAP CAP_SYS_ADMIN CAP_SETPCAP
++CapabilityBoundingSet=CAP_CHOWN CAP_FOWNER CAP_FSETID CAP_MKNOD CAP_SETFCAP CAP_SYS_ADMIN CAP_SETPCAP CAP_DAC_OVERRIDE
+ NoNewPrivileges=yes
+ WatchdogSec=1min
+ PrivateTmp=yes
diff --git a/0139-tmpfiles-there-s-no-systemd-forbid-user-logins.servi.patch b/0139-tmpfiles-there-s-no-systemd-forbid-user-logins.servi.patch
new file mode 100644
index 0000000..010f975
--- /dev/null
+++ b/0139-tmpfiles-there-s-no-systemd-forbid-user-logins.servi.patch
@@ -0,0 +1,24 @@
+From 7abbe742f656e171effea73821c38c29565bcab2 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Tue, 21 Apr 2015 17:26:56 +0200
+Subject: [PATCH] tmpfiles: there's no systemd-forbid-user-logins.service
+ service
+
+(cherry picked from commit 451d691ae110a600497348d9f6288bc84efb8642)
+---
+ tmpfiles.d/systemd-nologin.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tmpfiles.d/systemd-nologin.conf b/tmpfiles.d/systemd-nologin.conf
+index d61232b534..a30a8da604 100644
+--- a/tmpfiles.d/systemd-nologin.conf
++++ b/tmpfiles.d/systemd-nologin.conf
+@@ -5,7 +5,7 @@
+ #  the Free Software Foundation; either version 2.1 of the License, or
+ #  (at your option) any later version.
+ 
+-# See tmpfiles.d(5) and systemd-forbid-user-logins.service(5).
++# See tmpfiles.d(5), systemd-user-session.service(5) and pam_nologin(8).
+ # This file has special suffix so it is not run by mistake.
+ 
+ F! /run/nologin 0644 - - - "System is booting up. See pam_nologin(8)"
diff --git a/0140-kmod-setup-load-ip_tables-kmod-at-boot.patch b/0140-kmod-setup-load-ip_tables-kmod-at-boot.patch
new file mode 100644
index 0000000..05f7ca8
--- /dev/null
+++ b/0140-kmod-setup-load-ip_tables-kmod-at-boot.patch
@@ -0,0 +1,46 @@
+From 08a2ba2c6981ec9fef16639d1bed16a40406f0d0 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Wed, 22 Apr 2015 13:50:56 +0200
+Subject: [PATCH] kmod-setup: load ip_tables kmod at boot
+
+The module is currently no auto-loadable (and this is unlikely to change
+anytime soon, given it's API is via getsockopt/setsockopt). It is needed
+by networkd and nspawn currently.
+
+Users who really don't like the module to be loaded have the option to
+blacklist it still, or not compile it at all. But for all others this
+should make things work out-of-the-box.
+
+(cherry picked from commit 1d3087978a8ee23107cb64aa55ca97aefe9531e2)
+---
+ src/core/kmod-setup.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
+index c0a05b97aa..97f3b9b34a 100644
+--- a/src/core/kmod-setup.c
++++ b/src/core/kmod-setup.c
+@@ -63,16 +63,19 @@ int kmod_setup(void) {
+                 bool (*condition_fn)(void);
+         } kmod_table[] = {
+                 /* auto-loading on use doesn't work before udev is up */
+-                { "autofs4", "/sys/class/misc/autofs", true, NULL                 },
++                { "autofs4",   "/sys/class/misc/autofs",    true,  NULL                },
+ 
+                 /* early configure of ::1 on the loopback device */
+-                { "ipv6",    "/sys/module/ipv6",       true, NULL                 },
++                { "ipv6",      "/sys/module/ipv6",          true,  NULL                },
+ 
+                 /* this should never be a module */
+-                { "unix",    "/proc/net/unix",         true, NULL                 },
++                { "unix",      "/proc/net/unix",            true,  NULL                },
+ 
+                 /* IPC is needed before we bring up any other services */
+-                { "kdbus",   "/sys/fs/kdbus",          false, cmdline_check_kdbus },
++                { "kdbus",     "/sys/fs/kdbus",             false, cmdline_check_kdbus },
++
++                /* netfilter is needed by networkd, nspawn among others, and cannot be autoloaded */
++                { "ip_tables", "/proc/net/ip_tables_names", false, NULL                },
+         };
+         struct kmod_ctx *ctx = NULL;
+         unsigned int i;
diff --git a/0141-udev-Fix-ping-timeout-when-settle-timeout-is-0.patch b/0141-udev-Fix-ping-timeout-when-settle-timeout-is-0.patch
new file mode 100644
index 0000000..6436646
--- /dev/null
+++ b/0141-udev-Fix-ping-timeout-when-settle-timeout-is-0.patch
@@ -0,0 +1,29 @@
+From a8d917c7e49e3111aaf7bd80cd1b8731c4ea81ed Mon Sep 17 00:00:00 2001
+From: Nir Soffer <nirsof at gmail.com>
+Date: Sun, 19 Apr 2015 02:49:47 +0300
+Subject: [PATCH] udev: Fix ping timeout when settle timeout is 0
+
+When running udevadm settle --timeout=0, the ping always times out, and
+udevadm will return 0 without checking the queue state.
+
+(David: Use a reasonable timeout to still get the barrier provided by
+ ctrl-ping)
+
+(cherry picked from commit 7375b3c4871861f100860ea4c2848e66b60e6ca4)
+---
+ src/udev/udevadm-settle.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c
+index 40e3e28b1e..33597bc209 100644
+--- a/src/udev/udevadm-settle.c
++++ b/src/udev/udevadm-settle.c
+@@ -114,7 +114,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) {
+ 
+                 uctrl = udev_ctrl_new(udev);
+                 if (uctrl != NULL) {
+-                        if (udev_ctrl_send_ping(uctrl, timeout) < 0) {
++                        if (udev_ctrl_send_ping(uctrl, MAX(5U, timeout)) < 0) {
+                                 log_debug("no connection to daemon");
+                                 udev_ctrl_unref(uctrl);
+                                 return EXIT_SUCCESS;
diff --git a/0142-util-Fix-assertion-in-split-on-missing.patch b/0142-util-Fix-assertion-in-split-on-missing.patch
new file mode 100644
index 0000000..d429d27
--- /dev/null
+++ b/0142-util-Fix-assertion-in-split-on-missing.patch
@@ -0,0 +1,78 @@
+From e7a90c1117e4d37be191a6567b405d7908a30434 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Wed, 22 Apr 2015 23:09:43 +0100
+Subject: [PATCH] util: Fix assertion in split() on missing '
+
+When parsing a unit with a trailing slash after an escaped line break, like
+
+  ExecStart=/bin/echo 'foo \
+    bar'
+
+the split() function (through config_parse()) asserted and crashed pid 1:
+
+  Assertion 'current[*l + 1] == quotechars[0]' failed at ../src/shared/util.c:583, function split(). Aborting.
+
+Fix this by returning an error in this case ("trailing garbage").
+
+Add corresponding test case. Also fix the missing "unit" argument of
+config_parse_exec() in the comment.
+
+https://launchpad.net/bugs/1447243
+(cherry picked from commit 470dca63cd2b1579f45f72b6b9777494abeff105)
+---
+ src/shared/util.c         |  3 +--
+ src/test/test-unit-file.c | 15 +++++++++++++++
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/src/shared/util.c b/src/shared/util.c
+index 1e1bf944f2..649344d88f 100644
+--- a/src/shared/util.c
++++ b/src/shared/util.c
+@@ -571,13 +571,12 @@ const char* split(const char **state, size_t *l, const char *separator, bool quo
+                 char quotechars[2] = {*current, '\0'};
+ 
+                 *l = strcspn_escaped(current + 1, quotechars);
+-                if (current[*l + 1] == '\0' ||
++                if (current[*l + 1] == '\0' || current[*l + 1] != quotechars[0] ||
+                     (current[*l + 2] && !strchr(separator, current[*l + 2]))) {
+                         /* right quote missing or garbage at the end */
+                         *state = current;
+                         return NULL;
+                 }
+-                assert(current[*l + 1] == quotechars[0]);
+                 *state = current++ + *l + 2;
+         } else if (quoted) {
+                 *l = strcspn_escaped(current, separator);
+diff --git a/src/test/test-unit-file.c b/src/test/test-unit-file.c
+index e517f571d6..9f3e3a227e 100644
+--- a/src/test/test-unit-file.c
++++ b/src/test/test-unit-file.c
+@@ -92,6 +92,7 @@ static void check_execcommand(ExecCommand *c,
+ 
+ static void test_config_parse_exec(void) {
+         /* int config_parse_exec(
++                 const char *unit,
+                  const char *filename,
+                  unsigned line,
+                  const char *section,
+@@ -303,6 +304,20 @@ static void test_config_parse_exec(void) {
+         assert_se(r == 0);
+         assert_se(c1->command_next == NULL);
+ 
++        log_info("/* missing ending ' */");
++        r = config_parse_exec(NULL, "fake", 4, "section", 1,
++                              "LValue", 0, "/path 'foo",
++                              &c, NULL);
++        assert_se(r == 0);
++        assert_se(c1->command_next == NULL);
++
++        log_info("/* missing ending ' with trailing backslash */");
++        r = config_parse_exec(NULL, "fake", 4, "section", 1,
++                              "LValue", 0, "/path 'foo\\",
++                              &c, NULL);
++        assert_se(r == 0);
++        assert_se(c1->command_next == NULL);
++
+         exec_command_free_list(c);
+ }
+ 
diff --git a/0143-hwdb-add-HP-X1000-DPI-info.patch b/0143-hwdb-add-HP-X1000-DPI-info.patch
new file mode 100644
index 0000000..ce8c18d
--- /dev/null
+++ b/0143-hwdb-add-HP-X1000-DPI-info.patch
@@ -0,0 +1,32 @@
+From 327176ac36892d068e821a1c496ca0862024f02b Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Thu, 23 Apr 2015 10:44:30 +1000
+Subject: [PATCH] hwdb: add HP X1000 DPI info
+
+Device name is PixArt, but it's sold as a HP brand.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=90142
+(cherry picked from commit e8043cd5fe283ff3023f98c15a2f09328805efab)
+---
+ hwdb/70-mouse.hwdb | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/hwdb/70-mouse.hwdb b/hwdb/70-mouse.hwdb
+index 93ee4d9fa6..6f06e17091 100644
+--- a/hwdb/70-mouse.hwdb
++++ b/hwdb/70-mouse.hwdb
+@@ -125,6 +125,14 @@ mouse:usb:v0461p4d16:name:USB Optical Mouse:
+  MOUSE_DPI=500 at 125
+ 
+ ##########################################
++# HP
++##########################################
++
++# HP X1000
++mouse:usb:v093ap2510:name:PixArt USB Optical Mouse:
++ MOUSE_DPI=1000 at 125
++
++##########################################
+ # Lenovo
+ ##########################################
+ 
diff --git a/0144-units-set-KillMode-mixed-for-our-daemons-that-fork-w.patch b/0144-units-set-KillMode-mixed-for-our-daemons-that-fork-w.patch
new file mode 100644
index 0000000..b38d0ae
--- /dev/null
+++ b/0144-units-set-KillMode-mixed-for-our-daemons-that-fork-w.patch
@@ -0,0 +1,34 @@
+From 0e1b8518cc0409b268bdede1ae4b424c8544ed20 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Fri, 24 Apr 2015 16:12:28 +0200
+Subject: [PATCH] units: set KillMode=mixed for our daemons that fork worker
+ processes
+
+The daemons should really have the time to kill the workers first,
+before systemd does it, hence use KillMode=mixed for these daemons.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=90051
+(cherry picked from commit 658f26b828fdd7007cfe82d794f610525b21cb99)
+---
+ units/systemd-importd.service.in | 1 +
+ units/systemd-udevd.service.in   | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/units/systemd-importd.service.in b/units/systemd-importd.service.in
+index 45e98fd320..6359e5cdd9 100644
+--- a/units/systemd-importd.service.in
++++ b/units/systemd-importd.service.in
+@@ -18,3 +18,4 @@ WatchdogSec=1min
+ PrivateTmp=yes
+ ProtectSystem=full
+ ProtectHome=yes
++KillMode=mixed
+diff --git a/units/systemd-udevd.service.in b/units/systemd-udevd.service.in
+index a133044005..32f04d901a 100644
+--- a/units/systemd-udevd.service.in
++++ b/units/systemd-udevd.service.in
+@@ -22,3 +22,4 @@ Restart=always
+ RestartSec=0
+ ExecStart=@rootlibexecdir@/systemd-udevd
+ MountFlags=slave
++KillMode=mixed
diff --git a/0145-unit-don-t-add-automatic-dependencies-on-device-unit.patch b/0145-unit-don-t-add-automatic-dependencies-on-device-unit.patch
new file mode 100644
index 0000000..94dc88b
--- /dev/null
+++ b/0145-unit-don-t-add-automatic-dependencies-on-device-unit.patch
@@ -0,0 +1,38 @@
+From 10303903dc22ad1711df58556e7057ce59471b2e Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Fri, 24 Apr 2015 17:28:06 +0200
+Subject: [PATCH] unit: don't add automatic dependencies on device units if
+ they aren't supported
+
+http://lists.freedesktop.org/archives/systemd-devel/2015-April/031187.html
+(cherry picked from commit 47bc12e1ba35d38edda737dae232088d6d3ae688)
+---
+ src/core/unit.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/src/core/unit.c b/src/core/unit.c
+index 565455bd63..b9e1f13eaf 100644
+--- a/src/core/unit.c
++++ b/src/core/unit.c
+@@ -2830,14 +2830,18 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) {
+ 
+         assert(u);
+ 
+-        if (!what)
+-                return 0;
+-
+         /* Adds in links to the device node that this unit is based on */
++        if (isempty(what))
++                return 0;
+ 
+         if (!is_device_path(what))
+                 return 0;
+ 
++        /* When device units aren't supported (such as in a
++         * container), don't create dependencies on them. */
++        if (unit_vtable[UNIT_DEVICE]->supported && !unit_vtable[UNIT_DEVICE]->supported(u->manager))
++                return 0;
++
+         e = unit_name_from_path(what, ".device");
+         if (!e)
+                 return -ENOMEM;
diff --git a/0146-update-done-ignore-nanosecond-file-timestamp-compone.patch b/0146-update-done-ignore-nanosecond-file-timestamp-compone.patch
new file mode 100644
index 0000000..51115f9
--- /dev/null
+++ b/0146-update-done-ignore-nanosecond-file-timestamp-compone.patch
@@ -0,0 +1,35 @@
+From 6cd7b4cf78462c45c2d255a9fbee3fbb5fb015e5 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Mon, 27 Apr 2015 17:25:57 +0200
+Subject: [PATCH] update-done: ignore nanosecond file timestamp components,
+ they are not reliable
+
+https://bugs.freedesktop.org/show_bug.cgi?id=90192
+(cherry picked from commit 329c542585cd92cb905990e3bf59eda16fd88cfb)
+---
+ src/update-done/update-done.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/update-done/update-done.c b/src/update-done/update-done.c
+index 561963e5eb..cb5cd6f4ab 100644
+--- a/src/update-done/update-done.c
++++ b/src/update-done/update-done.c
+@@ -36,9 +36,15 @@ static int apply_timestamp(const char *path, struct timespec *ts) {
+         assert(ts);
+ 
+         if (stat(path, &st) >= 0) {
+-                /* Is the timestamp file already newer than the OS? If so, there's nothing to do. */
+-                if (st.st_mtim.tv_sec > ts->tv_sec ||
+-                    (st.st_mtim.tv_sec == ts->tv_sec && st.st_mtim.tv_nsec >= ts->tv_nsec))
++                /* Is the timestamp file already newer than the OS? If
++                 * so, there's nothing to do. We ignore the nanosecond
++                 * component of the timestamp, since some file systems
++                 * do not support any better accuracy than 1s and we
++                 * have no way to identify the accuracy
++                 * available. Most notably ext4 on small disks (where
++                 * 128 byte inodes are used) does not support better
++                 * accuracy than 1s. */
++                if (st.st_mtim.tv_sec > ts->tv_sec)
+                         return 0;
+ 
+                 /* It is older? Then let's update it */
diff --git a/0147-sd-daemon-simplify-sd_pid_notify_with_fds.patch b/0147-sd-daemon-simplify-sd_pid_notify_with_fds.patch
new file mode 100644
index 0000000..d497f4b
--- /dev/null
+++ b/0147-sd-daemon-simplify-sd_pid_notify_with_fds.patch
@@ -0,0 +1,116 @@
+From ed66f51061f2ce4d31838739c51f11276f97aaaf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Fri, 13 Mar 2015 21:22:05 -0500
+Subject: [PATCH] sd-daemon: simplify sd_pid_notify_with_fds
+
+Coverity was complaining that CMSG_NXTHDR is used without
+checking the return value. In this case it cannot fail, but
+it is a good excuse to simplify the function a bit.
+
+CID #1261726.
+
+(cherry picked from commit 64144440a5d2d94482f882b992fd2a4e0dca7a05)
+
+http://lists.freedesktop.org/archives/systemd-devel/2015-April/031348.html
+---
+ src/libsystemd/sd-daemon/sd-daemon.c | 61 ++++++++++++++++--------------------
+ 1 file changed, 27 insertions(+), 34 deletions(-)
+
+diff --git a/src/libsystemd/sd-daemon/sd-daemon.c b/src/libsystemd/sd-daemon/sd-daemon.c
+index 22a3a5347a..1474321c95 100644
+--- a/src/libsystemd/sd-daemon/sd-daemon.c
++++ b/src/libsystemd/sd-daemon/sd-daemon.c
+@@ -352,12 +352,10 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char
+                 .msg_iovlen = 1,
+                 .msg_name = &sockaddr,
+         };
+-        struct cmsghdr *control;
+         _cleanup_close_ int fd = -1;
+         struct cmsghdr *cmsg = NULL;
+         const char *e;
+-        size_t controllen_without_ucred = 0;
+-        bool try_without_ucred = false;
++        bool have_pid;
+         int r;
+ 
+         if (!state) {
+@@ -396,42 +394,37 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char
+         if (msghdr.msg_namelen > sizeof(struct sockaddr_un))
+                 msghdr.msg_namelen = sizeof(struct sockaddr_un);
+ 
+-        control = alloca(CMSG_SPACE(sizeof(struct ucred)) + CMSG_SPACE(sizeof(int) * n_fds));
++        have_pid = pid != 0 && pid != getpid();
+ 
+-        if (n_fds > 0) {
+-                msghdr.msg_control = control;
+-                msghdr.msg_controllen = CMSG_LEN(sizeof(int) * n_fds);
++        if (n_fds > 0 || have_pid) {
++                msghdr.msg_controllen = CMSG_SPACE(sizeof(int) * n_fds) +
++                                        CMSG_SPACE(sizeof(struct ucred) * have_pid);
++                msghdr.msg_control = alloca(msghdr.msg_controllen);
+ 
+                 cmsg = CMSG_FIRSTHDR(&msghdr);
+-                cmsg->cmsg_level = SOL_SOCKET;
+-                cmsg->cmsg_type = SCM_RIGHTS;
+-                cmsg->cmsg_len = CMSG_LEN(sizeof(int) * n_fds);
++                if (n_fds > 0) {
++                        cmsg->cmsg_level = SOL_SOCKET;
++                        cmsg->cmsg_type = SCM_RIGHTS;
++                        cmsg->cmsg_len = CMSG_LEN(sizeof(int) * n_fds);
+ 
+-                memcpy(CMSG_DATA(cmsg), fds, sizeof(int) * n_fds);
+-        }
+-
+-        if (pid != 0 && pid != getpid()) {
+-                struct ucred *ucred;
+-
+-                try_without_ucred = true;
+-                controllen_without_ucred = msghdr.msg_controllen;
++                        memcpy(CMSG_DATA(cmsg), fds, sizeof(int) * n_fds);
+ 
+-                msghdr.msg_control = control;
+-                msghdr.msg_controllen += CMSG_LEN(sizeof(struct ucred));
++                        if (have_pid)
++                                assert_se(cmsg = CMSG_NXTHDR(&msghdr, cmsg));
++                }
+ 
+-                if (cmsg)
+-                        cmsg = CMSG_NXTHDR(&msghdr, cmsg);
+-                else
+-                        cmsg = CMSG_FIRSTHDR(&msghdr);
++                if (have_pid) {
++                        struct ucred *ucred;
+ 
+-                cmsg->cmsg_level = SOL_SOCKET;
+-                cmsg->cmsg_type = SCM_CREDENTIALS;
+-                cmsg->cmsg_len = CMSG_LEN(sizeof(struct ucred));
++                        cmsg->cmsg_level = SOL_SOCKET;
++                        cmsg->cmsg_type = SCM_CREDENTIALS;
++                        cmsg->cmsg_len = CMSG_LEN(sizeof(struct ucred));
+ 
+-                ucred = (struct ucred*) CMSG_DATA(cmsg);
+-                ucred->pid = pid;
+-                ucred->uid = getuid();
+-                ucred->gid = getgid();
++                        ucred = (struct ucred*) CMSG_DATA(cmsg);
++                        ucred->pid = pid;
++                        ucred->uid = getuid();
++                        ucred->gid = getgid();
++                }
+         }
+ 
+         /* First try with fake ucred data, as requested */
+@@ -441,10 +434,10 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char
+         }
+ 
+         /* If that failed, try with our own ucred instead */
+-        if (try_without_ucred) {
+-                if (controllen_without_ucred <= 0)
++        if (have_pid) {
++                msghdr.msg_controllen -= CMSG_SPACE(sizeof(struct ucred));
++                if (msghdr.msg_controllen == 0)
+                         msghdr.msg_control = NULL;
+-                msghdr.msg_controllen = controllen_without_ucred;
+ 
+                 if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) >= 0) {
+                         r = 1;
diff --git a/systemd.spec b/systemd.spec
index 2ade0d0..0042185 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -16,7 +16,7 @@
 Name:           systemd
 Url:            http://www.freedesktop.org/wiki/Software/systemd
 Version:        219
-Release:        12%{?gitcommit:.git%{gitcommit}}%{?dist}
+Release:        13%{?gitcommit:.git%{gitcommit}}%{?dist}
 # For a breakdown of the licensing, see README
 License:        LGPLv2+ and MIT and GPLv2+
 Summary:        A System and Service Manager
@@ -153,6 +153,41 @@ Patch0109:      0109-timedated-fix-enable-disable-reversal.patch
 Patch0110:      0110-core-make-SELinux-enable-disable-check-symmetric.patch
 Patch0111:      0111-shared-add-path_compare-an-ordering-path-comparison.patch
 Patch0112:      0112-core-namespace-fix-path-sorting.patch
+Patch0113:      0113-console-getty.service-don-t-start-when-dev-console-i.patch
+Patch0114:      0114-resolved-Do-not-add-.busname-dependencies-when-compi.patch
+Patch0115:      0115-man-add-journal-remote.conf-5.patch
+Patch0116:      0116-hwdb-Update-database-of-Bluetooth-company-identifier.patch
+Patch0117:      0117-mount-don-t-run-quotaon-only-for-network-filesystems.patch
+Patch0118:      0118-mount-fix-up-wording-in-the-comment.patch
+Patch0119:      0119-udev-net_id-fix-copy-paste-error.patch
+Patch0120:      0120-man-don-t-mention-journalctl-dev-sda.patch
+Patch0121:      0121-units-move-After-systemd-hwdb-update.service-depende.patch
+Patch0122:      0122-units-explicitly-order-systemd-user-sessions.service.patch
+Patch0123:      0123-zsh-completion-update-loginctl.patch
+Patch0124:      0124-zsh-completion-add-missing-M-completion-for-journalc.patch
+Patch0125:      0125-zsh-completion-update-hostnamectl.patch
+Patch0126:      0126-shell-completion-systemctl-switch-root-verb.patch
+Patch0127:      0127-core-automount-beef-up-error-message.patch
+Patch0128:      0128-man-remove-fs-from-rootfsflags.patch
+Patch0129:      0129-shared-fix-memleak.patch
+Patch0130:      0130-udev-restore-udevadm-settle-timeout.patch
+Patch0131:      0131-hwdb-add-Samsung-ATIV-Book-6-8.patch
+Patch0132:      0132-udevd-fix-synchronization-with-settle-when-handling-.patch
+Patch0133:      0133-python-systemd-fix-is_socket_inet-to-cope-with-ports.patch
+Patch0134:      0134-man-fix-examples-indentation-in-tmpfiles.d-5.patch
+Patch0135:      0135-systemctl-avoid-bumping-NOFILE-rlimit-unless-needed.patch
+Patch0136:      0136-exit-status-Fix-NOTINSSTALLED-typo.patch
+Patch0137:      0137-udev-settle-should-return-immediately-when-timeout-i.patch
+Patch0138:      0138-importd-add-CAP_DAC_OVERRIDE-capability.patch
+Patch0139:      0139-tmpfiles-there-s-no-systemd-forbid-user-logins.servi.patch
+Patch0140:      0140-kmod-setup-load-ip_tables-kmod-at-boot.patch
+Patch0141:      0141-udev-Fix-ping-timeout-when-settle-timeout-is-0.patch
+Patch0142:      0142-util-Fix-assertion-in-split-on-missing.patch
+Patch0143:      0143-hwdb-add-HP-X1000-DPI-info.patch
+Patch0144:      0144-units-set-KillMode-mixed-for-our-daemons-that-fork-w.patch
+Patch0145:      0145-unit-don-t-add-automatic-dependencies-on-device-unit.patch
+Patch0146:      0146-update-done-ignore-nanosecond-file-timestamp-compone.patch
+Patch0147:      0147-sd-daemon-simplify-sd_pid_notify_with_fds.patch
 
 
 # kernel-install patch for grubby, drop if grubby is obsolete
@@ -991,6 +1026,10 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd
 /usr/lib/firewalld/services/*
 
 %changelog
+* Wed Apr 29 2015 Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl> - 219-13
+- Patches for some outstanding annoyances
+- Small keyboard hwdb updates
+
 * Wed Apr  8 2015 Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl> - 219-12
 - Tighten requirements between subpackages (#1207381).
 
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/systemd.git/commit/?h=f22&id=0453073a30b97126618ea2152de2613c360378ef


More information about the scm-commits mailing list