[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