Bug#858943: unblock: systemd/232-22
Michael Biebl
biebl at debian.org
Tue Mar 28 23:08:34 BST 2017
Am 28.03.2017 um 22:52 schrieb Michael Biebl:
> A complete debdiff is attached.
Hm, somehow that got lost. Attaching it now.
Regards,
Michael
--
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?
-------------- next part --------------
diff --git a/debian/changelog b/debian/changelog
index 0774f4d..4af7f8a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,79 @@
+systemd (232-22) unstable; urgency=medium
+
+ [ Martin Pitt ]
+ * resolved: Disable DNSSEC by default on stretch and zesty.
+ Both Debian stretch and Ubuntu zesty are close to releasing, switch to
+ DNSSEC=off by default for those. Users can still turn it back on with
+ DNSSEC=allow-downgrade (or even "yes").
+
+ [ Michael Biebl ]
+ * Add Conflicts against hal.
+ Since v183, udev no longer supports RUN+="socket:". This feature is
+ still used by hal, but now generates vast amounts of errors in the
+ journal. Thus force the removal of hal by adding a Conflicts to the udev
+ package. This is safe, as hal is long dead and no package depends on it
+ anymore.
+
+ [ Dimitri John Ledkov ]
+ * Adjust pkgconfig files to point at rootlibdir.
+ The .so symlinks got moved to rootlibdir in v232 so the .pc files for
+ libudev and libsystemd need to be adjusted accordingly. Otherwise we
+ break cross compilation. (LP: #1674201)
+
+ -- Michael Biebl <biebl at debian.org> Tue, 28 Mar 2017 21:23:30 +0200
+
+systemd (232-21) unstable; urgency=medium
+
+ * resolved: Downgrade "processing query..." message to debug.
+ It doesn't really add much value in normal operation and just spams the
+ log. (Closes: #858197)
+ * Do not throw a warning in emergency and rescue mode if plymouth is not
+ installed.
+ Ideally, plymouth should only be referenced via dependencies, not
+ ExecStartPre. This at least avoids the confusing error message on
+ minimal installations that do not carry plymouth.
+ * rules: Allow SPARC vdisk devices when identifying CD drives
+ (Closes: #858014)
+
+ -- Michael Biebl <biebl at debian.org> Tue, 21 Mar 2017 19:52:17 +0100
+
+systemd (232-20) unstable; urgency=medium
+
+ [ Martin Pitt ]
+ * debian/gbp.conf: Switch to "stretch" branch
+ * udev: Fix /dev/disk/by-path aliases for virtio disks. (Closes: #856558)
+ * udev: Create persistent net names for virtio CCW devices.
+ This only affects s390x as only this has CCW devices. This provides
+ stable network interface names for those and avoids changing the names
+ on updating Stretch to Buster. (Closes: #856559)
+ * Move systemd.link(5) to udev package.
+ .link files are being handled by udev, so it should ship the
+ corresponding manpage. Bump Breaks/Replaces accordingly. (Closes: #857270)
+
+ [ Michael Biebl ]
+ * Avoid strict DM API versioning.
+ Compiling against the dm-ioctl.h header as provided by the Linux kernel
+ will embed the DM interface version number. Running an older kernel can
+ lead to errors on shutdown when trying to detach DM devices.
+ As a workaround, build against a local copy of dm-ioctl.h based on 3.13,
+ which is the minimum required version to support DM_DEFERRED_REMOVE.
+ (Closes: #856337)
+ * cryptsetup-generator: Run cryptsetup service before swap unit.
+ Otherwise if the cryptsetup service unit and swap unit for a swap
+ device are not strictly ordered, it might happen that the swap unit
+ activates/mounts the swap device before its cryptsetup service unit has
+ a chance to run the 'mkswap' command. (Closes: #787028)
+ * Override package-name-doesnt-match-sonames lintian warning for libnss-*
+ * networkd: Fix size of MTUBytes so that it does not overwrite ARP
+
+ [ Felipe Sateler ]
+ * git-cherry-pick: Actually use cherry-pick for picking.
+ Use git cherry-pick for picking instead of rebase.
+ This allows using -x flag and thus record the upstream commit that is
+ being picked.
+
+ -- Michael Biebl <biebl at debian.org> Thu, 16 Mar 2017 17:38:24 +0100
+
systemd (232-19) unstable; urgency=medium
[ Martin Pitt ]
diff --git a/debian/control b/debian/control
index 65365e9..b48a50a 100644
--- a/debian/control
+++ b/debian/control
@@ -328,17 +328,18 @@ Depends: ${shlibs:Depends},
util-linux (>= 2.27.1),
s390-tools (>> 1.6.2) [s390],
procps
+Conflicts: hal
Breaks: consolekit (<< 0.4.6-1),
kmod (<< 14),
plymouth (<< 0.9.0-7),
bash-completion (<< 1:2.1),
- systemd (<< 232-11),
+ systemd (<< 232-20),
ifupdown (<< 0.8.5~),
ifplugd (<< 0.28-19.1~),
joystick (<< 1:1.4.9-1~),
${Breaks:usb-modeswitch},
Replaces: bash-completion (<< 1:2.1),
- systemd (<< 224-2)
+ systemd (<< 232-20)
Description: /dev/ and hotplug management daemon
udev is a daemon which dynamically creates and removes device nodes from
/dev/, handles hotplug events and loads drivers at boot time.
diff --git a/debian/gbp.conf b/debian/gbp.conf
index 6dc3643..ab50bd4 100644
--- a/debian/gbp.conf
+++ b/debian/gbp.conf
@@ -1,7 +1,7 @@
[DEFAULT]
pristine-tar = True
patch-numbers = False
-debian-branch = master
+debian-branch = stretch
[dch]
full = True
diff --git a/debian/git-cherry-pick b/debian/git-cherry-pick
index 9d0197c..bb39ce8 100755
--- a/debian/git-cherry-pick
+++ b/debian/git-cherry-pick
@@ -43,7 +43,7 @@ gbp pq import --force
echo "Cherry-picking the following commits:"
echo "$commits"
-picks=$(echo "$commits" | sed -e 's/^/pick /' -e 's/$/\\n/' | tr --delete '\n' )
+picks=$(echo "$commits" | xargs echo exec git cherry-pick -x --no-edit --commit)
# find the first debian commit
firstdebian=$(git log -i --grep "topic.*debian" --pretty=%h --reverse $debbranch..$pqbranch | head -1)
diff --git a/debian/libnss-myhostname.lintian-overrides b/debian/libnss-myhostname.lintian-overrides
new file mode 100644
index 0000000..ff4d266
--- /dev/null
+++ b/debian/libnss-myhostname.lintian-overrides
@@ -0,0 +1,2 @@
+# package is a NSS module, not a system library
+libnss-myhostname: package-name-doesnt-match-sonames
diff --git a/debian/libnss-mymachines.lintian-overrides b/debian/libnss-mymachines.lintian-overrides
new file mode 100644
index 0000000..c9661e8
--- /dev/null
+++ b/debian/libnss-mymachines.lintian-overrides
@@ -0,0 +1,2 @@
+# package is a NSS module, not a system library
+libnss-mymachines: package-name-doesnt-match-sonames
diff --git a/debian/libnss-resolve.lintian-overrides b/debian/libnss-resolve.lintian-overrides
new file mode 100644
index 0000000..dfd9ec4
--- /dev/null
+++ b/debian/libnss-resolve.lintian-overrides
@@ -0,0 +1,2 @@
+# package is a NSS module, not a system library
+libnss-resolve: package-name-doesnt-match-sonames
diff --git a/debian/libnss-systemd.lintian-overrides b/debian/libnss-systemd.lintian-overrides
new file mode 100644
index 0000000..8e9c4cb
--- /dev/null
+++ b/debian/libnss-systemd.lintian-overrides
@@ -0,0 +1,2 @@
+# package is a NSS module, not a system library
+libnss-systemd: package-name-doesnt-match-sonames
diff --git a/debian/patches/Adjust-pkgconfig-files-to-point-at-rootlibdir-4584.patch b/debian/patches/Adjust-pkgconfig-files-to-point-at-rootlibdir-4584.patch
new file mode 100644
index 0000000..6e62a4c
--- /dev/null
+++ b/debian/patches/Adjust-pkgconfig-files-to-point-at-rootlibdir-4584.patch
@@ -0,0 +1,50 @@
+From: Mike Gilbert <floppymaster at gmail.com>
+Date: Tue, 8 Nov 2016 03:36:41 -0500
+Subject: Adjust pkgconfig files to point at rootlibdir (#4584)
+
+The .so symlinks got moved to rootlibdir in 082210c7.
+(cherry picked from commit d07903848f7b3b96487e0968f25d88167cc65ded)
+---
+ Makefile.am | 1 +
+ src/libsystemd/libsystemd.pc.in | 2 +-
+ src/libudev/libudev.pc.in | 2 +-
+ 3 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 41c7cfc..ecd8bc1 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -6056,6 +6056,7 @@ EXTRA_DIST += \
+
+ # ------------------------------------------------------------------------------
+ substitutions = \
++ '|rootlibdir=$(rootlibdir)|' \
+ '|rootlibexecdir=$(rootlibexecdir)|' \
+ '|rootbindir=$(rootbindir)|' \
+ '|bindir=$(bindir)|' \
+diff --git a/src/libsystemd/libsystemd.pc.in b/src/libsystemd/libsystemd.pc.in
+index e8f7950..7e6d499 100644
+--- a/src/libsystemd/libsystemd.pc.in
++++ b/src/libsystemd/libsystemd.pc.in
+@@ -7,7 +7,7 @@
+
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
++libdir=@rootlibdir@
+ includedir=@includedir@
+
+ Name: systemd
+diff --git a/src/libudev/libudev.pc.in b/src/libudev/libudev.pc.in
+index a0f3f52..770c922 100644
+--- a/src/libudev/libudev.pc.in
++++ b/src/libudev/libudev.pc.in
+@@ -7,7 +7,7 @@
+
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
++libdir=@rootlibdir@
+ includedir=@includedir@
+
+ Name: libudev
diff --git a/debian/patches/Avoid-strict-DM-interface-version-dependencies-5519.patch b/debian/patches/Avoid-strict-DM-interface-version-dependencies-5519.patch
new file mode 100644
index 0000000..df78452
--- /dev/null
+++ b/debian/patches/Avoid-strict-DM-interface-version-dependencies-5519.patch
@@ -0,0 +1,432 @@
+From: Michael Biebl <mbiebl at gmail.com>
+Date: Thu, 2 Mar 2017 19:11:37 +0100
+Subject: Avoid strict DM interface version dependencies (#5519)
+
+Compiling against the dm-ioctl.h header as provided by the Linux kernel
+will embed the DM interface version number. Running an older kernel can
+result in an error like this on shutdown:
+
+Could not detach DM dm-11: ioctl mismatch, kernel(4.34.4), user(4.35.4)
+
+Work around this by shipping a local copy of dm-ioctl.h. We need at
+least the version from 3.13 for DM_DEFERRED_REMOVE [1], so bump the
+requirements in README accordingly.
+
+[1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2c140a246dc0bc085b98eddde978060fcec1080c
+
+Fixes: #5492
+(cherry picked from commit dcce98a4bdc302a5efeb3a5c35b6cbf6d16a3efc)
+---
+ Makefile.am | 1 +
+ README | 2 +-
+ src/core/umount.c | 2 +-
+ src/shared/linux-3.13/dm-ioctl.h | 355 +++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 358 insertions(+), 2 deletions(-)
+ create mode 100644 src/shared/linux-3.13/dm-ioctl.h
+
+diff --git a/Makefile.am b/Makefile.am
+index 67d41dc..41c7cfc 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -966,6 +966,7 @@ libshared_la_SOURCES = \
+ src/shared/gpt.h \
+ src/shared/udev-util.h \
+ src/shared/linux/auto_dev-ioctl.h \
++ src/shared/linux-3.13/dm-ioctl.h \
+ src/shared/initreq.h \
+ src/shared/dns-domain.c \
+ src/shared/dns-domain.h \
+diff --git a/README b/README
+index 9f5bc93..838a9e8 100644
+--- a/README
++++ b/README
+@@ -35,7 +35,7 @@ LICENSE:
+ - except src/udev/* which is (currently still) GPLv2, GPLv2+
+
+ REQUIREMENTS:
+- Linux kernel >= 3.12
++ Linux kernel >= 3.13
+ Linux kernel >= 4.2 for unified cgroup hierarchy support
+
+ Kernel Config Options:
+diff --git a/src/core/umount.c b/src/core/umount.c
+index 1e5459e..f3823d7 100644
+--- a/src/core/umount.c
++++ b/src/core/umount.c
+@@ -19,7 +19,6 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <linux/dm-ioctl.h>
+ #include <linux/loop.h>
+ #include <string.h>
+ #include <sys/mount.h>
+@@ -31,6 +30,7 @@
+ #include "escape.h"
+ #include "fd-util.h"
+ #include "fstab-util.h"
++#include "linux-3.13/dm-ioctl.h"
+ #include "list.h"
+ #include "mount-setup.h"
+ #include "path-util.h"
+diff --git a/src/shared/linux-3.13/dm-ioctl.h b/src/shared/linux-3.13/dm-ioctl.h
+new file mode 100644
+index 0000000..c8a4302
+--- /dev/null
++++ b/src/shared/linux-3.13/dm-ioctl.h
+@@ -0,0 +1,355 @@
++/*
++ * Copyright (C) 2001 - 2003 Sistina Software (UK) Limited.
++ * Copyright (C) 2004 - 2009 Red Hat, Inc. All rights reserved.
++ *
++ * This file is released under the LGPL.
++ */
++
++#ifndef _LINUX_DM_IOCTL_V4_H
++#define _LINUX_DM_IOCTL_V4_H
++
++#include <linux/types.h>
++
++#define DM_DIR "mapper" /* Slashes not supported */
++#define DM_CONTROL_NODE "control"
++#define DM_MAX_TYPE_NAME 16
++#define DM_NAME_LEN 128
++#define DM_UUID_LEN 129
++
++/*
++ * A traditional ioctl interface for the device mapper.
++ *
++ * Each device can have two tables associated with it, an
++ * 'active' table which is the one currently used by io passing
++ * through the device, and an 'inactive' one which is a table
++ * that is being prepared as a replacement for the 'active' one.
++ *
++ * DM_VERSION:
++ * Just get the version information for the ioctl interface.
++ *
++ * DM_REMOVE_ALL:
++ * Remove all dm devices, destroy all tables. Only really used
++ * for debug.
++ *
++ * DM_LIST_DEVICES:
++ * Get a list of all the dm device names.
++ *
++ * DM_DEV_CREATE:
++ * Create a new device, neither the 'active' or 'inactive' table
++ * slots will be filled. The device will be in suspended state
++ * after creation, however any io to the device will get errored
++ * since it will be out-of-bounds.
++ *
++ * DM_DEV_REMOVE:
++ * Remove a device, destroy any tables.
++ *
++ * DM_DEV_RENAME:
++ * Rename a device or set its uuid if none was previously supplied.
++ *
++ * DM_SUSPEND:
++ * This performs both suspend and resume, depending which flag is
++ * passed in.
++ * Suspend: This command will not return until all pending io to
++ * the device has completed. Further io will be deferred until
++ * the device is resumed.
++ * Resume: It is no longer an error to issue this command on an
++ * unsuspended device. If a table is present in the 'inactive'
++ * slot, it will be moved to the active slot, then the old table
++ * from the active slot will be _destroyed_. Finally the device
++ * is resumed.
++ *
++ * DM_DEV_STATUS:
++ * Retrieves the status for the table in the 'active' slot.
++ *
++ * DM_DEV_WAIT:
++ * Wait for a significant event to occur to the device. This
++ * could either be caused by an event triggered by one of the
++ * targets of the table in the 'active' slot, or a table change.
++ *
++ * DM_TABLE_LOAD:
++ * Load a table into the 'inactive' slot for the device. The
++ * device does _not_ need to be suspended prior to this command.
++ *
++ * DM_TABLE_CLEAR:
++ * Destroy any table in the 'inactive' slot (ie. abort).
++ *
++ * DM_TABLE_DEPS:
++ * Return a set of device dependencies for the 'active' table.
++ *
++ * DM_TABLE_STATUS:
++ * Return the targets status for the 'active' table.
++ *
++ * DM_TARGET_MSG:
++ * Pass a message string to the target at a specific offset of a device.
++ *
++ * DM_DEV_SET_GEOMETRY:
++ * Set the geometry of a device by passing in a string in this format:
++ *
++ * "cylinders heads sectors_per_track start_sector"
++ *
++ * Beware that CHS geometry is nearly obsolete and only provided
++ * for compatibility with dm devices that can be booted by a PC
++ * BIOS. See struct hd_geometry for range limits. Also note that
++ * the geometry is erased if the device size changes.
++ */
++
++/*
++ * All ioctl arguments consist of a single chunk of memory, with
++ * this structure at the start. If a uuid is specified any
++ * lookup (eg. for a DM_INFO) will be done on that, *not* the
++ * name.
++ */
++struct dm_ioctl {
++ /*
++ * The version number is made up of three parts:
++ * major - no backward or forward compatibility,
++ * minor - only backwards compatible,
++ * patch - both backwards and forwards compatible.
++ *
++ * All clients of the ioctl interface should fill in the
++ * version number of the interface that they were
++ * compiled with.
++ *
++ * All recognised ioctl commands (ie. those that don't
++ * return -ENOTTY) fill out this field, even if the
++ * command failed.
++ */
++ __u32 version[3]; /* in/out */
++ __u32 data_size; /* total size of data passed in
++ * including this struct */
++
++ __u32 data_start; /* offset to start of data
++ * relative to start of this struct */
++
++ __u32 target_count; /* in/out */
++ __s32 open_count; /* out */
++ __u32 flags; /* in/out */
++
++ /*
++ * event_nr holds either the event number (input and output) or the
++ * udev cookie value (input only).
++ * The DM_DEV_WAIT ioctl takes an event number as input.
++ * The DM_SUSPEND, DM_DEV_REMOVE and DM_DEV_RENAME ioctls
++ * use the field as a cookie to return in the DM_COOKIE
++ * variable with the uevents they issue.
++ * For output, the ioctls return the event number, not the cookie.
++ */
++ __u32 event_nr; /* in/out */
++ __u32 padding;
++
++ __u64 dev; /* in/out */
++
++ char name[DM_NAME_LEN]; /* device name */
++ char uuid[DM_UUID_LEN]; /* unique identifier for
++ * the block device */
++ char data[7]; /* padding or data */
++};
++
++/*
++ * Used to specify tables. These structures appear after the
++ * dm_ioctl.
++ */
++struct dm_target_spec {
++ __u64 sector_start;
++ __u64 length;
++ __s32 status; /* used when reading from kernel only */
++
++ /*
++ * Location of the next dm_target_spec.
++ * - When specifying targets on a DM_TABLE_LOAD command, this value is
++ * the number of bytes from the start of the "current" dm_target_spec
++ * to the start of the "next" dm_target_spec.
++ * - When retrieving targets on a DM_TABLE_STATUS command, this value
++ * is the number of bytes from the start of the first dm_target_spec
++ * (that follows the dm_ioctl struct) to the start of the "next"
++ * dm_target_spec.
++ */
++ __u32 next;
++
++ char target_type[DM_MAX_TYPE_NAME];
++
++ /*
++ * Parameter string starts immediately after this object.
++ * Be careful to add padding after string to ensure correct
++ * alignment of subsequent dm_target_spec.
++ */
++};
++
++/*
++ * Used to retrieve the target dependencies.
++ */
++struct dm_target_deps {
++ __u32 count; /* Array size */
++ __u32 padding; /* unused */
++ __u64 dev[0]; /* out */
++};
++
++/*
++ * Used to get a list of all dm devices.
++ */
++struct dm_name_list {
++ __u64 dev;
++ __u32 next; /* offset to the next record from
++ the _start_ of this */
++ char name[0];
++};
++
++/*
++ * Used to retrieve the target versions
++ */
++struct dm_target_versions {
++ __u32 next;
++ __u32 version[3];
++
++ char name[0];
++};
++
++/*
++ * Used to pass message to a target
++ */
++struct dm_target_msg {
++ __u64 sector; /* Device sector */
++
++ char message[0];
++};
++
++/*
++ * If you change this make sure you make the corresponding change
++ * to dm-ioctl.c:lookup_ioctl()
++ */
++enum {
++ /* Top level cmds */
++ DM_VERSION_CMD = 0,
++ DM_REMOVE_ALL_CMD,
++ DM_LIST_DEVICES_CMD,
++
++ /* device level cmds */
++ DM_DEV_CREATE_CMD,
++ DM_DEV_REMOVE_CMD,
++ DM_DEV_RENAME_CMD,
++ DM_DEV_SUSPEND_CMD,
++ DM_DEV_STATUS_CMD,
++ DM_DEV_WAIT_CMD,
++
++ /* Table level cmds */
++ DM_TABLE_LOAD_CMD,
++ DM_TABLE_CLEAR_CMD,
++ DM_TABLE_DEPS_CMD,
++ DM_TABLE_STATUS_CMD,
++
++ /* Added later */
++ DM_LIST_VERSIONS_CMD,
++ DM_TARGET_MSG_CMD,
++ DM_DEV_SET_GEOMETRY_CMD
++};
++
++#define DM_IOCTL 0xfd
++
++#define DM_VERSION _IOWR(DM_IOCTL, DM_VERSION_CMD, struct dm_ioctl)
++#define DM_REMOVE_ALL _IOWR(DM_IOCTL, DM_REMOVE_ALL_CMD, struct dm_ioctl)
++#define DM_LIST_DEVICES _IOWR(DM_IOCTL, DM_LIST_DEVICES_CMD, struct dm_ioctl)
++
++#define DM_DEV_CREATE _IOWR(DM_IOCTL, DM_DEV_CREATE_CMD, struct dm_ioctl)
++#define DM_DEV_REMOVE _IOWR(DM_IOCTL, DM_DEV_REMOVE_CMD, struct dm_ioctl)
++#define DM_DEV_RENAME _IOWR(DM_IOCTL, DM_DEV_RENAME_CMD, struct dm_ioctl)
++#define DM_DEV_SUSPEND _IOWR(DM_IOCTL, DM_DEV_SUSPEND_CMD, struct dm_ioctl)
++#define DM_DEV_STATUS _IOWR(DM_IOCTL, DM_DEV_STATUS_CMD, struct dm_ioctl)
++#define DM_DEV_WAIT _IOWR(DM_IOCTL, DM_DEV_WAIT_CMD, struct dm_ioctl)
++
++#define DM_TABLE_LOAD _IOWR(DM_IOCTL, DM_TABLE_LOAD_CMD, struct dm_ioctl)
++#define DM_TABLE_CLEAR _IOWR(DM_IOCTL, DM_TABLE_CLEAR_CMD, struct dm_ioctl)
++#define DM_TABLE_DEPS _IOWR(DM_IOCTL, DM_TABLE_DEPS_CMD, struct dm_ioctl)
++#define DM_TABLE_STATUS _IOWR(DM_IOCTL, DM_TABLE_STATUS_CMD, struct dm_ioctl)
++
++#define DM_LIST_VERSIONS _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, struct dm_ioctl)
++
++#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
++#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
++
++#define DM_VERSION_MAJOR 4
++#define DM_VERSION_MINOR 27
++#define DM_VERSION_PATCHLEVEL 0
++#define DM_VERSION_EXTRA "-ioctl (2013-10-30)"
++
++/* Status bits */
++#define DM_READONLY_FLAG (1 << 0) /* In/Out */
++#define DM_SUSPEND_FLAG (1 << 1) /* In/Out */
++#define DM_PERSISTENT_DEV_FLAG (1 << 3) /* In */
++
++/*
++ * Flag passed into ioctl STATUS command to get table information
++ * rather than current status.
++ */
++#define DM_STATUS_TABLE_FLAG (1 << 4) /* In */
++
++/*
++ * Flags that indicate whether a table is present in either of
++ * the two table slots that a device has.
++ */
++#define DM_ACTIVE_PRESENT_FLAG (1 << 5) /* Out */
++#define DM_INACTIVE_PRESENT_FLAG (1 << 6) /* Out */
++
++/*
++ * Indicates that the buffer passed in wasn't big enough for the
++ * results.
++ */
++#define DM_BUFFER_FULL_FLAG (1 << 8) /* Out */
++
++/*
++ * This flag is now ignored.
++ */
++#define DM_SKIP_BDGET_FLAG (1 << 9) /* In */
++
++/*
++ * Set this to avoid attempting to freeze any filesystem when suspending.
++ */
++#define DM_SKIP_LOCKFS_FLAG (1 << 10) /* In */
++
++/*
++ * Set this to suspend without flushing queued ios.
++ * Also disables flushing uncommitted changes in the thin target before
++ * generating statistics for DM_TABLE_STATUS and DM_DEV_WAIT.
++ */
++#define DM_NOFLUSH_FLAG (1 << 11) /* In */
++
++/*
++ * If set, any table information returned will relate to the inactive
++ * table instead of the live one. Always check DM_INACTIVE_PRESENT_FLAG
++ * is set before using the data returned.
++ */
++#define DM_QUERY_INACTIVE_TABLE_FLAG (1 << 12) /* In */
++
++/*
++ * If set, a uevent was generated for which the caller may need to wait.
++ */
++#define DM_UEVENT_GENERATED_FLAG (1 << 13) /* Out */
++
++/*
++ * If set, rename changes the uuid not the name. Only permitted
++ * if no uuid was previously supplied: an existing uuid cannot be changed.
++ */
++#define DM_UUID_FLAG (1 << 14) /* In */
++
++/*
++ * If set, all buffers are wiped after use. Use when sending
++ * or requesting sensitive data such as an encryption key.
++ */
++#define DM_SECURE_DATA_FLAG (1 << 15) /* In */
++
++/*
++ * If set, a message generated output data.
++ */
++#define DM_DATA_OUT_FLAG (1 << 16) /* Out */
++
++/*
++ * If set with DM_DEV_REMOVE or DM_REMOVE_ALL this indicates that if
++ * the device cannot be removed immediately because it is still in use
++ * it should instead be scheduled for removal when it gets closed.
++ *
++ * On return from DM_DEV_REMOVE, DM_DEV_STATUS or other ioctls, this
++ * flag indicates that the device is scheduled to be removed when it
++ * gets closed.
++ */
++#define DM_DEFERRED_REMOVE (1 << 17) /* In/Out */
++
++#endif /* _LINUX_DM_IOCTL_H */
diff --git a/debian/patches/cryptsetup-generator-run-cryptsetup-service-before-swap-u.patch b/debian/patches/cryptsetup-generator-run-cryptsetup-service-before-swap-u.patch
new file mode 100644
index 0000000..ce3bfd3
--- /dev/null
+++ b/debian/patches/cryptsetup-generator-run-cryptsetup-service-before-swap-u.patch
@@ -0,0 +1,75 @@
+From: Mauricio Faria de Oliveira <mauricio.foliveira at gmail.com>
+Date: Tue, 28 Feb 2017 17:30:22 -0300
+Subject: cryptsetup-generator: run cryptsetup service before swap unit (#5480)
+
+If the cryptsetup service unit and swap unit for a swap device
+are not strictly ordered, it might happen that the swap unit
+activates/mounts the swap device before its cryptsetup service unit
+has a chance to run the 'mkswap' command (that it is programmed to).
+
+This leads to the following error:
+
+ Starting Cryptography Setup for sda3_crypt...
+ [ OK ] Found device /dev/mapper/sda3_crypt.
+ Activating swap /dev/mapper/sda3_crypt...
+ [ OK ] Activated swap /dev/mapper/sda3_crypt.
+ [ OK ] Reached target Swap.
+ [FAILED] Failed to start Cryptography Setup for sda3_crypt.
+ See 'systemctl status systemd-cryptsetup at sda3_crypt.service' for
+ details.
+ [DEPEND] Dependency failed for Encrypted Volumes.
+
+Which happens because the swap device is already mounted:
+
+ # systemctl status systemd-cryptsetup at sda3_crypt.service
+ <...>
+ Active: failed (Result: exit-code) since Mon 2017-02-27 14:21:43 CST;
+ 54s ago
+ <...>
+
+ <...> systemd[1]: Starting Cryptography Setup for sda3_crypt...
+ <...> mkswap[2420]: mkswap: error: /dev/mapper/sda3_crypt is mounted;
+ will not make swapspace
+ <...>
+
+So, modify cryptsetup-generator to include a 'Before=' option for the
+respective 'dev-mapper-%i.swap' device in the cryptsetup service unit.
+
+Now, correct ordering is ensured, and the error no longer occurs:
+
+ Starting Cryptography Setup for sda3_crypt...
+ [ OK ] Found device /dev/mapper/sda3_crypt.
+ [ OK ] Started Cryptography Setup for sda3_crypt.
+ Activating swap /dev/mapper/sda3_crypt...
+ [ OK ] Reached target Encrypted Volumes.
+ [ OK ] Activated swap /dev/mapper/sda3_crypt.
+ [ OK ] Reached target Swap.
+(cherry picked from commit a6f8786a56c0acba5997e2c58d0df6c80ffde7f1)
+---
+ src/cryptsetup/cryptsetup-generator.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
+index 6802986..2d00bcf 100644
+--- a/src/cryptsetup/cryptsetup-generator.c
++++ b/src/cryptsetup/cryptsetup-generator.c
+@@ -145,13 +145,17 @@ static int create_disk(
+ }
+ }
+
+- if (is_device_path(u))
++ if (is_device_path(u)) {
+ fprintf(f,
+ "BindsTo=%s\n"
+ "After=%s\n"
+ "Before=umount.target\n",
+ d, d);
+- else
++
++ if (swap)
++ fputs("Before=dev-mapper-%i.swap\n",
++ f);
++ } else
+ fprintf(f,
+ "RequiresMountsFor=%s\n",
+ u);
diff --git a/debian/patches/debian/fsckd-daemon-for-inter-fsckd-communication.patch b/debian/patches/debian/fsckd-daemon-for-inter-fsckd-communication.patch
index 74bb1db..022e1ed 100644
--- a/debian/patches/debian/fsckd-daemon-for-inter-fsckd-communication.patch
+++ b/debian/patches/debian/fsckd-daemon-for-inter-fsckd-communication.patch
@@ -109,7 +109,7 @@ index 013e0d7..a20cb25 100644
man/systemd-getty-generator.xml \
man/systemd-gpt-auto-generator.xml \
diff --git a/Makefile.am b/Makefile.am
-index 67d41dc..10d5799 100644
+index ecd8bc1..882f8b2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -394,6 +394,7 @@ rootlibexec_PROGRAMS = \
@@ -144,7 +144,7 @@ index 67d41dc..10d5799 100644
units/systemd-machine-id-commit.service.in \
units/user at .service.m4.in \
units/debug-shell.service.in \
-@@ -2686,6 +2690,14 @@ systemd_fsck_LDADD = \
+@@ -2687,6 +2691,14 @@ systemd_fsck_LDADD = \
libsystemd-shared.la
# ------------------------------------------------------------------------------
diff --git a/debian/patches/networkd-fix-size-of-MTUBytes-so-that-it-does-not-overwri.patch b/debian/patches/networkd-fix-size-of-MTUBytes-so-that-it-does-not-overwri.patch
new file mode 100644
index 0000000..b961367
--- /dev/null
+++ b/debian/patches/networkd-fix-size-of-MTUBytes-so-that-it-does-not-overwri.patch
@@ -0,0 +1,27 @@
+From: Susant Sahani <ssahani at users.noreply.github.com>
+Date: Wed, 23 Nov 2016 21:03:01 +0530
+Subject: networkd: fix size of MTUBytes so that it does not overwrites ARP
+ (#4707)
+
+config_parse_iec_size overwrites the next varible that is ARP.
+Now the mtu is unsigned . Make it size_t .
+
+Fixes #4644
+(cherry picked from commit b8b40317d0355bc70bb23a6240a36f3630c4952b)
+---
+ src/network/networkd-network.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/network/networkd-network.h b/src/network/networkd-network.h
+index 42fc82d..11ff34b 100644
+--- a/src/network/networkd-network.h
++++ b/src/network/networkd-network.h
+@@ -173,7 +173,7 @@ struct Network {
+ IPv6PrivacyExtensions ipv6_privacy_extensions;
+
+ struct ether_addr *mac;
+- unsigned mtu;
++ size_t mtu;
+ int arp;
+ uint32_t iaid;
+ DUID duid;
diff --git a/debian/patches/resolved-downgrade-processing-query.-message-to-debug-523.patch b/debian/patches/resolved-downgrade-processing-query.-message-to-debug-523.patch
new file mode 100644
index 0000000..54edbc5
--- /dev/null
+++ b/debian/patches/resolved-downgrade-processing-query.-message-to-debug-523.patch
@@ -0,0 +1,23 @@
+From: Felipe Sateler <fsateler at users.noreply.github.com>
+Date: Sun, 5 Feb 2017 19:17:50 -0300
+Subject: resolved: downgrade "processing query..." message to debug (#5233)
+
+It doesn't really add much value in normal operation and just spams the log.
+(cherry picked from commit 52e634271fe96ec23a22705ffb87df59a09d1618)
+---
+ src/resolve/resolved-dns-stub.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/resolve/resolved-dns-stub.c b/src/resolve/resolved-dns-stub.c
+index 29c8d2b..77ee7e9 100644
+--- a/src/resolve/resolved-dns-stub.c
++++ b/src/resolve/resolved-dns-stub.c
+@@ -360,7 +360,7 @@ static void dns_stub_process_query(Manager *m, DnsStream *s, DnsPacket *p) {
+ goto fail;
+ }
+
+- log_info("Processing query...");
++ log_debug("Processing query...");
+ return;
+
+ fail:
diff --git a/debian/patches/rules-allow-SPARC-vdisk-devices-when-identifying-CD-drive.patch b/debian/patches/rules-allow-SPARC-vdisk-devices-when-identifying-CD-drive.patch
new file mode 100644
index 0000000..d0b5fd9
--- /dev/null
+++ b/debian/patches/rules-allow-SPARC-vdisk-devices-when-identifying-CD-drive.patch
@@ -0,0 +1,22 @@
+From: John Paul Adrian Glaubitz <glaubitz at physik.fu-berlin.de>
+Date: Mon, 20 Mar 2017 11:22:54 +0100
+Subject: rules: allow SPARC vdisk devices when identifying CD drives (#5599)
+
+(cherry picked from commit 7c1ebe99b68ef232bc50e99f2350ebf5f4e846e7)
+---
+ rules/60-cdrom_id.rules | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rules/60-cdrom_id.rules b/rules/60-cdrom_id.rules
+index 5c3b52e..56fe7c9 100644
+--- a/rules/60-cdrom_id.rules
++++ b/rules/60-cdrom_id.rules
+@@ -2,7 +2,7 @@
+
+ ACTION=="remove", GOTO="cdrom_end"
+ SUBSYSTEM!="block", GOTO="cdrom_end"
+-KERNEL!="sr[0-9]*|xvd*", GOTO="cdrom_end"
++KERNEL!="sr[0-9]*|vdisk*|xvd*", GOTO="cdrom_end"
+ ENV{DEVTYPE}!="disk", GOTO="cdrom_end"
+
+ # unconditionally tag device as CDROM
diff --git a/debian/patches/series b/debian/patches/series
index 76c744f..7c301cd 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -50,6 +50,15 @@ resolved-fix-NSEC-proofs-for-missing-TLDs.patch
automount-if-an-automount-unit-is-masked-don-t-react-to-a.patch
resolved-add-the-new-KSK-to-the-built-in-resolved-trust-a.patch
zsh-completion-_journalctl-fixes-5165.patch
+udev-Use-parent-bus-id-for-virtio-disk-builtin-path-id-55.patch
+udev-fix-id_net_name_path-for-virtio-ccw-interfaces-5357.patch
+Avoid-strict-DM-interface-version-dependencies-5519.patch
+networkd-fix-size-of-MTUBytes-so-that-it-does-not-overwri.patch
+resolved-downgrade-processing-query.-message-to-debug-523.patch
+units-do-not-throw-a-warning-in-emergency-mode-if-plymout.patch
+units-apply-plymouth-warning-fix-to-in-rescue-mode-as-wel.patch
+rules-allow-SPARC-vdisk-devices-when-identifying-CD-drive.patch
+Adjust-pkgconfig-files-to-point-at-rootlibdir-4584.patch
debian/Use-Debian-specific-config-files.patch
debian/don-t-try-to-start-autovt-units-when-not-running-wit.patch
debian/Make-logind-hostnamed-localed-timedated-D-Bus-activa.patch
@@ -73,3 +82,4 @@ debian/Revert-core-set-RLIMIT_CORE-to-unlimited-by-default.patch
debian/Revert-core-enable-TasksMax-for-all-services-by-default-a.patch
debian/Let-graphical-session-pre.target-be-manually-started.patch
debian/Add-env-variable-for-machine-ID-path.patch
+cryptsetup-generator-run-cryptsetup-service-before-swap-u.patch
diff --git a/debian/patches/udev-Use-parent-bus-id-for-virtio-disk-builtin-path-id-55.patch b/debian/patches/udev-Use-parent-bus-id-for-virtio-disk-builtin-path-id-55.patch
new file mode 100644
index 0000000..bc608d5
--- /dev/null
+++ b/debian/patches/udev-Use-parent-bus-id-for-virtio-disk-builtin-path-id-55.patch
@@ -0,0 +1,62 @@
+From: Viktor Mihajlovski <mihajlov at linux.vnet.ibm.com>
+Date: Wed, 1 Mar 2017 21:30:17 +0100
+Subject: udev: Use parent bus id for virtio disk builtin path-id (#5500)
+
+The builtin path id for virtio block devices has been changed
+to use the bus id without a prefix "virtio-pci" to be
+compatible with all virtio transport types.
+
+In order to not break existing setups, the by-path symlinks for
+virtio block devices on the PCI bus are reintroduced by udev rules.
+The virtio-pci symlinks are considered to be deprecated and
+should be replaced by the native PCI symlinks.
+
+Example output for a virtio disk in PCI slot 7:
+ $ ls /dev/disk/by-path
+ pci-0000:00:07.0
+ pci-0000:00:07.0-part1
+ virtio-pci-0000:00:07.0
+ virtio-pci-0000:00:07.0-part1
+
+See also
+[1] https://lists.freedesktop.org/archives/systemd-devel/2017-February/038326.html
+[2] https://lists.freedesktop.org/archives/systemd-devel/2017-March/038397.html
+
+This reverts f073b1b but keeps the same symlinks for compatibility.
+---
+ rules/60-persistent-storage.rules | 4 ++++
+ src/udev/udev-builtin-path_id.c | 5 +----
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
+index a93a342..baf341d 100644
+--- a/rules/60-persistent-storage.rules
++++ b/rules/60-persistent-storage.rules
+@@ -66,6 +66,10 @@ ENV{DEVTYPE}=="disk", DEVPATH!="*/virtual/*", IMPORT{builtin}="path_id"
+ ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
+ ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
+
++# legacy virtio-pci by-path links (deprecated)
++KERNEL=="vd*[!0-9]", ENV{ID_PATH}=="pci-*", SYMLINK+="disk/by-path/virtio-$env{ID_PATH}"
++KERNEL=="vd*[0-9]", ENV{ID_PATH}=="pci-*", SYMLINK+="disk/by-path/virtio-$env{ID_PATH}-part%n"
++
+ # probe filesystem metadata of optical drives which have a media inserted
+ KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="?*", \
+ IMPORT{builtin}="blkid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}"
+diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
+index 1825ee7..e55b468 100644
+--- a/src/udev/udev-builtin-path_id.c
++++ b/src/udev/udev-builtin-path_id.c
+@@ -664,11 +664,8 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool
+ parent = skip_subsystem(parent, "xen");
+ supported_parent = true;
+ } else if (streq(subsys, "virtio")) {
+- while (parent && streq_ptr("virtio", udev_device_get_subsystem(parent)))
+- parent = udev_device_get_parent(parent);
+- path_prepend(&path, "virtio-pci-%s", udev_device_get_sysname(parent));
++ parent = skip_subsystem(parent, "virtio");
+ supported_transport = true;
+- supported_parent = true;
+ } else if (streq(subsys, "scm")) {
+ path_prepend(&path, "scm-%s", udev_device_get_sysname(parent));
+ parent = skip_subsystem(parent, "scm");
diff --git a/debian/patches/udev-fix-id_net_name_path-for-virtio-ccw-interfaces-5357.patch b/debian/patches/udev-fix-id_net_name_path-for-virtio-ccw-interfaces-5357.patch
new file mode 100644
index 0000000..225774b
--- /dev/null
+++ b/debian/patches/udev-fix-id_net_name_path-for-virtio-ccw-interfaces-5357.patch
@@ -0,0 +1,165 @@
+From: Viktor Mihajlovski <mihajlov at linux.vnet.ibm.com>
+Date: Fri, 17 Feb 2017 16:18:01 +0100
+Subject: udev: fix id_net_name_path for virtio-ccw interfaces (#5357)
+
+The CCW id_net_name_path detection didn't account for virtio
+interfaces on the CCW bus. As a result the default interface
+names for virtio-ccw interfaces would use the old eth<x>
+format instead of enc<busid>.
+
+Since virtio-pci interface naming follows the naming rules
+of the parent bus, the names_ccw() logic was changed to apply
+the CCW interface naming rules to virtio interfaces as well,
+e.g. enc2000 for an interface with a CCW bus id 0.0.2000.
+As virtio interfaces are apt to get the otherwise unusual
+CCW bus id 0.0.0000, the last '0' is now preserved in this
+case.
+
+The virtio subsystem skipping loop has been moved from
+names_pci() into a function skip_virtio() that can be reused
+for all bus types with virtio network devices.
+
+Since virtio-ccw interfaces use single CCW addresses the ccwgroup
+requirement was relaxed and the C definitions were changed
+accordingly.
+---
+ src/udev/udev-builtin-net_id.c | 58 ++++++++++++++++++++++++++++--------------
+ 1 file changed, 39 insertions(+), 19 deletions(-)
+
+diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
+index fe9d6f4..9d6c6aa 100644
+--- a/src/udev/udev-builtin-net_id.c
++++ b/src/udev/udev-builtin-net_id.c
+@@ -34,7 +34,8 @@
+ *
+ * Type of names:
+ * b<number> — BCMA bus core number
+- * c<bus_id> — CCW bus group name, without leading zeros [s390]
++ * c<bus_id> — bus id of a grouped CCW or CCW device,
++ * with all leading zeros stripped [s390]
+ * o<index>[n<phys_port_name>|d<dev_port>]
+ * — on-board device index number
+ * s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
+@@ -87,6 +88,11 @@
+ * /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/net/enp0s29u1u2
+ * ID_NET_NAME_MAC=enxd626b3450fb5
+ * ID_NET_NAME_PATH=enp0s29u1u2
++ *
++ * s390 grouped CCW interface:
++ * /sys/devices/css0/0.0.0007/0.0.f5f0/group_device/net/encf5f0
++ * ID_NET_NAME_MAC=enx026d3c00000a
++ * ID_NET_NAME_PATH=encf5f0
+ */
+
+ #include <errno.h>
+@@ -114,7 +120,7 @@ enum netname_type{
+ NET_USB,
+ NET_BCMA,
+ NET_VIRTIO,
+- NET_CCWGROUP,
++ NET_CCW,
+ };
+
+ struct netnames {
+@@ -131,9 +137,21 @@ struct netnames {
+
+ char usb_ports[IFNAMSIZ];
+ char bcma_core[IFNAMSIZ];
+- char ccw_group[IFNAMSIZ];
++ char ccw_busid[IFNAMSIZ];
+ };
+
++/* skip intermediate virtio devices */
++static struct udev_device *skip_virtio(struct udev_device *dev) {
++ struct udev_device *parent = dev;
++
++ /* there can only ever be one virtio bus per parent device, so we can
++ safely ignore any virtio buses. see
++ <http://lists.linuxfoundation.org/pipermail/virtualization/2015-August/030331.html> */
++ while (parent && streq_ptr("virtio", udev_device_get_subsystem(parent)))
++ parent = udev_device_get_parent(parent);
++ return parent;
++}
++
+ /* retrieve on-board index number and label from firmware */
+ static int dev_pci_onboard(struct udev_device *dev, struct netnames *names) {
+ unsigned dev_port = 0;
+@@ -307,12 +325,8 @@ static int names_pci(struct udev_device *dev, struct netnames *names) {
+ assert(names);
+
+ parent = udev_device_get_parent(dev);
+-
+- /* there can only ever be one virtio bus per parent device, so we can
+- safely ignore any virtio buses. see
+- <http://lists.linuxfoundation.org/pipermail/virtualization/2015-August/030331.html> */
+- while (parent && streq_ptr("virtio", udev_device_get_subsystem(parent)))
+- parent = udev_device_get_parent(parent);
++ /* skip virtio subsystem if present */
++ parent = skip_virtio(parent);
+
+ if (!parent)
+ return -ENOENT;
+@@ -413,21 +427,26 @@ static int names_ccw(struct udev_device *dev, struct netnames *names) {
+ struct udev_device *cdev;
+ const char *bus_id;
+ size_t bus_id_len;
++ size_t bus_id_start;
+ int rc;
++ char *subsys;
+
+ assert(dev);
+ assert(names);
+
+ /* Retrieve the associated CCW device */
+ cdev = udev_device_get_parent(dev);
++ /* skip virtio subsystem if present */
++ cdev = skip_virtio(cdev);
+ if (!cdev)
+ return -ENOENT;
+
+- /* Network devices are always grouped CCW devices */
+- if (!streq_ptr("ccwgroup", udev_device_get_subsystem(cdev)))
++ /* Network devices are either single or grouped CCW devices */
++ subsys = udev_device_get_subsystem(cdev);
++ if (!STRPTR_IN_SET(subsys, "ccwgroup", "ccw"))
+ return -ENOENT;
+
+- /* Retrieve bus-ID of the grouped CCW device. The bus-ID uniquely
++ /* Retrieve bus-ID of the CCW device. The bus-ID uniquely
+ * identifies the network device on the Linux on System z channel
+ * subsystem. Note that the bus-ID contains lowercase characters.
+ */
+@@ -446,14 +465,15 @@ static int names_ccw(struct udev_device *dev, struct netnames *names) {
+ /* Strip leading zeros from the bus id for aesthetic purposes. This
+ * keeps the ccw names stable, yet much shorter in general case of
+ * bus_id 0.0.0600 -> 600. This is similar to e.g. how PCI domain is
+- * not prepended when it is zero.
++ * not prepended when it is zero. Preserve the last 0 for 0.0.0000.
+ */
+- bus_id += strspn(bus_id, ".0");
++ bus_id_start = strspn(bus_id, ".0");
++ bus_id += bus_id_start < bus_id_len ? bus_id_start : bus_id_len - 1;
+
+ /* Store the CCW bus-ID for use as network device name */
+- rc = snprintf(names->ccw_group, sizeof(names->ccw_group), "c%s", bus_id);
+- if (rc >= 0 && rc < (int)sizeof(names->ccw_group))
+- names->type = NET_CCWGROUP;
++ rc = snprintf(names->ccw_busid, sizeof(names->ccw_busid), "c%s", bus_id);
++ if (rc >= 0 && rc < (int)sizeof(names->ccw_busid))
++ names->type = NET_CCW;
+ return 0;
+ }
+
+@@ -563,10 +583,10 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool
+
+ /* get path names for Linux on System z network devices */
+ err = names_ccw(dev, &names);
+- if (err >= 0 && names.type == NET_CCWGROUP) {
++ if (err >= 0 && names.type == NET_CCW) {
+ char str[IFNAMSIZ];
+
+- if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_group) < (int)sizeof(str))
++ if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_busid) < (int)sizeof(str))
+ udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str);
+ goto out;
+ }
diff --git a/debian/patches/units-apply-plymouth-warning-fix-to-in-rescue-mode-as-wel.patch b/debian/patches/units-apply-plymouth-warning-fix-to-in-rescue-mode-as-wel.patch
new file mode 100644
index 0000000..c20ee90
--- /dev/null
+++ b/debian/patches/units-apply-plymouth-warning-fix-to-in-rescue-mode-as-wel.patch
@@ -0,0 +1,23 @@
+From: Daniel Molkentin <daniel at molkentin.de>
+Date: Tue, 21 Mar 2017 03:26:05 +0100
+Subject: units: apply plymouth warning fix to in rescue mode as well (#5615)
+
+Follow up for #5528.
+(cherry picked from commit 03bf096ba283bfcba0725375f152a823e998cdbc)
+---
+ units/rescue.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/units/rescue.service.in b/units/rescue.service.in
+index 5feff69..dc6d14b 100644
+--- a/units/rescue.service.in
++++ b/units/rescue.service.in
+@@ -16,7 +16,7 @@ Before=shutdown.target
+ [Service]
+ Environment=HOME=/root
+ WorkingDirectory=-/root
+-ExecStartPre=-/bin/plymouth --wait quit
++ExecStartPre=-/bin/sh -c "[ -x /bin/plymouth ] && /bin/plymouth --wait quit"
+ ExecStartPre=-/bin/echo -e 'You are in rescue mode. After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.'
+ ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default"
+ Type=idle
diff --git a/debian/patches/units-do-not-throw-a-warning-in-emergency-mode-if-plymout.patch b/debian/patches/units-do-not-throw-a-warning-in-emergency-mode-if-plymout.patch
new file mode 100644
index 0000000..7cffac5
--- /dev/null
+++ b/debian/patches/units-do-not-throw-a-warning-in-emergency-mode-if-plymout.patch
@@ -0,0 +1,26 @@
+From: Daniel Molkentin <daniel at molkentin.de>
+Date: Fri, 17 Mar 2017 12:13:19 +0100
+Subject: units: do not throw a warning in emergency mode if plymouth is not
+ installed (#5528)
+
+Ideally, plymouth should only be referenced via dependencies,
+not ExecStartPre's. This at least avoids the confusing error message
+on minimal installations that do not carry plymouth.
+(cherry picked from commit 7e3ba389191dbc241e05f4d134460bbb832ed60c)
+---
+ units/emergency.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/units/emergency.service.in b/units/emergency.service.in
+index da68eb8..9f60931 100644
+--- a/units/emergency.service.in
++++ b/units/emergency.service.in
+@@ -17,7 +17,7 @@ Before=shutdown.target
+ [Service]
+ Environment=HOME=/root
+ WorkingDirectory=-/root
+-ExecStartPre=-/bin/plymouth --wait quit
++ExecStartPre=-/bin/sh -c "[ -x /bin/plymouth ] && /bin/plymouth --wait quit"
+ ExecStartPre=-/bin/echo -e 'You are in emergency mode. After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.'
+ ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default"
+ Type=idle
diff --git a/debian/rules b/debian/rules
index 21108ae..f49f71e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -128,9 +128,9 @@ CONFFLAGS = \
--with-system-uid-max=999 \
--with-system-gid-max=999
-# resolved's DNSSEC support is still not mature enough, disable for stable
-# Debian/Ubuntu releases
-CONFFLAGS += $(shell grep -q yakkety /etc/os-release && echo --with-default-dnssec=no)
+# resolved's DNSSEC support is still not mature enough, don't enable it by
+# default on stable Debian/Ubuntu releases
+CONFFLAGS += $(shell grep -qE 'stretch|yakkety|zesty' /etc/os-release && echo --with-default-dnssec=no)
CONFFLAGS_deb = \
--enable-selinux \
diff --git a/debian/udev.install b/debian/udev.install
index e859b97..b0ab649 100644
--- a/debian/udev.install
+++ b/debian/udev.install
@@ -9,6 +9,7 @@ lib/systemd/systemd-udevd
bin/udevadm
bin/systemd-hwdb
usr/share/man/man5/udev.conf.5
+usr/share/man/man5/systemd.link.5
usr/share/man/man7/hwdb.7
usr/share/man/man7/udev.7
usr/share/man/man8/systemd-hwdb*
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-systemd-maintainers/attachments/20170329/2367de31/attachment-0002.sig>
More information about the Pkg-systemd-maintainers
mailing list