diff options
Diffstat (limited to 'community/go/APKBUILD')
-rw-r--r-- | community/go/APKBUILD | 148 |
1 files changed, 116 insertions, 32 deletions
diff --git a/community/go/APKBUILD b/community/go/APKBUILD index 1e125e89e80..8b9950def2f 100644 --- a/community/go/APKBUILD +++ b/community/go/APKBUILD @@ -4,29 +4,92 @@ # Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net> pkgname=go # go binaries are statically linked, security updates require rebuilds -pkgver=1.18.5 -pkgrel=0 +pkgver=1.22.1 +pkgrel=1 pkgdesc="Go programming language compiler" url="https://go.dev/" arch="all" license="BSD-3-Clause" depends="binutils gcc musl-dev" makedepends="bash" -checkdepends="binutils-gold" +checkdepends="binutils-gold git git-daemon" subpackages="$pkgname-doc" source="https://go.dev/dl/go$pkgver.src.tar.gz - allow-unshare-to-return-enosys.patch - force-external-link-on-ppc64le.patch + 0001-cmd-link-prefer-musl-s-over-glibc-s-ld.so-during-dyn.patch + 0002-misc-cgo-test-enable-setgid-tests-on-Alpine-Linux-ag.patch + 0003-go.env-Don-t-switch-Go-toolchain-version-as-directed.patch + 0004-cmd-dist-cmd-go-define-assembly-macros-handle-GOARM-.patch + 0005-cmd-link-internal-riscv64-generate-local-text-symbol.patch + 0006-cmd-internal-obj-ppc64-don-t-modify-runtime.elf_-sym.patch + + tests-fchmodat-not-supported.patch " case "$CARCH" in arm*|aarch64) depends="binutils-gold";; - riscv64) - # Gold does not support RISC-V - checkdepends="" + riscv64|loongarch64) + # binutils-gold is not supported on riscv64 and loongarch64. + checkdepends="${checkdepends/binutils-gold/}" ;; esac # secfixes: +# 0: +# - CVE-2022-41716 +# - CVE-2022-41720 +# - CVE-2022-41722 +# 1.22.1-r0: +# - CVE-2024-24783 +# - CVE-2023-45290 +# - CVE-2023-45289 +# - CVE-2024-24785 +# - CVE-2024-24784 +# 1.21.5-r0: +# - CVE-2023-39324 +# - CVE-2023-39326 +# 1.21.3-r0: +# - CVE-2023-39325 +# - CVE-2023-44487 +# 1.21.2-r0: +# - CVE-2023-39323 +# 1.21.1-r0: +# - CVE-2023-39318 +# - CVE-2023-39319 +# - CVE-2023-39320 +# - CVE-2023-39321 +# - CVE-2023-39322 +# 1.20.7-r0: +# - CVE-2023-29409 +# 1.20.6-r0: +# - CVE-2023-29406 +# 1.20.5-r0: +# - CVE-2023-29402 +# - CVE-2023-29403 +# - CVE-2023-29404 +# - CVE-2023-29405 +# 1.20.4-r0: +# - CVE-2023-24539 +# - CVE-2023-24540 +# - CVE-2023-29400 +# 1.20.3-r0: +# - CVE-2023-24537 +# - CVE-2023-24538 +# - CVE-2023-24534 +# - CVE-2023-24536 +# 1.20.2-r0: +# - CVE-2023-24532 +# 1.20.1-r0: +# - CVE-2022-41725 +# - CVE-2022-41724 +# - CVE-2022-41723 +# 1.19.4-r0: +# - CVE-2022-41717 +# 1.19.2-r0: +# - CVE-2022-2879 +# - CVE-2022-2880 +# - CVE-2022-41715 +# 1.19.1-r0: +# - CVE-2022-27664 +# - CVE-2022-32190 # 1.18.5-r0: # - CVE-2022-32189 # 1.18.4-r0: @@ -60,6 +123,8 @@ esac # 1.17.1-r0: # - CVE-2021-39293 # 1.17-r0: +# - CVE-2020-29509 +# - CVE-2020-29511 # - CVE-2021-29923 # 1.16.7-r0: # - CVE-2021-36221 @@ -106,7 +171,6 @@ esac if [ "$CBUILD" = "$CTARGET" ]; then makedepends="go-bootstrap $makedepends" provides="go-bootstrap=$pkgver-r$pkgrel" - subpackages="$subpackages" else pkgname="go-bootstrap" makedepends="go $makedepends" @@ -118,17 +182,18 @@ else fi case "$CTARGET_ARCH" in -aarch64)export GOARCH="arm64" ;; -armel) export GOARCH="arm" GOARM=5 ;; -armhf) export GOARCH="arm" GOARM=6 ;; -armv7) export GOARCH="arm" GOARM=7 ;; -s390x) export GOARCH="s390x" ;; -x86) export GOARCH="386" ;; -x86_64) export GOARCH="amd64" ;; -ppc64) export GOARCH="ppc64" ;; +aarch64) export GOARCH="arm64" ;; +armel) export GOARCH="arm" GOARM=5 ;; +armhf) export GOARCH="arm" GOARM=6 ;; +armv7) export GOARCH="arm" GOARM=7 ;; +s390x) export GOARCH="s390x" ;; +x86) export GOARCH="386" ;; +x86_64) export GOARCH="amd64" ;; +ppc64) export GOARCH="ppc64" ;; ppc64le) export GOARCH="ppc64le" ;; riscv64) export GOARCH="riscv64" ;; -*) export GOARCH="unsupported";; +loongarch64) export GOARCH="loong64" ;; +*) export GOARCH="unsupported";; esac # compile go itself as a PIE on supported arches. @@ -136,17 +201,15 @@ case "$CARCH" in x86_64|s390x|aarch64) export GO_LDFLAGS=-buildmode=pie ;; esac -# Disable tests on ppc64 for now since they fail due to the -# force-external-link-on-ppc64le.patch we employ currently. -# See the patch description for details. -case "$CARCH" in -ppc64le) options="!check" ;; -esac - prepare() { default_prepare - # See https://github.com/golang/go/issues/49066 + # The GitLab CI builds aports in a container. On ppc64le, ASLR + # needs to be disabled in order to have the following test case + # pass. However, the container doesn't have permissions to + # disable ASLR, hence we just disable this test for now. + # + # See https://github.com/golang/go/issues/49066#issuecomment-1252948861 if [ "$CTARGET_ARCH" = "ppc64le" ]; then rm test/fixedbugs/bug513.go fi @@ -161,6 +224,7 @@ build() { export GOROOT="$builddir" export GOBIN="$GOROOT"/bin export GOROOT_FINAL=/usr/lib/go + local p; for p in /usr/lib/go-bootstrap /usr/lib/go-linux-$GOARCH-bootstrap /usr/lib/go; do if [ -d "$p" ]; then export GOROOT_BOOTSTRAP="$p" @@ -183,9 +247,14 @@ build() { check() { cd "$builddir/src" - [ "$CTARGET_ARCH" = "armhf" ] && GO_TEST_TIMEOUT_SCALE=2 - # TODO: cgo_test fails due to https://github.com/golang/go/issues/39857 - PATH="$builddir/bin:$PATH" ./run.bash -no-rebuild -run='!(^cgo_test$)' + if [ "$CTARGET_ARCH" = "armhf" ]; then + export GO_TEST_TIMEOUT_SCALE=2 + fi + + # Test suite does not pass with ccache, thus remove it form $PATH. + export PATH="$(echo "$PATH" | sed 's|/usr/lib/ccache/bin:||g')" + + PATH="$builddir/bin:$PATH" ./run.bash -no-rebuild } package() { @@ -205,6 +274,10 @@ package() { mkdir -p "$pkgdir"/usr/lib/go/ cp -a "$builddir"/src "$pkgdir"/usr/lib/go + # Install go.env, see https://go.dev/doc/toolchain#GOTOOLCHAIN. + install -Dm644 "$builddir"/go.env "$pkgdir"/usr/lib/go/go.env + install -Dm644 VERSION "$pkgdir/usr/lib/go/VERSION" + # Remove tests from /usr/lib/go/src to reduce package size, # these should not be needed at run-time by any program. find "$pkgdir"/usr/lib/go/src \( -type f -a -name "*_test.go" \) \ @@ -218,10 +291,21 @@ package() { # See: https://gitlab.alpinelinux.org/alpine/aports/issues/11091 find "$pkgdir"/usr/lib/go/src -type f -a \( -name "*.rc" -o -name "*.bat" \) \ -exec rm -rf \{\} \+ + + # cgo test files will be removed from misc/ in Go 1.21. + # Removing them from now decreases the size of -doc below 2 MiB. + # + # See https://github.com/golang/go/issues/37486#issuecomment-1321364279 + rm -r "$pkgdir"/usr/share/doc/go/misc/cgo } sha512sums=" -4ba69ad49b5c17963fdc39ae7f5360fa38950db39ec1fb9b52744d6a209abf177dab6bd587e7457c83a4fd265589907ec241d8b09d0eac76cf984243a14500ef go1.18.5.src.tar.gz -6017caacf77c2911e9e882878fdaa2ed066b76b7e97b2ad776bc33d96b21cabc802966473946642c86a8f985c69adcc5e7ea61684f6d0dbacd468a6aad687229 allow-unshare-to-return-enosys.patch -9e1d052cb030281093fc3f6862986b9d81a15ca344cb8be90eddd7a97e0ab74f8b022e79f6beefad81a53b041878c4644e8143ef7eeca4fc1757df97c73ff15b force-external-link-on-ppc64le.patch +627530c3fa2ea872478e1df8ee20db2ddc3c94581fff4e66bda21ca45a643e9915f97115401f79667cd7e856ccca1b40a842f4c0b509a472c75696e3bdb3a908 go1.22.1.src.tar.gz +34dbe032c5f08dd8a7aad36fc4d54e746a876fdadc25466888a2f04f5a9d53103190ebd68d3cf978d3a041976185e30ffb25611fb577d031c159810d2d4c7c41 0001-cmd-link-prefer-musl-s-over-glibc-s-ld.so-during-dyn.patch +89ab4fbb2901d3907e9661dce877ee45b4a4ee07b964dca341235420ee08764f49aed5da1596d28c649e349af19ea49c03ab6f2c2ad7588a4cf950a619c10e9b 0002-misc-cgo-test-enable-setgid-tests-on-Alpine-Linux-ag.patch +8061e4ef9d7dd31804bd8d98c95afa5dd82567940b3436f45f874e0419e324b49713d8a814df04617e575ec3c6155199c4661352ea8aef63ead81ca3020f3dc4 0003-go.env-Don-t-switch-Go-toolchain-version-as-directed.patch +a69a836364be8857f153b606769a155d89fdbbac39af6fbbc3cd923e95a15805f7497d6fdce6176a18a9ccee867946a03b809d8a4a32765dd20086115f179929 0004-cmd-dist-cmd-go-define-assembly-macros-handle-GOARM-.patch +dae45959f986b0f19d03507cb34d852b171a595998504a8cb267601244aebd3e51b68e2498887f3d8aa368e0df76ddc8f826792c27f2589fd92de3f03721273b 0005-cmd-link-internal-riscv64-generate-local-text-symbol.patch +158345479fa2710a335b209483b4af436cd805a904bdfb7234e2eb64bdda6ca08c2cd181be00eac45b6a92f51ba2668cf4631dc1b6de56815a19636991c2c15f 0006-cmd-internal-obj-ppc64-don-t-modify-runtime.elf_-sym.patch +33ecefca77fa0af52a3b2b66a76977af27a88c8dddb89f03e0a5ae6794b9aac53a62d7be33020b49022e9a89d4cdfa383038ee10e160eb94548b2430bf3cfb5e tests-fchmodat-not-supported.patch " |