Date: Wed, 20 May 2026 17:54:03 +0000 From: Bernhard Froehlich <decke@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Cc: Zach Leslie <zach.leslie@grafana.com> Subject: git: 6f38f202cac5 - main - sysutils/alloy: Update to 1.13.1 and fix two bugs in rc script Message-ID: <6a0df53b.24636.450b22ba@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by decke: URL: https://cgit.FreeBSD.org/ports/commit/?id=6f38f202cac5be6215217302c334942ebdf0226c commit 6f38f202cac5be6215217302c334942ebdf0226c Author: Zach Leslie <zach.leslie@grafana.com> AuthorDate: 2026-05-20 17:48:36 +0000 Commit: Bernhard Froehlich <decke@FreeBSD.org> CommitDate: 2026-05-20 17:52:22 +0000 sysutils/alloy: Update to 1.13.1 and fix two bugs in rc script PR: 292472, 294288 Reviewed by: fuz@ (earlier revision) Pull Request: https://github.com/freebsd/freebsd-ports/pull/488 --- sysutils/alloy/Makefile | 51 ++++++++++++++++++++++++++++++++++--------- sysutils/alloy/distinfo | 12 +++++----- sysutils/alloy/files/alloy.in | 30 ++++++++++++++++++++++++- 3 files changed, 75 insertions(+), 18 deletions(-) diff --git a/sysutils/alloy/Makefile b/sysutils/alloy/Makefile index 266cfbbd5aa9..365ce5cb4ba7 100644 --- a/sysutils/alloy/Makefile +++ b/sysutils/alloy/Makefile @@ -1,7 +1,6 @@ PORTNAME= alloy DISTVERSIONPREFIX= v -DISTVERSION= 1.10.2 -PORTREVISION= 11 +DISTVERSION= 1.13.1 CATEGORIES= sysutils MAINTAINER= zach.leslie@grafana.com @@ -10,30 +9,62 @@ WWW= https://github.com/grafana/alloy LICENSE= MIT -USES= go:modules +# no_targets: we supply do-build/do-install for the collector submodule. +USES= go:modules,no_targets USE_GITHUB= yes GH_ACCOUNT= grafana +# Fetch go.mod from GitHub rather than GOPROXY so the framework does not +# also download a GOPROXY zip, which would conflict with the GitHub tarball +# WRKSRC. With GO_MOD_DIST=github, go.mk skips the GOPROXY zip and leaves +# WRKSRC set correctly by USE_GITHUB. +GO_MOD_DIST= github + USE_RC_SUBR= ${PORTNAME} GO_MODULE= github.com/${GH_ACCOUNT}/${GH_PROJECT} -GO_PKGNAME= github.com/${GH_ACCOUNT}/${GH_PROJECT} -GO_TARGET= github.com/${GH_ACCOUNT}/${GH_PROJECT} GO_BUILDFLAGS= -ldflags='-X github.com/grafana/alloy/internal/build.Version=${GH_TAGNAME}' +# The main go.mod has "replace ./syntax => ./syntax". go-post-fetch (800) +# runs go mod download from DIST_SUBDIR and needs syntax/go.mod present. +# post-fetch runs at priority 700, after do-fetch (500) downloads the tarball. post-fetch: - @${ECHO_MSG} "===> Fetching ${GO_MODNAME}/syntax dependency" - (cd ${DISTDIR}/${DIST_SUBDIR}; [ -e syntax/go.mod ] || (\ + @(cd ${DISTDIR}/${DIST_SUBDIR}; [ -e syntax/go.mod ] || (\ ${MKDIR} syntax; \ ${TAR} -xzf ${DISTNAME}${EXTRACT_SUFX} ${PORTNAME}-${DISTVERSION}/syntax/go.mod; \ ${CP} ${PORTNAME}-${DISTVERSION}/syntax/go.mod syntax/go.mod)) -post-extract: - ${CP} -r ${WRKDIR}/${PORTNAME}-${DISTVERSION}/syntax ${GO_WRKSRC} +# collector/ is a separate Go module with its own dependencies. Download +# them at fetch time; extract has no network access in poudriere. +_USES_fetch+= 900:alloy-fetch-collector-deps +alloy-fetch-collector-deps: + @${ECHO_MSG} "===> Fetching collector submodule dependencies"; \ + td=$$(mktemp -d -t alloy_collector_deps); \ + trap "rm -rf $$td" 0; \ + ${TAR} -xzf ${DISTDIR}/${DIST_SUBDIR}/${DISTNAME}${EXTRACT_SUFX} -C $$td; \ + (cd $$td/${PORTNAME}-${DISTVERSION}/collector && \ + ${SETENVI} ${WRK_ENV} GOPATH="${GO_GOPATH}" GO111MODULE=on GOFLAGS=-modcacherw GOSUMDB=sum.golang.org \ + GOPROXY=${GO_GOPROXY} ${GO_CMD} mod download -x all); \ + rm -rf $$td + +# After go-post-extract (800) vendors the main module, vendor collector/ +# using the module cache populated above. +_USES_extract+= 900:alloy-vendor-collector +alloy-vendor-collector: + @${ECHO_MSG} "===> Vendoring collector submodule"; \ + (cd ${WRKSRC}/collector && \ + ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=${GO_MODCACHE} \ + ${GO_CMD} mod vendor -e) + +# The alloy binary lives in collector/, a separate Go module. +do-build: + (cd ${WRKSRC}/collector; \ + ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${GO_ENV} GOMAXPROCS=${MAKE_JOBS_NUMBER} GOPROXY=off \ + ${GO_CMD} build ${GO_BUILDFLAGS} -mod=vendor -o ${GO_WRKDIR_BIN}/alloy .) do-install: - ${INSTALL_PROGRAM} ${WRKDIR}/bin/${PORTNAME} ${STAGEDIR}${PREFIX}/bin + ${INSTALL_PROGRAM} ${GO_WRKDIR_BIN}/alloy ${STAGEDIR}${PREFIX}/bin/${PORTNAME} ${INSTALL_DATA} ${WRKSRC}/example-config.alloy ${STAGEDIR}${PREFIX}/etc/alloy.flow.sample ${MKDIR} ${STAGEDIR}/var/${PORTNAME} diff --git a/sysutils/alloy/distinfo b/sysutils/alloy/distinfo index 1ee3ee1fe929..a107e3c4254d 100644 --- a/sysutils/alloy/distinfo +++ b/sysutils/alloy/distinfo @@ -1,7 +1,5 @@ -TIMESTAMP = 1756329743 -SHA256 (go/sysutils_alloy/grafana-alloy-v1.10.2_GH0/v1.10.2.mod) = 00055a9dafa0182283fbb801d6bc092ffbec438405c190f3a57010f07783bcaa -SIZE (go/sysutils_alloy/grafana-alloy-v1.10.2_GH0/v1.10.2.mod) = 67450 -SHA256 (go/sysutils_alloy/grafana-alloy-v1.10.2_GH0/v1.10.2.zip) = c1603f2447f19178e67e906c9dc012a47a77f328c6d3cf997ab1fbeea12ba258 -SIZE (go/sysutils_alloy/grafana-alloy-v1.10.2_GH0/v1.10.2.zip) = 14528199 -SHA256 (go/sysutils_alloy/grafana-alloy-v1.10.2_GH0/grafana-alloy-v1.10.2_GH0.tar.gz) = ed170622458600dd335dbdea12cf88a6bee33df1949a58b31a707b1a84f65b0f -SIZE (go/sysutils_alloy/grafana-alloy-v1.10.2_GH0/grafana-alloy-v1.10.2_GH0.tar.gz) = 12779185 +TIMESTAMP = 1771875883 +SHA256 (go/sysutils_alloy/grafana-alloy-v1.13.1_GH0/go.mod) = 2664a5fe70d0ccd10783f47038738ced9007fc5f04f2f3252c44a47030218681 +SIZE (go/sysutils_alloy/grafana-alloy-v1.13.1_GH0/go.mod) = 66864 +SHA256 (go/sysutils_alloy/grafana-alloy-v1.13.1_GH0/grafana-alloy-v1.13.1_GH0.tar.gz) = 46bad79b5ba502d93c57b4dfe59aadc362cda173290760d8da33080552f53d9a +SIZE (go/sysutils_alloy/grafana-alloy-v1.13.1_GH0/grafana-alloy-v1.13.1_GH0.tar.gz) = 18140497 diff --git a/sysutils/alloy/files/alloy.in b/sysutils/alloy/files/alloy.in index 68ddee8322ca..87807f014dde 100644 --- a/sysutils/alloy/files/alloy.in +++ b/sysutils/alloy/files/alloy.in @@ -19,6 +19,9 @@ # Default is "/var/alloy". # alloy_args (string): Set extra arguments to pass to alloy # Default is "". +# alloy_sig_stop (string): Signal used to stop alloy. Default "TERM". +# alloy_stop_timeout (int): Seconds to wait for graceful stop before SIGKILL. +# Default is unset (rc.subr default wait). Set e.g. 30 for a timeout. . /etc/rc.subr @@ -33,15 +36,24 @@ load_rc_config $name : ${alloy_args:=""} : ${alloy_storage_path:="/var/alloy"} : ${alloy_listen_address:=":9200"} +: ${alloy_sig_stop:="TERM"} +: ${alloy_stop_timeout:=} pidfile=/var/run/alloy.pid command="/usr/sbin/daemon" procname="%%PREFIX%%/bin/alloy" run="run /usr/local/etc/alloy.flow" -command_args="-S -T ${name} -p ${pidfile} /usr/bin/env ${procname} ${run} \ +command_args="-f -S -T ${name} -p ${pidfile} /usr/bin/env ${procname} ${run} \ --storage.path=${alloy_storage_path} --server.http.listen-addr=${alloy_listen_address} ${alloy_args}" +# Alloy reloads config on SIGHUP (see /-/reload and internal/alloycli/cmd_run.go). +sig_stop="${alloy_sig_stop}" +sig_reload="HUP" +extra_commands="reload" + start_precmd=alloy_startprecmd +stop_postcmd=alloy_stoppostcmd +[ -n "${alloy_stop_timeout}" ] && stop_cmd="alloy_stop" alloy_startprecmd() { if [ ! -e ${pidfile} ]; then @@ -49,5 +61,21 @@ alloy_startprecmd() { fi } +alloy_stoppostcmd() { + rm -f ${pidfile} +} + +alloy_stop() { + rc_pid=$(check_pidfile "${pidfile}" "${procname}") + if [ -z "${rc_pid}" ]; then + return 0 + fi + echo "Stopping ${name}." + kill -${sig_stop} "${rc_pid}" + wait_for_pids "${pidfile}" ${alloy_stop_timeout} + kill -KILL "${rc_pid}" 2>/dev/null && echo "Killed." + rm -f "${pidfile}" +} + load_rc_config $name run_rc_command "$1"home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a0df53b.24636.450b22ba>
