unblock: systemd/215-6

Martin Pitt mpitt at debian.org
Tue Nov 18 05:41:37 GMT 2014


Package: release.debian.org
Severity: normal
User: release.debian.org at packages.debian.org
Usertags: unblock

Since the current 215-5 I had a few test suite improvements and bug
fixes stashed in git. With the recent CTTE decision #746578 I think
it's time to do an upload to unstable now and let that into Jessie.

Note that I did *not* upload -6 to unstable yet, I'd like to get the
release team's pre-approval to avoid reverting changes and messing up
the package history.

I attach the full debdiff between 215-5 and current git (which is to
become 215-6, modulo the dch -r changes), but I think it's easier for
you to review the individual changes since the debian/215-5 tag on
http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/log/

Annotated changelog:

|  [ Martin Pitt ]
|  * Cherry-pick upstream patch to fix udev crash in link_config_get().

Obvious bug fix, no crashes since then.

|  * Cherry-pick upstream patch to fix tests in limited schroot environments.
|  * Add d/p/Add-env-variable-for-machine-ID-path.patch: Allow specifying an
|    alternate /etc/machine-id location. This is necessary for running tests
|    as long as it isn't in our base images (see Debian #745876)
|  * Run tests during package build. For the first round don't make them fatal
|    for now (that will happen once we see results from all the architectures).

This doesn't affect runtime, but I'd like to see how the tests perform
on all our architectures. IMHO fairly regression proof; Ubuntu has had
these patches for ages already.

|  * Drop our Check-for-kmod-binary.patch as the upstream patch
|    units-conditionalize-static-device-node-logic-on-CAP.patch supersedes it.
|  * Drop Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch, as
|    our util-linux is now recent enough. Bump dependency to >= 2.21.
|  * Replace our Debian hwdb.bin location patch with what got committed
|    upstream. Run hwdb update with the new --usr option to keep current
|    behaviour.

Patch cleanup. In particular the latter is important as our custom
Debian patch tends to break every now and then, so I finally got a
proper solution upstream now.

|  * Adjust timedated and hostnamed autopkgtests to current upstream version.

No-op on Debian as long ci.debian.net only runs in schroot, but for
anyone running this in LXC or systemd this fixes the tests.

|  * debian/README.Debian: Document how to debug boot or shutdown problems with
|    the debug shell. (Closes: #766039)

We really want this in Jessie for debugging aid!

|  * Skip-99-systemd.rules-when-not-running-systemd-as-in.patch: Call path_id
|    under all init systems, to get consistent ID_PATH attributes. This is
|    required so that tools like systemd-rfkill can be used with SysVinit or
|    upstart scripts, too. (LP: #1387282)

Tested in Ubuntu for a few weeks now without regressions. This is a
regression since wheezy for non-systemd installations.

|  * Switch libpam-systemd dependencies to prefer systemd-shim over
|    systemd-sysv, to implement the CTTE decision #746578. This is a no-op on
|    systems which already have systemd-sysv installed, but will prevent
|    installing that on upgrades. (Closes: #769747)
|  * Remove Tollef from Uploaders: as per his request. Thanks Tollef for all
|    you work!

Self-explanatory.

|  [ Didier Roche ]
|  * debian/ifup at .service: add a ConditionPath on /run/network, to avoid
|    failing the unit if /etc/init.d/networking is disabled. (Closes: #769528)

Trivial bug fix.

If this looks fine to you, I'll do the -6 upload to unstable ASAP.

Thanks for considering,

Martin

unblock systemd/215-6

-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
-------------- next part --------------
diff --git a/debian/README.Debian b/debian/README.Debian
index 9d7c960..9a00c09 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -20,3 +20,31 @@ install -d -g systemd-journal /var/log/journal
 setfacl -R -nm g:adm:rx,d:g:adm:rx /var/log/journal
 
  -- Tollef Fog Heen <tfheen at debian.org>, Wed, 12 Oct 2011 08:43:50 +0200
+
+Debugging boot/shutdown problems
+================================
+
+The "debug-shell" service starts a root shell on VT 9 which is available very
+early during boot and very late during shutdown. You can temporarily enable
+this when booting the system does not get sufficiently far to get a desktop or
+even the text console logins (getty), or when shutdown hangs eternally.
+
+For boot problems the recommended way is to append "systemd.debug-shell" to the
+kernel command line in the bootloader.
+For shutdown problems, run "systemctl start debug-shell" as root, then shut
+down.
+
+WARNING: Please avoid "systemctl enable debug-shell" as this will start the
+debug shell permanently which is a SECURITY HOLE as it allows unauthenticated
+and unrestricted root access to your computer if you forget to disable it!
+Please only enable it if you cannot pass "systemd.debug-shell" to the boot
+loader for some reason, and then immediately run "systemctl disable debug-shell"
+after booting.
+
+Once the boot/shutdown problem happened, switch to VT9 (Ctrl+Alt+F9). There you
+can use the usual systemctl or journalctl commands, or any other Linux shell
+command to list or kill processes. For example, run "systemctl list-jobs" to
+see what's currently being run, or "systemctl" to find units which are not in
+the expected state (e. g. "failed" for boot or still "active" during shutdown),
+and then get more detailled information with "systemctl status -l foo.service"
+to get a service "foo"'s status and recent logging.
diff --git a/debian/changelog b/debian/changelog
index b55777b..973c852 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,40 @@
+systemd (215-6) UNRELEASED; urgency=medium
+
+  [ Martin Pitt ]
+  * Cherry-pick upstream patch to fix udev crash in link_config_get().
+  * Cherry-pick upstream patch to fix tests in limited schroot environments.
+  * Add d/p/Add-env-variable-for-machine-ID-path.patch: Allow specifying an
+    alternate /etc/machine-id location. This is necessary for running tests
+    as long as it isn't in our base images (see Debian #745876)
+  * Run tests during package build. For the first round don't make them fatal
+    for now (that will happen once we see results from all the architectures).
+  * Drop our Check-for-kmod-binary.patch as the upstream patch
+    units-conditionalize-static-device-node-logic-on-CAP.patch supersedes it.
+  * Drop Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch, as
+    our util-linux is now recent enough. Bump dependency to >= 2.21.
+  * Adjust timedated and hostnamed autopkgtests to current upstream version.
+  * Replace our Debian hwdb.bin location patch with what got committed
+    upstream. Run hwdb update with the new --usr option to keep current
+    behaviour.
+  * debian/README.Debian: Document how to debug boot or shutdown problems with
+    the debug shell. (Closes: #766039)
+  * Skip-99-systemd.rules-when-not-running-systemd-as-in.patch: Call path_id
+    under all init systems, to get consistent ID_PATH attributes. This is
+    required so that tools like systemd-rfkill can be used with SysVinit or
+    upstart scripts, too. (LP: #1387282)
+  * Switch libpam-systemd dependencies to prefer systemd-shim over
+    systemd-sysv, to implement the CTTE decision #746578. This is a no-op on
+    systems which already have systemd-sysv installed, but will prevent
+    installing that on upgrades. (Closes: #769747)
+  * Remove Tollef from Uploaders: as per his request. Thanks Tollef for all
+    you work!
+
+  [ Didier Roche ]
+  * debian/ifup at .service: add a ConditionPath on /run/network, to avoid
+    failing the unit if /etc/init.d/networking is disabled. (Closes: #769528)
+
+ -- Martin Pitt <mpitt at debian.org>  Sun, 12 Oct 2014 17:29:00 +0200
+
 systemd (215-5) unstable; urgency=medium
 
   [ Martin Pitt ]
diff --git a/debian/control b/debian/control
index f27beb9..146577b 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: systemd
 Section: admin
 Priority: optional
 Maintainer: Debian systemd Maintainers <pkg-systemd-maintainers at lists.alioth.debian.org>
-Uploaders: Tollef Fog Heen <tfheen at debian.org>, Michael Biebl <biebl at debian.org>, Marco d'Itri <md at linux.it>, Michael Stapelberg <stapelberg at debian.org>, Sjoerd Simons <sjoerd at debian.org>
+Uploaders: Michael Biebl <biebl at debian.org>, Marco d'Itri <md at linux.it>, Michael Stapelberg <stapelberg at debian.org>, Sjoerd Simons <sjoerd at debian.org>
 Standards-Version: 3.9.5
 Vcs-Git: git://anonscm.debian.org/pkg-systemd/systemd.git
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-systemd/systemd.git;a=summary
@@ -52,6 +52,7 @@ Depends: ${shlibs:Depends},
          ${misc:Depends},
          libsystemd0 (= ${binary:Version}),
          util-linux (>= 2.19.1-2),
+         mount (>= 2.21),
          initscripts (>= 2.88dsf-53.2),
          sysv-rc,
          udev,
@@ -111,7 +112,7 @@ Depends: ${shlibs:Depends},
          systemd (= ${binary:Version}),
          libpam-runtime (>= 1.0.1-6),
          dbus,
-         systemd-sysv | systemd-shim (>= 8-2)
+         systemd-shim (>= 8-2) | systemd-sysv
 Description: system and service manager - PAM module
  systemd is a replacement for sysvinit.  It is dependency-based and
  able to read the LSB init script headers in addition to parsing rcN.d
diff --git a/debian/ifup at .service b/debian/ifup at .service
index c7b2736..7198314 100644
--- a/debian/ifup at .service
+++ b/debian/ifup at .service
@@ -3,6 +3,7 @@ Description=ifup for %I
 After=local-fs.target networking.service
 Before=network.target
 BindsTo=sys-subsystem-net-devices-%i.device
+ConditionPathIsDirectory=/run/network
 DefaultDependencies=no
 
 [Service]
diff --git a/debian/patches/Add-env-variable-for-machine-ID-path.patch b/debian/patches/Add-env-variable-for-machine-ID-path.patch
new file mode 100644
index 0000000..8df4beb
--- /dev/null
+++ b/debian/patches/Add-env-variable-for-machine-ID-path.patch
@@ -0,0 +1,39 @@
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Sat, 26 Apr 2014 23:15:34 +0200
+Subject: Add env variable for machine ID path
+
+During package build, in minimal chroots, or other systems which do not already
+have an /etc/machine-id we get six test failures. Introduce a
+$SYSTEMD_MACHINE_ID_PATH environment variable which can specify a location
+other than /etc/machine-id, so that the unit tests are independent from the
+environment.
+
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=62344
+---
+ src/libsystemd/sd-id128/sd-id128.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/libsystemd/sd-id128/sd-id128.c b/src/libsystemd/sd-id128/sd-id128.c
+index a1e44e6..1ee1e21 100644
+--- a/src/libsystemd/sd-id128/sd-id128.c
++++ b/src/libsystemd/sd-id128/sd-id128.c
+@@ -111,6 +111,7 @@ _public_ int sd_id128_get_machine(sd_id128_t *ret) {
+         ssize_t k;
+         unsigned j;
+         sd_id128_t t;
++        const char *machine_id_path;
+ 
+         assert_return(ret, -EINVAL);
+ 
+@@ -119,7 +120,10 @@ _public_ int sd_id128_get_machine(sd_id128_t *ret) {
+                 return 0;
+         }
+ 
+-        fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
++        machine_id_path = getenv("SYSTEMD_MACHINE_ID_PATH");
++        if (machine_id_path == NULL)
++                machine_id_path = "/etc/machine-id";
++        fd = open(machine_id_path, O_RDONLY|O_CLOEXEC|O_NOCTTY);
+         if (fd < 0)
+                 return -errno;
+ 
diff --git a/debian/patches/Add-targets-for-compatibility-with-Debian-insserv-sy.patch b/debian/patches/Add-targets-for-compatibility-with-Debian-insserv-sy.patch
index 240f44e..9c182ab 100644
--- a/debian/patches/Add-targets-for-compatibility-with-Debian-insserv-sy.patch
+++ b/debian/patches/Add-targets-for-compatibility-with-Debian-insserv-sy.patch
@@ -11,7 +11,7 @@ Subject: Add targets for compatibility with Debian insserv system facilities
  create mode 100644 units/x-display-manager.target
 
 diff --git a/Makefile.am b/Makefile.am
-index 5658f18..e50224b 100644
+index ce93c8c..6f4df22 100644
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -539,6 +539,12 @@ nodist_systemunit_DATA = \
diff --git a/debian/patches/Check-for-kmod-binary.patch b/debian/patches/Check-for-kmod-binary.patch
deleted file mode 100644
index c91ea54..0000000
--- a/debian/patches/Check-for-kmod-binary.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Michael Biebl <biebl at debian.org>
-Date: Sun, 27 Apr 2014 15:41:26 +0200
-Subject: Check for kmod binary
-
-Creating the list of dead device nodes requires kmod. Inside containers
-this is not strictly required so we don't want a hard dependency on the
-kmod package. If the binary does not exist kmod-static-nodes.service
-will fail, so add a condition to check if the binary is available.
----
- units/kmod-static-nodes.service.in | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/units/kmod-static-nodes.service.in b/units/kmod-static-nodes.service.in
-index 0934a87..076e316 100644
---- a/units/kmod-static-nodes.service.in
-+++ b/units/kmod-static-nodes.service.in
-@@ -11,6 +11,7 @@ DefaultDependencies=no
- Before=sysinit.target systemd-tmpfiles-setup-dev.service
- ConditionCapability=CAP_SYS_MODULE
- ConditionPathExists=/lib/modules/%v/modules.devname
-+ConditionFileIsExecutable=@KMOD@
- 
- [Service]
- Type=oneshot
diff --git a/debian/patches/Fix-paths-in-man-pages.patch b/debian/patches/Fix-paths-in-man-pages.patch
index 9480b52..1c092bc 100644
--- a/debian/patches/Fix-paths-in-man-pages.patch
+++ b/debian/patches/Fix-paths-in-man-pages.patch
@@ -1086,7 +1086,7 @@ index ee75d42..fd79807 100644
  ...</programlisting>
                  </para>
 diff --git a/man/udev.xml b/man/udev.xml
-index 4e5f8f0..3ba03a2 100644
+index 68c3586..9bcc926 100644
 --- a/man/udev.xml
 +++ b/man/udev.xml
 @@ -56,17 +56,17 @@
@@ -1140,12 +1140,12 @@ index 4e5f8f0..3ba03a2 100644
        disables the hwdb file entirely. hwdb files must have the extension
        <filename>.hwdb</filename>; other extensions are ignored.</para>
  
-@@ -758,7 +758,7 @@
- 
+@@ -759,7 +759,7 @@
        <para>The content of all hwdb files is read by
        <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry>
--      and compiled to a binary database located at <filename>/etc/udev/hwdb.bin</filename>.
-+      and compiled to a binary database located at <filename>/lib/udev/hwdb.bin</filename>.
+       and compiled to a binary database located at <filename>/etc/udev/hwdb.bin</filename>,
+-      or alternatively <filename>/usr/lib/udev/hwdb.bin</filename> if you want ship the compiled
++      or alternatively <filename>/lib/udev/hwdb.bin</filename> if you want ship the compiled
+       database in an immutable image.
        During runtime only the binary database is used.</para>
    </refsect1>
- 
diff --git a/debian/patches/Make-net.ifnames-opt-in-instead-of-opt-out.patch b/debian/patches/Make-net.ifnames-opt-in-instead-of-opt-out.patch
index bcd3559..8e2f6dc 100644
--- a/debian/patches/Make-net.ifnames-opt-in-instead-of-opt-out.patch
+++ b/debian/patches/Make-net.ifnames-opt-in-instead-of-opt-out.patch
@@ -10,7 +10,7 @@ http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceName
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
-index 5a45c53..f93998a 100644
+index 3cc0471..2778b74 100644
 --- a/src/udev/net/link-config.c
 +++ b/src/udev/net/link-config.c
 @@ -200,13 +200,13 @@ static bool enable_name_policy(void) {
diff --git a/debian/patches/Skip-99-systemd.rules-when-not-running-systemd-as-in.patch b/debian/patches/Skip-99-systemd.rules-when-not-running-systemd-as-in.patch
index a04e5ea..4f8b8ab 100644
--- a/debian/patches/Skip-99-systemd.rules-when-not-running-systemd-as-in.patch
+++ b/debian/patches/Skip-99-systemd.rules-when-not-running-systemd-as-in.patch
@@ -2,19 +2,43 @@ From: Tollef Fog Heen <tfheen at err.no>
 Date: Mon, 28 Oct 2013 14:31:37 +0100
 Subject: Skip 99-systemd.rules when not running systemd as init.
 
+Keep the calling of path_id though, to get consistent ID_PATH attributes under
+all init systems. This is required so that tools like systemd-rfkill can be
+used with SysVinit or upstart scripts, too.
 ---
- rules/99-systemd.rules.in | 1 +
- 1 file changed, 1 insertion(+)
+ rules/99-systemd.rules.in | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
 
 diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in
-index c3ef81b..df83a38 100644
+index c3ef81b..4366969 100644
 --- a/rules/99-systemd.rules.in
 +++ b/rules/99-systemd.rules.in
-@@ -6,6 +6,7 @@
- #  (at your option) any later version.
+@@ -7,6 +7,12 @@
  
  ACTION=="remove", GOTO="systemd_end"
-+TEST!="/run/systemd/system", GOTO="systemd_end"
  
++# short-circuit most rules when not running under systemd; just keep calling
++# path_id so that we can use the hardware status helpers under other init
++# systems
++SUBSYSTEM=="backlight|leds|rfkill", IMPORT{builtin}="path_id"
++TEST!="/run/systemd/system", GOTO="systemd_end"
++
  SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", TAG+="systemd"
  
+ KERNEL=="vport*", TAG+="systemd"
+@@ -57,12 +63,12 @@ ACTION=="add", SUBSYSTEM=="net", KERNEL!="lo", RUN+="@rootlibexecdir@/systemd-sy
+ # Pull in backlight save/restore for all backlight devices and
+ # keyboard backlights
+ 
+-SUBSYSTEM=="backlight", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight at backlight:$name.service"
+-SUBSYSTEM=="leds", KERNEL=="*kbd_backlight", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight at leds:$name.service"
++SUBSYSTEM=="backlight", TAG+="systemd", ENV{SYSTEMD_WANTS}+="systemd-backlight at backlight:$name.service"
++SUBSYSTEM=="leds", KERNEL=="*kbd_backlight", TAG+="systemd", ENV{SYSTEMD_WANTS}+="systemd-backlight at leds:$name.service"
+ 
+ # Pull in rfkill save/restore for all rfkill devices
+ 
+-SUBSYSTEM=="rfkill", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-rfkill@$name.service"
++SUBSYSTEM=="rfkill", TAG+="systemd", ENV{SYSTEMD_WANTS}+="systemd-rfkill@$name.service"
+ 
+ # Asynchronously mount file systems implemented by these modules as
+ # soon as they are loaded.
diff --git a/debian/patches/Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch b/debian/patches/Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch
deleted file mode 100644
index 4599183..0000000
--- a/debian/patches/Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Michael Biebl <biebl at debian.org>
-Date: Sat, 19 Jan 2013 15:33:44 +0100
-Subject: Use comment=systemd.* syntax in systemd.mount man page
-
-The mount/util-linux version in wheezy is not recent enough to support
-the new x-systemd* syntax. It requires util-linux 2.21 or newer with the
---enable-new-mount option enabled.
-
-Once we have such a version in Debian, this commit should be reverted
-again.
----
- man/systemd.mount.xml | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml
-index f06c18e..bea0bea 100644
---- a/man/systemd.mount.xml
-+++ b/man/systemd.mount.xml
-@@ -153,7 +153,7 @@
-                 <variablelist class='fstab-options'>
- 
-                   <varlistentry>
--                    <term><option>x-systemd.automount</option></term>
-+                    <term><option>comment=systemd.automount</option></term>
- 
-                     <listitem><para>An automount unit will be created
-                     for the file system. See
-@@ -162,7 +162,7 @@
-                   </varlistentry>
- 
-                   <varlistentry>
--                    <term><option>x-systemd.device-timeout=</option></term>
-+                    <term><option>comment=systemd.device-timeout=</option></term>
- 
-                     <listitem><para>Configure how long systemd should
-                     wait for a device to show up before giving up on
diff --git a/debian/patches/insserv.conf-generator.patch b/debian/patches/insserv.conf-generator.patch
index 2fba1ad..14a5e41 100644
--- a/debian/patches/insserv.conf-generator.patch
+++ b/debian/patches/insserv.conf-generator.patch
@@ -23,7 +23,7 @@ It has the following modifications:
  create mode 100644 src/insserv-generator/insserv-generator.c
 
 diff --git a/Makefile.am b/Makefile.am
-index 713df57..5658f18 100644
+index 3e23d8b..ce93c8c 100644
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -383,6 +383,7 @@ rootlibexec_PROGRAMS = \
diff --git a/debian/patches/series b/debian/patches/series
index 026d160..39ef42d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -105,6 +105,10 @@ parse_boolean-require-exact-matches.patch
 sd-journal-properly-convert-object-size-on-big-endia.patch
 always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch
 timesyncd-when-we-don-t-know-anything-about-the-netw.patch
+udev-link-config-fix-crash-due-to-missing-hwaddr.patch
+tests-fix-some-tests-to-pass-in-koji.patch
+Make-emergency.service-conflict-with-rescue.service.patch
+udev-hwdb-Support-shipping-pre-compiled-database-in-.patch
 
 ## Debian specific patches:
 Add-back-support-for-Debian-specific-config-files.patch
@@ -124,10 +128,8 @@ Bring-tmpfiles.d-tmp.conf-in-line-with-Debian-defaul.patch
 Don-t-mount-tmp-as-tmpfs-by-default.patch
 Fix-up-tmpfiles.d-permissions-properly.patch
 Revert-udev-network-device-renaming-immediately-give.patch
-udev-hwdb-Store-binary-database-in-libdir-not-in-etc.patch
 Make-net.ifnames-opt-in-instead-of-opt-out.patch
 Use-different-default-paths-for-various-binaries.patch
-Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch
 Avoid-reloading-services-when-shutting-down.patch
 Avoid-reload-and-re-start-requests-during-early-boot.patch
 Order-remote-fs.target-after-local-fs.target.patch
@@ -138,7 +140,6 @@ Set-default-polling-interval-on-removable-devices-as.patch
 insserv.conf-generator.patch
 Add-targets-for-compatibility-with-Debian-insserv-sy.patch
 more-cd-aliases.patch
-Check-for-kmod-binary.patch
 Adjust-systemd-user-pam-config-file-for-Debian.patch
 Add-run-initctl-support-to-SysV-compat-tools.patch
 Add-support-for-TuxOnIce-hibernation.patch
@@ -146,7 +147,6 @@ Add-support-for-rcS.d-init-scripts-to-the-sysv-gener.patch
 Do-not-generate-systemd-units-from-sysv-init-scripts.patch
 Do-not-order-rcS.d-services-after-local-fs.target-if.patch
 Map-rcS.d-init-script-dependencies-to-their-systemd-.patch
-Make-emergency.service-conflict-with-rescue.service.patch
 Stop-syslog.socket-when-entering-emergency-mode.patch
 Make-run-lock-tmpfs-an-API-fs.patch
 Include-additional-directories-in-ProtectSystem.patch
@@ -155,3 +155,4 @@ buildsys-Don-t-default-to-gold-as-the-linker.patch
 sd-bus-Accept-no-sender-as-the-destination-field.patch
 login-don-t-overmount-run-user-UID-on-upgrades.patch
 udev-re-enable-mount-propagation-for-udevd.patch
+Add-env-variable-for-machine-ID-path.patch
diff --git a/debian/patches/tests-fix-some-tests-to-pass-in-koji.patch b/debian/patches/tests-fix-some-tests-to-pass-in-koji.patch
new file mode 100644
index 0000000..f0d66b3
--- /dev/null
+++ b/debian/patches/tests-fix-some-tests-to-pass-in-koji.patch
@@ -0,0 +1,83 @@
+From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= <zbyszek at in.waw.pl>
+Date: Sun, 12 Oct 2014 16:05:49 -0400
+Subject: tests: fix some tests to pass in koji
+
+FAIL: test-engine
+=================
+Cannot find cgroup mount point: No such file or directory
+Assertion 'r >= 0' failed at ../src/test/test-engine.c:46, function main(). Aborting.
+
+FAIL: test-sched-prio
+=====================
+Cannot find cgroup mount point: No such file or directory
+Assertion 'r >= 0' failed at ../src/test/test-sched-prio.c:42, function main(). Aborting.
+
+FAIL: test-bus-cleanup
+======================
+Assertion 'sd_bus_open_system(&bus) >= 0' failed at ../src/libsystemd/sd-bus/test-bus-cleanup.c:40, function test_bus_open(). Aborting.
+after new: refcount 1
+---
+ src/libsystemd/sd-bus/test-bus-cleanup.c | 22 +++++++++++++++++++---
+ src/test/test-sched-prio.c               |  2 +-
+ 2 files changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/src/libsystemd/sd-bus/test-bus-cleanup.c b/src/libsystemd/sd-bus/test-bus-cleanup.c
+index e36a69f..f586880 100644
+--- a/src/libsystemd/sd-bus/test-bus-cleanup.c
++++ b/src/libsystemd/sd-bus/test-bus-cleanup.c
+@@ -34,11 +34,18 @@ static void test_bus_new(void) {
+         printf("after new: refcount %u\n", REFCNT_GET(bus->n_ref));
+ }
+ 
+-static void test_bus_open(void) {
++static int test_bus_open(void) {
+         _cleanup_bus_unref_ sd_bus *bus = NULL;
++        int r;
+ 
+-        assert_se(sd_bus_open_system(&bus) >= 0);
++        r = sd_bus_open_system(&bus);
++        if (r == -ECONNREFUSED || r == -ENOENT)
++                return r;
++
++        assert_se(r >= 0);
+         printf("after open: refcount %u\n", REFCNT_GET(bus->n_ref));
++
++        return 0;
+ }
+ 
+ static void test_bus_new_method_call(void) {
+@@ -70,11 +77,20 @@ static void test_bus_new_signal(void) {
+ }
+ 
+ int main(int argc, char **argv) {
++        int r;
++
+         log_parse_environment();
+         log_open();
+ 
+         test_bus_new();
+-        test_bus_open();
++        r = test_bus_open();
++        if (r < 0) {
++                log_info("Failed to connect to bus, skipping tests.");
++                return EXIT_TEST_SKIP;
++        }
++
+         test_bus_new_method_call();
+         test_bus_new_signal();
++
++        return EXIT_SUCCESS;
+ }
+diff --git a/src/test/test-sched-prio.c b/src/test/test-sched-prio.c
+index e984ee4..6c90561 100644
+--- a/src/test/test-sched-prio.c
++++ b/src/test/test-sched-prio.c
+@@ -36,7 +36,7 @@ int main(int argc, char *argv[]) {
+         /* prepare the test */
+         assert_se(set_unit_path(dir) >= 0);
+         r = manager_new(SYSTEMD_USER, &m);
+-        if (r == -EPERM || r == -EACCES || r == -EADDRINUSE || r == -EHOSTDOWN) {
++        if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT)) {
+                 printf("Skipping test: manager_new: %s", strerror(-r));
+                 return EXIT_TEST_SKIP;
+         }
diff --git a/debian/patches/udev-hwdb-Store-binary-database-in-libdir-not-in-etc.patch b/debian/patches/udev-hwdb-Store-binary-database-in-libdir-not-in-etc.patch
deleted file mode 100644
index d4389d6..0000000
--- a/debian/patches/udev-hwdb-Store-binary-database-in-libdir-not-in-etc.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From: Martin Pitt <martinpitt at gnome.org>
-Date: Fri, 14 Jun 2013 12:21:38 +0200
-Subject: udev hwdb: Store binary database in libdir, not in /etc
-
-Storing huge binary files in /etc/ is ugly, as this is neither user-editable
-nor configuration of any kind. This is just a cache file, and does not need
-backing up.
-
-Move it to udevlibexecdir instead.
----
- Makefile.am                |  2 +-
- man/udevadm.xml            |  6 +++---
- src/libudev/libudev-hwdb.c | 10 +++++-----
- src/udev/udevadm-hwdb.c    |  2 +-
- 4 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 3e23d8b..713df57 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -3086,7 +3086,7 @@ INSTALL_DATA_HOOKS += \
- 	hwdb-update-hook
- 
- hwdb-remove-hook:
--	-test -n "$(DESTDIR)" || rm -f /etc/udev/hwdb.bin
-+	-test -n "$(DESTDIR)" || rm -f $(udevlibexecdir)/hwdb.bin
- 
- # ------------------------------------------------------------------------------
- TESTS += \
-diff --git a/man/udevadm.xml b/man/udevadm.xml
-index fbfa85a..0e8d00b 100644
---- a/man/udevadm.xml
-+++ b/man/udevadm.xml
-@@ -481,14 +481,14 @@
-     </refsect2>
- 
-     <refsect2><title>udevadm hwdb <optional>options</optional></title>
--      <para>Maintain the hardware database index in <filename>/etc/udev/hwdb.bin</filename>.</para>
-+      <para>Maintain the hardware database index in <filename>/lib/udev/hwdb.bin</filename>.</para>
-       <variablelist>
-         <varlistentry>
-           <term><option>-u</option></term>
-           <term><option>--update</option></term>
-           <listitem>
--            <para>Compile the hardware database information located in /usr/lib/udev/hwdb.d/,
--            /etc/udev/hwdb.d/ and store it in <filename>/etc/udev/hwdb.bin</filename>. This should be done after
-+            <para>Compile the hardware database information located in /lib/udev/hwdb.d/,
-+            /etc/udev/hwdb.d/ and store it in <filename>/lib/udev/hwdb.bin</filename>. This should be done after
-             any update to the source files; it will not be called automatically. The running
-             udev daemon will detect a new database on its own and does not need to be
-             notified about it.</para>
-diff --git a/src/libudev/libudev-hwdb.c b/src/libudev/libudev-hwdb.c
-index e0d4d7c..edb75e8 100644
---- a/src/libudev/libudev-hwdb.c
-+++ b/src/libudev/libudev-hwdb.c
-@@ -275,30 +275,30 @@ _public_ struct udev_hwdb *udev_hwdb_new(struct udev *udev) {
-         hwdb->refcount = 1;
-         udev_list_init(udev, &hwdb->properties_list, true);
- 
--        hwdb->f = fopen("/etc/udev/hwdb.bin", "re");
-+        hwdb->f = fopen(UDEVLIBEXECDIR "/hwdb.bin", "re");
-         if (!hwdb->f) {
--                udev_dbg(udev, "error reading /etc/udev/hwdb.bin: %m");
-+                udev_dbg(udev, "error reading " UDEVLIBEXECDIR "/hwdb.bin: %m");
-                 udev_hwdb_unref(hwdb);
-                 return NULL;
-         }
- 
-         if (fstat(fileno(hwdb->f), &hwdb->st) < 0 ||
-             (size_t)hwdb->st.st_size < offsetof(struct trie_header_f, strings_len) + 8) {
--                udev_dbg(udev, "error reading /etc/udev/hwdb.bin: %m");
-+                udev_dbg(udev, "error reading " UDEVLIBEXECDIR "/hwdb.bin: %m");
-                 udev_hwdb_unref(hwdb);
-                 return NULL;
-         }
- 
-         hwdb->map = mmap(0, hwdb->st.st_size, PROT_READ, MAP_SHARED, fileno(hwdb->f), 0);
-         if (hwdb->map == MAP_FAILED) {
--                udev_dbg(udev, "error mapping /etc/udev/hwdb.bin: %m");
-+                udev_dbg(udev, "error mapping " UDEVLIBEXECDIR "/hwdb.bin: %m");
-                 udev_hwdb_unref(hwdb);
-                 return NULL;
-         }
- 
-         if (memcmp(hwdb->map, sig, sizeof(hwdb->head->signature)) != 0 ||
-             (size_t)hwdb->st.st_size != le64toh(hwdb->head->file_size)) {
--                udev_dbg(udev, "error recognizing the format of /etc/udev/hwdb.bin");
-+                udev_dbg(udev, "error recognizing the format of " UDEVLIBEXECDIR "/hwdb.bin");
-                 udev_hwdb_unref(hwdb);
-                 return NULL;
-         }
-diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c
-index 65cbf61..6b56000 100644
---- a/src/udev/udevadm-hwdb.c
-+++ b/src/udev/udevadm-hwdb.c
-@@ -624,7 +624,7 @@ static int adm_hwdb(struct udev *udev, int argc, char *argv[]) {
-                 log_debug("strings dedup'ed: %8zu bytes (%8zu)",
-                           trie->strings->dedup_len, trie->strings->dedup_count);
- 
--                if (asprintf(&hwdb_bin, "%s/etc/udev/hwdb.bin", root) < 0) {
-+                if (asprintf(&hwdb_bin, "%s/" UDEVLIBEXECDIR "/hwdb.bin", root) < 0) {
-                         rc = EXIT_FAILURE;
-                         goto out;
-                 }
diff --git a/debian/patches/udev-hwdb-Support-shipping-pre-compiled-database-in-.patch b/debian/patches/udev-hwdb-Support-shipping-pre-compiled-database-in-.patch
new file mode 100644
index 0000000..0f6495e
--- /dev/null
+++ b/debian/patches/udev-hwdb-Support-shipping-pre-compiled-database-in-.patch
@@ -0,0 +1,227 @@
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Fri, 17 Oct 2014 15:01:01 +0200
+Subject: udev hwdb: Support shipping pre-compiled database in system images
+
+In some cases it is preferable to ship system images with a pre-generated
+binary hwdb database, to avoid having to build it at runtime, avoid shipping
+the source hwdb files, or avoid storing large binary files in /etc.
+
+So if hwdb.bin does not exist in /etc/udev/, fall back to looking for it in
+UDEVLIBEXECDIR. This keeps the possibility to add files to /etc/udev/hwdb.d/
+and re-generating the database which trumps the one in /usr/lib.
+
+Add a new --usr flag to "udevadm hwdb --update" which puts the database
+into UDEVLIBEXECDIR.
+
+Adjust systemd-udev-hwdb-update.service to not generate the file in /etc if we
+already have it in /usr.
+---
+ man/udev.xml                              |  4 ++-
+ man/udevadm.xml                           |  9 +++++++
+ src/libudev/libudev-hwdb.c                | 42 ++++++++++++++++++++++++++-----
+ src/udev/udevadm-hwdb.c                   | 13 +++++++++-
+ units/systemd-udev-hwdb-update.service.in |  3 +++
+ 5 files changed, 63 insertions(+), 8 deletions(-)
+
+diff --git a/man/udev.xml b/man/udev.xml
+index 4e5f8f0..68c3586 100644
+--- a/man/udev.xml
++++ b/man/udev.xml
+@@ -758,7 +758,9 @@
+ 
+       <para>The content of all hwdb files is read by
+       <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+-      and compiled to a binary database located at <filename>/etc/udev/hwdb.bin</filename>.
++      and compiled to a binary database located at <filename>/etc/udev/hwdb.bin</filename>,
++      or alternatively <filename>/usr/lib/udev/hwdb.bin</filename> if you want ship the compiled
++      database in an immutable image.
+       During runtime only the binary database is used.</para>
+   </refsect1>
+ 
+diff --git a/man/udevadm.xml b/man/udevadm.xml
+index fbfa85a..590aaf9 100644
+--- a/man/udevadm.xml
++++ b/man/udevadm.xml
+@@ -495,6 +495,15 @@
+           </listitem>
+         </varlistentry>
+         <varlistentry>
++          <term><option>--usr</option></term>
++          <listitem>
++            <para>Put the compiled database into <filename>/usr/lib/udev/hwdb.bin</filename> instead.
++            Use this if you want to ship a pre-compiled database in immutable system images, or
++            don't use <filename>/etc/udev/hwdb.d</filename> and want to avoid large binary files in
++            <filename>/etc</filename>.</para>
++          </listitem>
++        </varlistentry>
++        <varlistentry>
+           <term><option>-t</option></term>
+           <term><option>--test=<replaceable>string</replaceable></option></term>
+           <listitem>
+diff --git a/src/libudev/libudev-hwdb.c b/src/libudev/libudev-hwdb.c
+index e0d4d7c..0a1365e 100644
+--- a/src/libudev/libudev-hwdb.c
++++ b/src/libudev/libudev-hwdb.c
+@@ -256,6 +256,11 @@ static int trie_search_f(struct udev_hwdb *hwdb, const char *search) {
+         return 0;
+ }
+ 
++static const char hwdb_bin_paths[] =
++    "/etc/udev/hwdb.bin\0"
++    UDEVLIBEXECDIR "/hwdb.bin\0";
++
++
+ /**
+  * udev_hwdb_new:
+  * @udev: udev library context
+@@ -266,6 +271,7 @@ static int trie_search_f(struct udev_hwdb *hwdb, const char *search) {
+  **/
+ _public_ struct udev_hwdb *udev_hwdb_new(struct udev *udev) {
+         struct udev_hwdb *hwdb;
++        const char *hwdb_bin_path;
+         const char sig[] = HWDB_SIG;
+ 
+         hwdb = new0(struct udev_hwdb, 1);
+@@ -275,30 +281,43 @@ _public_ struct udev_hwdb *udev_hwdb_new(struct udev *udev) {
+         hwdb->refcount = 1;
+         udev_list_init(udev, &hwdb->properties_list, true);
+ 
+-        hwdb->f = fopen("/etc/udev/hwdb.bin", "re");
++        /* find hwdb.bin in hwdb_bin_paths */
++        NULSTR_FOREACH(hwdb_bin_path, hwdb_bin_paths) {
++                hwdb->f = fopen(hwdb_bin_path, "re");
++                if (hwdb->f)
++                        break;
++                else if (errno == ENOENT)
++                        continue;
++                else {
++                        udev_dbg(udev, "error reading %s: %m", hwdb_bin_path);
++                        udev_hwdb_unref(hwdb);
++                        return NULL;
++                }
++        }
++
+         if (!hwdb->f) {
+-                udev_dbg(udev, "error reading /etc/udev/hwdb.bin: %m");
++                udev_err(udev, "hwdb.bin does not exist, please run udevadm hwdb --update");
+                 udev_hwdb_unref(hwdb);
+                 return NULL;
+         }
+ 
+         if (fstat(fileno(hwdb->f), &hwdb->st) < 0 ||
+             (size_t)hwdb->st.st_size < offsetof(struct trie_header_f, strings_len) + 8) {
+-                udev_dbg(udev, "error reading /etc/udev/hwdb.bin: %m");
++                udev_dbg(udev, "error reading %s: %m", hwdb_bin_path);
+                 udev_hwdb_unref(hwdb);
+                 return NULL;
+         }
+ 
+         hwdb->map = mmap(0, hwdb->st.st_size, PROT_READ, MAP_SHARED, fileno(hwdb->f), 0);
+         if (hwdb->map == MAP_FAILED) {
+-                udev_dbg(udev, "error mapping /etc/udev/hwdb.bin: %m");
++                udev_dbg(udev, "error mapping %s: %m", hwdb_bin_path);
+                 udev_hwdb_unref(hwdb);
+                 return NULL;
+         }
+ 
+         if (memcmp(hwdb->map, sig, sizeof(hwdb->head->signature)) != 0 ||
+             (size_t)hwdb->st.st_size != le64toh(hwdb->head->file_size)) {
+-                udev_dbg(udev, "error recognizing the format of /etc/udev/hwdb.bin");
++                udev_dbg(udev, "error recognizing the format of %s", hwdb_bin_path);
+                 udev_hwdb_unref(hwdb);
+                 return NULL;
+         }
+@@ -352,14 +371,25 @@ _public_ struct udev_hwdb *udev_hwdb_unref(struct udev_hwdb *hwdb) {
+ }
+ 
+ bool udev_hwdb_validate(struct udev_hwdb *hwdb) {
++        bool found = false;
++        const char* p;
+         struct stat st;
+ 
+         if (!hwdb)
+                 return false;
+         if (!hwdb->f)
+                 return false;
+-        if (stat("/etc/udev/hwdb.bin", &st) < 0)
++
++        /* if hwdb.bin doesn't exist anywhere, we need to update */
++        NULSTR_FOREACH(p, hwdb_bin_paths) {
++                if (stat(p, &st) >= 0) {
++                        found = true;
++                        break;
++                }
++        }
++        if (!found)
+                 return true;
++
+         if (timespec_load(&hwdb->st.st_mtim) != timespec_load(&st.st_mtim))
+                 return true;
+         return false;
+diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c
+index 65cbf61..ba9bc71 100644
+--- a/src/udev/udevadm-hwdb.c
++++ b/src/udev/udevadm-hwdb.c
+@@ -526,14 +526,20 @@ static int import_file(struct udev *udev, struct trie *trie, const char *filenam
+ static void help(void) {
+         printf("Usage: udevadm hwdb OPTIONS\n"
+                "  -u,--update          update the hardware database\n"
++               "  --usr                generate in " UDEVLIBEXECDIR " instead of /etc/udev\n"
+                "  -t,--test=MODALIAS   query database and print result\n"
+                "  -r,--root=PATH       alternative root path in the filesystem\n"
+                "  -h,--help\n\n");
+ }
+ 
+ static int adm_hwdb(struct udev *udev, int argc, char *argv[]) {
++        enum {
++                ARG_USR = 0x100,
++        };
++
+         static const struct option options[] = {
+                 { "update", no_argument,       NULL, 'u' },
++                { "usr",    no_argument,       NULL, ARG_USR },
+                 { "test",   required_argument, NULL, 't' },
+                 { "root",   required_argument, NULL, 'r' },
+                 { "help",   no_argument,       NULL, 'h' },
+@@ -541,6 +547,7 @@ static int adm_hwdb(struct udev *udev, int argc, char *argv[]) {
+         };
+         const char *test = NULL;
+         const char *root = "";
++        const char *hwdb_bin_dir = "/etc/udev";
+         bool update = false;
+         struct trie *trie = NULL;
+         int err, c;
+@@ -551,6 +558,9 @@ static int adm_hwdb(struct udev *udev, int argc, char *argv[]) {
+                 case 'u':
+                         update = true;
+                         break;
++                case ARG_USR:
++                        hwdb_bin_dir = UDEVLIBEXECDIR;
++                        break;
+                 case 't':
+                         test = optarg;
+                         break;
+@@ -624,7 +634,8 @@ static int adm_hwdb(struct udev *udev, int argc, char *argv[]) {
+                 log_debug("strings dedup'ed: %8zu bytes (%8zu)",
+                           trie->strings->dedup_len, trie->strings->dedup_count);
+ 
+-                if (asprintf(&hwdb_bin, "%s/etc/udev/hwdb.bin", root) < 0) {
++                hwdb_bin = strjoin(root, "/", hwdb_bin_dir, "/hwdb.bin", NULL);
++                if (!hwdb_bin) {
+                         rc = EXIT_FAILURE;
+                         goto out;
+                 }
+diff --git a/units/systemd-udev-hwdb-update.service.in b/units/systemd-udev-hwdb-update.service.in
+index 153d93c..62ddd19 100644
+--- a/units/systemd-udev-hwdb-update.service.in
++++ b/units/systemd-udev-hwdb-update.service.in
+@@ -13,6 +13,9 @@ Conflicts=shutdown.target
+ After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service
+ Before=sysinit.target shutdown.target systemd-update-done.service
+ ConditionNeedsUpdate=/etc
++ConditionPathExists=|!@udevlibexecdir@/hwdb.bin
++ConditionPathExists=|/etc/udev/hwdb.bin
++ConditionDirectoryNotEmpty=|/etc/udev/hwdb.d/
+ 
+ [Service]
+ Type=oneshot
diff --git a/debian/patches/udev-link-config-fix-crash-due-to-missing-hwaddr.patch b/debian/patches/udev-link-config-fix-crash-due-to-missing-hwaddr.patch
new file mode 100644
index 0000000..7cbe4e7
--- /dev/null
+++ b/debian/patches/udev-link-config-fix-crash-due-to-missing-hwaddr.patch
@@ -0,0 +1,27 @@
+From: Tom Gundersen <teg at jklm.no>
+Date: Thu, 14 Aug 2014 01:35:16 +0200
+Subject: udev: link-config - fix crash due to missing hwaddr
+
+Reported by: master.nosferatu at gmail.com
+---
+ src/udev/net/link-config.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
+index 5a45c53..3cc0471 100644
+--- a/src/udev/net/link-config.c
++++ b/src/udev/net/link-config.c
+@@ -247,11 +247,12 @@ int link_config_get(link_config_ctx *ctx, struct udev_device *device, link_confi
+         link_config *link;
+ 
+         LIST_FOREACH(links, link, ctx->links) {
++                const char* attr_value = udev_device_get_sysattr_value(device, "address");
+ 
+                 if (net_match_config(link->match_mac, link->match_path, link->match_driver,
+                                      link->match_type, NULL, link->match_host,
+                                      link->match_virt, link->match_kernel, link->match_arch,
+-                                     ether_aton(udev_device_get_sysattr_value(device, "address")),
++                                     attr_value ? ether_aton(attr_value) : NULL,
+                                      udev_device_get_property_value(device, "ID_PATH"),
+                                      udev_device_get_driver(udev_device_get_parent(device)),
+                                      udev_device_get_property_value(device, "ID_NET_DRIVER"),
diff --git a/debian/rules b/debian/rules
index 5a0b8c3..4570e62 100755
--- a/debian/rules
+++ b/debian/rules
@@ -269,6 +269,17 @@ override_dh_autoreconf:
 override_dh_strip:
 	dh_strip --dbg-package=systemd-dbg
 
+override_dh_auto_test:
+ifeq (, $(findstring nocheck, $(DEB_BUILD_OPTIONS)))
+	# some tests hang under fakeroot, so disable fakeroot
+	echo "01234567890123456789012345678901" > build-deb/machine-id
+	env -u LD_PRELOAD SYSTEMD_MACHINE_ID_PATH=$(CURDIR)/build-deb/machine-id \
+		make -C build-deb check || ( \
+		cd build-deb; \
+		for f in test-*.log; do echo "==== $$f ===="; cat $$f; done; \
+		exit 0; )  # replace with 1 to make failures fatal
+endif
+
 %:
 ifeq (,$(findstring stage1,$(DEB_BUILD_PROFILES)))
 	dh $@ --with autoreconf,gir,python3 --parallel
diff --git a/debian/tests/hostnamed b/debian/tests/hostnamed
index 2a2f57d..8e608c5 100755
--- a/debian/tests/hostnamed
+++ b/debian/tests/hostnamed
@@ -6,7 +6,7 @@ ORIG_HOST=`cat /etc/hostname`
 # should activate daemon and work
 STATUS=`hostnamectl`
 echo "$STATUS" | grep -q "Static hostname: $ORIG_HOST"
-echo "$STATUS" | grep -q "Architecture: `uname -m`"
+echo "$STATUS" | grep -q "Kernel:.* `uname -r`"
 
 # change hostname
 OUT=`hostnamectl set-hostname testhost 2>&1`
diff --git a/debian/tests/timedated b/debian/tests/timedated
index 736433f..68119cb 100755
--- a/debian/tests/timedated
+++ b/debian/tests/timedated
@@ -12,7 +12,7 @@ OUT=`timedatectl set-timezone Europe/Moscow 2>&1`
 [ -z "$OUT" ]
 [ "`cat /etc/timezone`" = "Europe/Moscow" ]
 STATUS=`timedatectl`
-echo "$STATUS" | grep -q "Timezone: Europe/Moscow (MSK, +"
+echo "$STATUS" | grep -q "Time.*zone: Europe/Moscow (MSK, +"
 
 # reset timezone to original
 OUT=`timedatectl set-timezone $ORIG_TZ 2>&1`
diff --git a/debian/udev.postinst b/debian/udev.postinst
index 5db5028..c2ac854 100644
--- a/debian/udev.postinst
+++ b/debian/udev.postinst
@@ -119,7 +119,7 @@ upgrade_fixes() {
 }
 
 update_hwdb() {
-  udevadm hwdb --update || true
+  udevadm hwdb --update --usr || true
 }
 
 # In udev-204, we ship systemd-udevd.service (upstream name), whereas previous
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-systemd-maintainers/attachments/20141118/d9e9bf08/attachment-0001.sig>


More information about the Pkg-systemd-maintainers mailing list