From 0559b0eabfebc059053c42cc6c53ff6378c70b79 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Tue, 21 Jan 2014 07:58:11 +0100 Subject: [PATCH] dbus: update to 1.8.0. --- srcpkgs/dbus/INSTALL | 2 - srcpkgs/dbus/files/systemd-user-session.patch | 183 ------------------ srcpkgs/dbus/template | 19 +- 3 files changed, 7 insertions(+), 197 deletions(-) delete mode 100644 srcpkgs/dbus/files/systemd-user-session.patch diff --git a/srcpkgs/dbus/INSTALL b/srcpkgs/dbus/INSTALL index 55122c20545..2fa82f4ad9b 100644 --- a/srcpkgs/dbus/INSTALL +++ b/srcpkgs/dbus/INSTALL @@ -9,7 +9,5 @@ post) [ ! -d etc/dbus-1/session.d ] && install -d etc/dbus-1/session.d chown root:22 ${dbus_launch} chmod 4750 ${dbus_launch} - # In case var/run is detected as obsolete create it again. - [ ! -h var/run ] && ln -sfr /run var/run ;; esac diff --git a/srcpkgs/dbus/files/systemd-user-session.patch b/srcpkgs/dbus/files/systemd-user-session.patch deleted file mode 100644 index 38d8a7a74c7..00000000000 --- a/srcpkgs/dbus/files/systemd-user-session.patch +++ /dev/null @@ -1,183 +0,0 @@ -commit d728fdc655f17031da3bb129ab2fd17dadf0fe3a -Author: Simon Peeters -Date: 8 weeks ago - - Set correct address when using --address=systemd: - - When dbus gets launched through systemd, we need to create an address - string based on the sockets passed. - - The _dbus_append_addres_from_socket() function is responsible for - extracting the address information from the file-descriptor and - formatting it in a dbus friendly way. - - This fixes bus activation when running dbus under a systemd session. - - https://bugs.freedesktop.org/show_bug.cgi?id=50962 - - Signed-off-by: Simon Peeters - -diff --git a/dbus/dbus-server-unix.c b/dbus/dbus-server-unix.c -index 130f66e..d995240 100644 ---- dbus/dbus-server-unix.c -+++ dbus/dbus-server-unix.c -@@ -149,7 +149,7 @@ _dbus_server_listen_platform_specific (DBusAddressEntry *entry, - } - else if (strcmp (method, "systemd") == 0) - { -- int n, *fds; -+ int i, n, *fds; - DBusString address; - - n = _dbus_listen_systemd_sockets (&fds, error); -@@ -159,27 +159,39 @@ _dbus_server_listen_platform_specific (DBusAddressEntry *entry, - return DBUS_SERVER_LISTEN_DID_NOT_CONNECT; - } - -- _dbus_string_init_const (&address, "systemd:"); -+ if (!_dbus_string_init (&address)) -+ goto systemd_oom; - -- *server_p = _dbus_server_new_for_socket (fds, n, &address, NULL); -- if (*server_p == NULL) -+ for (i = 0; i < n; i++) - { -- int i; -- -- for (i = 0; i < n; i++) -+ if (i > 0) - { -- _dbus_close_socket (fds[i], NULL); -+ if (!_dbus_string_append (&address, ";")) -+ goto systemd_oom; - } -- dbus_free (fds); -- -- dbus_set_error (error, DBUS_ERROR_NO_MEMORY, NULL); -- return DBUS_SERVER_LISTEN_DID_NOT_CONNECT; -+ if (!_dbus_append_address_from_socket (fds[i], &address, error)) -+ goto systemd_err; - } - -+ *server_p = _dbus_server_new_for_socket (fds, n, &address, NULL); -+ if (*server_p == NULL) -+ goto systemd_oom; -+ - dbus_free (fds); - - return DBUS_SERVER_LISTEN_OK; -- } -+ systemd_oom: -+ _DBUS_SET_OOM (error); -+ systemd_err: -+ for (i = 0; i < n; i++) -+ { -+ _dbus_close_socket (fds[i], NULL); -+ } -+ dbus_free (fds); -+ _dbus_string_free (&address); -+ -+ return DBUS_SERVER_LISTEN_DID_NOT_CONNECT; -+ } - #ifdef DBUS_ENABLE_LAUNCHD - else if (strcmp (method, "launchd") == 0) - { -diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c -index b4ecc96..55743b1 100644 ---- dbus/dbus-sysdeps-unix.c -+++ dbus/dbus-sysdeps-unix.c -@@ -55,6 +55,7 @@ - #include - #include - #include -+#include - - #ifdef HAVE_ERRNO_H - #include -@@ -4160,4 +4161,71 @@ _dbus_check_setuid (void) - #endif - } - -+/** -+ * Read the address from the socket and append it to the string -+ * -+ * @param fd the socket -+ * @param address -+ * @param error return location for error code -+ */ -+dbus_bool_t -+_dbus_append_address_from_socket (int fd, -+ DBusString *address, -+ DBusError *error) -+{ -+ union { -+ struct sockaddr sa; -+ struct sockaddr_storage storage; -+ struct sockaddr_un un; -+ struct sockaddr_in ipv4; -+ struct sockaddr_in6 ipv6; -+ } socket; -+ char hostip[INET6_ADDRSTRLEN]; -+ int size = sizeof (socket); -+ -+ if (getsockname (fd, &socket.sa, &size)) -+ goto err; -+ -+ switch (socket.sa.sa_family) -+ { -+ case AF_UNIX: -+ if (socket.un.sun_path[0]=='\0') -+ { -+ if (_dbus_string_append_printf (address, "unix:abstract=%s", &(socket.un.sun_path[1]))) -+ return TRUE; -+ } -+ else -+ { -+ if (_dbus_string_append_printf (address, "unix:path=%s", socket.un.sun_path)) -+ return TRUE; -+ } -+ break; -+ case AF_INET: -+ if (inet_ntop (AF_INET, &socket.ipv4.sin_addr, hostip, sizeof (hostip))) -+ if (_dbus_string_append_printf (address, "tcp:family=ipv4,host=%s,port=%u", -+ hostip, ntohs (socket.ipv4.sin_port))) -+ return TRUE; -+ break; -+#ifdef AF_INET6 -+ case AF_INET6: -+ if (inet_ntop (AF_INET6, &socket.ipv6.sin6_addr, hostip, sizeof (hostip))) -+ if (_dbus_string_append_printf (address, "tcp:family=ipv6,host=%s,port=%u", -+ hostip, ntohs (socket.ipv6.sin6_port))) -+ return TRUE; -+ break; -+#endif -+ default: -+ dbus_set_error (error, -+ _dbus_error_from_errno (EINVAL), -+ "Failed to read address from socket: Unknown socket type."); -+ return FALSE; -+ } -+ err: -+ dbus_set_error (error, -+ _dbus_error_from_errno (errno), -+ "Failed to open socket: %s", -+ _dbus_strerror (errno)); -+ return FALSE; -+} -+ - /* tests in dbus-sysdeps-util.c */ -diff --git a/dbus/dbus-sysdeps-unix.h b/dbus/dbus-sysdeps-unix.h -index 9b70896..a265b33 100644 ---- dbus/dbus-sysdeps-unix.h -+++ dbus/dbus-sysdeps-unix.h -@@ -138,6 +138,10 @@ dbus_bool_t _dbus_parse_uid (const DBusString *uid_str, - - void _dbus_close_all (void); - -+dbus_bool_t _dbus_append_address_from_socket (int fd, -+ DBusString *address, -+ DBusError *error); -+ - /** @} */ - - DBUS_END_DECLS diff --git a/srcpkgs/dbus/template b/srcpkgs/dbus/template index fffc9ed35e6..cd627263a78 100644 --- a/srcpkgs/dbus/template +++ b/srcpkgs/dbus/template @@ -3,8 +3,8 @@ _systemd_version=208 pkgname=dbus -version=1.6.18 -revision=2 +version=1.8.0 +revision=1 short_desc="Message bus system" maintainer="Juan RP " license="GPL-2" @@ -13,11 +13,11 @@ distfiles=" ${homepage}/releases/dbus/dbus-${version}.tar.gz http://www.freedesktop.org/software/systemd/systemd-${_systemd_version}.tar.xz" checksum=" - 7085a0895a9eb11a952394cdbea6d8b4358e17cb991fed0e8fb85e2b9e686dcd + 769f8c7282b535ccbe610f63a5f14137a5549834b0b0c8a783e90891b8d70b13 aa64fa864466fd5727005c55d61c092828b94b4f857272c0b503695022146390" create_wrksrc=yes -hostmakedepends="pkg-config intltool gperf" +hostmakedepends="pkg-config intltool gperf xmlto" makedepends="expat-devel libX11-devel libcap-devel" conf_files="/etc/dbus-1/session.conf /etc/dbus-1/system.conf" @@ -34,18 +34,13 @@ esac if [ "$build_option_systemd" ]; then if [ "$CROSS_BUILD" ]; then _systemddir="$XBPS_CROSS_BASE" - _confargs="--host=$XBPS_CROSS_TRIPLET --with-libtool-sysroot=$XBPS_CROSS_BASE" + _confargs="--host=$XBPS_CROSS_TRIPLET --with-sysroot=$XBPS_CROSS_BASE" hostmakedepends+=" libtool automake gettext-devel libgcrypt-devel" else _systemddir="/usr" fi fi -post_extract() { - cd ${wrksrc}/dbus-${version} - patch -Np0 -i ${FILESDIR}/systemd-user-session.patch -} - _dbus_bootstrap() { # Build a temporary dbus; we are only interested in libdbus. mkdir ${wrksrc}/dbus-bootstrap @@ -127,7 +122,7 @@ do_configure() { ./configure ${configure_args} \ --disable-selinux --enable-userdb-cache --with-xml=expat \ --disable-dnotify --enable-inotify --with-dbus-user=dbus \ - --disable-doxygen-docs --disable-xml-docs --disable-static \ + --disable-doxygen-docs --enable-xml-docs --disable-static \ --disable-tests --enable-epoll --disable-asserts \ --with-system-socket=/run/dbus/system_bus_socket \ --with-system-pid-file=/run/dbus/pid \ @@ -155,7 +150,7 @@ do_install() { } dbus-devel_package() { - depends="expat-devel dbus-libs>=${version}" + depends="expat-devel dbus-libs>=${version}_${revision}" short_desc+=" - development files" pkg_install() { vmove usr/include