diff options
-rw-r--r-- | app-misc/carbon-c-relay/carbon-c-relay-3.7.4-r1.ebuild | 58 | ||||
-rw-r--r-- | app-misc/carbon-c-relay/files/carbon-c-relay.initd-r2 | 74 |
2 files changed, 132 insertions, 0 deletions
diff --git a/app-misc/carbon-c-relay/carbon-c-relay-3.7.4-r1.ebuild b/app-misc/carbon-c-relay/carbon-c-relay-3.7.4-r1.ebuild new file mode 100644 index 000000000000..d34fed5a74de --- /dev/null +++ b/app-misc/carbon-c-relay/carbon-c-relay-3.7.4-r1.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Enhanced C version of Carbon relay, aggregator and rewriter" +HOMEPAGE="https://github.com/grobian/carbon-c-relay" +SRC_URI="https://github.com/grobian/carbon-c-relay/releases/download/v${PV}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x64-macos ~x64-solaris ~x86-solaris" +IUSE="lz4 snappy zlib ssl pcre pcre2 +oniguruma" + +# ensure only one of pcre, pcre2 and oniguruma is set, or none (libc) +# unforunately pcre is in global USE, so we have to exclude that here +REQUIRED_USE=" + pcre2? ( !oniguruma ) + oniguruma? ( !pcre2 ) +" +RDEPEND="lz4? ( app-arch/lz4 ) + snappy? ( app-arch/snappy ) + zlib? ( app-arch/gzip ) + ssl? ( dev-libs/openssl:0= ) + !oniguruma? ( !pcre2? ( pcre? ( dev-libs/libpcre ) ) ) + pcre2? ( dev-libs/libpcre2 ) + oniguruma? ( dev-libs/oniguruma ) + acct-group/carbon + acct-user/carbon" +DEPEND="${RDEPEND}" + +src_configure() { + local pcrecfg + if use !pcre2 && use !oniguruma ; then + pcrecfg=$(use_with pcre) + else + pcrecfg="--without-pcre" + fi + + econf $(use_with lz4) $(use_with snappy) \ + $(use_with ssl) $(use_with zlib gzip) \ + "${pcrecfg}" $(use_with pcre2) $(use_with oniguruma) +} + +src_install() { + default + + # rename too generic name + mv "${ED}"/usr/bin/{relay,${PN}} || die + + # remove libfaketime, necessary for testing only + rm -f "${ED}"/usr/$(get_libdir)/libfaketime.* + + dodoc ChangeLog.md + + newinitd "${FILESDIR}"/${PN}.initd-r2 ${PN} + newconfd "${FILESDIR}"/${PN}.confd-r1 ${PN} +} diff --git a/app-misc/carbon-c-relay/files/carbon-c-relay.initd-r2 b/app-misc/carbon-c-relay/files/carbon-c-relay.initd-r2 new file mode 100644 index 000000000000..fa0781dcddc8 --- /dev/null +++ b/app-misc/carbon-c-relay/files/carbon-c-relay.initd-r2 @@ -0,0 +1,74 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_commands="configtest" +extra_started_commands="reload" + +description="Lightweight graphite metrics router and aggregator." +description_configtest="Run carbon-c-relay's internal config check." +description_reload="Reload the carbon-c-relay configuration without losing connections." + +routes_config=${ROUTES_FILE:-/etc/${SVCNAME}.conf} + +command="/usr/bin/carbon-c-relay" +command_args="-f ${routes_config} ${EXTRA_OPTS}" +pidfile="/run/carbon-c-relay/${SVCNAME}.pid" +logfile=${LOGFILE:-/var/log/${SVCNAME}.log} +user=${USER:-carbon} +group=${GROUP:-carbon} + +depend() { + need net + use dns +} + +start_pre() { + if [ "${RC_CMD}" != "restart" ]; then + configtest || return 1 + fi + touch "${logfile}" + mkdir -p "${pidfile%/*}" + chown ${user}:${group} "${logfile}" "${pidfile%/*}" +} + +stop_pre() { + if [ "${RC_CMD}" = "restart" ]; then + configtest || return 1 + fi +} + +stop_post() { + rm -f "${pidfile}" +} + +start() { + ebegin "Starting ${SVCNAME}" + start-stop-daemon --start --pidfile "${pidfile}" \ + --user ${user} --group ${group} \ + --exec ${command} -- -D -P "${pidfile}" -l "${logfile}" \ + ${command_args} + eend $? +} + +stop() { + ebegin "Stopping ${SVCNAME}" + # migration path + local pfile=${pidfile} + [ -e /run/carbon-c-relay.pid ] && pfile="/run/carbon-c-relay.pid" + start-stop-daemon --stop --exec ${command} --pidfile "${pfile}" + eend $? +} + +reload() { + configtest || return 1 + ebegin "Refreshing ${SVCNAME}'s configuration" + kill -HUP $(cat "${pidfile}") >/dev/null 2>&1 + eend $? "Failed to reload ${SVCNAME}" +} + +configtest() { + ebegin "Checking ${SVCNAME}'s configuration" + ${command} -f "${routes_config}" -t < /dev/null > /dev/null + eend $? "failed, please correct errors above" +} |