[arch-commits] Commit in systemd/trunk (5 files)
Dave Reisner
dreisner at archlinux.org
Fri Oct 31 13:56:06 UTC 2014
Date: Friday, October 31, 2014 @ 14:56:06
Author: dreisner
Revision: 225515
upgpkg: systemd 217-2
- re-enable lz4 support
- add resume generator to systemd initramfs hook
- backport fix for enabling templated units (FS#42616)
- backport fix for leaking FD on DHCP renew (FS#42214)
- backport fix for broken nspawn with --bind/--bind-ro
- backport fix for removing non-existing matches in sd-bus
Added:
systemd/trunk/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch
systemd/trunk/0001-sd-dhcp-client-clean-up-raw-socket-sd_event_source-w.patch
systemd/trunk/0001-shared-install-avoid-prematurely-rejecting-missing-u.patch
Modified:
systemd/trunk/PKGBUILD
systemd/trunk/initcpio-install-systemd
-----------------------------------------------------------------+
0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch | 25 ++++++
0001-sd-dhcp-client-clean-up-raw-socket-sd_event_source-w.patch | 31 +++++++
0001-shared-install-avoid-prematurely-rejecting-missing-u.patch | 39 ++++++++++
PKGBUILD | 20 +++--
initcpio-install-systemd | 17 ++--
5 files changed, 121 insertions(+), 11 deletions(-)
Added: 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch
===================================================================
--- 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch (rev 0)
+++ 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch 2014-10-31 13:56:06 UTC (rev 225515)
@@ -0,0 +1,25 @@
+From ef7b6c0190fefaacf6d8f8e1a6dda4ba8b98091b Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Wed, 29 Oct 2014 17:58:43 +0100
+Subject: [PATCH] sd-bus: properly handle removals of non-existing matches
+
+---
+ src/libsystemd/sd-bus/bus-match.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libsystemd/sd-bus/bus-match.c b/src/libsystemd/sd-bus/bus-match.c
+index 18afe0f..5658c61 100644
+--- a/src/libsystemd/sd-bus/bus-match.c
++++ b/src/libsystemd/sd-bus/bus-match.c
+@@ -537,7 +537,7 @@ static int bus_match_find_compare_value(
+ else if (BUS_MATCH_CAN_HASH(t))
+ n = hashmap_get(c->compare.children, value_str);
+ else {
+- for (n = c->child; !value_node_same(n, t, value_u8, value_str); n = n->next)
++ for (n = c->child; n && !value_node_same(n, t, value_u8, value_str); n = n->next)
+ ;
+ }
+
+--
+2.1.3
+
Added: 0001-sd-dhcp-client-clean-up-raw-socket-sd_event_source-w.patch
===================================================================
--- 0001-sd-dhcp-client-clean-up-raw-socket-sd_event_source-w.patch (rev 0)
+++ 0001-sd-dhcp-client-clean-up-raw-socket-sd_event_source-w.patch 2014-10-31 13:56:06 UTC (rev 225515)
@@ -0,0 +1,31 @@
+From d5a248dbe933c5cbe3ba3d0c5eb8a035018ba6af Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw at redhat.com>
+Date: Thu, 30 Oct 2014 14:23:00 -0500
+Subject: [PATCH] sd-dhcp-client: clean up raw socket sd_event_source when
+ creating new UDP socket
+
+The raw socket sd_event_source used for DHCP server solicitations
+was simply dropped on the floor when creating the new UDP socket
+after a lease has been acquired. Clean it up properly so we're
+not still listening and responding to events on it.
+---
+ src/libsystemd-network/sd-dhcp-client.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c
+index 0eba4c3..1f7f238 100644
+--- a/src/libsystemd-network/sd-dhcp-client.c
++++ b/src/libsystemd-network/sd-dhcp-client.c
+@@ -1269,6 +1269,9 @@ static int client_handle_message(sd_dhcp_client *client, DHCPMessage *message,
+ if (r >= 0) {
+ client->timeout_resend =
+ sd_event_source_unref(client->timeout_resend);
++ client->receive_message =
++ sd_event_source_unref(client->receive_message);
++ client->fd = asynchronous_close(client->fd);
+
+ if (IN_SET(client->state, DHCP_STATE_REQUESTING,
+ DHCP_STATE_REBOOTING))
+--
+2.1.3
+
Added: 0001-shared-install-avoid-prematurely-rejecting-missing-u.patch
===================================================================
--- 0001-shared-install-avoid-prematurely-rejecting-missing-u.patch (rev 0)
+++ 0001-shared-install-avoid-prematurely-rejecting-missing-u.patch 2014-10-31 13:56:06 UTC (rev 225515)
@@ -0,0 +1,39 @@
+From 0ffce503cd6e5a5ff5ba5cd1cc23684cfb8bb9e3 Mon Sep 17 00:00:00 2001
+From: Dave Reisner <dreisner at archlinux.org>
+Date: Thu, 30 Oct 2014 20:12:05 -0400
+Subject: [PATCH] shared/install: avoid prematurely rejecting "missing" units
+
+f7101b7368df copied some logic to prevent enabling masked units, but
+also added a check which causes attempts to enable templated units to
+fail. Since we know the logic beyond this check will properly handle
+units which truly do not exist, we can rely on the unit file state
+comparison to suffice for expressing the intent of f7101b7368df.
+
+ref: https://bugs.archlinux.org/task/42616
+---
+ src/shared/install.c | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/src/shared/install.c b/src/shared/install.c
+index 035b44c..cab93e8 100644
+--- a/src/shared/install.c
++++ b/src/shared/install.c
+@@ -1620,12 +1620,10 @@ int unit_file_enable(
+ STRV_FOREACH(i, files) {
+ UnitFileState state;
+
++ /* We only want to know if this unit is masked, so we ignore
++ * errors from unit_file_get_state, deferring other checks.
++ * This allows templated units to be enabled on the fly. */
+ state = unit_file_get_state(scope, root_dir, *i);
+- if (state < 0) {
+- log_error("Failed to get unit file state for %s: %s", *i, strerror(-state));
+- return state;
+- }
+-
+ if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) {
+ log_error("Failed to enable unit: Unit %s is masked", *i);
+ return -ENOTSUP;
+--
+2.1.3
+
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2014-10-31 13:39:45 UTC (rev 225514)
+++ PKGBUILD 2014-10-31 13:56:06 UTC (rev 225515)
@@ -4,23 +4,29 @@
pkgbase=systemd
pkgname=('systemd' 'libsystemd' 'systemd-sysvcompat')
pkgver=217
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url="http://www.freedesktop.org/wiki/Software/systemd"
makedepends=('acl' 'cryptsetup' 'docbook-xsl' 'gobject-introspection' 'gperf'
'gtk-doc' 'intltool' 'kmod' 'libcap' 'libidn' 'libgcrypt' 'libmicrohttpd'
- 'libxslt' 'util-linux' 'linux-api-headers' 'pam' 'python' 'python-lxml'
- 'quota-tools' 'shadow' 'xz')
+ 'libxslt' 'util-linux' 'linux-api-headers' 'lz4' 'pam' 'python'
+ 'python-lxml' 'quota-tools' 'shadow' 'xz')
options=('strip' 'debug')
source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz"
'0001-nspawn-ignore-EEXIST-when-creating-mount-point.patch'
+ '0001-sd-dhcp-client-clean-up-raw-socket-sd_event_source-w.patch'
+ '0001-shared-install-avoid-prematurely-rejecting-missing-u.patch'
+ '0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch'
'initcpio-hook-udev'
'initcpio-install-systemd'
'initcpio-install-udev')
md5sums=('e68dbff3cc19f66e341572d9fb2ffa89'
'ca9e33118fd8d456563854d95512a577'
+ 'ade8c1b5b2c85d0a83b7bcf5aa6d131a'
+ '7aaf44ce842deb449fca0f2595bbc1e4'
+ '4adc3ddce027693bafa53089322e859b'
'29245f7a240bfba66e2b1783b63b6b40'
- '66cca7318e13eaf37c5b7db2efa69846'
+ '030a01fd468af520a749159b0a582eba'
'bde43090d4ac0ef048e3eaee8202a407')
@@ -28,6 +34,9 @@
cd "$pkgname-$pkgver"
patch -Np1 <../0001-nspawn-ignore-EEXIST-when-creating-mount-point.patch
+ patch -Np1 <../0001-sd-dhcp-client-clean-up-raw-socket-sd_event_source-w.patch
+ patch -Np1 <../0001-shared-install-avoid-prematurely-rejecting-missing-u.patch
+ patch -Np1 <../0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch
}
build() {
@@ -41,6 +50,7 @@
--sysconfdir=/etc \
--enable-introspection \
--enable-gtk-doc \
+ --enable-lz4 \
--enable-compat-libs \
--disable-audit \
--disable-ima \
@@ -56,7 +66,7 @@
pkgdesc="system and service manager"
license=('GPL2' 'LGPL2.1' 'MIT')
depends=('acl' 'bash' 'dbus' 'glib2' 'kbd' 'kmod' 'hwids' 'libcap' 'libgcrypt'
- 'libsystemd' 'libidn' 'pam' 'libseccomp' 'util-linux' 'xz')
+ 'libsystemd' 'libidn' 'lz4' 'pam' 'libseccomp' 'util-linux' 'xz')
provides=('nss-myhostname' "systemd-tools=$pkgver" "udev=$pkgver")
replaces=('nss-myhostname' 'systemd-tools' 'udev')
conflicts=('nss-myhostname' 'systemd-tools' 'udev')
Modified: initcpio-install-systemd
===================================================================
--- initcpio-install-systemd 2014-10-31 13:39:45 UTC (rev 225514)
+++ initcpio-install-systemd 2014-10-31 13:56:06 UTC (rev 225515)
@@ -99,13 +99,16 @@
add_binary /bin/mount
add_binary /usr/bin/kmod /usr/bin/modprobe
- # systemd
- add_binary /usr/lib/systemd/systemd /init
- add_binary /usr/bin/systemd-tmpfiles
+ map add_binary \
+ /usr/lib/systemd/systemd-hibernate-resume \
+ /usr/lib/systemd/system-generators/systemd-hibernate-resume-generator \
+ /usr/lib/systemd/systemd /init \
+ /usr/bin/systemd-tmpfiles
# generators
- add_file "/usr/lib/systemd/system-generators/systemd-fstab-generator"
- add_file "/usr/lib/systemd/system-generators/systemd-gpt-auto-generator"
+ map add_file \
+ /usr/lib/systemd/system-generators/systemd-fstab-generator \
+ /usr/lib/systemd/system-generators/systemd-gpt-auto-generator
# udev rules and systemd units
map add_udev_rule "$rules" \
@@ -113,7 +116,7 @@
60-persistent-storage.rules \
64-btrfs.rules \
80-drivers.rules \
- 99-systemd.rules \
+ 99-systemd.rules
map add_systemd_unit \
ctrl-alt-del.target \
@@ -126,8 +129,10 @@
initrd-udevadm-cleanup-db.service \
initrd.target \
kmod-static-nodes.service \
+ local-fs-pre.target \
sockets.target \
systemd-fsck at .service \
+ systemd-hibernate-resume at .service \
systemd-journald.service \
systemd-tmpfiles-setup-dev.service \
systemd-udev-trigger.service \
More information about the arch-commits
mailing list