traefik/PKGBUILD
2024-08-06 21:17:40 -07:00

61 lines
2.2 KiB
Bash

# Maintainer : Christian Rebischke <chris.rebischke@archlinux.org>
pkgname=traefik
pkgver=3.1.2
pkgrel=1
pkgdesc="Modern reverse proxy written in Go"
arch=('x86_64')
url="https://github.com/traefik/traefik"
license=('MIT')
makedepends=('go' 'patch')
depends=('glibc')
backup=(
'etc/traefik/acme.json'
'etc/traefik/traefik.toml'
'etc/traefik/traefik.yaml'
'etc/traefik/traefik.yml'
)
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/traefik/traefik/releases/download/v${pkgver}/traefik-v${pkgver}.src.tar.gz"
'traefik.service'
'traefik.sysusers')
noextract=("${pkgname}-${pkgver}.tar.gz")
sha512sums=('ab0e7f58058e1b0b1d3ca3f39197282358e57c6ec9d8afa5c661d039ec47cafcbf4c63a8e08df0ef6309f9be4957562642b644788d7e14847aba2c5a8b4cfdb5'
'25ab1113bb69936c443fe49d5d3da7d39171fc82e8fa06f46ed4e2dfcaa89685d50ca50b58c32215852d79e5c8d4736a287c15b75420c78a853c51502cb2641a'
'5fecfed5df77bf28c2c976ebaebedb030904d41509e740821140a4889bda20327f416e78f8d19b0ee78c8bc422d1907ce05ef3562e4d3e36ddfbdbea5e860b2a')
options=('!lto')
prepare() {
mkdir "${srcdir}/${pkgname}-${pkgver}"
tar xfvz "${srcdir}/${pkgname}-${pkgver}.tar.gz" -C "${srcdir}/${pkgname}-${pkgver}"
}
build() {
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS//lto/no-lto}"
export CGO_CXXFLAGS="${CXXFLAGS//lto/no-lto}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
cd "${srcdir}/${pkgname}-${pkgver}"
go generate
cd cmd/traefik
go build -ldflags="-linkmode=external"
}
# FIXME this test depends on a running Docker daemon
# Can't get this working when building in a chroot
#check() {
# cd "${srcdir}/${pkgname}-${pkgver}"
# go test ./...
#}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
install -Dm755 cmd/traefik/"${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
install -Dm644 LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 "${srcdir}/traefik.service" "${pkgdir}/usr/lib/systemd/system/traefik.service"
install -Dm644 "${srcdir}/traefik.sysusers" "${pkgdir}/usr/lib/sysusers.d/traefik.conf"
# create empty acme.json file, otherwise the service file will fail
install -Dm600 /dev/null "${pkgdir}/etc/traefik/acme.json"
}