[arch-commits] Commit in lib32-systemd/repos/multilib-x86_64 (3 files)

Laurent Carlier lcarlier at nymeria.archlinux.org
Sun Jul 13 10:47:04 UTC 2014


    Date: Sunday, July 13, 2014 @ 12:47:04
  Author: lcarlier
Revision: 115648

archrelease: copy trunk to multilib-x86_64

Added:
  lib32-systemd/repos/multilib-x86_64/0001-networkd-properly-track-addresses-when-first-added.patch
    (from rev 115647, lib32-systemd/trunk/0001-networkd-properly-track-addresses-when-first-added.patch)
  lib32-systemd/repos/multilib-x86_64/PKGBUILD
    (from rev 115647, lib32-systemd/trunk/PKGBUILD)
Deleted:
  lib32-systemd/repos/multilib-x86_64/PKGBUILD

---------------------------------------------------------------+
 0001-networkd-properly-track-addresses-when-first-added.patch |  104 +++++++
 PKGBUILD                                                      |  136 +++++-----
 2 files changed, 176 insertions(+), 64 deletions(-)

Copied: lib32-systemd/repos/multilib-x86_64/0001-networkd-properly-track-addresses-when-first-added.patch (from rev 115647, lib32-systemd/trunk/0001-networkd-properly-track-addresses-when-first-added.patch)
===================================================================
--- 0001-networkd-properly-track-addresses-when-first-added.patch	                        (rev 0)
+++ 0001-networkd-properly-track-addresses-when-first-added.patch	2014-07-13 10:47:04 UTC (rev 115648)
@@ -0,0 +1,104 @@
+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
+

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2014-07-13 10:46:56 UTC (rev 115647)
+++ PKGBUILD	2014-07-13 10:47:04 UTC (rev 115648)
@@ -1,64 +0,0 @@
-# $Id$
-# Maintainer: Dave Reisner <dreisner at archlinux.org>
-# Maintainer: Tom Gundersen <teg at jklm.no>
-
-pkgname=lib32-systemd
-_pkgbasename=systemd
-pkgver=214
-pkgrel=1
-pkgdesc="system and service manager (32-bit)"
-arch=('x86_64')
-url="http://www.freedesktop.org/wiki/Software/systemd"
-license=('GPL2' 'LGPL2.1' 'MIT')
-depends=('lib32-glib2' 'lib32-libgcrypt' 'lib32-xz' 'systemd')
-makedepends=('lib32-gcc-libs' 'gcc-multilib' 'lib32-libcap' 'lib32-acl' 
-             'intltool' 'gperf')
-source=("http://www.freedesktop.org/software/$_pkgbasename/$_pkgbasename-$pkgver.tar.xz")
-md5sums=('eac4f9fc5bd18a0efc3fc20858baacf3')
-
-build() {
-  export CC="gcc -m32"
-  export CXX="g++ -m32"
-  export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
-
-  cd "${srcdir}/systemd-${pkgver}"
-
-  # LTO currently breaks the build because of libtool failures
-  CFLAGS+=' -fno-lto'
-
-  ./configure \
-    --libexecdir=/usr/lib32 \
-    --libdir=/usr/lib32 \
-    --localstatedir=/var \
-    --sysconfdir=/etc \
-    --enable-compat-libs \
-    --disable-audit \
-    --disable-tests \
-    --disable-ima \
-    --disable-kdbus \
-    --disable-seccomp \
-    --disable-pam \
-    --disable-kmod \
-    --disable-networkd \
-    --disable-blkid \
-    --without-python \
-    --disable-libcryptsetup \
-    --with-sysvinit-path= \
-    --with-sysvrcnd-path= \
-    --with-firmware-path="/usr/lib/firmware/updates:/usr/lib/firmware"
-
-  make
-}
-
-package() {
-  cd "${srcdir}/systemd-${pkgver}"
-    
-  make DESTDIR="$pkgdir" install
-    
-  rm -rf "${pkgdir}"/{etc,var}
-  rm -rf "${pkgdir}"/usr/{bin,include,lib,share}
-  rm -rf "${pkgdir}"/usr/lib32/libnss*
-
-  install -m755 -d "${pkgdir}/usr/share/licenses"
-  ln -s systemd "$pkgdir/usr/share/licenses/lib32-systemd"
-}

Copied: lib32-systemd/repos/multilib-x86_64/PKGBUILD (from rev 115647, lib32-systemd/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2014-07-13 10:47:04 UTC (rev 115648)
@@ -0,0 +1,72 @@
+# $Id$
+# Maintainer: Dave Reisner <dreisner at archlinux.org>
+# Maintainer: Tom Gundersen <teg at jklm.no>
+
+pkgname=lib32-systemd
+_pkgbasename=systemd
+pkgver=215
+pkgrel=1
+pkgdesc="system and service manager (32-bit)"
+arch=('x86_64')
+url="http://www.freedesktop.org/wiki/Software/systemd"
+license=('GPL2' 'LGPL2.1' 'MIT')
+depends=('lib32-glib2' 'lib32-libgcrypt' 'lib32-xz' 'systemd')
+makedepends=('lib32-gcc-libs' 'gcc-multilib' 'lib32-libcap' 'lib32-acl' 
+             'intltool' 'gperf')
+source=("http://www.freedesktop.org/software/$_pkgbasename/$_pkgbasename-$pkgver.tar.xz"
+	'0001-networkd-properly-track-addresses-when-first-added.patch')
+md5sums=('d2603e9fffd8b18d242543e36f2e7d31'
+	 '2d237a277a12b3801c88d159d64a7413')
+
+prepare() {
+  cd "${srcdir}/systemd-${pkgver}"
+
+  patch -Np1 <"$srcdir"/0001-networkd-properly-track-addresses-when-first-added.patch
+}
+
+build() {
+  export CC="gcc -m32"
+  export CXX="g++ -m32"
+  export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+  cd "${srcdir}/systemd-${pkgver}"
+
+  # LTO currently breaks the build because of libtool failures
+  CFLAGS+=' -fno-lto'
+
+  ./configure \
+    --libexecdir=/usr/lib32 \
+    --libdir=/usr/lib32 \
+    --localstatedir=/var \
+    --sysconfdir=/etc \
+    --enable-compat-libs \
+    --disable-audit \
+    --disable-tests \
+    --disable-ima \
+    --disable-kdbus \
+    --disable-seccomp \
+    --disable-pam \
+    --disable-kmod \
+    --disable-networkd \
+    --disable-blkid \
+    --without-python \
+    --disable-libcryptsetup \
+    --with-sysvinit-path= \
+    --with-sysvrcnd-path= \
+    --with-firmware-path="/usr/lib/firmware/updates:/usr/lib/firmware"
+
+  make
+}
+
+package() {
+  cd "${srcdir}/systemd-${pkgver}"
+    
+  make DESTDIR="$pkgdir" install
+    
+  rm -rf "${pkgdir}"/{etc,var}
+  rm -rf "${pkgdir}"/usr/{bin,include,lib,share}
+  rm -rf "${pkgdir}"/usr/lib32/libnss*
+
+  install -m755 -d "${pkgdir}/usr/share/licenses"
+  ln -s systemd "$pkgdir/usr/share/licenses/lib32-systemd"
+}




More information about the arch-commits mailing list