All checks were successful
Test / Create distribution (push) Successful in 29s
Test / ShareFS (push) Successful in 36s
Test / Sandbox (push) Successful in 44s
Test / Sandbox (race detector) (push) Successful in 43s
Test / Hakurei (race detector) (push) Successful in 47s
Test / Hakurei (push) Successful in 48s
Test / Hpkg (push) Successful in 45s
Test / Flake checks (push) Successful in 1m33s
These fail when running as users with supplementary groups, since they are unmapped in the container. This was not the case in the development container where all groups were dropped, so the failure was missed. Signed-off-by: Ophestra <cat@gensokyo.uk>
126 lines
2.7 KiB
Go
126 lines
2.7 KiB
Go
package rosa
|
|
|
|
import (
|
|
"runtime"
|
|
"slices"
|
|
|
|
"hakurei.app/internal/pkg"
|
|
)
|
|
|
|
// newGoBootstrap returns the Go bootstrap toolchain.
|
|
func (t Toolchain) newGoBootstrap() pkg.Artifact {
|
|
const checksum = "8o9JL_ToiQKadCTb04nvBDkp8O1xiWOolAxVEqaTGodieNe4lOFEjlOxN3bwwe23"
|
|
return t.New("go1.4-bootstrap", 0, []pkg.Artifact{
|
|
t.Load(Bash),
|
|
}, nil, []string{
|
|
"CGO_ENABLED=0",
|
|
}, `
|
|
mkdir -p /var/tmp
|
|
cp -r /usr/src/go /work
|
|
cd /work/go/src
|
|
chmod -R +w ..
|
|
|
|
./make.bash
|
|
cd /work/
|
|
mkdir system/
|
|
mv go/ system/
|
|
`, pkg.Path(AbsUsrSrc.Append("go"), false, pkg.NewHTTPGetTar(
|
|
nil, "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz",
|
|
mustDecode(checksum),
|
|
pkg.TarGzip,
|
|
)))
|
|
}
|
|
|
|
// newGo returns a specific version of the Go toolchain.
|
|
func (t Toolchain) newGo(
|
|
version, checksum string,
|
|
env []string,
|
|
script string,
|
|
extra ...pkg.Artifact,
|
|
) pkg.Artifact {
|
|
return t.New("go"+version, 0, slices.Concat([]pkg.Artifact{
|
|
t.Load(Bash),
|
|
}, extra), nil, slices.Concat([]string{
|
|
"CC=cc",
|
|
"GOCACHE=/tmp/gocache",
|
|
"GOROOT_BOOTSTRAP=/system/go",
|
|
"TMPDIR=/dev/shm/go",
|
|
}, env), `
|
|
mkdir /work/system "${TMPDIR}"
|
|
cp -r /usr/src/go /work/system
|
|
cd /work/system/go/src
|
|
chmod -R +w ..
|
|
`+script+`
|
|
./all.bash
|
|
|
|
mkdir /work/system/bin
|
|
ln -s \
|
|
../go/bin/go \
|
|
../go/bin/gofmt \
|
|
/work/system/bin
|
|
`, pkg.Path(AbsUsrSrc.Append("go"), false, pkg.NewHTTPGetTar(
|
|
nil, "https://go.dev/dl/go"+version+".src.tar.gz",
|
|
mustDecode(checksum),
|
|
pkg.TarGzip,
|
|
)))
|
|
}
|
|
|
|
func (t Toolchain) newGoLatest() pkg.Artifact {
|
|
go119 := t.newGo(
|
|
"1.19",
|
|
"9_e0aFHsIkVxWVGsp9T2RvvjOc3p4n9o9S8tkNe9Cvgzk_zI2FhRQB7ioQkeAAro",
|
|
[]string{"CGO_ENABLED=0"}, `
|
|
rm \
|
|
crypto/tls/handshake_client_test.go \
|
|
os/os_unix_test.go
|
|
echo \
|
|
'type syscallDescriptor = int' >> \
|
|
os/rawconn_test.go
|
|
`, t.newGoBootstrap(),
|
|
)
|
|
|
|
go121 := t.newGo(
|
|
"1.21.13",
|
|
"YtrDka402BOAEwywx03Vz4QlVwoBiguJHzG7PuythMCPHXS8CVMLvzmvgEbu4Tzu",
|
|
[]string{"CGO_ENABLED=0"}, `
|
|
sed -i \
|
|
's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \
|
|
cmd/link/internal/`+runtime.GOARCH+`/obj.go
|
|
|
|
rm \
|
|
crypto/tls/handshake_client_test.go \
|
|
crypto/tls/handshake_server_test.go \
|
|
os/os_unix_test.go
|
|
echo \
|
|
'type syscallDescriptor = int' >> \
|
|
os/rawconn_test.go
|
|
`, go119,
|
|
)
|
|
|
|
go123 := t.newGo(
|
|
"1.23.12",
|
|
"wcI32bl1tkqbgcelGtGWPI4RtlEddd-PTd76Eb-k7nXA5LbE9yTNdIL9QSOOxMOs",
|
|
nil, `
|
|
sed -i \
|
|
's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \
|
|
cmd/link/internal/`+runtime.GOARCH+`/obj.go
|
|
`, go121,
|
|
)
|
|
|
|
go125 := t.newGo(
|
|
"1.25.6",
|
|
"x0z430qoDvQbbw_fftjW0rh_GSoh0VJhPzttWk_0hj9yz9AKOjuwRMupF_Q0dbt7",
|
|
nil, `
|
|
sed -i \
|
|
's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \
|
|
cmd/link/internal/`+runtime.GOARCH+`/obj.go
|
|
|
|
rm \
|
|
os/root_unix_test.go
|
|
`, go123,
|
|
)
|
|
|
|
return go125
|
|
}
|
|
func init() { artifactsF[Go] = Toolchain.newGoLatest }
|