blob: f7b2b3944f27fbdab276468b3a12292b0ea7aa04 (
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
# 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-0.62-r2.ebuild,v 1.5 2006/12/13 14:49:29 mcummings Exp $
WANT_AUTOCONF=2.5
inherit eutils mono python multilib debug qt3 autotools 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/${P}.tar.gz"
SLOT="0"
LICENSE="|| ( GPL-2 AFL-2.1 )"
KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ppc ~ppc64 ~s390 ~sh sparc x86"
IUSE="doc gtk mono python qt3 qt4 selinux X"
RDEPEND=">=dev-libs/glib-2.6
X? ( || ( ( x11-libs/libXt x11-libs/libX11 ) virtual/x11 ) )
gtk? ( >=x11-libs/gtk+-2.6 )
mono? ( >=dev-lang/mono-0.95 )
python? ( >=dev-lang/python-2.4 >=dev-python/pyrex-0.9.3-r2 )
qt3? ( $(qt_min_version 3.3) )
qt4? ( =x11-libs/qt-4.1* )
selinux? ( sys-libs/libselinux )
>=dev-libs/expat-1.95.8"
DEPEND="${RDEPEND}
dev-util/pkgconfig
doc? ( app-doc/doxygen
app-text/xmlto
mono? ( >=dev-util/monodoc-1.1.10 ) )"
pkg_setup() {
PKG_CONFIG_PATH="${QTDIR}/lib/pkgconfig"
filter-flags -fstack-protector-all
}
src_unpack() {
unpack ${A}
cd "${S}"
#fix mono-tools depend
epatch "${FILESDIR}"/${PN}-0.61-mono-tools-update.diff
#fix security issue in rule matching
epatch "${FILESDIR}"/${PN}-0.62-match-rule-security-fix.patch
eautoreconf
}
src_compile() {
local myconf=""
# Only enable mono-docs if both mono and doc is defined
use mono && myconf="${myconf} $(use_enable doc mono-docs)"
hasq test ${FEATURES} && myconf="${myconf} --enable-tests=yes"
if use qt3; then
myconf="${myconf} --enable-qt3=${QTDIR} --with-qt3-moc=${QTDIR}/bin/moc "
else
myconf="${myconf} --disable-qt3 --without-qt3-moc"
fi
if use qt4; then
myconf="${myconf} --enable-qt --with-qt-moc=/usr/bin/moc"
else
myconf="${myconf} --disable-qt --without-qt-moc"
fi
econf \
$(use_with X x) \
$(use_enable gtk) \
$(use_enable python) \
$(use_enable mono) \
$(use_enable kernel_linux dnotify) \
--disable-gcj \
$(use_enable selinux) \
$(use_enable debug verbose-mode) \
$(use_enable debug asserts) \
--enable-glib \
--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"
# Don't build the mono examples, they require gtk-sharp
touch ${S}/mono/example/{bus-listener,echo-{server,client}}.exe
# 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.61 dbus
# dbus X session script (#77504)
# FIXME : turns out to only work for GDM, better solution needed
exeinto /etc/X11/xinit/xinitrc.d/
doexe "${FILESDIR}"/30-dbus
# needs to exist for the system socket
keepdir /var/run/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_postrm() {
if [ -d "${ROOT}"/usr/lib/python*/site-packages/dbus ]; then
python_mod_cleanup "${ROOT}"/usr/lib/python*/site-packages/dbus
fi
}
pkg_postinst() {
if [ -d "${ROOT}"/usr/lib/python*/site-packages/dbus ]; then
python_mod_optimize "${ROOT}"/usr/lib/python*/site-packages/dbus
fi
einfo "To start the DBUS system-wide messagebus by default"
einfo "you should add it to the default runlevel :"
einfo "\`rc-update add dbus default\`"
echo
einfo "Currently have it installed and running?"
einfo "Run etc-update and then run the following:"
einfo "\`/etc/init.d/dbus reload\`"
}
|