From 564dcc6e3e0d1d27ec4db70ee3df0de30ea07242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20Mu=C3=B1oz?= Date: Fri, 12 Apr 2024 08:21:50 -0500 Subject: [PATCH] add grafana --- .gitignore | 1 + grafana/.SRCINFO | 31 +++++++++++++++ grafana/PKGBUILD | 84 +++++++++++++++++++++++++++++++++++++++ grafana/grafana.install | 22 ++++++++++ grafana/grafana.service | 23 +++++++++++ grafana/grafana.sysusers | 1 + grafana/grafana.tmpfiles | 2 + telegraf/.SRCINFO | 25 ++++++++++++ telegraf/.gitignore | 6 +++ telegraf/PKGBUILD | 57 ++++++++++++++++++++++++++ telegraf/telegraf.install | 4 ++ telegraf/telegraf.service | 19 +++++++++ 12 files changed, 275 insertions(+) create mode 100644 grafana/.SRCINFO create mode 100644 grafana/PKGBUILD create mode 100644 grafana/grafana.install create mode 100644 grafana/grafana.service create mode 100644 grafana/grafana.sysusers create mode 100644 grafana/grafana.tmpfiles create mode 100644 telegraf/.SRCINFO create mode 100644 telegraf/.gitignore create mode 100644 telegraf/PKGBUILD create mode 100644 telegraf/telegraf.install create mode 100644 telegraf/telegraf.service diff --git a/.gitignore b/.gitignore index ae757c3..0048a27 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ */pkg */src */.git +grafana/grafana vaultwarden/vaultwarden *.tzg *.tgz diff --git a/grafana/.SRCINFO b/grafana/.SRCINFO new file mode 100644 index 0000000..8eec84e --- /dev/null +++ b/grafana/.SRCINFO @@ -0,0 +1,31 @@ +pkgbase = grafana + pkgdesc = Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB + pkgver = 10.4.2 + pkgrel = 1 + url = https://grafana.com/ + install = grafana.install + arch = x86_64 + license = AGPL + license = Apache + makedepends = git + makedepends = go + makedepends = npm + makedepends = grunt-cli + makedepends = python + makedepends = nodejs-lts-hydrogen + makedepends = yarn + depends = glibc + depends = freetype2 + depends = fontconfig + depends = gsfonts + backup = etc/grafana.ini + source = git+https://github.com/grafana/grafana.git#tag=v10.4.2 + source = grafana.service + source = grafana.sysusers + source = grafana.tmpfiles + sha512sums = 45db571c3c5ea92360a81403ef2669d4c7e702e65291afe35d14c4eb8a0ab5110297e8a384be489d7a28a6960d34efd3cee7cc48b9f238672b3811b6afe4018d + sha512sums = 02a597225ee6ba8da9491a94daa33fe681846e2140e02fbb461ff7d39acd4cf99694dc03fb5f2c5ecfd180b09c44a41fe639b121499b4222b67ada57dc60d850 + sha512sums = 38b46d953837a7afa5a654dfeef163b210d56cad57d937018531d00cd63b5341d6f9cd777299bdc7a994d0cb7df09b8157aad0f166e76ad47564e1ad6d5441d4 + sha512sums = c1724bfc7cbd6a406f17acb661efca0f1e57e2c30cc1841f4cb7ccfc420adc40cc61cb1c023d00444827b2c40e9caa4c2fefbfd503419848c74a0b455b2375ab + +pkgname = grafana diff --git a/grafana/PKGBUILD b/grafana/PKGBUILD new file mode 100644 index 0000000..bb4645d --- /dev/null +++ b/grafana/PKGBUILD @@ -0,0 +1,84 @@ +# Maintainer: Sébastien "Seblu" Luttringer +# Contributor: Carsten Feuls +# Contributor: Gilles Hamel + +pkgname=grafana +pkgver=10.4.2 +pkgrel=1 +pkgdesc='Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB' +url='https://grafana.com/' +arch=('x86_64') +license=('AGPL' 'Apache') +depends=('glibc' 'freetype2' 'fontconfig' 'gsfonts') +makedepends=('git' 'go' 'npm' 'grunt-cli' 'python' 'nodejs-lts-hydrogen' 'yarn') +backup=('etc/grafana.ini') +source=("git+https://github.com/grafana/grafana.git#tag=v$pkgver" + 'grafana.service' + 'grafana.sysusers' + 'grafana.tmpfiles' + ) +install=$pkgname.install +sha512sums=('45db571c3c5ea92360a81403ef2669d4c7e702e65291afe35d14c4eb8a0ab5110297e8a384be489d7a28a6960d34efd3cee7cc48b9f238672b3811b6afe4018d' + '02a597225ee6ba8da9491a94daa33fe681846e2140e02fbb461ff7d39acd4cf99694dc03fb5f2c5ecfd180b09c44a41fe639b121499b4222b67ada57dc60d850' + '38b46d953837a7afa5a654dfeef163b210d56cad57d937018531d00cd63b5341d6f9cd777299bdc7a994d0cb7df09b8157aad0f166e76ad47564e1ad6d5441d4' + 'c1724bfc7cbd6a406f17acb661efca0f1e57e2c30cc1841f4cb7ccfc420adc40cc61cb1c023d00444827b2c40e9caa4c2fefbfd503419848c74a0b455b2375ab') + +prepare() { + cd $pkgname + # apply patch from the source array (should be a pacman feature) + local filename + for filename in "${source[@]}"; do + if [[ "$filename" =~ \.patch$ ]]; then + echo "Applying patch ${filename##*/}" + patch -p1 -N -i "$srcdir/${filename##*/}" + fi + done + # set arch linux paths + sed -ri 's,^(\s*data\s*=).*,\1 /var/lib/grafana,' conf/defaults.ini + sed -ri 's,^(\s*plugins\s*=).*,\1 /var/lib/grafana/plugins,' conf/defaults.ini + sed -ri 's,^(\s*provisioning\s*=).*,\1 /var/lib/grafana/conf/provisioning,' conf/defaults.ini + sed -ri 's,^(\s*logs\s*=).*,\1 /var/log/grafana,' conf/defaults.ini +} + +build() { + cd grafana + echo 'Generate golang' + make gen-go + + echo 'building the backend' + export CGO_LDFLAGS="${LDFLAGS}" + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CFLAGS="${CFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export GOFLAGS="-buildmode=pie -trimpath -modcacherw" + go run build.go setup + go run build.go build + + echo 'building the frontend' + export NPM_CONFIG_PREFIX="$srcdir/npm" + export PATH+=":$NPM_CONFIG_PREFIX/bin" + export NODE_OPTIONS="--max-old-space-size=16000" # Increase to 8 GB + yarn install || cat /tmp/*/build.log + NODE_ENV=production yarn run build +} + +package() { + install -Dm644 grafana.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/grafana.conf" + install -Dm644 grafana.sysusers "$pkgdir/usr/lib/sysusers.d/grafana.conf" + install -Dm644 grafana.service "$pkgdir/usr/lib/systemd/system/grafana.service" + cd $pkgname + install -Dsm755 bin/linux-amd64/grafana "$pkgdir/usr/bin/grafana" + install -Dsm755 bin/linux-amd64/grafana-server "$pkgdir/usr/bin/grafana-server" + install -Dsm755 bin/linux-amd64/grafana-cli "$pkgdir/usr/bin/grafana-cli" + install -Dm640 -o207 -g207 conf/sample.ini "$pkgdir/etc/$pkgname.ini" + install -Dm644 conf/defaults.ini "$pkgdir/usr/share/$pkgname/conf/defaults.ini" + install -dm755 "$pkgdir/usr/share/grafana/" + for i in public tools; do + cp -r "$i" "$pkgdir/usr/share/grafana/$i" + done + + # Remove unit tests + rm -r "$pkgdir/usr/share/grafana/public/test" +} + +# vim:set ts=2 sw=2 et: diff --git a/grafana/grafana.install b/grafana/grafana.install new file mode 100644 index 0000000..5656308 --- /dev/null +++ b/grafana/grafana.install @@ -0,0 +1,22 @@ +#/bin/sh + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + if (( "$(vercmp $2 2.6.0-3)" < 0 )); then + echo '==> Configuration moved to /etc/grafana.ini' + fi + if (( "$(vercmp $2 4.4.3-1)" < 0 )); then + echo '==> Grafana now uses static UID/GID 207' + echo '==> Trying to update your previous UID/GID' + if ! { usermod -u 207 grafana && groupmod -g 207 grafana && + chown -R 207:207 /var/{lib,log}/grafana; }; then + echo '==> Automatic GID/UID change failed. Do it manually!' + echo '==> usermod -g 207 grafana && groupmod -u 207 grafana && chown -R 207:207 /var/l{ib,og}/grafana' + fi + echo '==> Check the ownership of your files!' + fi + return 0 +} + +# vim:set ts=2 sw=2 et: diff --git a/grafana/grafana.service b/grafana/grafana.service new file mode 100644 index 0000000..13e8dc0 --- /dev/null +++ b/grafana/grafana.service @@ -0,0 +1,23 @@ +[Unit] +Description=Grafana service +After=network.target postgresql.service mariadb.service mysqld.service + +[Service] +User=grafana +Group=grafana +WorkingDirectory=/usr/share/grafana +ExecStart=/usr/bin/grafana-server --config=/etc/grafana.ini +LimitNOFILE=10000 +TimeoutStopSec=20 +SuccessExitStatus=0 2 +NoNewPrivileges=yes +ProtectSystem=full +ProtectHome=true +PrivateTmp=true +PrivateDevices=true +ProtectKernelTunables=true +ProtectKernelModules=true +ProtectControlGroups=true + +[Install] +WantedBy=multi-user.target diff --git a/grafana/grafana.sysusers b/grafana/grafana.sysusers new file mode 100644 index 0000000..ccf2903 --- /dev/null +++ b/grafana/grafana.sysusers @@ -0,0 +1 @@ +u grafana 207 - /var/lib/grafana diff --git a/grafana/grafana.tmpfiles b/grafana/grafana.tmpfiles new file mode 100644 index 0000000..f788103 --- /dev/null +++ b/grafana/grafana.tmpfiles @@ -0,0 +1,2 @@ +d /var/lib/grafana 0750 grafana grafana - +d /var/log/grafana 0750 grafana grafana - diff --git a/telegraf/.SRCINFO b/telegraf/.SRCINFO new file mode 100644 index 0000000..e9e7b16 --- /dev/null +++ b/telegraf/.SRCINFO @@ -0,0 +1,25 @@ +pkgbase = telegraf + pkgdesc = Plugin-driven server agent for reporting metrics into InfluxDB + pkgver = 1.30.1 + pkgrel = 1 + url = http://influxdb.org/ + install = telegraf.install + arch = i686 + arch = x86_64 + arch = armv6h + arch = armv7h + arch = aarch64 + license = MIT + makedepends = go + makedepends = git + depends = glibc + options = !lto + backup = etc/telegraf/telegraf.conf + source = https://github.com/influxdata/telegraf/archive/v1.30.1/telegraf-v1.30.1.tar.gz + source = telegraf.install + source = telegraf.service + b2sums = 90701b2b09cd924288ef6593faa79a0ec099ead05211852cc8b617b35c3b319a403a0a1517ed3d09639b146b07abcc73a2fd3dba4045cfb5ce768ae06bec1b81 + b2sums = a6b2fd7a688ef5a23539c1256380a6389e6fa474312ad9dee5cc77bcfabe92910a8913ffcf599c940a93bb3a5c89e01f3bedad4176f4d57dd33a68e0499c30bd + b2sums = d5a6845cb1ddb07f0cac20215c15d059f0c18aa43a7b549e7e738e58b8686b4db26b71426aafc8e682d6fd6f676fc0f468f53ea61968c4184feaaa22a23f5bc5 + +pkgname = telegraf diff --git a/telegraf/.gitignore b/telegraf/.gitignore new file mode 100644 index 0000000..c9d85b6 --- /dev/null +++ b/telegraf/.gitignore @@ -0,0 +1,6 @@ +* +!.gitignore +!PKGBUILD +!.SRCINFO +!telegraf.install +!telegraf.service diff --git a/telegraf/PKGBUILD b/telegraf/PKGBUILD new file mode 100644 index 0000000..7a108d5 --- /dev/null +++ b/telegraf/PKGBUILD @@ -0,0 +1,57 @@ +# Maintainer: "Amhairghin" Oscar Garcia Amor (https://ogarcia.me) +# Contributor: Nicolas Leclercq +# Contributor: Adam S Levy + +pkgname=telegraf +pkgver=1.30.1 +pkgrel=1 +pkgdesc='Plugin-driven server agent for reporting metrics into InfluxDB' +arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') +url='http://influxdb.org/' +license=('MIT') +depends=('glibc') +makedepends=('go' 'git') +options=('!lto') +backup=('etc/telegraf/telegraf.conf') +install="${pkgname}.install" +source=("https://github.com/influxdata/${pkgname}/archive/v${pkgver}/${pkgname}-v${pkgver}.tar.gz" + "${pkgname}.install" + "${pkgname}.service") +b2sums=('90701b2b09cd924288ef6593faa79a0ec099ead05211852cc8b617b35c3b319a403a0a1517ed3d09639b146b07abcc73a2fd3dba4045cfb5ce768ae06bec1b81' + 'a6b2fd7a688ef5a23539c1256380a6389e6fa474312ad9dee5cc77bcfabe92910a8913ffcf599c940a93bb3a5c89e01f3bedad4176f4d57dd33a68e0499c30bd' + 'd5a6845cb1ddb07f0cac20215c15d059f0c18aa43a7b549e7e738e58b8686b4db26b71426aafc8e682d6fd6f676fc0f468f53ea61968c4184feaaa22a23f5bc5') + +prepare() { + cd "${pkgname}-${pkgver}" + mkdir -p build/ +} + +build() { + cd "${pkgname}-${pkgver}" + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CFLAGS="${CFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export CGO_LDFLAGS="${LDFLAGS}" + export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" + _LDFLAGS="-X main.goos=$(go env GOOS) -X main.goarch=$(go env GOARCH) -X main.version=${pkgver} -X main.branch=tag-${pkgver} -X main.commit=tag-${pkgver}" + go build -o build -ldflags="${_LDFLAGS}" "./cmd/telegraf" +} + +package() { + # binary + install -D -m755 "${srcdir}/${pkgname}-${pkgver}/build/telegraf" \ + "${pkgdir}/usr/bin/telegraf" + + # configuration files + install -dD -m755 "${pkgdir}/etc/telegraf/telegraf.d" + "${srcdir}/${pkgname}-${pkgver}/build/telegraf" -sample-config > \ + "${pkgdir}/etc/telegraf/telegraf.conf" + + # license + install -Dm644 "${srcdir}/${pkgname}-${pkgver}/LICENSE" \ + "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + + # service + install -D -m644 "${srcdir}/${pkgname}.service" \ + "${pkgdir}/usr/lib/systemd/system/${pkgname}.service" +} diff --git a/telegraf/telegraf.install b/telegraf/telegraf.install new file mode 100644 index 0000000..d6a3bb3 --- /dev/null +++ b/telegraf/telegraf.install @@ -0,0 +1,4 @@ +post_remove() { + echo "Remember that the following directory isn't removed." + echo " -> /etc/telegraf" +} diff --git a/telegraf/telegraf.service b/telegraf/telegraf.service new file mode 100644 index 0000000..fdf6c40 --- /dev/null +++ b/telegraf/telegraf.service @@ -0,0 +1,19 @@ +[Unit] +Description=Plugin-driven server agent for reporting metrics into InfluxDB +After=network.target + +[Service] +Type=notify +User=telegraf +Group=telegraf +DynamicUser=yes +ExecStart=/usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d +ExecReload=/bin/kill -HUP $MAINPID +Restart=on-failure +RestartForceExitStatus=SIGPIPE +KillMode=mixed +TimeoutStopSec=5 +LimitMEMLOCK=8M:8M + +[Install] +WantedBy=multi-user.target