Add packages for D-Bus and G-Lib interface library too.
author"Steven J. Hill" <sjhill@realitydiluted.com>
Sun, 14 Jan 2007 03:45:06 +0000 (03:45 -0000)
committer"Steven J. Hill" <sjhill@realitydiluted.com>
Sun, 14 Jan 2007 03:45:06 +0000 (03:45 -0000)
package/dbus-glib/Config.in [new file with mode: 0644]
package/dbus-glib/dbus-glib-0.70-dontgeneratexml.patch [new file with mode: 0644]
package/dbus-glib/dbus-glib-cross-compile.patch [new file with mode: 0644]
package/dbus-glib/dbus-glib.mk [new file with mode: 0644]
package/dbus/Config.in [new file with mode: 0644]
package/dbus/dbus.mk [new file with mode: 0644]
package/dbus/init-dbus [new file with mode: 0755]

diff --git a/package/dbus-glib/Config.in b/package/dbus-glib/Config.in
new file mode 100644 (file)
index 0000000..285687a
--- /dev/null
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_DBUS_GLIB
+       bool "dbus-glib"
+       default n
+       depends on BR2_PACKAGE_DBUS
+       select BR2_PACKAGE_LIBGLIB2
+       help
+         GLib bindings for D-Bus.
+
+         http://www.freedesktop.org/software/dbus
diff --git a/package/dbus-glib/dbus-glib-0.70-dontgeneratexml.patch b/package/dbus-glib/dbus-glib-0.70-dontgeneratexml.patch
new file mode 100644 (file)
index 0000000..1a18a70
--- /dev/null
@@ -0,0 +1,77 @@
+--- dbus-glib-0.70/tools/dbus-bus-introspect.xml.dontgenerate  2006-07-18 15:14:38.000000000 -0400
++++ dbus-glib-0.70/tools/dbus-bus-introspect.xml       2006-07-18 15:13:17.000000000 -0400
+@@ -0,0 +1,74 @@
++   <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
++"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
++<node>
++  <interface name="org.freedesktop.DBus.Introspectable">
++    <method name="Introspect">
++      <arg name="data" direction="out" type="s"/>
++    </method>
++  </interface>
++  <interface name="org.freedesktop.DBus">
++    <method name="RequestName">
++      <arg direction="in" type="s"/>
++      <arg direction="in" type="u"/>
++      <arg direction="out" type="u"/>
++    </method>
++    <method name="ReleaseName">
++      <arg direction="in" type="s"/>
++      <arg direction="out" type="u"/>
++    </method>
++    <method name="StartServiceByName">
++      <arg direction="in" type="s"/>
++      <arg direction="in" type="u"/>
++      <arg direction="out" type="u"/>
++    </method>
++    <method name="Hello">
++      <arg direction="out" type="s"/>
++    </method>
++    <method name="NameHasOwner">
++      <arg direction="in" type="s"/>
++      <arg direction="out" type="b"/>
++    </method>
++    <method name="ListNames">
++      <arg direction="out" type="as"/>
++    </method>
++    <method name="AddMatch">
++      <arg direction="in" type="s"/>
++    </method>
++    <method name="RemoveMatch">
++      <arg direction="in" type="s"/>
++    </method>
++    <method name="GetNameOwner">
++      <arg direction="in" type="s"/>
++      <arg direction="out" type="s"/>
++    </method>
++    <method name="ListQueuedOwners">
++      <arg direction="in" type="s"/>
++      <arg direction="out" type="as"/>
++    </method>
++    <method name="GetConnectionUnixUser">
++      <arg direction="in" type="s"/>
++      <arg direction="out" type="u"/>
++    </method>
++    <method name="GetConnectionUnixProcessID">
++      <arg direction="in" type="s"/>
++      <arg direction="out" type="u"/>
++    </method>
++    <method name="GetConnectionSELinuxSecurityContext">
++      <arg direction="in" type="s"/>
++      <arg direction="out" type="ay"/>
++    </method>
++    <method name="ReloadConfig">
++    </method>
++    <signal name="NameOwnerChanged">
++      <arg type="s"/>
++      <arg type="s"/>
++      <arg type="s"/>
++    </signal>
++    <signal name="NameLost">
++      <arg type="s"/>
++    </signal>
++    <signal name="NameAcquired">
++      <arg type="s"/>
++    </signal>
++  </interface>
++</node>
diff --git a/package/dbus-glib/dbus-glib-cross-compile.patch b/package/dbus-glib/dbus-glib-cross-compile.patch
new file mode 100644 (file)
index 0000000..b976883
--- /dev/null
@@ -0,0 +1,129 @@
+diff -ur dbus-glib-0.72/configure.ac dbus-glib-0.72-patched/configure.ac
+--- dbus-glib-0.72/configure.ac        2006-10-25 15:53:55.000000000 -0500
++++ dbus-glib-0.72-patched/configure.ac        2006-11-15 14:15:09.000000000 -0600
+@@ -431,42 +431,6 @@
+ AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
+-AC_CACHE_CHECK([for posix getpwnam_r],
+-              ac_cv_func_posix_getpwnam_r,
+-              [AC_TRY_RUN([
+-#include <errno.h>
+-#include <pwd.h>
+-int main () { 
+-    char buffer[10000];
+-    struct passwd pwd, *pwptr = &pwd;
+-    int error;
+-    errno = 0;
+-    error = getpwnam_r ("", &pwd, buffer, 
+-                        sizeof (buffer), &pwptr);
+-   return (error < 0 && errno == ENOSYS) 
+-         || error == ENOSYS; 
+-}               ],
+-      [ac_cv_func_posix_getpwnam_r=yes],
+-      [ac_cv_func_posix_getpwnam_r=no])])
+-if test "$ac_cv_func_posix_getpwnam_r" = yes; then
+-      AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
+-              [Have POSIX function getpwnam_r])
+-else
+-      AC_CACHE_CHECK([for nonposix getpwnam_r],
+-              ac_cv_func_nonposix_getpwnam_r,
+-              [AC_TRY_LINK([#include <pwd.h>],
+-                              [char buffer[10000];
+-                              struct passwd pwd;
+-                              getpwnam_r ("", &pwd, buffer, 
+-                                              sizeof (buffer));],
+-                      [ac_cv_func_nonposix_getpwnam_r=yes],
+-                      [ac_cv_func_nonposix_getpwnam_r=no])])
+-              if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
+-              AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
+-                      [Have non-POSIX function getpwnam_r])
+-      fi
+-fi
+-
+ dnl check for socklen_t
+ AC_MSG_CHECKING(whether socklen_t is defined)
+ AC_TRY_COMPILE([
+@@ -532,49 +496,6 @@
+ #### Abstract sockets
+-AC_MSG_CHECKING(abstract socket namespace)
+-AC_LANG_PUSH(C)
+-AC_RUN_IFELSE([AC_LANG_PROGRAM(
+-[[
+-#include <sys/types.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <stdio.h>
+-#include <sys/socket.h>
+-#include <sys/un.h>
+-#include <errno.h>
+-]],
+-[[
+-  int listen_fd;
+-  struct sockaddr_un addr;
+-  
+-  listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
+-  
+-  if (listen_fd < 0)
+-    {
+-      fprintf (stderr, "socket() failed: %s\n", strerror (errno));
+-      exit (1);
+-    }
+-
+-  memset (&addr, '\0', sizeof (addr));
+-  addr.sun_family = AF_UNIX;
+-  strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
+-  addr.sun_path[0] = '\0'; /* this is what makes it abstract */
+-  
+-  if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
+-    {
+-       fprintf (stderr, "Abstract socket namespace bind() failed: %s\n", 
+-                strerror (errno));
+-       exit (1);
+-    }
+-  else 
+-    exit (0);
+-]])],
+-              [have_abstract_sockets=yes],
+-              [have_abstract_sockets=no])
+-AC_LANG_POP(C)
+-AC_MSG_RESULT($have_abstract_sockets)
+-
+ if test x$enable_abstract_sockets = xyes; then
+     if test x$have_abstract_sockets = xno; then
+       AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
+diff -ur dbus-glib-0.72/dbus/Makefile.in dbus-glib-0.72-patched/dbus/Makefile.in
+--- dbus-glib-0.72/dbus/Makefile.in    2006-10-25 16:14:31.000000000 -0500
++++ dbus-glib-0.72-patched/dbus/Makefile.in    2006-11-15 14:15:09.000000000 -0600
+@@ -303,7 +303,7 @@
+ target_cpu = @target_cpu@
+ target_os = @target_os@
+ target_vendor = @target_vendor@
+-SUBDIRS = . examples
++SUBDIRS = .
+ INCLUDES = \
+       -I$(top_srcdir)                                         \
+       -I$(top_builddir)                                       \
+@@ -371,7 +371,7 @@
+       dbus-glib-tool.h                        \
+       dbus-glib-tool.c
+-dbus_binding_tool_LDADD = libdbus-gtool.la libdbus-glib-1.la $(DBUS_LIBS) $(DBUS_GLIB_LIBS) -lexpat
++dbus_binding_tool_LDADD = libdbus-gtool.la libdbus-glib-1.la $(DBUS_LIBS) $(DBUS_GLIB_LIBS) $(DBUS_BUS_LIBS)
+ EXTRA_DIST = dbus-gmarshal.list make-dbus-glib-error-switch.sh make-dbus-glib-error-enum.sh
+ @DBUS_BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = DBUS_TEST_DATA=$(top_builddir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus
+diff -ur dbus-glib-0.72/Makefile.in dbus-glib-0.72-patched/Makefile.in
+--- dbus-glib-0.72/Makefile.in 2006-10-25 16:14:33.000000000 -0500
++++ dbus-glib-0.72-patched/Makefile.in 2006-11-15 14:15:28.000000000 -0600
+@@ -277,7 +277,7 @@
+ target_os = @target_os@
+ target_vendor = @target_vendor@
+ GLIB_PC = dbus-glib-1.pc
+-SUBDIRS = dbus tools test doc
++SUBDIRS = dbus
+ DIST_SUBDIRS = dbus tools test doc m4
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = $(GLIB_PC)
diff --git a/package/dbus-glib/dbus-glib.mk b/package/dbus-glib/dbus-glib.mk
new file mode 100644 (file)
index 0000000..30f91f1
--- /dev/null
@@ -0,0 +1,82 @@
+#############################################################
+#
+# dbus-glib
+#
+#############################################################
+DBUS_GLIB_VER:=0.72
+DBUS_GLIB_SOURCE:=dbus-glib-$(DBUS_GLIB_VER).tar.gz
+DBUS_GLIB_SITE:=http://dbus.freedesktop.org/releases/dbus-glib/
+DBUS_GLIB_DIR:=$(BUILD_DIR)/dbus-glib-$(DBUS_GLIB_VER)
+DBUS_GLIB_CAT:=$(ZCAT)
+DBUS_GLIB_BINARY:=dbus/.libs/dbus-binding-tool
+DBUS_GLIB_TARGET_BINARY:=usr/bin/dbus-binding-tool
+
+$(DL_DIR)/$(DBUS_GLIB_SOURCE):
+       $(WGET) -P $(DL_DIR) $(DBUS_GLIB_SITE)/$(DBUS_GLIB_SOURCE)
+
+dbus-glib-source: $(DL_DIR)/$(DBUS_GLIB_SOURCE)
+
+$(DBUS_GLIB_DIR)/.unpacked: $(DL_DIR)/$(DBUS_GLIB_SOURCE)
+       $(DBUS_GLIB_CAT) $(DL_DIR)/$(DBUS_GLIB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+       toolchain/patch-kernel.sh $(DBUS_GLIB_DIR) package/dbus-glib/ \*.patch
+       touch $(DBUS_GLIB_DIR)/.unpacked
+
+$(DBUS_GLIB_DIR)/.configured: $(DBUS_GLIB_DIR)/.unpacked /usr/bin/pkg-config
+       (cd $(DBUS_GLIB_DIR); rm -rf config.cache; autoconf ; \
+               $(TARGET_CONFIGURE_OPTS) \
+               ac_cv_have_abstract_sockets=yes \
+               ac_cv_func_posix_getpwnam_r=yes \
+               have_abstract_sockets=yes \
+               CFLAGS="$(TARGET_CFLAGS)" \
+               LDFLAGS="$(TARGET_LDFLAGS)" \
+               DBUS_CFLAGS="-I$(STAGING_DIR)/usr/include/dbus-1.0 -I$(STAGING_DIR)/usr/lib/dbus-1.0/include" \
+               DBUS_LIBS="$(STAGING_DIR)/usr/lib/libdbus-1.so" \
+               DBUS_GLIB_CFLAGS="-I$(STAGING_DIR)/include/glib-2.0 -I$(STAGING_DIR)/lib/glib-2.0/include" \
+               DBUS_GLIB_LIBS="$(STAGING_DIR)/lib/libglib-2.0.so $(STAGING_DIR)/lib/libgobject-2.0.so $(STAGING_DIR)/lib/libgmodule-2.0.so $(STAGING_DIR)/lib/libgthread-2.0.so" \
+               PKG_CONFIG=/usr/bin/pkg-config \
+               ./configure \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_TARGET_NAME) \
+               --build=$(GNU_HOST_NAME) \
+               --prefix=/usr \
+               --exec-prefix=/usr \
+               --localstatedir=/var \
+               --program-prefix="" \
+               --disable-tests \
+               --disable-xml-docs \
+               --disable-doxygen-docs \
+               --enable-asserts=yes \
+       );
+       touch  $(DBUS_GLIB_DIR)/.configured
+
+$(DBUS_GLIB_DIR)/$(DBUS_GLIB_BINARY): $(DBUS_GLIB_DIR)/.configured
+       $(MAKE) DBUS_BUS_LIBS="$(STAGING_DIR)/lib/libexpat.so" -C $(DBUS_GLIB_DIR) all
+
+$(STAGING_DIR)/usr/lib/libdbus-glib-1.so.2.0.0: $(DBUS_GLIB_DIR)/$(DBUS_GLIB_BINARY)
+       cp -a $(DBUS_GLIB_DIR)/dbus/.libs/libdbus-glib-1.so* $(STAGING_DIR)/usr/lib
+       -touch -c $(STAGING_DIR)/usr/lib/libdbus-glib-1.so.2.0.0
+
+$(TARGET_DIR)/$(DBUS_GLIB_TARGET_BINARY): $(STAGING_DIR)/usr/lib/libdbus-glib-1.so.2.0.0
+       cp -a $(DBUS_GLIB_DIR)/dbus/.libs/libdbus-glib-1.so.2* $(TARGET_DIR)/usr/lib
+       cp -a $(DBUS_GLIB_DIR)/dbus/.libs/dbus-binding-tool $(TARGET_DIR)/usr/bin
+       -$(STRIP) --strip-unneeded $(TARGET_DIR)/usr/lib/libdbus-glib-1.so.2.0.0
+
+dbus-glib: uclibc dbus libglib2 $(TARGET_DIR)/$(DBUS_GLIB_TARGET_BINARY)
+
+dbus-glib-clean:
+       rm -f $(TARGET_DIR)/usr/lib/libdbus-glib-1.so.2*
+       rm -f $(TARGET_DIR)/usr/bin/dbus-binding-tool
+       rm -f $(STAGING_DIR)/usr/lib/libdbus-glib-1.so*
+       -$(MAKE) -C $(DBUS_GLIB_DIR) clean
+
+dbus-glib-dirclean:
+       rm -rf $(DBUS_GLIB_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DBUS_GLIB)),y)
+TARGETS+=dbus-glib
+endif
diff --git a/package/dbus/Config.in b/package/dbus/Config.in
new file mode 100644 (file)
index 0000000..7d7640c
--- /dev/null
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_DBUS
+       bool "dbus"
+       default n
+       select BR2_PACKAGE_EXPAT
+       help
+         The D-Bus message bus system.
+
+         http://www.freedesktop.org/wiki/Software/dbus
diff --git a/package/dbus/dbus.mk b/package/dbus/dbus.mk
new file mode 100644 (file)
index 0000000..32629fd
--- /dev/null
@@ -0,0 +1,100 @@
+#############################################################
+#
+# dbus
+#
+#############################################################
+DBUS_VER:=1.0.0
+DBUS_SOURCE:=dbus-$(DBUS_VER).tar.gz
+DBUS_SITE:=http://dbus.freedesktop.org/releases/dbus/
+DBUS_DIR:=$(BUILD_DIR)/dbus-$(DBUS_VER)
+DBUS_CAT:=$(ZCAT)
+DBUS_BINARY:=bus/dbus-daemon
+DBUS_TARGET_BINARY:=usr/bin/dbus-daemon
+
+$(DL_DIR)/$(DBUS_SOURCE):
+       $(WGET) -P $(DL_DIR) $(DBUS_SITE)/$(DBUS_SOURCE)
+
+dbus-source: $(DL_DIR)/$(DBUS_SOURCE)
+
+$(DBUS_DIR)/.unpacked: $(DL_DIR)/$(DBUS_SOURCE)
+       $(DBUS_CAT) $(DL_DIR)/$(DBUS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+       touch $(DBUS_DIR)/.unpacked
+
+$(DBUS_DIR)/.configured: $(DBUS_DIR)/.unpacked
+       (cd $(DBUS_DIR); rm -rf config.cache; \
+               $(TARGET_CONFIGURE_OPTS) \
+               ac_cv_have_abstract_sockets=yes \
+               CFLAGS="$(TARGET_CFLAGS)" \
+               LDFLAGS="$(TARGET_LDFLAGS)" \
+               ./configure \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_TARGET_NAME) \
+               --build=$(GNU_HOST_NAME) \
+               --prefix=/usr \
+               --exec-prefix=/usr \
+               --localstatedir=/var \
+               --program-prefix="" \
+               --sysconfdir=/etc \
+               --with-dbus-user=dbus \
+               --disable-tests \
+               --disable-asserts \
+               --enable-abstract-sockets \
+               --disable-selinux \
+               --disable-xml-docs \
+               --disable-doxygen-docs \
+               --disable-static \
+               --enable-dnotify \
+               --without-x \
+               --without-xml \
+               --with-system-socket=/var/run/dbus/system_bus_socket \
+               --with-system-pid-file=/var/run/messagebus.pid \
+       );
+       touch  $(DBUS_DIR)/.configured
+
+$(DBUS_DIR)/$(DBUS_BINARY): $(DBUS_DIR)/.configured
+       $(MAKE) DBUS_BUS_LIBS="$(STAGING_DIR)/lib/libexpat.so" -C $(DBUS_DIR) all
+
+$(STAGING_DIR)/usr/lib/libdbus-1.so: $(DBUS_DIR)/$(DBUS_BINARY)
+       $(MAKE) DESTDIR=$(STAGING_DIR) -C $(DBUS_DIR)/dbus install
+
+$(TARGET_DIR)/$(DBUS_TARGET_BINARY): $(STAGING_DIR)/usr/lib/libdbus-1.so
+       mkdir $(TARGET_DIR)/var/run/dbus
+       $(MAKE) DESTDIR=$(TARGET_DIR) -C $(DBUS_DIR)/dbus install
+       rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/lib/dbus-1.0
+       rm -f $(TARGET_DIR)/usr/lib/libdbus-1.la
+       rm -f $(TARGET_DIR)/usr/lib/libdbus-1.so
+       -$(STRIP) --strip-unneeded $(TARGET_DIR)/usr/lib/libdbus-1.so.3.2.0
+       $(MAKE) DESTDIR=$(TARGET_DIR) initddir=/etc/init.d -C $(DBUS_DIR)/bus install
+       $(INSTALL) -m 0755 -D package/dbus/init-dbus $(TARGET_DIR)/etc/init.d/S97messagebus
+       rm -f $(TARGET_DIR)/etc/init.d/messagebus
+       rm -rf $(TARGET_DIR)/usr/man
+       rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/usr/share
+       rm -rf $(TARGET_DIR)/etc/rc.d
+
+dbus: uclibc expat $(TARGET_DIR)/$(DBUS_TARGET_BINARY)
+
+dbus-clean:
+       rm -f $(TARGET_DIR)/etc/dbus-1/session.conf
+       rm -f $(TARGET_DIR)/etc/dbus-1/system.conf
+       rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/dbus-1/system.d
+       rm -f $(TARGET_DIR)/etc/init.d/S97messagebus
+       rm -f $(TARGET_DIR)/usr/lib/libdbus-1.so*
+       rm -f $(TARGET_DIR)/usr/bin/dbus-daemon
+       rm -rf $(TARGET_DIR)/tmp/dbus
+       rm -f $(STAGING_DIR)/usr/lib/libdbus-1.*
+       rm -rf $(STAGING_DIR)/usr/lib/dbus-1.0
+       rm -rf $(STAGING_DIR)/usr/include/dbus-1.0
+       rmdir --ignore-fail-on-non-empty $(STAGING_DIR)/usr/include
+       -$(MAKE) -C $(DBUS_DIR) clean
+
+dbus-dirclean:
+       rm -rf $(DBUS_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DBUS)),y)
+TARGETS+=dbus
+endif
diff --git a/package/dbus/init-dbus b/package/dbus/init-dbus
new file mode 100755 (executable)
index 0000000..bddb3b9
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# messagebus:   The D-BUS systemwide message bus
+#
+# chkconfig: 345 97 03
+# description:  This is a daemon which broadcasts notifications of system events \
+#               and other messages. See http://www.freedesktop.org/software/dbus/
+#
+# processname: dbus-daemon
+# pidfile: /var/run/messagebus.pid
+#
+
+# Sanity checks.
+[ -x /usr/bin/dbus-daemon ] || exit 0
+
+# Create needed directories.
+[ -d /var/run/dbus ] || mkdir -p /var/run/dbus
+[ -d /var/lock/subsys ] || mkdir -p /var/lock/subsys
+
+RETVAL=0
+
+start() {
+    echo -n "Starting system message bus: "
+
+    dbus-daemon --system
+    RETVAL=$?
+    echo "done"
+    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dbus-daemon
+}
+
+stop() {
+    echo -n "Stopping system message bus: "
+
+    ## we don't want to kill all the per-user $processname, we want
+    ## to use the pid file *only*; because we use the fake nonexistent 
+    ## program name "$servicename" that should be safe-ish
+    killall dbus-daemon
+    RETVAL=$?
+    echo "done"
+    if [ $RETVAL -eq 0 ]; then
+        rm -f /var/lock/subsys/dbus-daemon
+        rm -f /var/run/messagebus.pid
+    fi
+}
+
+# See how we were called.
+case "$1" in
+    start)
+        start
+        ;;
+    stop)
+        stop
+        ;;
+    status)
+        status $processname
+        RETVAL=$?
+        ;;
+    restart)
+        stop
+        start
+        ;;
+    condrestart)
+        if [ -f /var/lock/subsys/$servicename ]; then
+            stop
+            start
+        fi
+        ;;
+    reload)
+        echo "Message bus can't reload its configuration, you have to restart it"
+        RETVAL=$?
+        ;;
+    *)
+        echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
+        ;;
+esac
+exit $RETVAL