From fd964415bb7c41e4b7ec8e53ff62f67239390a2b Mon Sep 17 00:00:00 2001 From: marcus Date: Wed, 23 Jun 2004 04:34:22 +0000 Subject: Add dbus, a message bus for inter-process communication. This forms the foundation of Project Utopia. While I feel this port is mostly complete, it deserves some more testing before bringing it into the main ports tree. git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@2407 df743ca5-7f9a-e211-a948-0013205c9059 --- devel/dbus/Makefile | 61 ++++++++++++++++++++++++++++++ devel/dbus/distinfo | 2 + devel/dbus/files/dbus.sh | 26 +++++++++++++ devel/dbus/files/patch-dbus-1.pc.in | 9 +++++ devel/dbus/files/patch-dbus_Makefile.in | 11 ++++++ devel/dbus/files/patch-dbus_dbus-sysdeps.c | 51 +++++++++++++++++++++++++ devel/dbus/files/patch-ltmain.sh | 51 +++++++++++++++++++++++++ devel/dbus/pkg-descr | 8 ++++ devel/dbus/pkg-plist | 44 +++++++++++++++++++++ 9 files changed, 263 insertions(+) create mode 100644 devel/dbus/Makefile create mode 100644 devel/dbus/distinfo create mode 100644 devel/dbus/files/dbus.sh create mode 100644 devel/dbus/files/patch-dbus-1.pc.in create mode 100644 devel/dbus/files/patch-dbus_Makefile.in create mode 100644 devel/dbus/files/patch-dbus_dbus-sysdeps.c create mode 100644 devel/dbus/files/patch-ltmain.sh create mode 100644 devel/dbus/pkg-descr create mode 100644 devel/dbus/pkg-plist (limited to 'devel') diff --git a/devel/dbus/Makefile b/devel/dbus/Makefile new file mode 100644 index 000000000..56fd6c276 --- /dev/null +++ b/devel/dbus/Makefile @@ -0,0 +1,61 @@ +# New ports collection makefile for: D-BUS +# Date Created: 22 June 2004 +# Whom: Joe Marcus Clarke +# +# $FreeBSD$ +# + +PORTNAME= dbus +PORTVERSION= 0.21 +CATEGORIES= devel gnome +MASTER_SITES= http://freedesktop.org/Software/dbus/releases/ + +MAINTAINER= gnome@FreeBSD.org +COMMENT= A message bus system for inter-application communication + +LIB_DEPENDS= expat.5:${PORTSDIR}/textproc/expat2 + +USE_GNOME= gnomehack lthack gtk20 libxml2 +USE_GMAKE= yes +GNU_CONFIGURE= yes +INSTALLS_SHLIB= yes +USE_RC_SUBR= yes +USE_PYTHON= yes +CONFIGURE_ARGS= --enable-gtk \ + --disable-python \ + --disable-gcj \ + --disable-mono \ + --with-system-pid-file=/var/run/dbus.pid \ + --with-system-socket=/var/run \ + --with-session-socket-dir=/var/tmp \ + --disable-doxygen-docs \ + --disable-xml-docs +CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ + LDFLAGS="-L${LOCALBASE}/lib" + +OPTIONS= QT "Enable Qt client support" off + +PLIST_SUB= VERSION="1.0" +RC_SCRIPTS_SUB= PREFIX=${PREFIX} RC_SUBR=${RC_SUBR} + +MAN1= dbus-cleanup-sockets.1 dbus-daemon-1.1 dbus-launch.1 \ + dbus-monitor.1 dbus-send.1 + +.include + +.if defined(WITH_QT) && !defined(WITHOUT_QT) +CONFIGURE_ARGS+=--enable-qt +PLIST_SUB+= QT="" +.else +CONFIGURE_ARGS+=--disable-qt +PLIST_SUB+= QT="@comment " +.endif + +post-patch: + @${SED} ${RC_SCRIPTS_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \ + ${FILESDIR}/dbus.sh > ${WRKSRC}/dbus.sh + +post-install: + ${INSTALL_SCRIPT} ${WRKSRC}/dbus.sh ${PREFIX}/etc/rc.d + +.include diff --git a/devel/dbus/distinfo b/devel/dbus/distinfo new file mode 100644 index 000000000..bc074ce55 --- /dev/null +++ b/devel/dbus/distinfo @@ -0,0 +1,2 @@ +MD5 (dbus-0.21.tar.gz) = 311229d60154334ee3f908badc56747d +SIZE (dbus-0.21.tar.gz) = 1152107 diff --git a/devel/dbus/files/dbus.sh b/devel/dbus/files/dbus.sh new file mode 100644 index 000000000..74783abe8 --- /dev/null +++ b/devel/dbus/files/dbus.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# PROVIDE: dbus +# REQUIRE: DAEMON +# KEYWORD: FreeBSD +# +# Add the following lines to /etc/rc.conf to enable the D-BUS messaging system: +# +# dbus_enable="YES" +# + +dbus_enable="NO" +dbus_flags="--system" + +. %%RC_SUBR%% + +name=dbus +rcvar=`set_rcvar` + +command="%%PREFIX%%/bin/dbus-daemon-1" +pidfile="/var/run/${name}.pid" + +load_rc_config ${name} +run_rc_command "$1" diff --git a/devel/dbus/files/patch-dbus-1.pc.in b/devel/dbus/files/patch-dbus-1.pc.in new file mode 100644 index 000000000..1b96c24f5 --- /dev/null +++ b/devel/dbus/files/patch-dbus-1.pc.in @@ -0,0 +1,9 @@ +--- dbus-1.pc.in.orig Tue Jun 22 14:50:57 2004 ++++ dbus-1.pc.in Tue Jun 22 14:54:24 2004 +@@ -7,5 +7,5 @@ + Description: Free desktop message bus + Version: @VERSION@ + Libs: -L${libdir} -ldbus-1 +-Cflags: -I${includedir}/dbus-1.0 -I${libdir}/dbus-1.0/include ++Cflags: -I${includedir}/dbus-1.0 -I${includedir}/dbus-1.0/include + diff --git a/devel/dbus/files/patch-dbus_Makefile.in b/devel/dbus/files/patch-dbus_Makefile.in new file mode 100644 index 000000000..c9f516435 --- /dev/null +++ b/devel/dbus/files/patch-dbus_Makefile.in @@ -0,0 +1,11 @@ +--- dbus/Makefile.in.orig Tue Jun 22 14:58:47 2004 ++++ dbus/Makefile.in Tue Jun 22 14:58:56 2004 +@@ -232,7 +232,7 @@ + INCLUDES = -I$(top_srcdir) $(DBUS_CLIENT_CFLAGS) -DDBUS_COMPILATION + + dbusincludedir = $(includedir)/dbus-1.0/dbus +-dbusarchincludedir = $(libdir)/dbus-1.0/include/dbus ++dbusarchincludedir = $(includedir)/dbus-1.0/include/dbus + + lib_LTLIBRARIES = libdbus-1.la + diff --git a/devel/dbus/files/patch-dbus_dbus-sysdeps.c b/devel/dbus/files/patch-dbus_dbus-sysdeps.c new file mode 100644 index 000000000..73c512b97 --- /dev/null +++ b/devel/dbus/files/patch-dbus_dbus-sysdeps.c @@ -0,0 +1,51 @@ +--- dbus/dbus-sysdeps.c.orig Wed Mar 17 17:08:09 2004 ++++ dbus/dbus-sysdeps.c Tue Jun 22 15:41:42 2004 +@@ -740,12 +740,38 @@ + { + int bytes_written; + char buf[1] = { '\0' }; ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) ++ char cmsgmem[CMSG_SPACE (sizeof (struct cmsgcred))]; ++ struct cmsghdr *cmsg = (struct cmsghdr *) cmsgmem; ++ struct iovec iov; ++ struct msghdr msg; ++#endif ++ ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) ++ iov.iov_base = buf; ++ iov.iov_len = 1; ++ ++ memset (&msg, 0, sizeof (msg)); ++ msg.msg_iov = &iov; ++ msg.msg_iovlen = 1; ++ ++ msg.msg_control = cmsg; ++ msg.msg_controllen = sizeof (cmsgmem); ++ memset (cmsg, 0, sizeof (cmsgmem)); ++ cmsg->cmsg_len = sizeof (cmsgmem); ++ cmsg->cmsg_level = SOL_SOCKET; ++ cmsg->cmsg_type = SCM_CREDS; ++#endif + + _DBUS_ASSERT_ERROR_IS_CLEAR (error); + + again: + ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) ++ bytes_written = sendmsg (server_fd, &msg, 0); ++#else + bytes_written = write (server_fd, buf, 1); ++#endif + + if (bytes_written < 0 && errno == EINTR) + goto again; +@@ -862,7 +888,8 @@ + #ifdef HAVE_CMSGCRED + if (cmsg->cmsg_len < sizeof (cmsgmem) || cmsg->cmsg_type != SCM_CREDS) + { +- dbus_set_error (error, DBUS_ERROR_FAILED); ++ dbus_set_error (error, DBUS_ERROR_FAILED, ++ "Did not receive credentials"); + _dbus_verbose ("Message from recvmsg() was not SCM_CREDS\n"); + return FALSE; + } diff --git a/devel/dbus/files/patch-ltmain.sh b/devel/dbus/files/patch-ltmain.sh new file mode 100644 index 000000000..ee9e9ddd0 --- /dev/null +++ b/devel/dbus/files/patch-ltmain.sh @@ -0,0 +1,51 @@ +--- ltmain.sh.orig Fri Mar 19 16:22:09 2004 ++++ ltmain.sh Tue Jun 22 14:39:06 2004 +@@ -1280,7 +1280,7 @@ + esac + elif test "X$arg" = "X-lc_r"; then + case $host in +- *-*-openbsd* | *-*-freebsd*) ++ *-*-openbsd* | *-*-freebsd4*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; +@@ -1290,8 +1290,16 @@ + continue + ;; + ++ -pthread) ++ compile_command="$compile_command -pthread" ++ finalize_command="$finalize_command -pthread" ++ compiler_flags="$compiler_flags -pthread" ++ continue ++ ;; ++ + -module) + module=yes ++ build_old_libs=no + continue + ;; + +@@ -3000,6 +3008,9 @@ + # problems, so we reset it completely + verstring= + ;; ++ *-*-freebsd*) ++ # FreeBSD doesn't need this... ++ ;; + *) + verstring="0.0" + ;; +@@ -5428,10 +5439,12 @@ + fi + + # Install the pseudo-library for information purposes. ++ if /usr/bin/false; then + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + instname="$dir/$name"i + $show "$install_prog $instname $destdir/$name" + $run eval "$install_prog $instname $destdir/$name" || exit $? ++ fi + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" diff --git a/devel/dbus/pkg-descr b/devel/dbus/pkg-descr new file mode 100644 index 000000000..2a1c3cc0a --- /dev/null +++ b/devel/dbus/pkg-descr @@ -0,0 +1,8 @@ +D-BUS supplies both a system daemon (for events such as "new hardware device +added" or "printer queue changed") and a per-user-login-session daemon (for +general IPC needs among user applications). Also, the message bus is built on +top of a general one-to-one message passing framework, which can be used by +any two apps to communicate directly (without going through the message bus +daemon). + +WWW: http://www.freedesktop.org/Software/dbus diff --git a/devel/dbus/pkg-plist b/devel/dbus/pkg-plist new file mode 100644 index 000000000..5596a89e9 --- /dev/null +++ b/devel/dbus/pkg-plist @@ -0,0 +1,44 @@ +bin/dbus-cleanup-sockets +bin/dbus-daemon-1 +bin/dbus-glib-tool +bin/dbus-launch +bin/dbus-monitor +bin/dbus-send +bin/dbus-viewer +etc/dbus-1/session.conf +etc/dbus-1/system.conf +etc/rc.d/dbus.sh +include/dbus-%%VERSION%%/dbus/dbus-address.h +include/dbus-%%VERSION%%/dbus/dbus-bus.h +include/dbus-%%VERSION%%/dbus/dbus-connection.h +include/dbus-%%VERSION%%/dbus/dbus-errors.h +include/dbus-%%VERSION%%/dbus/dbus-glib.h +include/dbus-%%VERSION%%/dbus/dbus-macros.h +include/dbus-%%VERSION%%/dbus/dbus-memory.h +include/dbus-%%VERSION%%/dbus/dbus-message.h +include/dbus-%%VERSION%%/dbus/dbus-pending-call.h +include/dbus-%%VERSION%%/dbus/dbus-protocol.h +include/dbus-%%VERSION%%/dbus/dbus-server.h +include/dbus-%%VERSION%%/dbus/dbus-threads.h +include/dbus-%%VERSION%%/dbus/dbus-types.h +include/dbus-%%VERSION%%/dbus/dbus.h +include/dbus-%%VERSION%%/include/dbus/dbus-arch-deps.h +lib/libdbus-1.a +lib/libdbus-1.so +lib/libdbus-1.so.0 +lib/libdbus-glib-1.a +lib/libdbus-glib-1.so +lib/libdbus-glib-1.so.0 +%%QT%%lib/libdbus-qt-1.a +%%QT%%lib/libdbus-qt-1.so +%%QT%%lib/libdbus-qt-1.so.0 +libdata/pkgconfig/dbus-1.pc +libdata/pkgconfig/dbus-glib-1.pc +@dirrm lib/dbus-%%VERSION%%/services +@dirrm lib/dbus-%%VERSION%% +@dirrm include/dbus-%%VERSION%%/include/dbus +@dirrm include/dbus-%%VERSION%%/include +@dirrm include/dbus-%%VERSION%%/dbus +@dirrm include/dbus-%%VERSION%% +@dirrm etc/dbus-1/system.d +@dirrm etc/dbus-1 -- cgit v1.2.3