[arch-commits] Commit in systemd/trunk (3 files)
Dave Reisner
dreisner at archlinux.org
Wed Oct 29 23:32:10 UTC 2014
Date: Thursday, October 30, 2014 @ 00:32:10
Author: dreisner
Revision: 225459
upgpkg: systemd 217-1
- use Arch NTP server pool
- drop --with-firmware-path (since udev fw loader is gone)
- add libidn as a dependency for systemd-resolved
- add arch=('any') for systemd-sysvcompat
- backport fix for systemd-nspawn failures with --bind
Added:
systemd/trunk/0001-nspawn-ignore-EEXIST-when-creating-mount-point.patch
Modified:
systemd/trunk/PKGBUILD
Deleted:
systemd/trunk/0001-networkd-properly-track-addresses-when-first-added.patch
---------------------------------------------------------------+
0001-networkd-properly-track-addresses-when-first-added.patch | 104 ----------
0001-nspawn-ignore-EEXIST-when-creating-mount-point.patch | 33 +++
PKGBUILD | 26 +-
3 files changed, 52 insertions(+), 111 deletions(-)
Deleted: 0001-networkd-properly-track-addresses-when-first-added.patch
===================================================================
--- 0001-networkd-properly-track-addresses-when-first-added.patch 2014-10-29 23:30:40 UTC (rev 225458)
+++ 0001-networkd-properly-track-addresses-when-first-added.patch 2014-10-29 23:32:10 UTC (rev 225459)
@@ -1,104 +0,0 @@
-From 4958aee4977f325be19f0e1e4b424922c3cada5f Mon Sep 17 00:00:00 2001
-From: Tom Gundersen <teg at jklm.no>
-Date: Thu, 3 Jul 2014 22:47:51 +0200
-Subject: [PATCH] networkd: properly track addresses when first added
-
-When doing a NEWADDR, the reply we get back is the NEWADDR itself, rather
-than just an empty ack (unlike how NEWLINK works). For this reason, the
-process that did the NEWADDR does not get the broadcast message.
-
-We were only listening for broadcast messages, and hence not tracking the
-addresses we added ourselves. This went unnoticed as the kernel will usually
-send NEWADDR messages from time to time anyway, so things would mostly work,
-but in the worst case we would not notice that a routable address was available
-and consider ourselves offline.
----
- src/network/networkd-link.c | 54 +++++++++++++++++++++++++--------------------
- 1 file changed, 30 insertions(+), 24 deletions(-)
-
-diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
-index 961c1ab..6257372 100644
---- a/src/network/networkd-link.c
-+++ b/src/network/networkd-link.c
-@@ -599,10 +599,35 @@ static int route_drop_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata)
- return 0;
- }
-
-+static int link_get_address_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
-+ _cleanup_link_unref_ Link *link = userdata;
-+ int r;
-+
-+ assert(rtnl);
-+ assert(m);
-+ assert(link);
-+ assert(link->manager);
-+
-+ for (; m; m = sd_rtnl_message_next(m)) {
-+ r = sd_rtnl_message_get_errno(m);
-+ if (r < 0) {
-+ log_debug_link(link, "getting address failed: %s", strerror(-r));
-+ continue;
-+ }
-+
-+ r = link_rtnl_process_address(rtnl, m, link->manager);
-+ if (r < 0)
-+ log_warning_link(link, "could not process address: %s", strerror(-r));
-+ }
-+
-+ return 1;
-+}
-+
- static int address_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- _cleanup_link_unref_ Link *link = userdata;
- int r;
-
-+ assert(rtnl);
- assert(m);
- assert(link);
- assert(link->ifname);
-@@ -623,6 +648,11 @@ static int address_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- link->ifname, strerror(-r),
- "ERRNO=%d", -r,
- NULL);
-+ if (r >= 0) {
-+ /* calling handler directly so take a ref */
-+ link_ref(link);
-+ link_get_address_handler(rtnl, m, link);
-+ }
-
- if (link->addr_messages == 0) {
- log_debug_link(link, "addresses set");
-@@ -2233,30 +2263,6 @@ int link_rtnl_process_address(sd_rtnl *rtnl, sd_rtnl_message *message, void *use
- return 1;
- }
-
--static int link_get_address_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
-- _cleanup_link_unref_ Link *link = userdata;
-- int r;
--
-- assert(rtnl);
-- assert(m);
-- assert(link);
-- assert(link->manager);
--
-- for (; m; m = sd_rtnl_message_next(m)) {
-- r = sd_rtnl_message_get_errno(m);
-- if (r < 0) {
-- log_debug_link(link, "getting address failed: %s", strerror(-r));
-- continue;
-- }
--
-- r = link_rtnl_process_address(rtnl, m, link->manager);
-- if (r < 0)
-- log_warning_link(link, "could not process address: %s", strerror(-r));
-- }
--
-- return 1;
--}
--
- int link_add(Manager *m, sd_rtnl_message *message, Link **ret) {
- Link *link;
- _cleanup_rtnl_message_unref_ sd_rtnl_message *req = NULL;
---
-2.0.1
-
Added: 0001-nspawn-ignore-EEXIST-when-creating-mount-point.patch
===================================================================
--- 0001-nspawn-ignore-EEXIST-when-creating-mount-point.patch (rev 0)
+++ 0001-nspawn-ignore-EEXIST-when-creating-mount-point.patch 2014-10-29 23:32:10 UTC (rev 225459)
@@ -0,0 +1,33 @@
+From 1ab19cb167b32967556eefd8f6d3df0e3de7d67d Mon Sep 17 00:00:00 2001
+From: Dave Reisner <dreisner at archlinux.org>
+Date: Wed, 29 Oct 2014 13:32:43 -0400
+Subject: [PATCH] nspawn: ignore EEXIST when creating mount point
+
+A combination of commits f3c80515c and 79d80fc14 cause nspawn to
+silently fail with a commandline such as:
+
+ # systemd-nspawn -D /build/extra-x86_64 --bind=/usr
+
+strace shows the culprit:
+
+ [pid 27868] writev(2, [{"Failed to create mount point /build/extra-x86_64/usr: File exists", 82}, {"\n", 1}], 2) = 83
+---
+ src/nspawn/nspawn.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
+index b6d9bc6..d88987a 100644
+--- a/src/nspawn/nspawn.c
++++ b/src/nspawn/nspawn.c
+@@ -758,7 +758,7 @@ static int mount_binds(const char *dest, char **l, bool ro) {
+ * and char devices. */
+ if (S_ISDIR(source_st.st_mode)) {
+ r = mkdir_label(where, 0755);
+- if (r < 0) {
++ if (r < 0 && errno != EEXIST) {
+ log_error("Failed to create mount point %s: %s", where, strerror(-r));
+
+ return r;
+--
+2.1.2
+
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2014-10-29 23:30:40 UTC (rev 225458)
+++ PKGBUILD 2014-10-29 23:32:10 UTC (rev 225459)
@@ -3,27 +3,38 @@
pkgbase=systemd
pkgname=('systemd' 'libsystemd' 'systemd-sysvcompat')
-pkgver=216
-pkgrel=3
+pkgver=217
+pkgrel=1
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' 'libgcrypt' 'libmicrohttpd' 'libxslt'
- 'util-linux' 'linux-api-headers' 'pam' 'python' 'python-lxml'
+ 'gtk-doc' 'intltool' 'kmod' 'libcap' 'libidn' 'libgcrypt' 'libmicrohttpd'
+ 'libxslt' 'util-linux' 'linux-api-headers' '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'
'initcpio-hook-udev'
'initcpio-install-systemd'
'initcpio-install-udev')
-md5sums=('04fda588a04f549da0f397dce3ae6a39'
+md5sums=('e68dbff3cc19f66e341572d9fb2ffa89'
+ 'ca9e33118fd8d456563854d95512a577'
'29245f7a240bfba66e2b1783b63b6b40'
'66cca7318e13eaf37c5b7db2efa69846'
'bde43090d4ac0ef048e3eaee8202a407')
+
+prepare() {
+ cd "$pkgname-$pkgver"
+
+ patch -Np1 <../0001-nspawn-ignore-EEXIST-when-creating-mount-point.patch
+}
+
build() {
cd "$pkgname-$pkgver"
+ local timeservers=({0..3}.arch.pool.ntp.org)
+
./configure \
--libexecdir=/usr/lib \
--localstatedir=/var \
@@ -36,7 +47,7 @@
--disable-kdbus \
--with-sysvinit-path= \
--with-sysvrcnd-path= \
- --with-firmware-path="/usr/lib/firmware/updates:/usr/lib/firmware"
+ --with-ntp-servers="${timeservers[*]}"
make
}
@@ -45,7 +56,7 @@
pkgdesc="system and service manager"
license=('GPL2' 'LGPL2.1' 'MIT')
depends=('acl' 'bash' 'dbus' 'glib2' 'kbd' 'kmod' 'hwids' 'libcap' 'libgcrypt'
- 'libsystemd' 'pam' 'libseccomp' 'util-linux' 'xz')
+ 'libsystemd' 'libidn' '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')
@@ -147,6 +158,7 @@
groups=('base')
conflicts=('sysvinit')
depends=('systemd')
+ arch=('any')
mv "$srcdir/_sysvcompat"/* "$pkgdir"
More information about the arch-commits
mailing list