blob: c43225cb349ca9a8924c08537a461ebc71a96065 (
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
|
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit user golang-build golang-vcs-snapshot
EGO_PN="github.com/prometheus/prometheus"
MY_PV=${PV/_rc/-rc.}
EGIT_COMMIT="v${MY_PV}"
PROMETHEUS_COMMIT="167a4b4"
ARCHIVE_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
KEYWORDS="amd64"
DESCRIPTION="Prometheus monitoring system and time series database"
HOMEPAGE="https://github.com/prometheus/prometheus"
SRC_URI="${ARCHIVE_URI}"
LICENSE="Apache-2.0"
SLOT="0"
IUSE=""
DEPEND="
>=dev-lang/go-1.10
dev-util/promu"
PROMETHEUS_HOME="/var/lib/prometheus"
RESTRICT="test"
pkg_setup() {
enewgroup prometheus
enewuser prometheus -1 -1 "${PROMETHEUS_HOME}" prometheus
}
src_prepare() {
default
sed -i -e "s/{{.Revision}}/${PROMETHEUS_COMMIT}/" src/${EGO_PN}/.promu.yml || die
}
src_compile() {
pushd src/${EGO_PN} || die
GOPATH="${S}" promu build -v || die
popd || die
}
src_install() {
pushd src/${EGO_PN} || die
dobin promtool prometheus
dodoc -r {documentation,{README,CHANGELOG,CONTRIBUTING}.md}
insinto /etc/prometheus
doins documentation/examples/prometheus.yml
insinto /usr/share/prometheus
doins -r console_libraries consoles
dosym ../../usr/share/prometheus/console_libraries /etc/prometheus/console_libraries
dosym ../../usr/share/prometheus/consoles /etc/prometheus/consoles
popd || die
newinitd "${FILESDIR}"/prometheus-3.initd prometheus
newconfd "${FILESDIR}"/prometheus.confd prometheus
keepdir /var/log/prometheus /var/lib/prometheus
fowners prometheus:prometheus /var/log/prometheus /var/lib/prometheus
}
pkg_postinst() {
if has_version '<net-analyzer/prometheus-2.0.0_rc0'; then
ewarn "Old prometheus 1.x TSDB won't be converted to the new prometheus 2.0 format"
ewarn "Be aware that the old data currently cannot be accessed with prometheus 2.0"
ewarn "This release requires a clean storage directory and is not compatible with"
ewarn "files created by previous beta releases"
fi
}
|