diff options
author | Gilles Dartiguelongue <eva@gentoo.org> | 2010-09-09 23:09:05 +0000 |
---|---|---|
committer | Gilles Dartiguelongue <eva@gentoo.org> | 2010-09-09 23:09:05 +0000 |
commit | f382097ac71b33ec9c07fe1c7ba0bb301998322b (patch) | |
tree | ec66e2fd7f8355fe0057ce49ac9ff3528b4bbdfb /sys-apps/dbus | |
parent | Add new package. Ebuild by Dennis Schridde (diff) | |
download | gentoo-2-f382097ac71b33ec9c07fe1c7ba0bb301998322b.tar.gz gentoo-2-f382097ac71b33ec9c07fe1c7ba0bb301998322b.tar.bz2 gentoo-2-f382097ac71b33ec9c07fe1c7ba0bb301998322b.zip |
Apply thread safety patch from master, bug #336588. Sync dbus-1.2 with 1.3 ebuild enhancements. Clean up old revision.
(Portage version: 2.2_rc78/cvs/Linux x86_64)
Diffstat (limited to 'sys-apps/dbus')
-rw-r--r-- | sys-apps/dbus/ChangeLog | 12 | ||||
-rw-r--r-- | sys-apps/dbus/dbus-1.2.24-r2.ebuild | 169 | ||||
-rw-r--r-- | sys-apps/dbus/dbus-1.2.3-r1.ebuild | 125 | ||||
-rw-r--r-- | sys-apps/dbus/dbus-1.3.0-r3.ebuild | 178 | ||||
-rw-r--r-- | sys-apps/dbus/files/dbus-1.2.3-bsd.patch | 50 | ||||
-rw-r--r-- | sys-apps/dbus/files/dbus-1.2.3-panic-from-dbus_signature_validate.patch | 32 |
6 files changed, 358 insertions, 208 deletions
diff --git a/sys-apps/dbus/ChangeLog b/sys-apps/dbus/ChangeLog index 64ea8ceb6cd3..f47af2c9bc96 100644 --- a/sys-apps/dbus/ChangeLog +++ b/sys-apps/dbus/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for sys-apps/dbus # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/ChangeLog,v 1.257 2010/08/05 19:54:03 lack Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/ChangeLog,v 1.258 2010/09/09 23:09:05 eva Exp $ + +*dbus-1.3.0-r3 (09 Sep 2010) +*dbus-1.2.24-r2 (09 Sep 2010) + + 09 Sep 2010; Gilles Dartiguelongue <eva@gentoo.org> -dbus-1.2.3-r1.ebuild, + -files/dbus-1.2.3-bsd.patch, + -files/dbus-1.2.3-panic-from-dbus_signature_validate.patch, + +dbus-1.2.24-r2.ebuild, +dbus-1.3.0-r3.ebuild: + Apply thread safety patch from master, bug #336588. Sync dbus-1.2 with 1.3 + ebuild enhancements. Clean up old revision. *dbus-1.3.0-r2 (05 Aug 2010) *dbus-1.2.24-r1 (05 Aug 2010) diff --git a/sys-apps/dbus/dbus-1.2.24-r2.ebuild b/sys-apps/dbus/dbus-1.2.24-r2.ebuild new file mode 100644 index 000000000000..f6f3d3ef6c4d --- /dev/null +++ b/sys-apps/dbus/dbus-1.2.24-r2.ebuild @@ -0,0 +1,169 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-1.2.24-r2.ebuild,v 1.1 2010/09/09 23:09:05 eva Exp $ + +EAPI="2" + +inherit eutils multilib flag-o-matic + +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" + +LICENSE="|| ( GPL-2 AFL-2.1 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="debug doc selinux test X" + +RDEPEND="X? ( x11-libs/libXt x11-libs/libX11 ) + selinux? ( sys-libs/libselinux + sec-policy/selinux-dbus ) + >=dev-libs/expat-1.95.8 + !<sys-apps/dbus-0.91" +DEPEND="${RDEPEND} + dev-util/pkgconfig + doc? ( + app-doc/doxygen + app-text/xmlto + app-text/docbook-xml-dtd:4.1.2 )" + +# out of sources build directory +BD=${WORKDIR}/${P}-build +# out of sources build dir for make check +TBD=${WORKDIR}/${P}-tests-build + +pkg_setup() { + enewgroup messagebus + enewuser messagebus -1 "-1" -1 messagebus +} + +src_prepare() { + # Tests were restricted because of this + sed -e 's/.*bus_dispatch_test.*/printf ("Disabled due to excess noise\\n");/' \ + -e '/"dispatch"/d' -i "${S}/bus/test-main.c" || die "sed failed" + + # Thread safety patch, upstream #17754 + epatch "${FILESDIR}/${PN}-1.2.24-thread-safety.patch" +} + +src_configure() { + local my_conf + + # so we can get backtraces from apps + append-flags -rdynamic + + # libaudit is *only* used in DBus wrt SELinux support, so disable it, if + # not on an SELinux profile. + my_conf="$(use_with X x) + $(use_enable debug verbose-mode) + $(use_enable debug asserts) + $(use_enable kernel_linux inotify) + $(use_enable kernel_FreeBSD kqueue) + $(use_enable selinux) + $(use_enable selinux libaudit) + --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" + + mkdir "${BD}" + cd "${BD}" + einfo "Running configure in ${BD}" + ECONF_SOURCE="${S}" econf ${my_conf} \ + $(use_enable doc doxygen-docs) \ + $(use_enable doc xml-docs) + + if use test; then + mkdir "${TBD}" + cd "${TBD}" + einfo "Running configure in ${TBD}" + ECONF_SOURCE="${S}" econf \ + ${my_conf} \ + $(use_enable test checks) \ + $(use_enable test tests) \ + $(use_enable test asserts) + fi +} + +src_compile() { + # after the compile, it uses a selinuxfs interface to + # check if the SELinux policy has the right support + use selinux && addwrite /selinux/access + + cd "${BD}" + einfo "Running make in ${BD}" + emake || die "make failed" + + if use doc; then + einfo "Building API documentation..." + doxygen || die "doxygen failed" + fi + + if use test; then + cd "${TBD}" + einfo "Running make in ${TBD}" + emake || die "make failed" + fi +} + +src_test() { + cd "${TBD}" + DBUS_VERBOSE=1 make check || die "make check failed" +} + +src_install() { + # initscript + newinitd "${FILESDIR}"/dbus.init-1.0 dbus || die "newinitd failed" + + if use X ; then + # dbus X session script (#77504) + # turns out to only work for GDM (and startx). has been merged into + # other desktop (kdm and such scripts) + exeinto /etc/X11/xinit/xinitrc.d/ + doexe "${FILESDIR}"/80-dbus || die "doexe failed" + fi + + # needs to exist for the system socket + keepdir /var/run/dbus + # needs to exist for machine id + keepdir /var/lib/dbus + # needs to exist for dbus sessions to launch + + keepdir /usr/lib/dbus-1.0/services + keepdir /usr/share/dbus-1/services + keepdir /etc/dbus-1/system.d/ + keepdir /etc/dbus-1/session.d/ + + dodoc AUTHORS ChangeLog HACKING NEWS README doc/TODO || die "dodoc failed" + + cd "${BD}" + # FIXME: split dtd's in dbus-dtd ebuild + emake DESTDIR="${D}" install || die "make install failed" + if use doc; then + dohtml doc/*.html doc/api/html/* || die "dohtml failed" + fi +} + +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 "Some applications require a session bus in addition to the system" + elog "bus. Please see \`man dbus-launch\` for more information." + elog + ewarn "You must restart D-Bus \`/etc/init.d/dbus restart\` to run" + ewarn "the new version of the daemon." + + if has_version x11-base/xorg-server[hal]; then + elog + ewarn "You are currently running X with the hal useflag enabled" + ewarn "restarting the dbus service WILL restart X as well" + ebeep 5 + fi + + # Ensure unique id is generated + dbus-uuidgen --ensure="${ROOT}"/var/lib/dbus/machine-id +} diff --git a/sys-apps/dbus/dbus-1.2.3-r1.ebuild b/sys-apps/dbus/dbus-1.2.3-r1.ebuild deleted file mode 100644 index 5202410afa6f..000000000000 --- a/sys-apps/dbus/dbus-1.2.3-r1.ebuild +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright 1999-2010 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-1.2.3-r1.ebuild,v 1.11 2010/04/20 11:36:30 ssuominen Exp $ - -inherit eutils multilib flag-o-matic - -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" - -LICENSE="|| ( GPL-2 AFL-2.1 )" -SLOT="0" -KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd" -IUSE="debug doc selinux X" - -RDEPEND="X? ( x11-libs/libXt x11-libs/libX11 ) - selinux? ( sys-libs/libselinux - sec-policy/selinux-dbus ) - >=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 potential DoS issue. fdo bug #17803. Gentoo bug #240308 - epatch "${FILESDIR}"/${PN}-1.2.3-panic-from-dbus_signature_validate.patch - # Fix runtime error on FreeBSD. Gentoo bug #236779, fdo bug #17061 - # From upstream, drop at next bump - epatch "${FILESDIR}"/${P}-bsd.patch -} - -src_compile() { - # so we can get backtraces from apps - append-flags -rdynamic - - local myconf="" - - hasq test ${FEATURES} && myconf="${myconf} --enable-tests=yes" - # libaudit is *only* used in DBus wrt SELinux support, so disable it, if - # not on an SELinux profile. - econf \ - $(use_with X x) \ - $(use_enable kernel_linux inotify) \ - $(use_enable kernel_FreeBSD kqueue) \ - $(use_enable selinux) \ - $(use_enable selinux libaudit) \ - $(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() { - emake 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 - # needs to exist for dbus sessions to launch - - keepdir /usr/lib/dbus-1.0/services - keepdir /usr/share/dbus-1/services - keepdir /etc/dbus-1/system.d/ - keepdir /etc/dbus-1/session.d/ - - dodoc AUTHORS ChangeLog HACKING NEWS README doc/TODO - if use doc; then - dohtml doc/*html - fi -} - -pkg_preinst() { - enewgroup messagebus - enewuser messagebus -1 "-1" -1 messagebus -} - -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 "Some applications require a session bus in addition to the system" - elog "bus. Please see \`man dbus-launch\` for more information." - elog - ewarn "If you are currently running X with the hal useflag enabled" - ewarn "restarting the dbus service WILL restart X as well" - ebeep 5 - elog - ewarn "You must restart D-Bus \`/etc/init.d/dbus restart\` to run" - ewarn "the new version of the daemon. For many people, this means" - ewarn "exiting X as well." - -} diff --git a/sys-apps/dbus/dbus-1.3.0-r3.ebuild b/sys-apps/dbus/dbus-1.3.0-r3.ebuild new file mode 100644 index 000000000000..3a143fe704d5 --- /dev/null +++ b/sys-apps/dbus/dbus-1.3.0-r3.ebuild @@ -0,0 +1,178 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-1.3.0-r3.ebuild,v 1.1 2010/09/09 23:09:05 eva Exp $ + +EAPI="2" + +inherit autotools eutils multilib flag-o-matic + +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" + +LICENSE="|| ( GPL-2 AFL-2.1 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="debug doc selinux test X" + +RDEPEND="X? ( x11-libs/libXt x11-libs/libX11 ) + selinux? ( sys-libs/libselinux + sec-policy/selinux-dbus ) + >=dev-libs/expat-1.95.8 + !<sys-apps/dbus-0.91" +DEPEND="${RDEPEND} + dev-util/pkgconfig + doc? ( + app-doc/doxygen + app-text/xmlto + app-text/docbook-xml-dtd:4.1.2 )" + +# out of sources build directory +BD=${WORKDIR}/${P}-build +# out of sources build dir for make check +TBD=${WORKDIR}/${P}-tests-build + +pkg_setup() { + enewgroup messagebus + enewuser messagebus -1 "-1" -1 messagebus +} + +src_prepare() { + # Remove CFLAGS that is not supported by all gcc, bug #274456 + sed 's/-Wno-pointer-sign//g' -i configure.in configure || die "sed failed" + + # Tests were restricted because of this + sed -e 's/.*bus_dispatch_test.*/printf ("Disabled due to excess noise\\n");/' \ + -e '/"dispatch"/d' -i "${S}/bus/test-main.c" || die "sed failed" + + # Thread safety patch, upstream #17754 + epatch "${FILESDIR}/${PN}-1.2.24-thread-safety.patch" + + epatch "${FILESDIR}"/${P}-asneeded.patch + epatch "${FILESDIR}"/${P}-no-cloexec.patch + # required for asneeded patch but also for bug 263909, cross-compile so + # don't remove eautoreconf + eautoreconf +} + +src_configure() { + local my_conf + + # so we can get backtraces from apps + append-flags -rdynamic + + # libaudit is *only* used in DBus wrt SELinux support, so disable it, if + # not on an SELinux profile. + my_conf="$(use_with X x) + $(use_enable debug verbose-mode) + $(use_enable debug asserts) + $(use_enable kernel_linux inotify) + $(use_enable kernel_FreeBSD kqueue) + $(use_enable selinux) + $(use_enable selinux libaudit) + --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" + + mkdir "${BD}" + cd "${BD}" + einfo "Running configure in ${BD}" + ECONF_SOURCE="${S}" econf ${my_conf} \ + $(use_enable doc doxygen-docs) \ + $(use_enable doc xml-docs) + + if use test; then + mkdir "${TBD}" + cd "${TBD}" + einfo "Running configure in ${TBD}" + ECONF_SOURCE="${S}" econf \ + ${my_conf} \ + $(use_enable test checks) \ + $(use_enable test tests) \ + $(use_enable test asserts) + fi +} + +src_compile() { + # after the compile, it uses a selinuxfs interface to + # check if the SELinux policy has the right support + use selinux && addwrite /selinux/access + + cd "${BD}" + einfo "Running make in ${BD}" + emake || die "make failed" + + if use doc; then + einfo "Building API documentation..." + doxygen || die "doxygen failed" + fi + + if use test; then + cd "${TBD}" + einfo "Running make in ${TBD}" + emake || die "make failed" + fi +} + +src_test() { + cd "${TBD}" + DBUS_VERBOSE=1 make check || die "make check failed" +} + +src_install() { + # initscript + newinitd "${FILESDIR}"/dbus.init-1.0 dbus || die "newinitd failed" + + if use X ; then + # dbus X session script (#77504) + # turns out to only work for GDM (and startx). has been merged into + # other desktop (kdm and such scripts) + exeinto /etc/X11/xinit/xinitrc.d/ + doexe "${FILESDIR}"/80-dbus || die "doexe failed" + fi + + # needs to exist for the system socket + keepdir /var/run/dbus + # needs to exist for machine id + keepdir /var/lib/dbus + # needs to exist for dbus sessions to launch + + keepdir /usr/lib/dbus-1.0/services + keepdir /usr/share/dbus-1/services + keepdir /etc/dbus-1/system.d/ + keepdir /etc/dbus-1/session.d/ + + dodoc AUTHORS ChangeLog HACKING NEWS README doc/TODO || die "dodoc failed" + + cd "${BD}" + # FIXME: split dtd's in dbus-dtd ebuild + emake DESTDIR="${D}" install || die "make install failed" + if use doc; then + dohtml doc/*.html doc/api/html/* || die "dohtml failed" + fi +} + +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 "Some applications require a session bus in addition to the system" + elog "bus. Please see \`man dbus-launch\` for more information." + elog + ewarn "You must restart D-Bus \`/etc/init.d/dbus restart\` to run" + ewarn "the new version of the daemon." + + if has_version "x11-base/xorg-server[hal]"; then + elog + ewarn "You are currently running X with the hal useflag enabled" + ewarn "restarting the dbus service WILL restart X as well" + ebeep 5 + fi + + # Ensure unique id is generated + dbus-uuidgen --ensure="${ROOT}"/var/lib/dbus/machine-id +} diff --git a/sys-apps/dbus/files/dbus-1.2.3-bsd.patch b/sys-apps/dbus/files/dbus-1.2.3-bsd.patch deleted file mode 100644 index d85b93daa225..000000000000 --- a/sys-apps/dbus/files/dbus-1.2.3-bsd.patch +++ /dev/null @@ -1,50 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=236779 - - -commit 3564e5cbe4d9c0538d6eb519904ef0befab39d75 -Author: Joe Marcus Clarke <marcus@freedesktop.org> -Date: Thu Sep 4 22:13:30 2008 -0400 - - Bug 17061: Handle error return from sysconf correctly - - * dbus/dbus-sysdeps-unix.c: - * dbus/dbus-sysdeps-util-unix.c: Cast return - from sysconf temporarily so we actually see - -1. - - Signed-off-by: Colin Walters <walters@verbum.org> - -diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c -index 3f963bc..24a3774 100644 ---- a/dbus/dbus-sysdeps-unix.c -+++ b/dbus/dbus-sysdeps-unix.c -@@ -1493,7 +1493,11 @@ fill_user_info (DBusUserInfo *info, - /* retrieve maximum needed size for buf */ - buflen = sysconf (_SC_GETPW_R_SIZE_MAX); - -- if (buflen <= 0) -+ /* sysconf actually returns a long, but everything else expects size_t, -+ * so just recast here. -+ * https://bugs.freedesktop.org/show_bug.cgi?id=17061 -+ */ -+ if ((long) buflen <= 0) - buflen = 1024; - - result = -1; -diff --git a/dbus/dbus-sysdeps-util-unix.c b/dbus/dbus-sysdeps-util-unix.c -index 55eb934..0343a90 100644 ---- a/dbus/dbus-sysdeps-util-unix.c -+++ b/dbus/dbus-sysdeps-util-unix.c -@@ -836,7 +836,11 @@ fill_group_info (DBusGroupInfo *info, - /* retrieve maximum needed size for buf */ - buflen = sysconf (_SC_GETGR_R_SIZE_MAX); - -- if (buflen <= 0) -+ /* sysconf actually returns a long, but everything else expects size_t, -+ * so just recast here. -+ * https://bugs.freedesktop.org/show_bug.cgi?id=17061 -+ */ -+ if ((long) buflen <= 0) - buflen = 1024; - - result = -1; diff --git a/sys-apps/dbus/files/dbus-1.2.3-panic-from-dbus_signature_validate.patch b/sys-apps/dbus/files/dbus-1.2.3-panic-from-dbus_signature_validate.patch deleted file mode 100644 index 772da176822a..000000000000 --- a/sys-apps/dbus/files/dbus-1.2.3-panic-from-dbus_signature_validate.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: Colin Walters <walters@verbum.org> -Date: Wed, 1 Oct 2008 17:49:48 +0000 (-0400) -Subject: Bug 17803: Panic from dbus_signature_validate -X-Git-Url: http://gitweb.freedesktop.org/?p=dbus/dbus.git;a=commitdiff;h=7b10b46c5c8658449783ce45f1273dd35c353bce - -Bug 17803: Panic from dbus_signature_validate - - * dbus/dbus-marshal-validate.c: Ensure we validate - a basic type before calling is_basic on it. - * dbus-marshal-validate-util.c: Test. ---- - ---- a/dbus/dbus-marshal-validate-util.c -+++ b/dbus/dbus-marshal-validate-util.c -@@ -228,6 +228,7 @@ _dbus_marshal_validate_test (void) - "123", - ".", - "(" -+ "a{(ii)i}" /* https://bugs.freedesktop.org/show_bug.cgi?id=17803 */ - }; - - /* Signature with reason */ ---- a/dbus/dbus-marshal-validate.c -+++ b/dbus/dbus-marshal-validate.c -@@ -247,6 +247,7 @@ _dbus_validate_signature_with_reason (co - } - - if (last == DBUS_DICT_ENTRY_BEGIN_CHAR && -+ _dbus_type_is_valid (*p) && - !dbus_type_is_basic (*p)) - { - result = DBUS_INVALID_DICT_KEY_MUST_BE_BASIC_TYPE; |