Date: Mon, 01 Jun 2026 11:46:50 +0000 From: Michael Gmelin <grembo@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Cc: Daniel Morante <daniel@morante.net> Subject: git: 931b99597df4 - main - sysutils/loki3: New port Message-ID: <6a1d712a.1e4da.5bc5c32@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by grembo: URL: https://cgit.FreeBSD.org/ports/commit/?id=931b99597df4b513b211c21233130ef0486635ee commit 931b99597df4b513b211c21233130ef0486635ee Author: Daniel Morante <daniel@morante.net> AuthorDate: 2026-06-01 11:43:36 +0000 Commit: Michael Gmelin <grembo@FreeBSD.org> CommitDate: 2026-06-01 11:46:10 +0000 sysutils/loki3: New port PR: 295533 --- sysutils/Makefile | 1 + sysutils/loki3/Makefile | 71 ++++++++++++++++++++++ sysutils/loki3/distinfo | 5 ++ sysutils/loki3/files/loki.in | 71 ++++++++++++++++++++++ .../files/patch-cmd-loki-loki-local-config.yaml | 17 ++++++ sysutils/loki3/pkg-descr | 4 ++ sysutils/loki3/pkg-plist | 13 ++++ 7 files changed, 182 insertions(+) diff --git a/sysutils/Makefile b/sysutils/Makefile index cf99d8f9f756..9016a1f6ad06 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -680,6 +680,7 @@ SUBDIR += logtool SUBDIR += logwatch SUBDIR += loki + SUBDIR += loki3 SUBDIR += lookat SUBDIR += lr SUBDIR += lsblk diff --git a/sysutils/loki3/Makefile b/sysutils/loki3/Makefile new file mode 100644 index 000000000000..0b0e1f32ceae --- /dev/null +++ b/sysutils/loki3/Makefile @@ -0,0 +1,71 @@ +PORTNAME= loki +DISTVERSIONPREFIX= v +DISTVERSION= 3.7.2 +CATEGORIES= sysutils +PKGNAMEPREFIX= grafana- +PKGNAMESUFFIX= 3 + +MAINTAINER= daniel@morante.net +COMMENT= Scalable, highly-available, multi-tenant log aggregation system +WWW= https://github.com/grafana/loki + +LICENSE= AGPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= go:modules cpe +CPE_VENDOR= grafana +USE_GITHUB= yes + +GH_ACCOUNT= grafana +GH_PROJECT= loki + +USE_RC_SUBR= loki + +GO_MOD_DIST= github +GO_MODULE= github.com/${GH_ACCOUNT}/${GH_PROJECT}/v3 +GO_TARGET= ./cmd/loki ./cmd/loki-canary ./cmd/logcli ./cmd/lokitool +GO_BUILDFLAGS= -v -ldflags "${LD_FLAG_STRING}" + +LD_FLAG_STRING= -s \ + ${LD_FLAG_X_PREFIX}.Version=${DISTVERSION} \ + ${LD_FLAG_X_PREFIX}.Revision=${PORTREVISION} \ + ${LD_FLAG_X_PREFIX}.Branch=HEAD \ + ${LD_FLAG_X_PREFIX}.BuildUser=${BUILD_USER} \ + ${LD_FLAG_X_PREFIX}.BuildDate=$$(date -u +"%Y-%m-%dT%H:%M:%SZ") +LD_FLAG_X_PREFIX= -X github.com/grafana/loki/v3/pkg/util/build +BUILD_USER?= ${USER} + +LOKI_USER?= loki +LOKI_GROUP?= loki +LOKI_DATADIR?= /var/db/${PORTNAME} + +CONFLICTS_INSTALL= grafana-loki + +SUB_LIST= LOKI_USER=${LOKI_USER} \ + LOKI_GROUP=${LOKI_GROUP} \ + LOKI_DATADIR=${LOKI_DATADIR} + +USERS= ${LOKI_USER} +GROUPS= ${LOKI_GROUP} + +PLIST_SUB= ${SUB_LIST} + +# The main go.mod has "replace ./pkg/push => ./pkg/push". go-post-fetch (800) +# runs go mod download from DIST_SUBDIR and needs pkg/push/go.mod present. +# post-fetch runs at priority 700, after do-fetch (500) downloads the tarball. +post-fetch: + @(cd ${DISTDIR}/${DIST_SUBDIR}; [ -e pkg/push/go.mod ] || (\ + ${MKDIR} pkg/push; \ + ${TAR} -xzf ${DISTNAME}${EXTRACT_SUFX} \ + ${PORTNAME}-${DISTVERSION}/pkg/push/go.mod \ + ${PORTNAME}-${DISTVERSION}/pkg/push/go.sum; \ + ${CP} ${PORTNAME}-${DISTVERSION}/pkg/push/go.mod pkg/push/go.mod; \ + ${CP} ${PORTNAME}-${DISTVERSION}/pkg/push/go.sum pkg/push/go.sum; \ + ${RM} -r ${PORTNAME}-${DISTVERSION})) + +post-install: + @${CP} ${WRKSRC}/cmd/loki/loki-local-config.yaml ${STAGEDIR}${PREFIX}/etc/loki.yaml.sample + @${MKDIR} ${STAGEDIR}${LOKI_DATADIR} + @${MKDIR} ${STAGEDIR}${LOKI_DATADIR}/rules-temp + +.include <bsd.port.mk> diff --git a/sysutils/loki3/distinfo b/sysutils/loki3/distinfo new file mode 100644 index 000000000000..d20f9c19a0a0 --- /dev/null +++ b/sysutils/loki3/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1779563525 +SHA256 (go/sysutils_loki3/grafana-loki-v3.7.2_GH0/go.mod) = 2ecfa91936a42156d785cb3de6828023ed1e0318fcbeaa08df4d9c11151b8644 +SIZE (go/sysutils_loki3/grafana-loki-v3.7.2_GH0/go.mod) = 26942 +SHA256 (go/sysutils_loki3/grafana-loki-v3.7.2_GH0/grafana-loki-v3.7.2_GH0.tar.gz) = f91b7737cc0ca352dfb99e9307bc2f6a67135d6827922374ab4a31676d280790 +SIZE (go/sysutils_loki3/grafana-loki-v3.7.2_GH0/grafana-loki-v3.7.2_GH0.tar.gz) = 110315122 diff --git a/sysutils/loki3/files/loki.in b/sysutils/loki3/files/loki.in new file mode 100644 index 000000000000..b09d9e307c65 --- /dev/null +++ b/sysutils/loki3/files/loki.in @@ -0,0 +1,71 @@ +#!/bin/sh + +# PROVIDE: loki +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable loki +# loki_enable="YES" +# +# loki_enable (bool): +# Set it to YES to enable loki +# Set to NO by default +# loki_user (string): +# Set user that loki will run under +# Default is "%%LOKI_USER%%" +# loki_group (string): +# Set group that own loki files +# Default is "%%LOKI_GROUP%%" +# loki_config (string) +# Set full path to config file +# Default is "%%PREFIX%%/etc/loki.yaml" +# loki_logfile (string) +# Set full path to log file +# Default is "/var/log/loki/loki.log" +# loki_loglevel (string) +# Set log level. Only log messages with the given severity or above. +# Valid levels: [debug, info, warn, error] +# Default is "warn" +# loki_args (string) +# Set additional command line arguments +# Default is "" + +. /etc/rc.subr + +name=loki +rcvar=loki_enable + +load_rc_config $name + +: ${loki_enable:="NO"} +: ${loki_user:="%%LOKI_USER%%"} +: ${loki_group:="%%LOKI_GROUP%%"} +: ${loki_config:="%%PREFIX%%/etc/loki.yaml"} +: ${loki_logfile:="/var/log/loki/loki.log"} +: ${loki_loglevel:="warn"} + +pidfile="/var/run/${name}/${name}.pid" +required_files="${loki_config}" + +procname="%%PREFIX%%/bin/loki" +command="/usr/sbin/daemon" +command_args="-p ${pidfile} -t ${name} -o ${loki_logfile} \ + ${procname} \ + --config.file=${loki_config} \ + --log.level=${loki_loglevel} \ + ${loki_args}" + +start_precmd="loki_start_precmd" + +loki_start_precmd() +{ + if [ ! -d "/var/run/${name}" ]; then + install -d -m 0750 -o ${loki_user} -g ${loki_group} "/var/run/${name}" + fi + + if [ ! -d "/var/log/loki" ]; then + install -d -m 0750 -o ${loki_user} -g ${loki_group} "/var/log/loki" + fi +} + +run_rc_command "$1" diff --git a/sysutils/loki3/files/patch-cmd-loki-loki-local-config.yaml b/sysutils/loki3/files/patch-cmd-loki-loki-local-config.yaml new file mode 100644 index 000000000000..e7483480655a --- /dev/null +++ b/sysutils/loki3/files/patch-cmd-loki-loki-local-config.yaml @@ -0,0 +1,17 @@ +--- cmd/loki/loki-local-config.yaml.orig 2025-01-01 00:00:00 UTC ++++ cmd/loki/loki-local-config.yaml +@@ -10,10 +10,10 @@ + + common: + instance_addr: 127.0.0.1 +- path_prefix: /tmp/loki ++ path_prefix: /var/db/loki + storage: + filesystem: +- chunks_directory: /tmp/loki/chunks +- rules_directory: /tmp/loki/rules ++ chunks_directory: /var/db/loki/chunks ++ rules_directory: /var/db/loki/rules + replication_factor: 1 + ring: + kvstore: diff --git a/sysutils/loki3/pkg-descr b/sysutils/loki3/pkg-descr new file mode 100644 index 000000000000..2a8e227e3346 --- /dev/null +++ b/sysutils/loki3/pkg-descr @@ -0,0 +1,4 @@ +Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation +system inspired by Prometheus. It is designed to be very cost effective and easy +to operate. It does not index the contents of the logs, but rather a set of +labels for each log stream. diff --git a/sysutils/loki3/pkg-plist b/sysutils/loki3/pkg-plist new file mode 100644 index 000000000000..bc4126f941f5 --- /dev/null +++ b/sysutils/loki3/pkg-plist @@ -0,0 +1,13 @@ +bin/loki +bin/loki-canary +bin/logcli +bin/lokitool +@sample etc/loki.yaml.sample +@owner %%LOKI_USER%% +@group %%LOKI_GROUP%% +@mode 750 +@dir %%LOKI_DATADIR%% +@dir %%LOKI_DATADIR%%/rules-temp +@mode +@group +@ownerhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a1d712a.1e4da.5bc5c32>
