blob: 3d238678cf9187e544c28babfcc3d4a318a303a2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# 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.0.ebuild,v 1.2 2006/11/10 06:20:51 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_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-0.95 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 "Currently have it 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
}
|