pthreads assertion fix from upstream
authorDoug Goldstein <cardoe@gentoo.org>
Sun, 19 Nov 2006 17:32:33 +0000 (17:32 +0000)
committerDoug Goldstein <cardoe@gentoo.org>
Sun, 19 Nov 2006 17:32:33 +0000 (17:32 +0000)
Package-Manager: portage-2.1.2_rc2

sys-apps/dbus/ChangeLog
sys-apps/dbus/dbus-1.0.1-r1.ebuild [new file with mode: 0644]
sys-apps/dbus/dbus-1.0.1.ebuild
sys-apps/dbus/files/dbus-1.0.1-pthread-holder-fix.diff [new file with mode: 0644]
sys-apps/dbus/files/dbus.init-1.0 [new file with mode: 0644]
sys-apps/dbus/files/digest-dbus-1.0.1-r1 [new file with mode: 0644]

index e3442784b9d5d14f1f7a32e646285d5f3a84c0d4..8e1d20e5796ca18c2a3765a5db67975fcaa77386 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for sys-apps/dbus
 # Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/ChangeLog,v 1.153 2006/11/19 14:48:46 pylon Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/ChangeLog,v 1.154 2006/11/19 17:32:33 cardoe Exp $
+
+*dbus-1.0.1-r1 (19 Nov 2006)
+
+  19 Nov 2006; Doug Goldstein <cardoe@gentoo.org> -files/dbus.init-0.95,
+  -files/dbus-0.95-pass-context.patch, +files/dbus.init-1.0,
+  +files/dbus-1.0.1-pthread-holder-fix.diff, -dbus-0.95.ebuild,
+  dbus-1.0.1.ebuild, +dbus-1.0.1-r1.ebuild:
+  pthreads assertion fix from upstream
 
   19 Nov 2006; Lars Weiler <pylon@gentoo.org> dbus-0.62-r1.ebuild:
   Reverting to ~ppc due to build-failure with current stable qt
diff --git a/sys-apps/dbus/dbus-1.0.1-r1.ebuild b/sys-apps/dbus/dbus-1.0.1-r1.ebuild
new file mode 100644 (file)
index 0000000..266fbe8
--- /dev/null
@@ -0,0 +1,116 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-1.0.1-r1.ebuild,v 1.1 2006/11/19 17:32:33 cardoe Exp $
+
+WANT_AUTOCONF=2.5
+inherit eutils multilib debug autotools
+
+DESCRIPTION="A message bus system, a simple way for applications to talk to each other"
+HOMEPAGE="http://dbus.freedesktop.org/"
+SRC_URI="http://dbus.freedesktop.org/releases/dbus/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="|| ( GPL-2 AFL-2.1 )"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="doc selinux X"
+
+RDEPEND="X? ( x11-libs/libXt x11-libs/libX11 )
+       selinux? ( sys-libs/libselinux )
+       >=dev-libs/expat-1.95.8
+       !<sys-apps/dbus-0.91"
+
+DEPEND="${RDEPEND}
+       dev-util/pkgconfig
+       doc? (  app-doc/doxygen
+               app-text/xmlto )"
+
+src_unpack() {
+       unpack "${A}"
+       cd "${S}"
+
+       # fix assertion failure with pthreads
+       epatch "${FILESDIR}"/${PN}-1.0.1-pthread-holder-fix.diff
+}
+
+src_compile() {
+       local myconf=""
+
+       hasq test ${FEATURES} && myconf="${myconf} --enable-tests=yes"
+
+       econf \
+               $(use_with X x) \
+               $(use_enable kernel_linux dnotify) \
+               $(use_enable kernel_FreeBSD kqueue) \
+               $(use_enable selinux) \
+               $(use_enable debug verbose-mode) \
+               $(use_enable debug asserts) \
+               --with-xml=expat \
+               --with-system-pid-file=/var/run/dbus.pid \
+               --with-system-socket=/var/run/dbus/system_bus_socket \
+               --with-session-socket-dir=/tmp \
+               --with-dbus-user=messagebus \
+               --localstatedir=/var \
+               $(use_enable doc doxygen-docs) \
+               --disable-xml-docs \
+               ${myconf} \
+               || die "econf failed"
+
+       # after the compile, it uses a selinuxfs interface to
+       # check if the SELinux policy has the right support
+       use selinux && addwrite /selinux/access
+
+       emake || die "make failed"
+}
+
+src_test() {
+       DBUS_VERBOSE=1 make check || die "make check failed"
+}
+
+src_install() {
+       make DESTDIR="${D}" install || die "make install failed"
+
+       # initscript
+       newinitd "${FILESDIR}"/dbus.init-1.0 dbus
+
+       # dbus X session script (#77504)
+       # turns out to only work for GDM. has been merged into other desktop
+       # (kdm and such scripts)
+       exeinto /etc/X11/xinit/xinitrc.d/
+       doexe "${FILESDIR}"/30-dbus
+
+       # needs to exist for the system socket
+       keepdir /var/run/dbus
+       # needs to exist for machine id
+       keepdir /var/lib/dbus
+
+       keepdir /usr/lib/dbus-1.0/services
+       keepdir /usr/share/dbus-1/services
+
+       dodoc AUTHORS ChangeLog HACKING NEWS README doc/TODO
+       if use doc; then
+               dohtml doc/*html
+       fi
+}
+
+pkg_preinst() {
+       enewgroup messagebus || die "Problem adding messagebus group"
+       enewuser messagebus -1 "-1" -1 messagebus || die "Problem adding messagebus user"
+}
+
+pkg_postinst() {
+       elog "To start the D-Bus system-wide messagebus by default"
+       elog "you should add it to the default runlevel :"
+       elog "\`rc-update add dbus default\`"
+       elog
+       elog "If dbus is already installed and running,"
+       elog "run etc-update and then run the following:"
+       elog "\`/etc/init.d/dbus reload\`"
+       elog "This will cause it to reload it's configs but"
+       elog "*not* run the newest version you just installed."
+       elog "You must tell it to restart for that to happen,"
+       elog "however not all apps can handle a D-Bus restart."
+       elog
+       ewarn
+       ewarn "You MUST run 'revdep-rebuild' after emerging this package"
+       ewarn
+}
index 4f4fce93021aa32ec61e48410cc8fee1aa649146..e9bef237d3c155f9f8bd8c0dc4b4fa248f077219 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2006 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-1.0.1.ebuild,v 1.1 2006/11/17 23:43:48 steev Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-1.0.1.ebuild,v 1.2 2006/11/19 17:32:33 cardoe Exp $
 
 WANT_AUTOCONF=2.5
 inherit eutils multilib debug autotools
@@ -62,7 +62,7 @@ src_install() {
        make DESTDIR="${D}" install || die "make install failed"
 
        # initscript
-       newinitd "${FILESDIR}"/dbus.init-0.95 dbus
+       newinitd "${FILESDIR}"/dbus.init-1.0 dbus
 
        # dbus X session script (#77504)
        # turns out to only work for GDM. has been merged into other desktop
diff --git a/sys-apps/dbus/files/dbus-1.0.1-pthread-holder-fix.diff b/sys-apps/dbus/files/dbus-1.0.1-pthread-holder-fix.diff
new file mode 100644 (file)
index 0000000..4ac2260
--- /dev/null
@@ -0,0 +1,36 @@
+Index: dbus-sysdeps-pthread.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-sysdeps-pthread.c,v
+retrieving revision 1.5
+diff -u -p -B -b -r1.5 dbus-sysdeps-pthread.c
+--- dbus/dbus-sysdeps-pthread.c        28 Oct 2006 01:41:37 -0000      1.5
++++ dbus/dbus-sysdeps-pthread.c        19 Nov 2006 12:40:47 -0000
+@@ -153,6 +153,7 @@ _dbus_pthread_mutex_lock (DBusMutex *mut
+         {
+           /* Wait for the lock */
+           PTHREAD_CHECK ("pthread_mutex_lock", pthread_mutex_lock (&pmutex->lock));
++        pmutex->holder = self;
+           _dbus_assert (pmutex->count == 0);
+         }
+@@ -222,10 +223,11 @@ _dbus_pthread_condvar_wait (DBusCondVar 
+   _dbus_assert (pthread_equal (pmutex->holder, pthread_self ()));
+   old_count = pmutex->count;
+-  pmutex->count = 0;
++  pmutex->count = 0;          /* allow other threads to lock */
+   PTHREAD_CHECK ("pthread_cond_wait", pthread_cond_wait (&pcond->cond, &pmutex->lock));
+   _dbus_assert (pmutex->count == 0);
+   pmutex->count = old_count;
++  pmutex->holder = pthread_self(); /* other threads may have locked the mutex in the meantime */
+ }
+ static dbus_bool_t
+@@ -264,6 +266,7 @@ _dbus_pthread_condvar_wait_timeout (DBus
+   _dbus_assert (pmutex->count == 0);
+   pmutex->count = old_count;
++  pmutex->holder = pthread_self(); /* other threads may have locked the mutex in the meantime */
+   
+   /* return true if we did not time out */
+   return result != ETIMEDOUT;
diff --git a/sys-apps/dbus/files/dbus.init-1.0 b/sys-apps/dbus/files/dbus.init-1.0
new file mode 100644 (file)
index 0000000..ff24f2d
--- /dev/null
@@ -0,0 +1,50 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/files/dbus.init-1.0,v 1.1 2006/11/19 17:32:33 cardoe Exp $
+
+opts="reload"
+
+depend() {
+   after nscd dns
+}
+
+start() {
+       ebegin "Starting D-BUS system messagebus"
+
+       /usr/bin/dbus-uuidgen --ensure
+
+       # We need to test if /var/run/dbus exists, since script will fail if it does not
+       [[ ! -e /var/run/dbus ]] && mkdir /var/run/dbus 
+
+       start-stop-daemon --start --pidfile /var/run/dbus.pid --exec /usr/bin/dbus-daemon -- --system
+       eend $?
+}
+
+stop() {
+       local retval
+
+       ebegin "Stopping D-BUS system messagebus"
+
+       start-stop-daemon --stop --pidfile /var/run/dbus.pid
+       retval=$?
+
+       eend ${retval}
+
+       [[ -S /var/run/dbus/system_bus_socket ]] && rm -f /var/run/dbus/system_bus_socket
+
+       return ${retval}
+}
+
+reload() {
+       local retval
+
+       ebegin "Reloading D-BUS messagebus config"
+       
+       /usr/bin/dbus-send --print-reply --system --type=method_call \
+                       --dest=org.freedesktop.DBus \
+                       / org.freedesktop.DBus.ReloadConfig > /dev/null
+       retval=$?
+       eend ${retval}
+       return ${retval}
+}
diff --git a/sys-apps/dbus/files/digest-dbus-1.0.1-r1 b/sys-apps/dbus/files/digest-dbus-1.0.1-r1
new file mode 100644 (file)
index 0000000..7660510
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 52c70d18fe0b398f5de3b8a18a589960 dbus-1.0.1.tar.gz 1406595
+RMD160 2270f27d9314f0e7b99540f0aa1902b8d0d7343d dbus-1.0.1.tar.gz 1406595
+SHA256 6e0730a39485fb502d640841f0f328c1a0212743f17b3fa61c78e6e32925f061 dbus-1.0.1.tar.gz 1406595