diff options
author | Koen Kooi <koen@dominion.thruhere.net> | 2010-11-02 09:46:49 +0100 |
---|---|---|
committer | Koen Kooi <koen@dominion.thruhere.net> | 2010-11-02 09:46:49 +0100 |
commit | a7f715cf6dd65dff461ae78a3c9caf304248867a (patch) | |
tree | c475921add4d4756e0f5b7030ccd3217e41fda08 /recipes-core | |
parent | 6f2cc15148c8604c7a467ecd8c6ef66c2723c649 (diff) | |
download | meta-openembedded-a7f715cf6dd65dff461ae78a3c9caf304248867a.tar.gz |
angstrom-layers: add dbus from OE into meta-openembedded
Diffstat (limited to 'recipes-core')
20 files changed, 717 insertions, 0 deletions
diff --git a/recipes-core/dbus/dbus-1.2.24/0001-Make-the-default-DBus-reply-timeout-configurable.patch b/recipes-core/dbus/dbus-1.2.24/0001-Make-the-default-DBus-reply-timeout-configurable.patch new file mode 100644 index 0000000000..a38e3db0de --- /dev/null +++ b/recipes-core/dbus/dbus-1.2.24/0001-Make-the-default-DBus-reply-timeout-configurable.patch @@ -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 + diff --git a/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch b/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch new file mode 100644 index 0000000000..5e25d1227d --- /dev/null +++ b/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch @@ -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 diff --git a/recipes-core/dbus/dbus-c++-native_git.bb b/recipes-core/dbus/dbus-c++-native_git.bb new file mode 100644 index 0000000000..eba80b2e9a --- /dev/null +++ b/recipes-core/dbus/dbus-c++-native_git.bb @@ -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() { + : +} + diff --git a/recipes-core/dbus/dbus-c++/fix-linking.patch b/recipes-core/dbus/dbus-c++/fix-linking.patch new file mode 100644 index 0000000000..822216916b --- /dev/null +++ b/recipes-core/dbus/dbus-c++/fix-linking.patch @@ -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) diff --git a/recipes-core/dbus/dbus-c++_git.bb b/recipes-core/dbus/dbus-c++_git.bb new file mode 100644 index 0000000000..64598238da --- /dev/null +++ b/recipes-core/dbus/dbus-c++_git.bb @@ -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.*" + diff --git a/recipes-core/dbus/dbus-daemon-proxy_git.bb b/recipes-core/dbus/dbus-daemon-proxy_git.bb new file mode 100644 index 0000000000..32ed7dbfd3 --- /dev/null +++ b/recipes-core/dbus/dbus-daemon-proxy_git.bb @@ -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} +} + diff --git a/recipes-core/dbus/dbus-glib-0.86/no-examples.patch b/recipes-core/dbus/dbus-glib-0.86/no-examples.patch new file mode 100644 index 0000000000..483153db74 --- /dev/null +++ b/recipes-core/dbus/dbus-glib-0.86/no-examples.patch @@ -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\" + diff --git a/recipes-core/dbus/dbus-glib-0.86/no-introspect.patch b/recipes-core/dbus/dbus-glib-0.86/no-introspect.patch new file mode 100644 index 0000000000..84c22fb8c5 --- /dev/null +++ b/recipes-core/dbus/dbus-glib-0.86/no-introspect.patch @@ -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 diff --git a/recipes-core/dbus/dbus-glib-0.86/run-with-tmp-session-bus.patch b/recipes-core/dbus/dbus-glib-0.86/run-with-tmp-session-bus.patch new file mode 100644 index 0000000000..a04f404f75 --- /dev/null +++ b/recipes-core/dbus/dbus-glib-0.86/run-with-tmp-session-bus.patch @@ -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 diff --git a/recipes-core/dbus/dbus-glib.inc b/recipes-core/dbus/dbus-glib.inc new file mode 100644 index 0000000000..c1c1813d9a --- /dev/null +++ b/recipes-core/dbus/dbus-glib.inc @@ -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 \ +" diff --git a/recipes-core/dbus/dbus-glib_0.86.bb b/recipes-core/dbus/dbus-glib_0.86.bb new file mode 100644 index 0000000000..ce87d5d43e --- /dev/null +++ b/recipes-core/dbus/dbus-glib_0.86.bb @@ -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" + diff --git a/recipes-core/dbus/dbus.inc b/recipes-core/dbus/dbus.inc new file mode 100644 index 0000000000..73fc426933 --- /dev/null +++ b/recipes-core/dbus/dbus.inc @@ -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 ." diff --git a/recipes-core/dbus/dbus/add-configurable-reply-timeouts.patch b/recipes-core/dbus/dbus/add-configurable-reply-timeouts.patch new file mode 100644 index 0000000000..9cca38ddc8 --- /dev/null +++ b/recipes-core/dbus/dbus/add-configurable-reply-timeouts.patch @@ -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); diff --git a/recipes-core/dbus/dbus/anon.patch b/recipes-core/dbus/dbus/anon.patch new file mode 100644 index 0000000000..c9bf7bfa63 --- /dev/null +++ b/recipes-core/dbus/dbus/anon.patch @@ -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); + diff --git a/recipes-core/dbus/dbus/dbus-1.init b/recipes-core/dbus/dbus/dbus-1.init new file mode 100644 index 0000000000..a70e7a2373 --- /dev/null +++ b/recipes-core/dbus/dbus/dbus-1.init @@ -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 diff --git a/recipes-core/dbus/dbus/reuseaddr01.patch b/recipes-core/dbus/dbus/reuseaddr01.patch new file mode 100644 index 0000000000..e291bb8949 --- /dev/null +++ b/recipes-core/dbus/dbus/reuseaddr01.patch @@ -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 diff --git a/recipes-core/dbus/dbus/reuseaddr02.patch b/recipes-core/dbus/dbus/reuseaddr02.patch new file mode 100644 index 0000000000..10bc7edfdc --- /dev/null +++ b/recipes-core/dbus/dbus/reuseaddr02.patch @@ -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 diff --git a/recipes-core/dbus/dbus/tmpdir.patch b/recipes-core/dbus/dbus/tmpdir.patch new file mode 100644 index 0000000000..838b903f0a --- /dev/null +++ b/recipes-core/dbus/dbus/tmpdir.patch @@ -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" diff --git a/recipes-core/dbus/dbus_1.2.24.bb b/recipes-core/dbus/dbus_1.2.24.bb new file mode 100644 index 0000000000..75825514b8 --- /dev/null +++ b/recipes-core/dbus/dbus_1.2.24.bb @@ -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" + diff --git a/recipes-core/dbus/dbus_1.4.0.bb b/recipes-core/dbus/dbus_1.4.0.bb new file mode 100644 index 0000000000..2c4943b4f0 --- /dev/null +++ b/recipes-core/dbus/dbus_1.4.0.bb @@ -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" |