]> arthur.barton.de Git - netdata.git/blob - netdata-9999.ebuild
Merge pull request #299 from fredericopissarra/master
[netdata.git] / netdata-9999.ebuild
1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 EAPI=6
6
7 inherit linux-info systemd user
8
9 if [[ ${PV} == "9999" ]] ; then
10         EGIT_REPO_URI="git://github.com/firehol/${PN}.git"
11         inherit git-r3 autotools
12         SRC_URI=""
13         KEYWORDS=""
14 else
15         SRC_URI="http://firehol.org/download/${PN}/releases/v${PV}/${P}.tar.xz"
16         KEYWORDS="~amd64 ~x86"
17 fi
18
19
20 DESCRIPTION="Linux real time system monitoring, done right!"
21 HOMEPAGE="https://github.com/firehol/netdata http://netdata.firehol.org/"
22
23 LICENSE="GPL-3+ MIT BSD"
24 SLOT="0"
25 IUSE="+compression nfacct nodejs"
26
27 # most unconditional dependencies are for plugins.d/charts.d.plugin:
28 RDEPEND="
29         >=app-shells/bash-4:0
30         net-misc/curl
31         net-misc/wget
32         virtual/awk
33         compression? ( sys-libs/zlib )
34         nfacct? (
35                 net-firewall/nfacct
36                 net-libs/libmnl
37         )
38         nodejs? (
39                 net-libs/nodejs
40         )"
41
42 DEPEND="${RDEPEND}
43         virtual/pkgconfig"
44
45 # check for Kernel-Samepage-Merging (CONFIG_KSM)
46 CONFIG_CHECK="
47         ~KSM
48 "
49
50 : ${NETDATA_USER:=netdata}
51 : ${NETDATA_GROUP:=netdata}
52
53 pkg_setup() {
54         linux-info_pkg_setup
55
56         enewgroup ${PN}
57         enewuser ${PN} -1 -1 / ${PN}
58 }
59
60 src_prepare() {
61         default
62         [[ ${PV} == "9999" ]] && eautoreconf
63 }
64
65 src_configure() {
66         econf \
67                 --localstatedir=/var \
68                 --with-user=${NETDATA_USER} \
69                 $(use_enable nfacct plugin-nfacct) \
70                 $(use_with compression zlib)
71 }
72
73 src_install() {
74         default
75
76         fowners ${NETDATA_USER}:${NETDATA_GROUP} /var/log/netdata
77         fowners ${NETDATA_USER}:${NETDATA_GROUP} /var/cache/netdata
78
79         chown -Rc ${NETDATA_USER}:${NETDATA_GROUP} "${ED}"/usr/share/${PN} || die
80
81         cat >> "${T}"/${PN}-sysctl <<- EOF
82         kernel.mm.ksm.run = 1
83         kernel.mm.ksm.sleep_millisecs = 1000
84         EOF
85
86         dodoc "${T}"/${PN}-sysctl
87
88         newinitd system/netdata-openrc ${PN}
89         systemd_dounit system/netdata.service
90 }
91
92 pkg_postinst() {
93         if [[ -e "/sys/kernel/mm/ksm/run" ]]; then
94                 elog "INFORMATION:"
95                 echo ""
96                 elog "I see you have kernel memory de-duper (called Kernel Same-page Merging,"
97                 elog "or KSM) available, but it is not currently enabled."
98                 echo ""
99                 elog "To enable it run:"
100                 echo ""
101                 elog "echo 1 >/sys/kernel/mm/ksm/run"
102                 elog "echo 1000 >/sys/kernel/mm/ksm/sleep_millisecs"
103                 echo  ""
104                 elog "If you enable it, you will save 20-60% of netdata memory."
105         else
106                 elog "INFORMATION:"
107                 echo ""
108                 elog "I see you do not have kernel memory de-duper (called Kernel Same-page"
109                 elog "Merging, or KSM) available."
110                 echo ""
111                 elog "To enable it, you need a kernel built with CONFIG_KSM=y"
112                 echo ""
113                 elog "If you can have it, you will save 20-60% of netdata memory."
114         fi
115
116 }