2
|
1 # Copyright 1999-2008 Gentoo Foundation
|
|
2 # Distributed under the terms of the GNU General Public License v2
|
|
3 # $Header: $
|
|
4
|
|
5 inherit eutils linux-info flag-o-matic
|
|
6
|
|
7 DESCRIPTION="A small daemon which collects system performance statistics"
|
|
8 HOMEPAGE="http://collectd.org/"
|
|
9
|
|
10 SRC_URI="${HOMEPAGE}/files/${P}.tar.bz2"
|
|
11 LICENSE="GPL-3"
|
|
12
|
|
13 SLOT="0"
|
|
14
|
|
15 KEYWORDS="~x86 ~amd64"
|
|
16 IUSE="
|
|
17 apache2
|
|
18 lighttpd
|
|
19 nginx
|
|
20 apcups
|
|
21 hddtemp
|
|
22 network
|
|
23 dns
|
|
24 email
|
|
25 qemu
|
|
26 xen
|
|
27 vserver
|
|
28 memcache
|
|
29 mysql
|
|
30 nfs
|
|
31 ntp
|
|
32 nut
|
|
33 perl
|
|
34 rrdtool
|
|
35 lm_sensors
|
|
36 snmp
|
|
37 syslog
|
|
38 hal
|
|
39 ithreads
|
|
40 "
|
|
41
|
|
42 DEPEND="
|
|
43 apache2? ( >=net-misc/curl-7.17.0 )
|
|
44 lighttpd? ( >=net-misc/curl-7.17.0 )
|
|
45 nginx? ( >=net-misc/curl-7.17.0 )
|
|
46 dns? ( >=net-libs/libpcap-0.9.8 )
|
|
47 qemu? ( >=app-emulation/libvirt-0.3.3 )
|
|
48 xen? ( >=app-emulation/libvirt-0.3.3 )
|
|
49 mysql? ( >=virtual/mysql-5.0 )
|
|
50 perl? ( >=dev-lang/perl-5.8.8-r4 )
|
|
51 nut? ( >=sys-power/nut-2.2.0 )
|
|
52 rrdtool? ( >=net-analyzer/rrdtool-1.2.27 )
|
|
53 lm_sensors? ( >=sys-apps/lm_sensors-2.10.4 )
|
|
54 snmp? ( >=net-analyzer/net-snmp-5.4.1-r3 )
|
|
55 hal? ( >=sys-apps/hal-0.5.9.1-r3 )
|
|
56
|
|
57 >=dev-libs/libxml2-2.6.31
|
|
58 "
|
|
59
|
|
60 RDEPEND="
|
|
61 ${DEPEND}
|
|
62 apcups? ( >=sys-power/apcupsd-3.14.2 )
|
|
63 hddtemp? ( >=app-admin/hddtemp-0.3_beta15-r3 )
|
|
64 memcache? ( >=net-misc/memcached-1.2.2-r2 )
|
|
65 ntp? ( >=net-misc/ntp-4.2.4_p4 )
|
|
66 syslog? ( virtual/logger )
|
|
67 !hal? ( >=sys-apps/dmidecode-2.9 )
|
|
68 "
|
|
69
|
|
70 pkg_setup()
|
|
71 {
|
|
72 linux-info_pkg_setup
|
|
73 }
|
|
74
|
|
75 src_compile()
|
|
76 {
|
|
77 local myconf
|
|
78 local mykern
|
|
79 local disabled_plugins
|
|
80
|
|
81 ### NEEDS TO BE FIXED PROBABLY
|
|
82 append-flags -I/usr/src/linux/include
|
|
83
|
|
84 ### Kernel options
|
|
85 if (linux_chkconfig_present PROC_FS); then
|
|
86 mykern="$(mykern) proc_fs"
|
|
87 fi
|
|
88
|
|
89 if (linux_chkconfig_present IP_VS); then
|
|
90 mykern="$(mykern) ip_vs"
|
|
91 fi
|
|
92
|
|
93 #################################################
|
|
94
|
|
95 myconf="${myconf}
|
|
96 --without-libiptc
|
|
97 --with-liboconfig
|
|
98 --with-libpthread
|
|
99 --without-libstatgrab
|
|
100 --without-libxmms
|
|
101 "
|
|
102
|
|
103 ### no checks
|
|
104 myconf="${myconf} --enable-csv"
|
|
105 myconf="${myconf} --enable-df"
|
|
106 myconf="${myconf} --enable-logfile"
|
|
107 myconf="${myconf} --enable-uuid" ## Depends on hal or dmidecode
|
|
108
|
|
109 ### procfs dependents
|
|
110 if ( hasq proc_fs ${mykern} ); then
|
|
111 myconf="${myconf} --enable-battery" ## NEEDS KERNEL CHECK
|
|
112 myconf="${myconf} --enable-cpu"
|
|
113 myconf="${myconf} --enable-cpufreq" ## NEEDS KERNEL CHECK
|
|
114 myconf="${myconf} --enable-disk"
|
|
115 myconf="${myconf} --enable-entropy"
|
|
116 myconf="${myconf} --enable-irq"
|
|
117 myconf="${myconf} --enable-load"
|
|
118 myconf="${myconf} --enable-memory"
|
|
119 myconf="${myconf} --enable-processes"
|
|
120 myconf="${myconf} --enable-serial"
|
|
121 myconf="${myconf} --enable-swap"
|
|
122 myconf="${myconf} --enable-users" ## NEEDS KERNEL CHECK
|
|
123
|
|
124 ### Network
|
|
125 myconf="${myconf} $(use_enable network interface)"
|
|
126 #myconf="${myconf} $(use_enable network netlink) $(use_with network libnetlink)" ## BREAKS
|
|
127 myconf="${myconf} --disable-netlink --without-libnetlink"
|
|
128 disabled_plugins="${disabled_plugins} netlink"
|
|
129 myconf="${myconf} $(use_enable network)"
|
|
130 myconf="${myconf} $(use_enable network ping) $(use_with network liboping)"
|
|
131 myconf="${myconf} $(use_enable network tcpconns)"
|
|
132 myconf="${myconf} $(use_enable network unixsock)"
|
|
133 myconf="${myconf} $(use_enable network wireless)" ## NEEDS KERNEL CHECK
|
|
134
|
|
135 if ( use network ); then
|
|
136 myconf="${myconf} $(use_enable dns) $(use_with dns libpcap)"
|
|
137 myconf="${myconf} $(use_enable nfs)"
|
|
138 myconf="${myconf} $(use_enable ntp ntpd)"
|
|
139 myconf="${myconf} $(use_enable snmp) $(use_with snmp libnetsnmp)"
|
|
140
|
|
141 if ( hasq ip_vs ${mykern} ); then
|
|
142 myconf="${myconf} $(use_enable vserver)"
|
|
143 myconf="${myconf} $(use_enable vserver ipvs)" #NEEDS CFLAGS -I -- FIX LATER
|
|
144 else
|
|
145 if ( use vserver ); then die "${P} requires that IP_VS is enabled in the kernel for the USE flag vserver"; fi
|
|
146 fi
|
|
147 else
|
|
148 myconf="${myconf} \
|
|
149 --disable-dns --without-libpcap
|
|
150 --disable-nfs
|
|
151 --disable-ntpd
|
|
152 --disable-snmp
|
|
153 --disable-vserver
|
|
154 --disable-ipvs
|
|
155 "
|
|
156
|
|
157 if ( use dns ); then die "USE flag dns requires USE flag network"; fi
|
|
158 if ( use nfs ); then die "USE flag nfs requires USE flag network"; fi
|
|
159 if ( use ntp ); then die "USE flag ntp requires USE flag network"; fi
|
|
160 if ( use snmp ); then die "USE flag snmp requires USE flag network"; fi
|
|
161 if ( use vserver ); then die "USE flag vserver requires USE flag network"; fi
|
|
162 fi
|
|
163 else
|
|
164 ### Network
|
|
165 if ( use network ); then die "${P} requires that PROC_FS is enabled in the kernel for the USE flag network"; fi
|
|
166
|
|
167 die "${P} requires that PROC_FS is enabled in the kernel" ## UPDATE LATER
|
|
168 fi
|
|
169
|
|
170 ### Web Servers
|
|
171 if ( use apache2 || use lighttpd || use nginx );
|
|
172 then myconf="${myconf} --with-libcurl"
|
|
173 else myconf="${myconf} --without-libcurl"
|
|
174 fi
|
|
175
|
|
176 if ( use apache2 || use lighttpd );
|
|
177 then myconf="${myconf} --enable-apache"
|
|
178 else myconf="${myconf} --disable-apache"
|
|
179 fi
|
|
180
|
|
181 myconf="${myconf} $(use_enable nginx)"
|
|
182
|
|
183 ### APC UPS
|
|
184 myconf="${myconf} $(use_enable apcups)"
|
|
185
|
|
186 ### Apple
|
|
187 myconf="${myconf} --disable-apple_sensors" ## DISABLED
|
|
188 disabled_plugins="${disabled_plugins} apple_sensors"
|
|
189
|
|
190 ### Email
|
|
191 myconf="${myconf} $(use_enable email)"
|
|
192
|
|
193 ### hddtemp
|
|
194 myconf="${myconf} $(use_enable hddtemp)"
|
|
195
|
|
196 ### Virtualization -- NEEDS KERNEL CHECK
|
|
197 if ( use qemu || use xen )
|
|
198 then
|
|
199 myconf="${myconf} --enable-libvirt";
|
|
200 if (built_with_use libvirt qemu); then die "USE flag qemu requires that libvirt was compiled with the USE flag qemu"; fi
|
|
201 if (built_with_use libvirt xen); then die "USE flag xen requires that libvirt was compiled with the USE flag xen"; fi
|
|
202 else
|
|
203 myconf="${myconf} --disable-libvirt";
|
|
204 fi
|
|
205
|
|
206 ### Memcached
|
|
207 myconf="${myconf} $(use_enable memcache memcached)"
|
|
208
|
|
209 ### Mysql
|
|
210 myconf="${myconf} $(use_enable mysql) $(use_with mysql libmysql)"
|
|
211
|
|
212 ### Network UPS
|
|
213 myconf="${myconf} $(use_enable nut) $(use_with nut libupsclient)"
|
|
214
|
|
215 ### Perl
|
|
216 if (use perl); then
|
|
217 myconf="${myconf} $(use_with perl libperl)"
|
|
218 myconf="${myconf} $(use_with perl perl-bindings)"
|
|
219 if (use ithreads); then
|
|
220 if (built_with_use perl ithreads); then myconf="${myconf} --enable-perl"
|
|
221 else die "The perl plug-in requires that libperl was compiled with the USE flag ithreads"; fi
|
|
222 else
|
|
223 myconf="${myconf} --disable-perl"
|
|
224 einfo
|
|
225 einfo "The perl plug-in requires the ithreads USE flag."
|
|
226 fi
|
|
227
|
|
228 fi
|
|
229
|
|
230 ### RRDtool
|
|
231 myconf="${myconf} $(use_enable rrdtool) $(use_with rrdtool)"
|
|
232
|
|
233 ### lm_sensors
|
|
234 myconf="${myconf} $(use_enable lm_sensors sensors) $(use_with lm_sensors lm-sensors)"
|
|
235
|
|
236 ### Syslog
|
|
237 myconf="${myconf} $(use_enable syslog)"
|
|
238
|
|
239 ### DISABLED
|
|
240 myconf="${myconf} --disable-exec" ## NEEDS USERS
|
|
241 disabled_plugins="${disabled_plugins} exec"
|
|
242 myconf="${myconf} --disable-iptables" ## BREAKS
|
|
243 disabled_plugins="${disabled_plugins} iptables"
|
|
244 myconf="${myconf} --disable-mbmon" ## COULD NOT FIND DAEMON
|
|
245 disabled_plugins="${disabled_plugins} mbmon"
|
|
246 myconf="${myconf} --disable-multimeter" ## DISABLED
|
|
247 disabled_plugins="${disabled_plugins} multimeter"
|
|
248 myconf="${myconf} --disable-tape" ## SOLARIS ???
|
|
249 disabled_plugins="${disabled_plugins} tape"
|
|
250 myconf="${myconf} --disable-xmms" ## NOT IN GENTOO
|
|
251 disabled_plugins="${disabled_plugins} xmms"
|
|
252
|
|
253 einfo
|
|
254 einfo "The following plug-ins have been disabled in the ebuild"
|
|
255 einfo ${disabled_plugins}
|
|
256 einfo
|
|
257
|
|
258 ### Configure
|
|
259 econf \
|
|
260 ${myconf} \
|
|
261 --localstatedir=/var \
|
|
262 || die "econf failed"
|
|
263
|
|
264 einfo
|
|
265 einfo "The above plug-ins have been configured"
|
|
266 einfo
|
|
267 ebeep 3
|
|
268
|
|
269 ### Build
|
|
270 emake \
|
|
271 || die "emake failed"
|
|
272 }
|
|
273
|
|
274 src_install()
|
|
275 {
|
|
276 emake \
|
|
277 DESTDIR="${D}" \
|
|
278 install || die "emake install failed"
|
|
279
|
|
280 ### Documentation
|
|
281 docinto contrib/SpamAssassin
|
|
282 dodoc contrib/SpamAssassin/* \
|
|
283 || die "dodoc contrib failed"
|
|
284
|
|
285 docinto contrib/examples
|
|
286 dodoc contrib/examples/* \
|
|
287 || die "dodoc contrib failed"
|
|
288
|
|
289 docinto contrib/iptables
|
|
290 dodoc contrib/iptables/* \
|
|
291 || die "dodoc contrib failed"
|
|
292 docinto contrib
|
|
293
|
|
294 docinto contrib
|
|
295 dodoc contrib/README contrib/*\.[a-z]* \
|
|
296 || die "dodoc contrib failed"
|
|
297
|
|
298 dodoc AUTHORS ChangeLog NEWS README TODO \
|
|
299 || die "dodoc failed"
|
|
300
|
|
301
|
|
302 keepdir /var/lib/collectd \
|
|
303 || die "keepdir failed"
|
|
304
|
|
305 newinitd "${FILESDIR}/${P}.initd" collectd \
|
|
306 || die "newinitd failed"
|
|
307
|
|
308 newconfd "${FILESDIR}/${P}.confd" collectd \
|
|
309 || die "newconfd failed"
|
|
310 }
|
|
311
|
|
312 pkg_postinst()
|
|
313 {
|
|
314 einfo "collectd introduced some changes in the new 4.x series."
|
|
315 einfo "For further information, read http://collectd.org/migrate-v3-v4.shtml"
|
|
316 einfo "The migration script can be found at:"
|
|
317 einfo "/usr/share/doc/${P}/contrib/migrate-3-4.px.bz2"
|
|
318 }
|