mirror of
https://github.com/void-linux/void-packages.git
synced 2025-07-29 00:42:58 +02:00
dbus: update to 1.8.0.
This commit is contained in:
parent
4f0dce2b55
commit
0559b0eabf
3 changed files with 7 additions and 197 deletions
|
@ -9,7 +9,5 @@ post)
|
||||||
[ ! -d etc/dbus-1/session.d ] && install -d etc/dbus-1/session.d
|
[ ! -d etc/dbus-1/session.d ] && install -d etc/dbus-1/session.d
|
||||||
chown root:22 ${dbus_launch}
|
chown root:22 ${dbus_launch}
|
||||||
chmod 4750 ${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
|
esac
|
||||||
|
|
|
@ -1,183 +0,0 @@
|
||||||
commit d728fdc655f17031da3bb129ab2fd17dadf0fe3a
|
|
||||||
Author: Simon Peeters <peeters.simon@gmail.com>
|
|
||||||
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 <peeters.simon@gmail.com>
|
|
||||||
|
|
||||||
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 <netinet/in.h>
|
|
||||||
#include <netdb.h>
|
|
||||||
#include <grp.h>
|
|
||||||
+#include <arpa/inet.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_ERRNO_H
|
|
||||||
#include <errno.h>
|
|
||||||
@@ -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
|
|
|
@ -3,8 +3,8 @@
|
||||||
_systemd_version=208
|
_systemd_version=208
|
||||||
|
|
||||||
pkgname=dbus
|
pkgname=dbus
|
||||||
version=1.6.18
|
version=1.8.0
|
||||||
revision=2
|
revision=1
|
||||||
short_desc="Message bus system"
|
short_desc="Message bus system"
|
||||||
maintainer="Juan RP <xtraeme@gmail.com>"
|
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||||
license="GPL-2"
|
license="GPL-2"
|
||||||
|
@ -13,11 +13,11 @@ distfiles="
|
||||||
${homepage}/releases/dbus/dbus-${version}.tar.gz
|
${homepage}/releases/dbus/dbus-${version}.tar.gz
|
||||||
http://www.freedesktop.org/software/systemd/systemd-${_systemd_version}.tar.xz"
|
http://www.freedesktop.org/software/systemd/systemd-${_systemd_version}.tar.xz"
|
||||||
checksum="
|
checksum="
|
||||||
7085a0895a9eb11a952394cdbea6d8b4358e17cb991fed0e8fb85e2b9e686dcd
|
769f8c7282b535ccbe610f63a5f14137a5549834b0b0c8a783e90891b8d70b13
|
||||||
aa64fa864466fd5727005c55d61c092828b94b4f857272c0b503695022146390"
|
aa64fa864466fd5727005c55d61c092828b94b4f857272c0b503695022146390"
|
||||||
|
|
||||||
create_wrksrc=yes
|
create_wrksrc=yes
|
||||||
hostmakedepends="pkg-config intltool gperf"
|
hostmakedepends="pkg-config intltool gperf xmlto"
|
||||||
makedepends="expat-devel libX11-devel libcap-devel"
|
makedepends="expat-devel libX11-devel libcap-devel"
|
||||||
conf_files="/etc/dbus-1/session.conf /etc/dbus-1/system.conf"
|
conf_files="/etc/dbus-1/session.conf /etc/dbus-1/system.conf"
|
||||||
|
|
||||||
|
@ -34,18 +34,13 @@ esac
|
||||||
if [ "$build_option_systemd" ]; then
|
if [ "$build_option_systemd" ]; then
|
||||||
if [ "$CROSS_BUILD" ]; then
|
if [ "$CROSS_BUILD" ]; then
|
||||||
_systemddir="$XBPS_CROSS_BASE"
|
_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"
|
hostmakedepends+=" libtool automake gettext-devel libgcrypt-devel"
|
||||||
else
|
else
|
||||||
_systemddir="/usr"
|
_systemddir="/usr"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
post_extract() {
|
|
||||||
cd ${wrksrc}/dbus-${version}
|
|
||||||
patch -Np0 -i ${FILESDIR}/systemd-user-session.patch
|
|
||||||
}
|
|
||||||
|
|
||||||
_dbus_bootstrap() {
|
_dbus_bootstrap() {
|
||||||
# Build a temporary dbus; we are only interested in libdbus.
|
# Build a temporary dbus; we are only interested in libdbus.
|
||||||
mkdir ${wrksrc}/dbus-bootstrap
|
mkdir ${wrksrc}/dbus-bootstrap
|
||||||
|
@ -127,7 +122,7 @@ do_configure() {
|
||||||
./configure ${configure_args} \
|
./configure ${configure_args} \
|
||||||
--disable-selinux --enable-userdb-cache --with-xml=expat \
|
--disable-selinux --enable-userdb-cache --with-xml=expat \
|
||||||
--disable-dnotify --enable-inotify --with-dbus-user=dbus \
|
--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 \
|
--disable-tests --enable-epoll --disable-asserts \
|
||||||
--with-system-socket=/run/dbus/system_bus_socket \
|
--with-system-socket=/run/dbus/system_bus_socket \
|
||||||
--with-system-pid-file=/run/dbus/pid \
|
--with-system-pid-file=/run/dbus/pid \
|
||||||
|
@ -155,7 +150,7 @@ do_install() {
|
||||||
}
|
}
|
||||||
|
|
||||||
dbus-devel_package() {
|
dbus-devel_package() {
|
||||||
depends="expat-devel dbus-libs>=${version}"
|
depends="expat-devel dbus-libs>=${version}_${revision}"
|
||||||
short_desc+=" - development files"
|
short_desc+=" - development files"
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmove usr/include
|
vmove usr/include
|
||||||
|
|
Loading…
Add table
Reference in a new issue