# Maintainer : Christian Rebischke pkgname=traefik pkgver=2.2.8 pkgrel=1 pkgdesc="Modern reverse proxy written in Go" arch=('x86_64') url="https://containo.us/traefik/" license=('MIT') makedepends=('go' 'go-bindata-hashicorp' 'patch') depends=('glibc') backup=('etc/traefik/traefik.toml' 'etc/traefik/traefik.yaml' 'etc/traefik/traefik.yml') source=("${pkgname}-${pkgver}.tar.gz::https://github.com/containous/traefik/releases/download/v${pkgver}/traefik-v${pkgver}.src.tar.gz" 'traefik.service' 'traefik.sysusers' 'b77cf4d0b067438c3e1758bb22ad56e644c8122f.patch' '49ed06686b6c4be2164c65eb6d807b0fc542aea4.patch' '49c1e3df55175b2942ad091df86272903cf709da.patch') noextract=("${pkgname}-${pkgver}.tar.gz") sha512sums=('b379a0408d98193ba6d77b5249f8a5ea8d0949e6ec7e817d1b114c4f3a00513a753b1d9c37019850da8af5f7352b7e717094d262b827cc618173403637324a30' '25ab1113bb69936c443fe49d5d3da7d39171fc82e8fa06f46ed4e2dfcaa89685d50ca50b58c32215852d79e5c8d4736a287c15b75420c78a853c51502cb2641a' '5fecfed5df77bf28c2c976ebaebedb030904d41509e740821140a4889bda20327f416e78f8d19b0ee78c8bc422d1907ce05ef3562e4d3e36ddfbdbea5e860b2a' '5e280f66021c95f5f6bb493c7f62d87d8da67921a399fdecfc43ce5c17858b5262996bfc8d0a795ed09dbddb6e5c44160bf4665fdbbcf7884a83ea787780253c' '9380eceb00cc6e0f7a1d7116d220c8c8c67b755e20d6def8dc991a99ac88c053b54956a236eaf51138c916b9c6401794e58d97a550b4ed08945d44fef689a858' '15e25430706e1aa0f774dacff50badf98ef621793d27add83fea7a7fb64f364be38c30efe0cc3a53428b83de4b45436a98c23bdb060a103ffa0b7cda5e88d7db') prepare() { mkdir "${srcdir}/${pkgname}-${pkgver}" tar xfvz "${srcdir}/${pkgname}-${pkgver}.tar.gz" -C "${srcdir}/${pkgname}-${pkgver}" # Apply patches for Go 1.15 upwards compatibility cd "${srcdir}/${pkgname}-${pkgver}" patch -p1 < "${srcdir}/49c1e3df55175b2942ad091df86272903cf709da.patch" patch -p1 < "${srcdir}/b77cf4d0b067438c3e1758bb22ad56e644c8122f.patch" patch -p1 < "${srcdir}/49ed06686b6c4be2164c65eb6d807b0fc542aea4.patch" } build() { export CGO_CPPFLAGS="${CPPFLAGS}" export CGO_CFLAGS="${CFLAGS}" export CGO_CXXFLAGS="${CXXFLAGS}" export CGO_LDFLAGS="${LDFLAGS}" export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" cd "${srcdir}/${pkgname}-${pkgver}" go generate cd cmd/traefik go build } 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 mkdir -p "${pkgdir}/etc/traefik/" touch "${pkgdir}/etc/traefik/acme.json" }