angstrom-layers: add dbus from OE into meta-openembedded

This commit is contained in:
Koen Kooi 2010-11-02 09:46:49 +01:00
parent 6f2cc15148
commit a7f715cf6d
20 changed files with 717 additions and 0 deletions

View File

@ -0,0 +1,78 @@
From fb546488e93a1638d377b228bbb0d2ab58462168 Mon Sep 17 00:00:00 2001
From: Daniel Willmann <daniel@totalueberwachung.de>
Date: Thu, 2 Oct 2008 15:50:17 +0800
Subject: [PATCH] Make the default DBus reply timeout configurable
This patch adds an option --with-dbus-default-reply-timeout to configure
that will set the default reply timeout used by libdbus in milliseconds.
autoconf and autoheader need to be rerun in order to regenerate the
correct configure and config.h.in files.
---
configure.in | 9 +++++++++
dbus/dbus-connection-internal.h | 3 ---
dbus/dbus-pending-call.c | 1 +
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/configure.in b/configure.in
index 62ac387..5c912d7 100644
--- a/configure.in
+++ b/configure.in
@@ -88,6 +88,7 @@ AC_ARG_WITH(console-auth-dir, AS_HELP_STRING([--with-console-auth-dir=[dirname]]
AC_ARG_WITH(console-owner-file, AS_HELP_STRING([--with-console-owner-file=[filename]],[file whose owner determines current console owner]))
AC_ARG_WITH(dbus_user, AS_HELP_STRING([--with-dbus-user=<user>],[User for running the DBUS daemon (messagebus)]))
AC_ARG_WITH(dbus_daemondir, AS_HELP_STRING([--with-dbus-daemondir=[dirname]],[Directory for installing the DBUS daemon]))
+AC_ARG_WITH(dbus_default_reply_timeout, AS_HELP_STRING([--with-dbus-default-reply-timeout=[milliseconds]],[Default reply timeout for DBus method calls]))
AC_DEFINE(DBUS_UNIX,1,[dbus on unix])
@@ -986,6 +987,13 @@ if test x$have_libaudit = xyes ; then
AC_DEFINE(HAVE_LIBAUDIT,1,[audit daemon SELinux support])
fi
+if test -z "$with_dbus_default_reply_timeout" ; then
+ DBUS_DEFAULT_REPLY_TIMEOUT=25000
+else
+ DBUS_DEFAULT_REPLY_TIMEOUT=$with_dbus_default_reply_timeout
+fi
+AC_DEFINE_UNQUOTED(_DBUS_DEFAULT_TIMEOUT_VALUE,$DBUS_DEFAULT_REPLY_TIMEOUT,[default timeout value for dbus calls])
+
#### Set up final flags
DBUS_CLIENT_CFLAGS=
DBUS_CLIENT_LIBS="$THREAD_LIBS"
@@ -1348,6 +1356,7 @@ echo "
Gettext libs (empty OK): ${INTLLIBS}
Using XML parser: ${with_xml}
Init scripts style: ${with_init_scripts}
+ Default reply timeout: ${DBUS_DEFAULT_REPLY_TIMEOUT}
Abstract socket names: ${ac_cv_have_abstract_sockets}
System bus socket: ${DBUS_SYSTEM_SOCKET}
System bus address: ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
diff --git a/dbus/dbus-connection-internal.h b/dbus/dbus-connection-internal.h
index df54412..5fe536b 100644
--- a/dbus/dbus-connection-internal.h
+++ b/dbus/dbus-connection-internal.h
@@ -41,9 +41,6 @@ typedef enum
DBUS_ITERATION_BLOCK = 1 << 2 /**< Block if nothing to do. */
} DBusIterationFlags;
-/** default timeout value when waiting for a message reply, 25 seconds */
-#define _DBUS_DEFAULT_TIMEOUT_VALUE (25 * 1000)
-
void _dbus_connection_lock (DBusConnection *connection);
void _dbus_connection_unlock (DBusConnection *connection);
DBusConnection * _dbus_connection_ref_unlocked (DBusConnection *connection);
diff --git a/dbus/dbus-pending-call.c b/dbus/dbus-pending-call.c
index 51b9378..5a7a5f4 100644
--- a/dbus/dbus-pending-call.c
+++ b/dbus/dbus-pending-call.c
@@ -21,6 +21,7 @@
*
*/
+#include <config.h>
#include "dbus-internals.h"
#include "dbus-connection-internal.h"
#include "dbus-pending-call-internal.h"
--
1.5.6.4

View File

@ -0,0 +1,13 @@
Index: dbus-0.94/bus/Makefile.am
===================================================================
--- dbus-0.94.orig/bus/Makefile.am 2006-10-01 17:36:18.000000000 +0200
+++ dbus-0.94/bus/Makefile.am 2006-10-14 21:40:05.000000000 +0200
@@ -110,7 +110,7 @@
$(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
fi
- $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
$(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
$(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services

View File

@ -0,0 +1,17 @@
require dbus-c++_git.bb
inherit native
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus-c++"
# actually dbus-native and expat-native, but even the bearest build machine should have that nowadays...
DEPENDS = ""
do_compile() {
oe_runmake -C src libdbus-c++-1.la
oe_runmake -C tools dbusxx-xml2cpp
install -m 0755 tools/dbusxx-xml2cpp ${STAGING_BINDIR_NATIVE}
}
do_install() {
:
}

View File

@ -0,0 +1,13 @@
Index: dbus/tools/Makefile.am
===================================================================
--- dbus.orig/tools/Makefile.am
+++ dbus/tools/Makefile.am
@@ -16,7 +16,7 @@ endif
bin_PROGRAMS = dbusxx-xml2cpp dbusxx-introspect
dbusxx_xml2cpp_SOURCES = xml.h xml.cpp xml2cpp.h xml2cpp.cpp
-dbusxx_xml2cpp_LDADD = $(libdbus_cxx_la)
+dbusxx_xml2cpp_LDADD = $(libdbus_cxx_la) -lexpat
dbusxx_introspect_SOURCES = introspect.h introspect.cpp
dbusxx_introspect_LDADD = $(libdbus_cxx_la)

View File

@ -0,0 +1,23 @@
DESCRIPTION = "C++ bindings for dbus"
LICENSE = "LGPLv2.1+"
SECTION = "libs"
DEPENDS = "dbus dbus-c++-native expat"
SRCREV = "530a887913d3b0dd7091eabb8eef8e3c279e3bb8"
PE = "1"
PV = "0.5.0+gitr${SRCPV}"
SRC_URI = "git://gitorious.org/dbus-cplusplus/mainline.git;protocol=git"
# file://fix-linking.patch"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
do_compile_prepend() {
find . -name "Makefile.am" |xargs sed -i -e 's,$(top_builddir)/tools/dbusxx-xml2cpp,dbusxx-xml2cpp,'
}
FILES_${PN}-dbg += "${bindir}/dbusxx-xml2cpp ${bindir}/dbusxx-introspect"
FILES_${PN}-dev += "${bindir}/.dev"
FILES_${PN} = "${libdir}/*.so.*"

View File

@ -0,0 +1,19 @@
DESCRIPTION = "dbus forwarding daemon"
LICENSE = "LGPLv2.1+"
DEPENDS = "dbus dbus-glib"
SRCREV = "1226a0a1374628ff191f6d8a56000be5e53e7608"
PV = "0.0.0+gitr${SRCPV}"
PR = "r1"
SRC_URI = "git://git.collabora.co.uk/git/user/alban/dbus-daemon-proxy;protocol=git"
S = "${WORKDIR}/git"
do_compile() {
${CC} ${LDFLAGS} `pkg-config --cflags --libs dbus-glib-1` -o dbus-daemon-proxy dbus-daemon-proxy.c
}
do_install() {
install -d ${D}${bindir}
install -m 0755 dbus-daemon-proxy ${D}${bindir}
}

View File

@ -0,0 +1,8 @@
--- dbus-glib-0.70/dbus/Makefile.am.orig 2006-07-23 16:04:43.000000000 +0200
+++ dbus-glib-0.70/dbus/Makefile.am 2006-07-23 16:04:52.000000000 +0200
@@ -1,4 +1,4 @@
-SUBDIRS = . examples
+SUBDIRS = .
INCLUDES=-I$(top_srcdir) $(DBUS_CFLAGS) $(DBUS_GLIB_CFLAGS) $(DBUS_GLIB_TOOL_CFLAGS) -DDBUS_COMPILATION=1 -DDBUS_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\"

View File

@ -0,0 +1,12 @@
--- /tmp/Makefile.am 2010-03-28 12:24:13.000000000 +0200
+++ dbus-glib-0.86/tools/Makefile.am 2010-03-28 12:24:30.000000000 +0200
@@ -3,9 +3,6 @@
nodist_libdbus_glib_HEADERS = dbus-glib-bindings.h
libdbus_glibdir = $(includedir)/dbus-1.0/dbus
-dbus-glib-bindings.h: $(top_srcdir)/dbus-bus-introspect.xml $(top_builddir)/dbus/dbus-binding-tool$(EXEEXT)
- $(DBUS_BINDING_TOOL) --mode=glib-client --prefix=dbus_bus --output=dbus-glib-bindings.h $(top_srcdir)/dbus-bus-introspect.xml
-
BUILT_SOURCES = dbus-glib-bindings.h
EXTRA_DIST = run-with-tmp-session-bus.sh session.conf

View File

@ -0,0 +1,24 @@
Index: dbus-glib-0.76/tools/run-with-tmp-session-bus.sh
===================================================================
--- dbus-glib-0.76.orig/tools/run-with-tmp-session-bus.sh 2008-06-13 16:31:54.000000000 +0100
+++ dbus-glib-0.76/tools/run-with-tmp-session-bus.sh 2008-06-13 16:32:54.000000000 +0100
@@ -30,17 +30,15 @@
echo "escaped service dir is: $ESCAPED_SERVICE_DIR" >&2
## create a configuration file based on the standard session.conf
-cat $DBUS_TOP_SRCDIR/tools/session.conf | \
+cat $datadir/tools/session.conf | \
sed -e 's/<servicedir>.*$/<servicedir>'$ESCAPED_SERVICE_DIR'<\/servicedir>/g' | \
sed -e 's/<include.*$//g' \
> $CONFIG_FILE
echo "Created configuration file $CONFIG_FILE" >&2
-PATH=$DBUS_TOP_BUILDDIR/bus:$PATH
-export PATH
## the libtool script found by the path search should already do this, but
-LD_LIBRARY_PATH=$DBUS_TOP_BUILDDIR/dbus/.libs:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=$libdir:$LD_LIBRARY_PATH
export PATH
unset DBUS_SESSION_BUS_ADDRESS
unset DBUS_SESSION_BUS_PID

View File

@ -0,0 +1,53 @@
DESCRIPTION = "GLib bindings for the dbus message bus system"
HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
SECTION = "libs"
LICENSE = "GPLv2+ AFLv2.1"
DEPENDS = "expat glib-2.0 virtual/libintl dbus-glib-native dbus"
DEPENDS_virtclass-native = "expat-native glib-2.0-native dbus-native"
INC_PR = "r2"
SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
file://no-examples.patch \
file://no-introspect.patch \
"
SRC_URI_virtclass-native = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz"
inherit autotools pkgconfig gettext
BBCLASSEXTEND = "native"
do_configure_prepend() {
install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml ${S}/tools/
install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-glib-bindings.h ${S}/tools/
}
do_configure_virtclass-native() {
autotools_do_configure
}
do_install_virtclass-native() {
autotools_do_install
install -d ${D}${datadir}/dbus
install -m 0644 tools/dbus-glib-bindings.h ${D}${datadir}/dbus
}
PACKAGES += "${PN}-bash-completion"
FILES_${PN}-bash-completion = "\
${sysconfdir}/bash_completion.d \
${prefix}/libexec/dbus-bash-completion-helper \
"
FILES_${PN} = "${libdir}/lib*.so.*"
FILES_${PN}-dev += "\
${libdir}/dbus-1.0/include \
${bindir}/dbus-glib-tool \
${bindir}/dbus-binding-tool \
"

View File

@ -0,0 +1,14 @@
require dbus-glib.inc
PR = "${INC_PR}.1"
SRC_URI_virtclass-native += "file://run-with-tmp-session-bus.patch"
do_install_virtclass-native_prepend() {
install -d ${D}${datadir}/dbus
install -m 0644 dbus-bus-introspect.xml ${D}${datadir}/dbus
}
SRC_URI[md5sum] = "cd0ab148fb0c786fc88be49d19971f50"
SRC_URI[sha256sum] = "5351a6e7f38ffc641c34b4a4cdd9bed1c1dc7043a501096bac00a2876ea90bdc"

102
recipes-core/dbus/dbus.inc Normal file
View File

@ -0,0 +1,102 @@
DESCRIPTION = "A message bus system for inter-process communication"
HOMEPAGE = "http://dbus.freedesktop.org"
SECTION = "base"
LICENSE = "GPLv2+ AFLv2.1"
DEPENDS = "expat glib-2.0 virtual/libintl libsm libice virtual/libx11"
INC_PR = "r19"
SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
file://cross.patch \
file://tmpdir.patch \
file://fix-install-daemon.patch \
file://0001-Make-the-default-DBus-reply-timeout-configurable.patch \
file://dbus-1.init \
"
S = "${WORKDIR}/dbus-${PV}"
inherit autotools pkgconfig update-rc.d gettext
EXTRA_OECONF_X = "--with-x"
EXTRA_OECONF = "\
--disable-qt \
--disable-qt3 \
--disable-gtk \
--disable-tests \
--disable-checks \
--disable-xml-docs \
--disable-doxygen-docs \
--disable-libaudit \
--with-xml=expat \
--with-dbus-default-reply-timeout=200000 \
${EXTRA_OECONF_X} \
"
# On mipsel, D-Bus fails to link with --gc-sections and segfaults before main()
# when built with -fPIE/-pie.
do_configure_prepend_mipsel() {
sed -i -e 's/\-fPIE//' \
-e 's/\-pie\ \-Wl\,\-z\,relro//' \
-e 's/-Wl,--gc-sections//' \
${S}/configure.in
}
do_install_append() {
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/dbus-1.init ${D}${sysconfdir}/init.d/dbus-1
# the stock install seems to install the libtool wrapper script, so we have to copy this manually :M:
if [ -e bus/.libs/dbus-daemon-launch-helper ]; then
install -d ${D}${libexecdir}/
install -m 0755 bus/.libs/dbus-daemon-launch-helper ${D}${libexecdir}/
fi
}
RDEPENDS_${PN}-x11 = "${PN}"
RRECOMMENDS_${PN}-lib = "${PN}"
RCONFLICTS_${PN} = "dbus-1"
RREPLACES_${PN} = "dbus-1"
RPROVIDES_${PN} = "dbus-1"
PACKAGES =+ "${PN}-lib ${PN}-x11"
FILES_${PN} = "\
${bindir}/dbus-daemon* \
${bindir}/dbus-uuidgen \
${bindir}/dbus-cleanup-sockets \
${bindir}/dbus-send \
${bindir}/dbus-monitor \
${libexecdir}/dbus* \
${sysconfdir} \
${datadir}/dbus-1/services \
${datadir}/dbus-1/system-services \
"
FILES_${PN}-lib = "${libdir}/lib*.so.*"
FILES_${PN}-x11 = "\
${bindir}/dbus-launch \
"
FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool ${libdir}/"
pkg_postinst_${PN}() {
#!/bin/sh
# can't do adduser stuff offline
if [ "x$D" != "x" ]; then
exit 1
fi
MESSAGEUSER=messagebus
MESSAGEHOME=/var/run/dbus
mkdir -p $MESSAGEHOME || true
grep -q ^$MESSAGEUSER: /etc/group || addgroup "$MESSAGEUSER"
chgrp "$MESSAGEUSER" "$MESSAGEHOME"
grep -q ^$MESSAGEUSER: /etc/passwd || adduser --system --home "$MESSAGEHOME" --no-create-home --disabled-password --ingroup "$MESSAGEUSER" "$MESSAGEUSER"
chown "$MESSAGEUSER"."$MESSAGEUSER" "$MESSAGEHOME"
grep -q netdev: /etc/group || addgroup netdev
chmod u+s /usr/libexec/dbus-daemon-launch-helper
}
CONFFILES_${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session.conf"
INITSCRIPT_NAME = "dbus-1"
INITSCRIPT_PARAMS = "start 02 5 2 . stop 20 0 1 6 ."

View File

@ -0,0 +1,48 @@
Index: dbus-1.3.1/configure.in
===================================================================
--- dbus-1.3.1.orig/configure.in
+++ dbus-1.3.1/configure.in
@@ -137,6 +137,7 @@
AC_ARG_WITH(console-owner-file, AS_HELP_STRING([--with-console-owner-file=[filename]],[file whose owner determines current console owner]))
AC_ARG_WITH(dbus_user, AS_HELP_STRING([--with-dbus-user=<user>],[User for running the DBUS daemon (messagebus)]))
AC_ARG_WITH(dbus_daemondir, AS_HELP_STRING([--with-dbus-daemondir=[dirname]],[Directory for installing the DBUS daemon]))
+AC_ARG_WITH(dbus_default_reply_timeout, AS_HELP_STRING([--with-dbus-default-reply-timeout=[milliseconds]],[Default reply timeout for DBus method calls]))
dnl DBUS_BUILD_TESTS controls unit tests built in to .c files
dnl and also some stuff in the test/ subdir
@@ -984,6 +985,13 @@
fi
fi
+if test -z "$with_dbus_default_reply_timeout" ; then
+ DBUS_DEFAULT_REPLY_TIMEOUT=25000
+else
+ DBUS_DEFAULT_REPLY_TIMEOUT=$with_dbus_default_reply_timeout
+fi
+AC_DEFINE_UNQUOTED(_DBUS_DEFAULT_TIMEOUT_VALUE,$DBUS_DEFAULT_REPLY_TIMEOUT,[default timeout value for dbus calls])
+
#### Set up final flags
DBUS_CLIENT_CFLAGS=
DBUS_CLIENT_LIBS="$THREAD_LIBS $NETWORK_libs"
@@ -1625,6 +1633,7 @@
Gettext libs (empty OK): ${INTLLIBS}
Using XML parser: ${with_xml}
Init scripts style: ${with_init_scripts}
+ Default reply timeout: ${DBUS_DEFAULT_REPLY_TIMEOUT}
Abstract socket names: ${ac_cv_have_abstract_sockets}
System bus socket: ${DBUS_SYSTEM_SOCKET}
System bus address: ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
Index: dbus-1.3.1/dbus/dbus-connection-internal.h
===================================================================
--- dbus-1.3.1.orig/dbus/dbus-connection-internal.h
+++ dbus-1.3.1/dbus/dbus-connection-internal.h
@@ -41,9 +41,6 @@
DBUS_ITERATION_BLOCK = 1 << 2 /**< Block if nothing to do. */
} DBusIterationFlags;
-/** default timeout value when waiting for a message reply, 25 seconds */
-#define _DBUS_DEFAULT_TIMEOUT_VALUE (25 * 1000)
-
void _dbus_connection_lock (DBusConnection *connection);
void _dbus_connection_unlock (DBusConnection *connection);
DBusConnection * _dbus_connection_ref_unlocked (DBusConnection *connection);

View File

@ -0,0 +1,13 @@
diff -Naur dbus-1.2.1.orig/dbus/dbus-transport.c dbus-1.2.1/dbus/dbus-transport.c
--- dbus-1.2.1.orig/dbus/dbus-transport.c 2008-09-16 15:10:02.000000000 +0000
+++ dbus-1.2.1/dbus/dbus-transport.c 2008-09-16 15:10:10.000000000 +0000
@@ -747,6 +747,9 @@
dbus_bool_t allow;
DBusCredentials *auth_identity;
+ // allow anonymous connections
+ _dbus_transport_set_allow_anonymous(transport, TRUE);
+
auth_identity = _dbus_auth_get_identity (transport->auth);
_dbus_assert (auth_identity != NULL);

View File

@ -0,0 +1,111 @@
#! /bin/sh
# -*- coding: utf-8 -*-
# Debian init.d script for D-BUS
# Copyright © 2003 Colin Walters <walters@debian.org>
# Copyright 2008 OE Team
set -e
DAEMON=/usr/bin/dbus-daemon
NAME=dbus
DAEMONUSER=messagebus
RUNDIR=/var/run/dbus
PIDFILE=/var/run/dbus/pid
UUIDDIR=/var/lib/dbus
DESC="system message bus"
EVENTDIR=/etc/dbus-1/event.d
test -x $DAEMON || exit 0
# Source defaults file; edit that file to configure this script.
ENABLED=1
PARAMS=""
if [ -e /etc/default/dbus ]; then
. /etc/default/dbus
fi
test "$ENABLED" != "0" || exit 0
start_it_up()
{
if [ ! -d $RUNDIR ]; then
mkdir -p $RUNDIR
chown $DAEMONUSER $RUNDIR
chgrp $DAEMONUSER $RUNDIR
fi
if [ -e $PIDFILE ]; then
PIDDIR=/proc/$(cat $PIDFILE)
if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
echo "$DESC already started; not starting."
else
echo "Removing stale PID file $PIDFILE."
rm -f $PIDFILE
fi
fi
if [ ! -d $UUIDDIR ]; then
mkdir -p $UUIDDIR
chown $DAEMONUSER $UUIDDIR
chgrp $DAEMONUSER $UUIDDIR
fi
dbus-uuidgen --ensure
echo -n "Starting $DESC: "
start-stop-daemon --start --pidfile $PIDFILE \
--user $DAEMONUSER --exec $DAEMON -- --system $PARAMS
echo "$NAME."
if [ -d $EVENTDIR ]; then
run-parts --arg=start $EVENTDIR
fi
}
shut_it_down()
{
if [ -d $EVENTDIR ]; then
# TODO: --reverse when busybox supports it
run-parts --arg=stop $EVENTDIR
fi
echo -n "Stopping $DESC: "
start-stop-daemon --stop --oknodo --pidfile $PIDFILE \
--user $DAEMONUSER
# We no longer include these arguments so that start-stop-daemon
# can do its job even given that we may have been upgraded.
# We rely on the pidfile being sanely managed
# --exec $DAEMON -- --system $PARAMS
echo "$NAME."
rm -f $PIDFILE
}
reload_it()
{
echo -n "Reloading $DESC config: "
dbus-send --print-reply --system --type=method_call \
--dest=org.freedesktop.DBus \
/ org.freedesktop.DBus.ReloadConfig > /dev/null
# hopefully this is enough time for dbus to reload it's config file.
echo "done."
}
case "$1" in
start)
start_it_up
;;
stop)
shut_it_down
;;
reload|force-reload)
reload_it
;;
restart)
shut_it_down
sleep 1
start_it_up
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0

View File

@ -0,0 +1,64 @@
From 8f5f340b77b51fed1f036a9ee9f70a31b201f2c9 Mon Sep 17 00:00:00 2001
From: Sledz <sledz@MOBIL-400-586.intern.dresearch.de>
Date: Tue, 29 Jun 2010 21:04:15 +0000
Subject: sysdeps-unix: enable address reuse on TCP sockets
This helps to avoid 'Address already in use' problems if server has been shut
down, and then restarted while sockets are still active on its port.
Signed-off-by: Steffen Sledz <sledz@dresearch.de>
---
diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
index ce3475a..b58d09a 100644
--- a/dbus/dbus-sysdeps-unix.c
+++ b/dbus/dbus-sysdeps-unix.c
@@ -623,6 +623,7 @@ _dbus_listen_unix_socket (const char *path,
int listen_fd;
struct sockaddr_un addr;
size_t path_len;
+ unsigned int reuseaddr;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
@@ -696,7 +697,15 @@ _dbus_listen_unix_socket (const char *path,
strncpy (addr.sun_path, path, path_len);
}
-
+
+ reuseaddr = 1;
+ if (setsockopt (listen_fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr))==-1)
+ {
+ dbus_set_error (error, _dbus_error_from_errno (errno),
+ "Failed to set socket option\"%s\": %s",
+ path, _dbus_strerror (errno));
+ }
+
if (bind (listen_fd, (struct sockaddr*) &addr, _DBUS_STRUCT_OFFSET (struct sockaddr_un, sun_path) + path_len) < 0)
{
dbus_set_error (error, _dbus_error_from_errno (errno),
@@ -870,6 +879,7 @@ _dbus_listen_tcp_socket (const char *host,
int nlisten_fd = 0, *listen_fd = NULL, res, i;
struct addrinfo hints;
struct addrinfo *ai, *tmp;
+ unsigned int reuseaddr;
*fds_p = NULL;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
@@ -915,6 +925,14 @@ _dbus_listen_tcp_socket (const char *host,
}
_DBUS_ASSERT_ERROR_IS_CLEAR(error);
+ reuseaddr = 1;
+ if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr))==-1)
+ {
+ dbus_set_error (error, _dbus_error_from_errno (errno),
+ "Failed to set socket option \"%s:%s\": %s",
+ host ? host : "*", port, _dbus_strerror (errno));
+ }
+
if (bind (fd, (struct sockaddr*) tmp->ai_addr, tmp->ai_addrlen) < 0)
{
_dbus_close(fd, NULL);
--
cgit v0.8.3-6-g21f6

View File

@ -0,0 +1,38 @@
From d365dd8141e709222f3a619d7b04ec4ded6429fd Mon Sep 17 00:00:00 2001
From: Havoc Pennington <hp@pobox.com>
Date: Tue, 31 Aug 2010 15:59:09 +0000
Subject: Change failure of setsockopt SO_REUSEADDR to be a warning, not set an error
It was previously setting an error but then continuing, which is
not allowed since errors can't be "piled up"
---
diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
index e4ff6ee..3205bed 100644
--- a/dbus/dbus-sysdeps-unix.c
+++ b/dbus/dbus-sysdeps-unix.c
@@ -980,9 +980,8 @@ _dbus_listen_unix_socket (const char *path,
reuseaddr = 1;
if (setsockopt (listen_fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr))==-1)
{
- dbus_set_error (error, _dbus_error_from_errno (errno),
- "Failed to set socket option\"%s\": %s",
- path, _dbus_strerror (errno));
+ _dbus_warn ("Failed to set socket option\"%s\": %s",
+ path, _dbus_strerror (errno));
}
if (bind (listen_fd, (struct sockaddr*) &addr, _DBUS_STRUCT_OFFSET (struct sockaddr_un, sun_path) + path_len) < 0)
@@ -1335,9 +1334,8 @@ _dbus_listen_tcp_socket (const char *host,
reuseaddr = 1;
if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr))==-1)
{
- dbus_set_error (error, _dbus_error_from_errno (errno),
- "Failed to set socket option \"%s:%s\": %s",
- host ? host : "*", port, _dbus_strerror (errno));
+ _dbus_warn ("Failed to set socket option \"%s:%s\": %s",
+ host ? host : "*", port, _dbus_strerror (errno));
}
if (bind (fd, (struct sockaddr*) tmp->ai_addr, tmp->ai_addrlen) < 0)
--
cgit v0.8.3-6-g21f6

View File

@ -0,0 +1,30 @@
--- dbus-0.22/configure.in.orig 2004-08-13 00:57:16.000000000 +0200
+++ dbus-0.22/configure.in 2004-12-30 21:15:57.000000000 +0100
@@ -1047,15 +1048,18 @@
AC_SUBST(ABSOLUTE_TOP_BUILDDIR)
#### Find socket directories
-if ! test -z "$TMPDIR" ; then
- DEFAULT_SOCKET_DIR=$TMPDIR
-elif ! test -z "$TEMP" ; then
- DEFAULT_SOCKET_DIR=$TEMP
-elif ! test -z "$TMP" ; then
- DEFAULT_SOCKET_DIR=$TMP
-else
- DEFAULT_SOCKET_DIR=/tmp
-fi
+#if ! test -z "$TMPDIR" ; then
+# DEFAULT_SOCKET_DIR=$TMPDIR
+#elif ! test -z "$TEMP" ; then
+# DEFAULT_SOCKET_DIR=$TEMP
+#elif ! test -z "$TMP" ; then
+# DEFAULT_SOCKET_DIR=$TMP
+#else
+# DEFAULT_SOCKET_DIR=/tmp
+#fi
+
+# checks disabled to avoid expanding this at build time
+DEFAULT_SOCKET_DIR=/tmp
if ! test -z "$with_test_socket_dir" ; then
TEST_SOCKET_DIR="$with_test_socket_dir"

View File

@ -0,0 +1,19 @@
include dbus.inc
PR = "${INC_PR}.1"
SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
file://tmpdir.patch \
file://fix-install-daemon.patch \
file://0001-Make-the-default-DBus-reply-timeout-configurable.patch \
file://dbus-1.init \
file://reuseaddr01.patch \
file://reuseaddr02.patch \
"
SRC_URI_append_hipox = "file://anon.patch"
SRC_URI[dbus.md5sum] = "565346cecd9cfecf1463540c6086cc2c"
SRC_URI[dbus.sha256sum] = "f12c748f4a703655e3d4c3db94cdf5a752a0cd0b36958c715804373bd3595c48"

View File

@ -0,0 +1,18 @@
include dbus.inc
PR = "${INC_PR}.0"
BBCLASSEXTEND = "native"
SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
\
file://tmpdir.patch \
file://add-configurable-reply-timeouts.patch \
file://dbus-1.init \
"
# This needs more testing before pushing as default dbus
DEFAULT_PREFERENCE = "-1"
SRC_URI[md5sum] = "f59618b18d2fb2bd1fce9e1c5a2a3282"
SRC_URI[sha256sum] = "c96d2f86d40e158e2bf405925a0a42cce0533a8466098e2f2238aa1614926652"