commit:     626dd530e5d30fe297d086ab838e2a35ec2a99bf
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 18 18:26:55 2022 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sun Sep 18 18:29:54 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=626dd530

app-misc/carbon-c-relay-3.7.4-r1: revbump for POSIX script fixes

Closes: https://bugs.gentoo.org/841794
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 .../carbon-c-relay/carbon-c-relay-3.7.4-r1.ebuild  | 58 +++++++++++++++++
 .../carbon-c-relay/files/carbon-c-relay.initd-r2   | 74 ++++++++++++++++++++++
 2 files changed, 132 insertions(+)

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"
+}

Reply via email to