blob: b411506d47c1e4f351ff6638d5e78896dfd32bbb (
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
82
|
# vim: set ft=sh ts=4 sw=4 et:
# Maintainer: Dan Fuhry <dan@fuhry.com>
pkgname=('coder')
pkgver=2.15.0
pkgrel=1
pkgdesc="Provision remote development environments via Terraform"
arch=('i386' 'x86_64' 'armv7h' 'aarch64')
url="https://github.com/coder/coder"
license=('AGPL-3.0')
depends=('glibc')
makedepends=('go>=1.22.0')
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/coder/coder/archive/refs/tags/v${pkgver}.tar.gz")
sha512sums=('8588ed75ce1a522215dba680b515cdf7bfb63abcc08c325805bef5ae221e2cab5c8d8263bd9db2fff4c9b7ba478238029510c408b076c8656e7e8934d6d24654')
determine_goarch() {
case "${CARCH}" in
amd64|x86_64)
build_arch="amd64" ;;
arm64|aarch64)
build_arch="arm64" ;;
*)
build_arch="$(go env GOARCH)"
esac
echo "${build_arch}"
}
prepare() {
cd "${srcdir}/${pkgname}-${pkgver}"
for f in "${source[@]}"; do
if [ "${f##*.}" = "patch" ]; then
msg "Aplying patch: ${f}"
patch -Np1 -i "${srcdir}/${f}"
fi
done
}
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
export GOPATH="${srcdir}/go"
export GOCACHE="${srcdir}/go-cache"
# See: https://wiki.archlinux.org/index.php/Go_package_guidelines
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
build_arch="$(determine_goarch)"
# Generating these mocks tends to fail, but the generated files are committed.
# Touching them prevents make from trying to recreate them.
touch coderd/database/dbmock/dbmock.go \
coderd/database/pubsub/psmock/psmock.go
# "src" env var is used to override coder source directory, because their build
# scripts look for .git which is usually the AUR packaging scripts (since we are
# using release tarballs)
env CODER_FORCE_VERSION=${pkgver} \
src="$(pwd)" \
make build/coder-slim_linux_${build_arch}
# Make sure go path is writable so it can be cleaned up
chmod -R u+w "${srcdir}/go"
chmod -R u+w "${srcdir}/go-cache"
}
package_coder() {
cd "${srcdir}/${pkgname}-${pkgver}"
build_arch="$(determine_goarch)"
install -d -m755 "${pkgdir}/usr/bin"
install -m755 "build/coder-slim_${pkgver}_linux_${build_arch}" "${pkgdir}/usr/bin/coder"
install -d -m755 "${pkgdir}/usr/share/licenses/coder"
install -m644 "LICENSE" "${pkgdir}/usr/share/licenses/coder/LICENSE"
}
|