blob: 053cffe7722a577180e00d92508fde93287388d5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# Maintainer: Jakub Klinkovský <lahwaacz at archlinux dot org>
_name=nvidia_gpu_prometheus_exporter
_pkgname=prometheus-nvidia-gpu-exporter
pkgname=prometheus-nvidia-gpu-exporter-git
pkgver=0.2.1.r1.g4906510
pkgrel=1
pkgdesc="Prometheus exporter for NVIDIA GPU metrics"
arch=(x86_64)
url="https://github.com/plazonic/nvidia_gpu_prometheus_exporter"
license=(Apache-2.0)
depends=(
glibc
nvidia-utils
)
makedepends=(
git
go
)
conflicts=($_pkgname)
provides=($_pkgname)
backup=(etc/conf.d/prometheus-nvidia-gpu-exporter)
source=(
git+$url.git
$_pkgname.conf
$_pkgname.service
$_pkgname.sysusers
)
b2sums=('SKIP'
'47fb8b927f0f8f83521ffabe83076ae0dee39de9ea35e8f14520e6bd2bea746eff2c73838dcf0b4e84b71d4dbfc8280b1f874afc95f7f696aba4cfd9fccdc36a'
'648f4b72feee744b2512bf8a988b59d9c157b43416b2278077c86d52255fccd5c113b4400c71e0d112af128e8b81a95b9c6ee65a5e0fd2c590ad3d0d6ae778b7'
'ed08af182f80ab7b1b6e08a7a8f348255c1c3788a1695ca5ede167011a378d8d3bf389d37714b953bf91fc81976f63c168bc11dbc4d2943b5ec51b51ea8c38f7')
pkgver() {
cd $_name
git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
cd $_name
mkdir -p build
}
build() {
cd $_name
# set flags for cgo
export CGO_CPPFLAGS="${CPPFLAGS}"
# go-nvml breaks with -fno-plt, see below
export CGO_CFLAGS="${CFLAGS/-fno-plt/}"
export CGO_CXXFLAGS="${CXXFLAGS}"
# FIXME: go-nvml requires lazy binding (-Wl,-z,lazy) https://github.com/NVIDIA/go-nvml/issues/18
# Unfortunately lazy binding prevents FULL RELRO but otherwise we get:
# symbol lookup error: /usr/bin/prometheus-nvidia-gpu-exporter: undefined symbol: nvmlGpuInstanceGetComputeInstanceProfileInfoV
export CGO_LDFLAGS="${LDFLAGS} -Wl,-z,lazy"
# set GOPATH so makepkg puts source files into the debug package
export GOPATH="$srcdir"
go build -v \
-buildmode=pie \
-mod=readonly \
-modcacherw \
-ldflags "-compressdwarf=false -linkmode external" \
-o build .
}
package() {
# systemd files
install -vDm 644 $_pkgname.conf "$pkgdir"/etc/conf.d/$_pkgname
install -vDm 644 $_pkgname.service -t "$pkgdir"/usr/lib/systemd/system/
install -vDm 644 $_pkgname.sysusers -t "$pkgdir"/usr/lib/sysusers.d/
cd $_name
# binary
install -vDm 755 build/$_name "$pkgdir"/usr/bin/$_pkgname
# license
install -vDm 644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
}
|