Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/build-support/go17/PKGBUILD
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2023-04-04 18:36:19 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2023-04-04 18:36:19 +0200
commit6dc7d81554624909770ab3ca1203045c7a98a211 (patch)
tree6179af746627d719dded762764bac9bb7e014c05 /build-support/go17/PKGBUILD
parent9b72910e0eb1db391742047b09bef4842fcedf44 (diff)
aded go17 to build-support
Diffstat (limited to 'build-support/go17/PKGBUILD')
-rw-r--r--build-support/go17/PKGBUILD125
1 files changed, 125 insertions, 0 deletions
diff --git a/build-support/go17/PKGBUILD b/build-support/go17/PKGBUILD
new file mode 100644
index 00000000..ff6ae85c
--- /dev/null
+++ b/build-support/go17/PKGBUILD
@@ -0,0 +1,125 @@
+# Maintainer: Morten Linderud <foxboron@archlinux.org>
+# Contributor: Daniel Martí <mvdan@mvdan.cc>
+# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Contributor: Alexander F. Rødseth <xyproto@archlinux.org>
+# Contributor: Pierre Neidhardt <ambrevar@gmail.com>
+# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Andres Perera <andres87p gmail>
+# Contributor: Matthew Bauer <mjbauer95@gmail.com>
+# Contributor: Christian Himpel <chressie@gmail.com>
+# Contributor: Mike Rosset <mike.rosset@gmail.com>
+# Contributor: Daniel YC Lin <dlin.tw@gmail.com>
+# Contributor: John Luebs <jkluebs@gmail.com>
+
+pkgname=go17
+_pkgname=go
+epoch=2
+pkgver=1.17
+pkgrel=1
+pkgdesc='Core compiler tools for the Go programming language'
+arch=(i486 i686 pentium4 x86_64)
+url='https://golang.org/'
+license=(BSD)
+makedepends=(git go)
+replaces=(go-pie)
+provides=(go-pie)
+options=(!strip staticlibs)
+source=(https://go.dev/dl/go${pkgver}.src.tar.gz{,.asc})
+validpgpkeys=('EB4C1BFD4F042F6DDDCCEC917721F63BD38B4796')
+sha256sums=('3a70e5055509f347c0fb831ca07a2bf3b531068f349b14a3c652e9b5b67beb5d'
+ 'SKIP')
+
+build() {
+ export GOARCH=amd64
+ export GOAMD64=v1 # make sure we're building for the right x86-64 version
+ export GOROOT_FINAL=/usr/lib/go
+ export GOROOT_BOOTSTRAP=/usr/lib/go
+
+ cd "$_pkgname/src"
+ ./make.bash -v
+}
+
+check() {
+ export GO_TEST_TIMEOUT_SCALE=3
+
+ cd $_pkgname/src
+ ./run.bash --no-rebuild -v -v -v -k
+}
+
+package() {
+ cd "$_pkgname"
+
+ install -d "$pkgdir/usr/bin" "$pkgdir/usr/lib/go" "$pkgdir/usr/share/doc/go" \
+ "$pkgdir/usr/lib/go/pkg/linux_amd64_"{dynlink,race}
+
+ cp -a bin pkg src lib misc api test "$pkgdir/usr/lib/go"
+ # We can't strip all binaries and libraries,
+ # as that also strips some testdata directories and breaks the tests.
+ # Just strip the packaged binaries as a compromise.
+ strip $STRIP_BINARIES "$pkgdir/usr/lib/go"{/bin/*,/pkg/tool/*/*}
+
+ cp -r doc/* "$pkgdir/usr/share/doc/go"
+
+ ln -sf /usr/lib/go/bin/go "$pkgdir/usr/bin/go"
+ ln -sf /usr/lib/go/bin/gofmt "$pkgdir/usr/bin/gofmt"
+ ln -sf /usr/share/doc/go "$pkgdir/usr/lib/go/doc"
+
+ install -Dm644 VERSION "$pkgdir/usr/lib/go/VERSION"
+
+ rm -rf "$pkgdir/usr/lib/go/pkg/bootstrap" "$pkgdir/usr/lib/go/pkg/tool/*/api"
+
+ # TODO: Figure out if really needed
+ rm -rf "$pkgdir"/usr/lib/go/pkg/obj/go-build
+
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim: ts=2 sw=2 et
+eval "$(
+ declare -f build | \
+ sed '
+ /install\( .*\)\? -race /d
+ '
+ declare -f package_go-pie package | \
+ sed '
+ s,\(/linux_\)amd64\([_/]\),\1386\2,g
+ '
+)"
+
+eval "$(
+ declare -f build check _package \
+ | sed '
+ s/\(export GOARCH=\)amd64/\1386 /
+ '
+)"
+
+# 1.16 dropped non-SSE2 floating point operations, so we must
+# use software floating points (see https://github.com/golang/go/issues/40255)
+if [ "$CARCH" = 'i686' -o "$CARCH" = 'i486' ]; then
+ eval "$(
+ declare -f build \
+ | sed '
+ 2 a export GO386='softfloat'
+ '
+ declare -f check \
+ | sed '
+ 2 a export GO386='softfloat'
+ '
+ )"
+fi
+
+source+=('go-x87.patch')
+sha256sums+=('8b124eaa7521bd0e3760b514829b1ecce3d3cd169f99c3629ff50b7769303802')
+eval "$(
+ {
+ declare -f prepare || \
+ printf 'prepare() { cd "$_pkgname" \n}\n'
+ } \
+ | sed '
+ $i patch -Np1 -i ../go-x87.patch
+ '
+)"
+
+# tests are failing, ignore them
+unset check