# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# ebuild automatically verified at 2026-05-16
EAPI=8
inherit systemd
DESCRIPTION="Fast time-series database (upstream prebuilt static binary)"
HOMEPAGE="https://victoriametrics.com/ https://github.com/VictoriaMetrics/VictoriaMetrics"
# Two upstream release artifacts for v${PV}:
# * victoria-metrics-linux-amd64-vN.M.P.tar.gz -> victoria-metrics-prod
# * vmutils-linux-amd64-vN.M.P.tar.gz -> vmagent-prod, vmctl-prod,
# vmbackup-prod, vmrestore-prod,
# vmalert-prod, vmalert-tool-prod,
# vmauth-prod
# Both are statically linked Go binaries built by upstream's release
# pipeline. No external runtime dependencies — they only need a Linux
# kernel and a writable storage path.
SRC_URI="
https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v${PV}/victoria-metrics-linux-amd64-v${PV}.tar.gz
https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v${PV}/vmutils-linux-amd64-v${PV}.tar.gz
"
# Upstream tarballs unpack into ${WORKDIR} as a flat list of binaries
# (no top-level directory). Set S so EAPI 8 default src_unpack stays happy.
S="${WORKDIR}"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
# strip — Go binaries embed the runtime version in build info; stripping
# would corrupt --version output.
# mirror — upstream forbids redistribution from Gentoo mirrors.
# bindist — explicitly OSS Apache-2.0, but stay conservative (matches
# amazon-efs-utils-bin convention for binary repackaging).
RESTRICT="strip mirror"
QA_PREBUILT="opt/victoriametrics/*"
RDEPEND="
acct-group/victoria-metrics
acct-user/victoria-metrics
!!app-metrics/victoria-metrics
"
src_install() {
# Install layout matches the source-build sibling
# (app-metrics/victoria-metrics) so a systemd drop-in override and
# the binary path are identical across both variants.
exeinto /opt/victoriametrics
doexe "${WORKDIR}"/victoria-metrics-prod
doexe "${WORKDIR}"/vmagent-prod
doexe "${WORKDIR}"/vmctl-prod
doexe "${WORKDIR}"/vmbackup-prod
doexe "${WORKDIR}"/vmrestore-prod
doexe "${WORKDIR}"/vmalert-prod
doexe "${WORKDIR}"/vmalert-tool-prod
doexe "${WORKDIR}"/vmauth-prod
# Convenience symlinks under /usr/bin without the -prod suffix so
# admins can just type `vmctl ...` etc. The role's healthcheck and
# the systemd ExecStart line both use /opt/victoriametrics paths,
# so the symlinks are purely for ergonomics.
dosym /opt/victoriametrics/victoria-metrics-prod /usr/bin/victoria-metrics
dosym /opt/victoriametrics/vmagent-prod /usr/bin/vmagent
dosym /opt/victoriametrics/vmctl-prod /usr/bin/vmctl
dosym /opt/victoriametrics/vmbackup-prod /usr/bin/vmbackup
dosym /opt/victoriametrics/vmrestore-prod /usr/bin/vmrestore
dosym /opt/victoriametrics/vmalert-prod /usr/bin/vmalert
dosym /opt/victoriametrics/vmalert-tool-prod /usr/bin/vmalert-tool
dosym /opt/victoriametrics/vmauth-prod /usr/bin/vmauth
# Storage path. Mode 0750 so only the service account can read
# the on-disk format. Owner comes from the acct-user package.
keepdir /var/lib/victoria-metrics
fowners victoria-metrics:victoria-metrics /var/lib/victoria-metrics
fperms 0750 /var/lib/victoria-metrics
systemd_dounit "${FILESDIR}"/victoria-metrics.service
keepdir /etc/systemd/system/victoria-metrics.service.d
}
pkg_postinst() {
elog ""
elog "VictoriaMetrics ${PV} (upstream prebuilt) is installed."
elog ""
elog " - Binary: /opt/victoriametrics/victoria-metrics-prod"
elog " - Storage: /var/lib/victoria-metrics (owned by victoria-metrics)"
elog " - Systemd unit: victoria-metrics.service"
elog ""
elog "Tune retention, listen address, and memory by overriding"
elog "ExecStart in a systemd drop-in at"
elog "/etc/systemd/system/victoria-metrics.service.d/."
elog ""
}