From c50c30c7f7fa38bb57adf1995aa463c8526b6ca4 Mon Sep 17 00:00:00 2001 From: Zhijie Yang Date: Wed, 17 Dec 2025 17:37:00 +0100 Subject: [PATCH 1/4] feat(25.04): add golang-1.24 --- slices/golang-1.24-go.yaml | 128 ++++++++++ slices/golang-1.24-src.yaml | 241 ++++++++++++++++++ slices/golang-1.24.yaml | 15 ++ slices/golang-go.yaml | 21 ++ slices/golang-src.yaml | 15 ++ slices/golang.yaml | 19 ++ slices/make.yaml | 12 + .../golang-1.24-go/shared/epilogue.sh | 3 + .../golang-1.24-go/shared/prologue.sh | 26 ++ .../integration/golang-1.24-go/task.yaml | 17 ++ .../golang-1.24-go/test_build-tools.sh | 7 + .../golang-1.24-go/test_cgo-tools.sh | 4 + .../golang-1.24-go/test_debug-tools.sh | 4 + .../golang-1.24-go/test_dist-tools.sh | 2 + .../golang-1.24-go/test_doc-tools.sh | 1 + .../golang-1.24-go/test_minimal.sh | 2 + .../golang-1.24-go/test_profiling-tools.sh | 2 + .../golang-1.24-go/test_testing-tools.sh | 3 + .../golang/hello/cmd/hello/main.go | 9 + .../golang/hello/cmd/hello_cgo/main_cgo.go | 15 ++ tests/spread/integration/golang/hello/go.mod | 3 + .../spread/integration/golang/hello/hello.go | 5 + .../integration/golang/hello/hello_test.go | 14 + tests/spread/integration/golang/task.yaml | 6 + tests/spread/integration/golang/test_all.sh | 58 +++++ tests/spread/integration/make/Makefile | 3 + tests/spread/integration/make/task.yaml | 9 + 27 files changed, 644 insertions(+) create mode 100644 slices/golang-1.24-go.yaml create mode 100644 slices/golang-1.24-src.yaml create mode 100644 slices/golang-1.24.yaml create mode 100644 slices/golang-go.yaml create mode 100644 slices/golang-src.yaml create mode 100644 slices/golang.yaml create mode 100644 slices/make.yaml create mode 100644 tests/spread/integration/golang-1.24-go/shared/epilogue.sh create mode 100644 tests/spread/integration/golang-1.24-go/shared/prologue.sh create mode 100644 tests/spread/integration/golang-1.24-go/task.yaml create mode 100644 tests/spread/integration/golang-1.24-go/test_build-tools.sh create mode 100644 tests/spread/integration/golang-1.24-go/test_cgo-tools.sh create mode 100644 tests/spread/integration/golang-1.24-go/test_debug-tools.sh create mode 100644 tests/spread/integration/golang-1.24-go/test_dist-tools.sh create mode 100644 tests/spread/integration/golang-1.24-go/test_doc-tools.sh create mode 100644 tests/spread/integration/golang-1.24-go/test_minimal.sh create mode 100644 tests/spread/integration/golang-1.24-go/test_profiling-tools.sh create mode 100644 tests/spread/integration/golang-1.24-go/test_testing-tools.sh create mode 100644 tests/spread/integration/golang/hello/cmd/hello/main.go create mode 100644 tests/spread/integration/golang/hello/cmd/hello_cgo/main_cgo.go create mode 100644 tests/spread/integration/golang/hello/go.mod create mode 100644 tests/spread/integration/golang/hello/hello.go create mode 100644 tests/spread/integration/golang/hello/hello_test.go create mode 100644 tests/spread/integration/golang/task.yaml create mode 100644 tests/spread/integration/golang/test_all.sh create mode 100644 tests/spread/integration/make/Makefile create mode 100644 tests/spread/integration/make/task.yaml diff --git a/slices/golang-1.24-go.yaml b/slices/golang-1.24-go.yaml new file mode 100644 index 000000000..c3ed13cc0 --- /dev/null +++ b/slices/golang-1.24-go.yaml @@ -0,0 +1,128 @@ +package: golang-1.24-go + +essential: + - golang-1.24-go_copyright + +slices: + # Note: The minimal slice provides a working Go installation + # that can be used to build and run simple Go programs, + # such as a "Hello World" program. + # See tests/spread/integration/golang-1.24-go/test_minimal.sh + # for more details. + minimal: + essential: + - base-files_tmp + - golang-1.24-go_build-tools + - golang-1.24-go_headers + - golang-1.24-go_symlinks + - golang-1.24-src_src-with-tests + contents: + /usr/lib/go-1.24/bin/go: + /usr/lib/go-1.24/bin/gofmt: + + # Note: The core slices provides the source code within the golang-1.24-go + # package in additional to the minimal slice. + core: + essential: + - golang-1.24-go_cmd-src + - golang-1.24-go_go-build-src + - golang-1.24-go_go-env + - golang-1.24-go_internal-src + - golang-1.24-go_minimal + - golang-1.24-go_runtime-src + - golang-1.24-go_time-src + + # Note: The build-tools provides the essential Go tools for building + # a minimal Go program, i.e., a single Hello World program. + build-tools: + contents: + /usr/lib/go-1.24/pkg/tool/linux_*/asm: + /usr/lib/go-1.24/pkg/tool/linux_*/buildid: + /usr/lib/go-1.24/pkg/tool/linux_*/compile: + /usr/lib/go-1.24/pkg/tool/linux_*/link: + /usr/lib/go-1.24/pkg/tool/linux_*/pack: + # vet is used for go test + /usr/lib/go-1.24/pkg/tool/linux_*/vet: + + cgo-tools: + essential: + - gcc_gcc + - libc6-dev_core + - libc6-dev_libresolv + - libc6-dev_runtime + contents: + /usr/lib/go-1.24/pkg/tool/linux_*/cgo: + + cmd-src: + contents: + /usr/share/go-1.24/src/cmd/cgo/zdefaultcc.go: + /usr/share/go-1.24/src/cmd/go/internal/cfg/zdefaultcc.go: + /usr/share/go-1.24/src/cmd/internal/objabi/zbootstrap.go: + + debug-tools: + contents: + /usr/lib/go-1.24/pkg/tool/linux_*/fix: + /usr/lib/go-1.24/pkg/tool/linux_*/nm: + /usr/lib/go-1.24/pkg/tool/linux_*/objdump: + /usr/lib/go-1.24/pkg/tool/linux_*/trace: + + dist-tools: + essential: + - base-files_tmp + - golang-1.24-src_bash-scripts + contents: + /usr/lib/go-1.24/VERSION: + /usr/lib/go-1.24/pkg/tool/linux_*/dist: + /usr/lib/go-1.24/pkg/tool/linux_*/distpack: + + doc-tools: + contents: + /usr/lib/go-1.24/pkg/tool/linux_*/doc: + + go-build-src: + contents: + /usr/share/go-1.24/src/go/build/zcgo.go: + + go-env: + contents: + /usr/lib/go-1.24/go.env: + + headers: + contents: + /usr/share/go-1.24/pkg/include/*.h: + + internal-src: + contents: + /usr/share/go-1.24/src/internal/buildcfg/zbootstrap.go: + + profiling-tools: + contents: + /usr/lib/go-1.24/pkg/tool/linux_*/addr2line: + /usr/lib/go-1.24/pkg/tool/linux_*/pprof: + + runtime-src: + contents: + /usr/share/go-1.24/src/internal/runtime/sys/zversion.go: + + symlinks: + contents: + /usr/lib/go-1.24/api: # Symlink to ../share/go-1.24/api + /usr/lib/go-1.24/lib: # Symlink to ../share/go-1.24/lib + /usr/lib/go-1.24/misc: # Symlink to ../share/go-1.24/misc + /usr/lib/go-1.24/pkg/include: # Symlink to ../share/go-1.24/pkg/include + /usr/lib/go-1.24/src: # Symlink to ../share/go-1.24/src + /usr/lib/go-1.24/test: # Symlink to ../share/go-1.24/test + + testing-tools: + contents: + /usr/lib/go-1.24/pkg/tool/linux_*/covdata: + /usr/lib/go-1.24/pkg/tool/linux_*/cover: + /usr/lib/go-1.24/pkg/tool/linux_*/test2json: + + time-src: + contents: + /usr/share/go-1.24/src/time/tzdata/zzipdata.go: + + copyright: + contents: + /usr/share/doc/golang-1.24-go/copyright: diff --git a/slices/golang-1.24-src.yaml b/slices/golang-1.24-src.yaml new file mode 100644 index 000000000..ee852d206 --- /dev/null +++ b/slices/golang-1.24-src.yaml @@ -0,0 +1,241 @@ +package: golang-1.24-src + +essential: + - golang-1.24-src_copyright + +slices: + # Note: This slice contains the source code of Go 1.24 as well as the tests. + # Due to Go's project layout convention, we cannot split the source code + # easily without Chisel's support for negative wildcards. + # To exclude the tests and test data, a command should be run after cutting + # this slice: + # find . -depth \( \ + # \( -path '*test*' \ + # ! -path '*src/testing*' \ + # ! -path '*src/internal/test*' \ + # ! -path '*src/runtime/synctest*' \) -o \ + # \( -path '*/testing/*' -name '*_test.go' \) \ + # \) -exec rm -rf {} + + src-with-tests: + essential: + - golang-1.24-src_api + - golang-1.24-src_libs + contents: + # Note: Some paths are explicitly listed to avoid conflicts with + # the paths defined in golang-1.24-go. + # src/cmd/** conflicts with + # src/cmd/cgo/zdefaultcc.go + # src/cmd/go/internal/cfg/zdefaultcc.go + # src/cmd/internal/objabi/zbootstrap.go + # src/go/** conflicts with + # src/go/build/zcgo.go + # src/internal/** conflicts with + # src/internal/buildcfg/zbootstrap.go + # src/internal/runtime/sys/zversion.go + # src/time/** conflicts with + # src/time/tzdata/zzipdata.go + /usr/share/go-1.24/misc/**: + /usr/share/go-1.24/src/Make.dist: + /usr/share/go-1.24/src/a*/**: + /usr/share/go-1.24/src/b*/**: + /usr/share/go-1.24/src/cmd/a*/**: + /usr/share/go-1.24/src/cmd/b*/**: + /usr/share/go-1.24/src/cmd/cgo/a*.go: + /usr/share/go-1.24/src/cmd/cgo/doc.go: + /usr/share/go-1.24/src/cmd/cgo/g*.go: + /usr/share/go-1.24/src/cmd/cgo/internal/**: + /usr/share/go-1.24/src/cmd/cgo/main.go: + /usr/share/go-1.24/src/cmd/cgo/out.go: + /usr/share/go-1.24/src/cmd/cgo/util.go: + /usr/share/go-1.24/src/cmd/co*/**: + /usr/share/go-1.24/src/cmd/d*/**: + /usr/share/go-1.24/src/cmd/f*/**: + /usr/share/go-1.24/src/cmd/go.mod: + /usr/share/go-1.24/src/cmd/go.sum: + /usr/share/go-1.24/src/cmd/go/*.go: + /usr/share/go-1.24/src/cmd/go/internal/a*/**: + /usr/share/go-1.24/src/cmd/go/internal/b*/**: + /usr/share/go-1.24/src/cmd/go/internal/ca*/**: + /usr/share/go-1.24/src/cmd/go/internal/cfg/bench_test.go: + /usr/share/go-1.24/src/cmd/go/internal/cfg/cfg.go: + /usr/share/go-1.24/src/cmd/go/internal/cl*/**: + /usr/share/go-1.24/src/cmd/go/internal/cm*/**: + /usr/share/go-1.24/src/cmd/go/internal/d*/**: + /usr/share/go-1.24/src/cmd/go/internal/e*/**: + /usr/share/go-1.24/src/cmd/go/internal/f*/**: + /usr/share/go-1.24/src/cmd/go/internal/g*/**: + /usr/share/go-1.24/src/cmd/go/internal/h*/**: + /usr/share/go-1.24/src/cmd/go/internal/i*/**: + /usr/share/go-1.24/src/cmd/go/internal/l*/**: + /usr/share/go-1.24/src/cmd/go/internal/m*/**: + /usr/share/go-1.24/src/cmd/go/internal/r*/**: + /usr/share/go-1.24/src/cmd/go/internal/s*/**: + /usr/share/go-1.24/src/cmd/go/internal/t*/**: + /usr/share/go-1.24/src/cmd/go/internal/v*/**: + /usr/share/go-1.24/src/cmd/go/internal/w*/**: + /usr/share/go-1.24/src/cmd/go/t*/**: + /usr/share/go-1.24/src/cmd/gof*/**: + /usr/share/go-1.24/src/cmd/internal/a*/**: + /usr/share/go-1.24/src/cmd/internal/b*/**: + /usr/share/go-1.24/src/cmd/internal/c*/**: + /usr/share/go-1.24/src/cmd/internal/d*/**: + /usr/share/go-1.24/src/cmd/internal/e*/**: + /usr/share/go-1.24/src/cmd/internal/g*/**: + /usr/share/go-1.24/src/cmd/internal/h*/**: + /usr/share/go-1.24/src/cmd/internal/m*/**: + /usr/share/go-1.24/src/cmd/internal/obj/**: + /usr/share/go-1.24/src/cmd/internal/objabi/a*: + /usr/share/go-1.24/src/cmd/internal/objabi/f*: + /usr/share/go-1.24/src/cmd/internal/objabi/h*: + /usr/share/go-1.24/src/cmd/internal/objabi/l*: + /usr/share/go-1.24/src/cmd/internal/objabi/p*: + /usr/share/go-1.24/src/cmd/internal/objabi/r*: + /usr/share/go-1.24/src/cmd/internal/objabi/s*: + /usr/share/go-1.24/src/cmd/internal/objabi/u*: + /usr/share/go-1.24/src/cmd/internal/objfile/*.go: + /usr/share/go-1.24/src/cmd/internal/os*/**: + /usr/share/go-1.24/src/cmd/internal/p*/**: + /usr/share/go-1.24/src/cmd/internal/q*/**: + /usr/share/go-1.24/src/cmd/internal/r*/**: + /usr/share/go-1.24/src/cmd/internal/s*/**: + /usr/share/go-1.24/src/cmd/internal/t*/**: + /usr/share/go-1.24/src/cmd/l*/**: + /usr/share/go-1.24/src/cmd/n*/**: + /usr/share/go-1.24/src/cmd/o*/**: + /usr/share/go-1.24/src/cmd/p*/**: + /usr/share/go-1.24/src/cmd/r*/**: + /usr/share/go-1.24/src/cmd/t*/**: + /usr/share/go-1.24/src/cmd/v*/**: + /usr/share/go-1.24/src/cmp/**: + /usr/share/go-1.24/src/co*/**: + /usr/share/go-1.24/src/crypto/**: + /usr/share/go-1.24/src/d*/**: + /usr/share/go-1.24/src/e*/**: + /usr/share/go-1.24/src/f*/**: + /usr/share/go-1.24/src/go.mod: + /usr/share/go-1.24/src/go.sum: + /usr/share/go-1.24/src/go/a*/**: + /usr/share/go-1.24/src/go/build/b*: + /usr/share/go-1.24/src/go/build/c*/**: + /usr/share/go-1.24/src/go/build/d*: + /usr/share/go-1.24/src/go/build/g*: + /usr/share/go-1.24/src/go/build/r*: + /usr/share/go-1.24/src/go/build/s*: + /usr/share/go-1.24/src/go/build/t*/**: + /usr/share/go-1.24/src/go/build/v*: + /usr/share/go-1.24/src/go/c*/**: + /usr/share/go-1.24/src/go/d*/**: + /usr/share/go-1.24/src/go/f*/**: + /usr/share/go-1.24/src/go/i*/**: + /usr/share/go-1.24/src/go/p*/**: + /usr/share/go-1.24/src/go/s*/**: + /usr/share/go-1.24/src/go/t*/**: + /usr/share/go-1.24/src/go/v*/**: + /usr/share/go-1.24/src/h*/**: + /usr/share/go-1.24/src/im*/**: + /usr/share/go-1.24/src/ind*/**: + /usr/share/go-1.24/src/internal/a*/**: + /usr/share/go-1.24/src/internal/bi*/**: + /usr/share/go-1.24/src/internal/buildcfg/c*: + /usr/share/go-1.24/src/internal/buildcfg/e*: + /usr/share/go-1.24/src/internal/by*/**: + /usr/share/go-1.24/src/internal/c*/**: + /usr/share/go-1.24/src/internal/d*/**: + /usr/share/go-1.24/src/internal/e*/**: + /usr/share/go-1.24/src/internal/f*/**: + /usr/share/go-1.24/src/internal/g*/**: + /usr/share/go-1.24/src/internal/i*/**: + /usr/share/go-1.24/src/internal/l*/**: + /usr/share/go-1.24/src/internal/m*/**: + /usr/share/go-1.24/src/internal/n*/**: + /usr/share/go-1.24/src/internal/o*/**: + /usr/share/go-1.24/src/internal/p*/**: + /usr/share/go-1.24/src/internal/ra*/**: + /usr/share/go-1.24/src/internal/re*/**: + /usr/share/go-1.24/src/internal/runtime/a*/**: + /usr/share/go-1.24/src/internal/runtime/e*/**: + /usr/share/go-1.24/src/internal/runtime/m*/**: + /usr/share/go-1.24/src/internal/runtime/sys/c*: + /usr/share/go-1.24/src/internal/runtime/sys/d*: + /usr/share/go-1.24/src/internal/runtime/sys/e*: + /usr/share/go-1.24/src/internal/runtime/sys/i*: + /usr/share/go-1.24/src/internal/runtime/sys/n*: + /usr/share/go-1.24/src/internal/runtime/sys/s*: + /usr/share/go-1.24/src/internal/runtime/sysc*/**: + /usr/share/go-1.24/src/internal/s*/**: + /usr/share/go-1.24/src/internal/t*/**: + /usr/share/go-1.24/src/internal/u*/**: + /usr/share/go-1.24/src/internal/x*/**: + /usr/share/go-1.24/src/internal/z*/**: + /usr/share/go-1.24/src/io*/**: + /usr/share/go-1.24/src/it*/**: + /usr/share/go-1.24/src/l*/**: + /usr/share/go-1.24/src/m*/**: + /usr/share/go-1.24/src/n*/**: + /usr/share/go-1.24/src/o*/**: + /usr/share/go-1.24/src/p*/**: + /usr/share/go-1.24/src/re*/**: + /usr/share/go-1.24/src/runtime/**.S: + /usr/share/go-1.24/src/runtime/**.c: + /usr/share/go-1.24/src/runtime/**.h: + /usr/share/go-1.24/src/runtime/**.s: + /usr/share/go-1.24/src/runtime/*.go: + /usr/share/go-1.24/src/runtime/*.py: + /usr/share/go-1.24/src/runtime/Makefile: + /usr/share/go-1.24/src/runtime/a*/**: + /usr/share/go-1.24/src/runtime/c*/**: + /usr/share/go-1.24/src/runtime/d*/**: + /usr/share/go-1.24/src/runtime/internal/st*/**: + /usr/share/go-1.24/src/runtime/internal/w*/**: + /usr/share/go-1.24/src/runtime/m*/**: + /usr/share/go-1.24/src/runtime/p*/**: + /usr/share/go-1.24/src/runtime/r*/**: + /usr/share/go-1.24/src/runtime/t*/**: + /usr/share/go-1.24/src/s*/**: + /usr/share/go-1.24/src/te*/**: + /usr/share/go-1.24/src/time/*.go: + /usr/share/go-1.24/src/time/te*/**: + /usr/share/go-1.24/src/time/tzdata/tzdata.go: + /usr/share/go-1.24/src/u*/**: + /usr/share/go-1.24/src/v*/**: + /usr/share/go-1.24/src/w*/**: + /usr/share/go-1.24/test/**: + + api: + contents: + /usr/share/go-1.24/api/*.txt: + + bash-scripts: + essential: + - bash_bins + - binutils_linker + # TODO: Include binutils-${ARCH_TRIPLET}_loader as well. + - coreutils_bins + - grep_bins + contents: + /usr/share/go-1.24/src/all.bash: + /usr/share/go-1.24/src/bootstrap.bash: + /usr/share/go-1.24/src/buildall.bash: + /usr/share/go-1.24/src/clean.bash: + /usr/share/go-1.24/src/cmp.bash: + /usr/share/go-1.24/src/make.bash: + /usr/share/go-1.24/src/race.bash: + /usr/share/go-1.24/src/run.bash: + + libs: + essential: + - bash_bins + - coreutils_bins + - make_bins + contents: + /usr/share/go-1.24/lib/fips140/Makefile: + /usr/share/go-1.24/lib/fips140/fips140.sum: + /usr/share/go-1.24/lib/fips140/v1.0.0.zip: + /usr/share/go-1.24/lib/time/mkzip.go: + /usr/share/go-1.24/lib/time/update.bash: + /usr/share/go-1.24/lib/time/zoneinfo.zip: + /usr/share/go-1.24/lib/wasm/*: + + copyright: + contents: + /usr/share/doc/golang-1.24-src/copyright: diff --git a/slices/golang-1.24.yaml b/slices/golang-1.24.yaml new file mode 100644 index 000000000..c2702cee8 --- /dev/null +++ b/slices/golang-1.24.yaml @@ -0,0 +1,15 @@ +package: golang-1.24 + +essential: + - golang-1.24_copyright + +slices: + core: + essential: + # Note: Package golang-1.24-go is not available on i386. + - golang-1.24-go_core + - golang-1.24-src_src-with-tests + + copyright: + contents: + /usr/share/doc/golang-1.24/copyright: diff --git a/slices/golang-go.yaml b/slices/golang-go.yaml new file mode 100644 index 000000000..33a6cd708 --- /dev/null +++ b/slices/golang-go.yaml @@ -0,0 +1,21 @@ +package: golang-go + +essential: + - golang-go_copyright + +slices: + core: + essential: + - golang-1.24-go_core + contents: + /usr/bin/go: # Symlink to ../lib/go-1.24/bin/go + /usr/bin/gofmt: # Symlink to ../lib/go-1.24/bin/gofmt + /usr/lib/go: # Symlink to ../share/go-1.24 + + cgo-tools: + essential: + - golang-1.24-go_cgo-tools + + copyright: + contents: + /usr/share/doc/golang-go/copyright: diff --git a/slices/golang-src.yaml b/slices/golang-src.yaml new file mode 100644 index 000000000..75a0a2cb5 --- /dev/null +++ b/slices/golang-src.yaml @@ -0,0 +1,15 @@ +package: golang-src + +essential: + - golang-src_copyright + +slices: + src-with-tests: + essential: + - golang-1.24-src_src-with-tests + contents: + /usr/share/go: # Symlink to go-1.24 + + copyright: + contents: + /usr/share/doc/golang-src/copyright: diff --git a/slices/golang.yaml b/slices/golang.yaml new file mode 100644 index 000000000..783e581ce --- /dev/null +++ b/slices/golang.yaml @@ -0,0 +1,19 @@ +package: golang + +essential: + - golang_copyright + +slices: + core: + essential: + - golang-go_core + - golang-src_src-with-tests + + cgo-support: + essential: + - golang-1.24-go_cgo-tools + - golang_core + + copyright: + contents: + /usr/share/doc/golang/copyright: diff --git a/slices/make.yaml b/slices/make.yaml new file mode 100644 index 000000000..b682cd2f2 --- /dev/null +++ b/slices/make.yaml @@ -0,0 +1,12 @@ +package: make + +slices: + bins: + essential: + - libc6_libs + contents: + /usr/bin/make: + + copyright: + contents: + /usr/share/doc/make/copyright: diff --git a/tests/spread/integration/golang-1.24-go/shared/epilogue.sh b/tests/spread/integration/golang-1.24-go/shared/epilogue.sh new file mode 100644 index 000000000..8951e2c55 --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/shared/epilogue.sh @@ -0,0 +1,3 @@ +# cleanup +umount -l "${rootfs}"/dev +umount -l "${rootfs}"/proc diff --git a/tests/spread/integration/golang-1.24-go/shared/prologue.sh b/tests/spread/integration/golang-1.24-go/shared/prologue.sh new file mode 100644 index 000000000..449c3a6ed --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/shared/prologue.sh @@ -0,0 +1,26 @@ +# TODO: remove the --arch and the ${arch} logic once +# canonical/chisel #256 is merged. +arch=$(uname -m) +arch="${arch//_/-}" + +if [ "${arch}" = "aarch64" ]; then +chisel_arch="arm64" +elif [ "${arch}" = "x86-64" ]; then +chisel_arch="amd64" +else +echo "Unsupported architecture: ${arch}" +exit 1 +fi + +rootfs="$(install-slices --arch "${chisel_arch}" golang-1.24-go_${SLICE} golang-1.24-go_minimal)" + +# we need dev/sys mounted for some of them +mkdir "${rootfs}"/dev +mkdir "${rootfs}/proc" + +mount --bind /dev "${rootfs}"/dev +mount --bind /proc "${rootfs}/proc" + +mkdir -p "${rootfs}/tmp" + +echo -n "${rootfs}" diff --git a/tests/spread/integration/golang-1.24-go/task.yaml b/tests/spread/integration/golang-1.24-go/task.yaml new file mode 100644 index 000000000..0dd54581f --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/task.yaml @@ -0,0 +1,17 @@ +summary: Integration tests for golang-1.24-go + +variants: + - build-tools + - cgo-tools + - debug-tools + - dist-tools + - doc-tools + - minimal + - profiling-tools + - testing-tools + +execute: | + export "SLICE=${SPREAD_VARIANT}" + export "rootfs=$(bash -ex ./shared/prologue.sh)" + bash -ex ./test_${SPREAD_VARIANT}.sh + bash -ex ./shared/epilogue.sh diff --git a/tests/spread/integration/golang-1.24-go/test_build-tools.sh b/tests/spread/integration/golang-1.24-go/test_build-tools.sh new file mode 100644 index 000000000..3628c4e31 --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/test_build-tools.sh @@ -0,0 +1,7 @@ +[ -n "${rootfs}" ] || { echo "rootfs not set"; exit 1; } +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool asm -V +(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool buildid 2>&1 || true) | grep "usage" +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool compile -V +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool link -V +(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool pack --help 2>&1 || true) | grep "Usage" +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool vet -V diff --git a/tests/spread/integration/golang-1.24-go/test_cgo-tools.sh b/tests/spread/integration/golang-1.24-go/test_cgo-tools.sh new file mode 100644 index 000000000..b67d3c237 --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/test_cgo-tools.sh @@ -0,0 +1,4 @@ +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool cgo -V +cp ../golang/hello/cmd/hello_cgo/main_cgo.go "${rootfs}/main_cgo.go" +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool cgo main_cgo.go +grep -q "hello_from_c" "${rootfs}/_obj/_cgo_.o" diff --git a/tests/spread/integration/golang-1.24-go/test_debug-tools.sh b/tests/spread/integration/golang-1.24-go/test_debug-tools.sh new file mode 100644 index 000000000..48e225d65 --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/test_debug-tools.sh @@ -0,0 +1,4 @@ +(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool fix --help 2>&1 || true) | grep "usage" +(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool nm --help 2>&1 || true) | grep "usage" +(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool objdump --help 2>&1 || true) | grep "usage" +(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool trace --help 2>&1 || true) | grep "Usage" diff --git a/tests/spread/integration/golang-1.24-go/test_dist-tools.sh b/tests/spread/integration/golang-1.24-go/test_dist-tools.sh new file mode 100644 index 000000000..cf9b99e1c --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/test_dist-tools.sh @@ -0,0 +1,2 @@ +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool dist version +(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool distpack --help 2>&1 || true) | grep "usage" diff --git a/tests/spread/integration/golang-1.24-go/test_doc-tools.sh b/tests/spread/integration/golang-1.24-go/test_doc-tools.sh new file mode 100644 index 000000000..acefa49ab --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/test_doc-tools.sh @@ -0,0 +1 @@ +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool doc help diff --git a/tests/spread/integration/golang-1.24-go/test_minimal.sh b/tests/spread/integration/golang-1.24-go/test_minimal.sh new file mode 100644 index 000000000..93f2d4ef2 --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/test_minimal.sh @@ -0,0 +1,2 @@ +cp ../golang/hello/cmd/hello/main.go "${rootfs}/hello.go" +chroot "${rootfs}" /usr/lib/go-1.24/bin/go run /hello.go | grep "Hello, World!" diff --git a/tests/spread/integration/golang-1.24-go/test_profiling-tools.sh b/tests/spread/integration/golang-1.24-go/test_profiling-tools.sh new file mode 100644 index 000000000..533a39805 --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/test_profiling-tools.sh @@ -0,0 +1,2 @@ +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool addr2line --help +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool pprof --help diff --git a/tests/spread/integration/golang-1.24-go/test_testing-tools.sh b/tests/spread/integration/golang-1.24-go/test_testing-tools.sh new file mode 100644 index 000000000..f251e630c --- /dev/null +++ b/tests/spread/integration/golang-1.24-go/test_testing-tools.sh @@ -0,0 +1,3 @@ +(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool covdata --help 2>&1 || true) | grep "usage" +chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool cover -V +(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool test2json --help 2>&1 || true) | grep "usage" diff --git a/tests/spread/integration/golang/hello/cmd/hello/main.go b/tests/spread/integration/golang/hello/cmd/hello/main.go new file mode 100644 index 000000000..a2e2bc363 --- /dev/null +++ b/tests/spread/integration/golang/hello/cmd/hello/main.go @@ -0,0 +1,9 @@ +// Source: https://gobyexample.com/hello-world + +package main + +import "fmt" + +func main() { + fmt.Println("Hello, World!") +} diff --git a/tests/spread/integration/golang/hello/cmd/hello_cgo/main_cgo.go b/tests/spread/integration/golang/hello/cmd/hello_cgo/main_cgo.go new file mode 100644 index 000000000..5d393b197 --- /dev/null +++ b/tests/spread/integration/golang/hello/cmd/hello_cgo/main_cgo.go @@ -0,0 +1,15 @@ +package main + +/* +#include + +void hello_from_c() { + printf("Hello from C!\n"); +} +*/ +import "C" + +func main() { + C.hello_from_c() + C.fflush(C.stdout) +} diff --git a/tests/spread/integration/golang/hello/go.mod b/tests/spread/integration/golang/hello/go.mod new file mode 100644 index 000000000..853b93f78 --- /dev/null +++ b/tests/spread/integration/golang/hello/go.mod @@ -0,0 +1,3 @@ +module hello + +go 1.22.2 diff --git a/tests/spread/integration/golang/hello/hello.go b/tests/spread/integration/golang/hello/hello.go new file mode 100644 index 000000000..13f211a06 --- /dev/null +++ b/tests/spread/integration/golang/hello/hello.go @@ -0,0 +1,5 @@ +package hello + +func Hello() string { + return "Hello, World!" +} diff --git a/tests/spread/integration/golang/hello/hello_test.go b/tests/spread/integration/golang/hello/hello_test.go new file mode 100644 index 000000000..12a86d7c3 --- /dev/null +++ b/tests/spread/integration/golang/hello/hello_test.go @@ -0,0 +1,14 @@ +package hello_test + +import ( + "hello" + "testing" +) + +func TestMain(t *testing.T) { + expected := "Hello, World!" + t.Logf("expected: %s", expected) + if got := hello.Hello(); got != expected { + t.Errorf("expect %v, got %v", expected, got) + } +} diff --git a/tests/spread/integration/golang/task.yaml b/tests/spread/integration/golang/task.yaml new file mode 100644 index 000000000..3b854c89b --- /dev/null +++ b/tests/spread/integration/golang/task.yaml @@ -0,0 +1,6 @@ +summary: Integration tests for golang + +variants: + - all + +execute: bash -ex ./test_${SPREAD_VARIANT}.sh diff --git a/tests/spread/integration/golang/test_all.sh b/tests/spread/integration/golang/test_all.sh new file mode 100644 index 000000000..0eb959933 --- /dev/null +++ b/tests/spread/integration/golang/test_all.sh @@ -0,0 +1,58 @@ +arch=$(uname -m) +arch="${arch//_/-}" + +if [ "${arch}" = "aarch64" ]; then +chisel_arch="arm64" +elif [ "${arch}" = "x86-64" ]; then +chisel_arch="amd64" +else +echo "Unsupported architecture: ${arch}" +exit 1 +fi + +rootfs="$(install-slices --arch "${chisel_arch}" \ + golang_cgo-support \ + ca-certificates_data \ # for `go get` to work properly +)" + +find ${rootfs}/usr/share/go-1.24 -depth \( \ + \( -path '*test*' \ + ! -path '*src/testing*' \ + ! -path '*src/internal/test*' \ + ! -path '*src/runtime/synctest*' \) -o \ + \( -path '*/testing/*' -name '*_test.go' \) \ + \) -exec rm -rf {} + + +mkdir "${rootfs}/proc" +mount --bind /proc "${rootfs}/proc" + +mkdir "${rootfs}/dev" +mount --bind /dev "${rootfs}/dev" + +mkdir -p "${rootfs}/tmp" + +mkdir "${rootfs}/app" +cp -r hello "${rootfs}/" + +chroot "${rootfs}/" go version +chroot "${rootfs}/" go run /hello/cmd/hello/main.go | grep "Hello, World!" + +chroot "${rootfs}/" gofmt /hello/cmd/hello/main.go > /dev/null + +chroot "${rootfs}/" go -C /hello test + +git clone https://github.com/canonical/chisel.git "${rootfs}/chisel" +git -C "$rootfs/chisel" checkout v1.2.0 +cp /etc/resolv.conf "${rootfs}/etc/resolv.conf" + +chroot "${rootfs}/" go -C chisel build ./cmd/chisel +chroot "${rootfs}/" ./chisel/chisel 2>&1 > /dev/null + + +export CGO_ENABLED=1 +chroot "${rootfs}/" go run /hello/cmd/hello_cgo/main_cgo.go | grep "Hello from C!" + +umount "${rootfs}/proc" +umount "${rootfs}/dev" +rm -rf "${rootfs}/proc" +rm -rf "${rootfs}/dev" diff --git a/tests/spread/integration/make/Makefile b/tests/spread/integration/make/Makefile new file mode 100644 index 000000000..2b5560e19 --- /dev/null +++ b/tests/spread/integration/make/Makefile @@ -0,0 +1,3 @@ +.PHONY: all +all: + $(info Hello from Makefile!) diff --git a/tests/spread/integration/make/task.yaml b/tests/spread/integration/make/task.yaml new file mode 100644 index 000000000..51b138668 --- /dev/null +++ b/tests/spread/integration/make/task.yaml @@ -0,0 +1,9 @@ +summary: Integration tests for make + +execute: | + rootfs=$(install-slices make_bins) + + chroot "${rootfs}" make --version | grep "GNU Make" + + cp Makefile "${rootfs}/Makefile" + chroot "${rootfs}" make | grep -q "Hello from Makefile!" From fccd8b32956c7101c14480e788b728e236c70428 Mon Sep 17 00:00:00 2001 From: Zhijie Yang Date: Tue, 6 Jan 2026 11:54:54 +0100 Subject: [PATCH 2/4] feat(26.04): apply changes for golang-1.25 --- slices/golang-1.24-go.yaml | 128 ---------- slices/golang-1.24-src.yaml | 241 ------------------ slices/golang-1.24.yaml | 15 -- slices/golang-1.25-go.yaml | 98 +++++++ slices/golang-1.25-src.yaml | 231 +++++++++++++++++ slices/golang-1.25.yaml | 15 ++ slices/golang-go.yaml | 10 +- slices/golang-src.yaml | 4 +- slices/golang.yaml | 2 +- .../golang-1.24-go/test_build-tools.sh | 7 - .../golang-1.24-go/test_cgo-tools.sh | 4 - .../golang-1.24-go/test_debug-tools.sh | 4 - .../golang-1.24-go/test_dist-tools.sh | 2 - .../golang-1.24-go/test_doc-tools.sh | 1 - .../golang-1.24-go/test_profiling-tools.sh | 2 - .../golang-1.24-go/test_testing-tools.sh | 3 - .../shared/epilogue.sh | 0 .../shared/prologue.sh | 2 +- .../task.yaml | 5 +- .../golang-1.25-go/test_build-tools.sh | 5 + .../golang-1.25-go/test_cgo-tools.sh | 4 + .../test_minimal.sh | 2 +- .../golang-1.25-go/test_profiling-tools.sh | 1 + .../golang-1.25-go/test_testing-tools.sh | 1 + tests/spread/integration/golang/test_all.sh | 6 +- 25 files changed, 370 insertions(+), 423 deletions(-) delete mode 100644 slices/golang-1.24-go.yaml delete mode 100644 slices/golang-1.24-src.yaml delete mode 100644 slices/golang-1.24.yaml create mode 100644 slices/golang-1.25-go.yaml create mode 100644 slices/golang-1.25-src.yaml create mode 100644 slices/golang-1.25.yaml delete mode 100644 tests/spread/integration/golang-1.24-go/test_build-tools.sh delete mode 100644 tests/spread/integration/golang-1.24-go/test_cgo-tools.sh delete mode 100644 tests/spread/integration/golang-1.24-go/test_debug-tools.sh delete mode 100644 tests/spread/integration/golang-1.24-go/test_dist-tools.sh delete mode 100644 tests/spread/integration/golang-1.24-go/test_doc-tools.sh delete mode 100644 tests/spread/integration/golang-1.24-go/test_profiling-tools.sh delete mode 100644 tests/spread/integration/golang-1.24-go/test_testing-tools.sh rename tests/spread/integration/{golang-1.24-go => golang-1.25-go}/shared/epilogue.sh (100%) rename tests/spread/integration/{golang-1.24-go => golang-1.25-go}/shared/prologue.sh (83%) rename tests/spread/integration/{golang-1.24-go => golang-1.25-go}/task.yaml (73%) create mode 100644 tests/spread/integration/golang-1.25-go/test_build-tools.sh create mode 100644 tests/spread/integration/golang-1.25-go/test_cgo-tools.sh rename tests/spread/integration/{golang-1.24-go => golang-1.25-go}/test_minimal.sh (53%) create mode 100644 tests/spread/integration/golang-1.25-go/test_profiling-tools.sh create mode 100644 tests/spread/integration/golang-1.25-go/test_testing-tools.sh diff --git a/slices/golang-1.24-go.yaml b/slices/golang-1.24-go.yaml deleted file mode 100644 index c3ed13cc0..000000000 --- a/slices/golang-1.24-go.yaml +++ /dev/null @@ -1,128 +0,0 @@ -package: golang-1.24-go - -essential: - - golang-1.24-go_copyright - -slices: - # Note: The minimal slice provides a working Go installation - # that can be used to build and run simple Go programs, - # such as a "Hello World" program. - # See tests/spread/integration/golang-1.24-go/test_minimal.sh - # for more details. - minimal: - essential: - - base-files_tmp - - golang-1.24-go_build-tools - - golang-1.24-go_headers - - golang-1.24-go_symlinks - - golang-1.24-src_src-with-tests - contents: - /usr/lib/go-1.24/bin/go: - /usr/lib/go-1.24/bin/gofmt: - - # Note: The core slices provides the source code within the golang-1.24-go - # package in additional to the minimal slice. - core: - essential: - - golang-1.24-go_cmd-src - - golang-1.24-go_go-build-src - - golang-1.24-go_go-env - - golang-1.24-go_internal-src - - golang-1.24-go_minimal - - golang-1.24-go_runtime-src - - golang-1.24-go_time-src - - # Note: The build-tools provides the essential Go tools for building - # a minimal Go program, i.e., a single Hello World program. - build-tools: - contents: - /usr/lib/go-1.24/pkg/tool/linux_*/asm: - /usr/lib/go-1.24/pkg/tool/linux_*/buildid: - /usr/lib/go-1.24/pkg/tool/linux_*/compile: - /usr/lib/go-1.24/pkg/tool/linux_*/link: - /usr/lib/go-1.24/pkg/tool/linux_*/pack: - # vet is used for go test - /usr/lib/go-1.24/pkg/tool/linux_*/vet: - - cgo-tools: - essential: - - gcc_gcc - - libc6-dev_core - - libc6-dev_libresolv - - libc6-dev_runtime - contents: - /usr/lib/go-1.24/pkg/tool/linux_*/cgo: - - cmd-src: - contents: - /usr/share/go-1.24/src/cmd/cgo/zdefaultcc.go: - /usr/share/go-1.24/src/cmd/go/internal/cfg/zdefaultcc.go: - /usr/share/go-1.24/src/cmd/internal/objabi/zbootstrap.go: - - debug-tools: - contents: - /usr/lib/go-1.24/pkg/tool/linux_*/fix: - /usr/lib/go-1.24/pkg/tool/linux_*/nm: - /usr/lib/go-1.24/pkg/tool/linux_*/objdump: - /usr/lib/go-1.24/pkg/tool/linux_*/trace: - - dist-tools: - essential: - - base-files_tmp - - golang-1.24-src_bash-scripts - contents: - /usr/lib/go-1.24/VERSION: - /usr/lib/go-1.24/pkg/tool/linux_*/dist: - /usr/lib/go-1.24/pkg/tool/linux_*/distpack: - - doc-tools: - contents: - /usr/lib/go-1.24/pkg/tool/linux_*/doc: - - go-build-src: - contents: - /usr/share/go-1.24/src/go/build/zcgo.go: - - go-env: - contents: - /usr/lib/go-1.24/go.env: - - headers: - contents: - /usr/share/go-1.24/pkg/include/*.h: - - internal-src: - contents: - /usr/share/go-1.24/src/internal/buildcfg/zbootstrap.go: - - profiling-tools: - contents: - /usr/lib/go-1.24/pkg/tool/linux_*/addr2line: - /usr/lib/go-1.24/pkg/tool/linux_*/pprof: - - runtime-src: - contents: - /usr/share/go-1.24/src/internal/runtime/sys/zversion.go: - - symlinks: - contents: - /usr/lib/go-1.24/api: # Symlink to ../share/go-1.24/api - /usr/lib/go-1.24/lib: # Symlink to ../share/go-1.24/lib - /usr/lib/go-1.24/misc: # Symlink to ../share/go-1.24/misc - /usr/lib/go-1.24/pkg/include: # Symlink to ../share/go-1.24/pkg/include - /usr/lib/go-1.24/src: # Symlink to ../share/go-1.24/src - /usr/lib/go-1.24/test: # Symlink to ../share/go-1.24/test - - testing-tools: - contents: - /usr/lib/go-1.24/pkg/tool/linux_*/covdata: - /usr/lib/go-1.24/pkg/tool/linux_*/cover: - /usr/lib/go-1.24/pkg/tool/linux_*/test2json: - - time-src: - contents: - /usr/share/go-1.24/src/time/tzdata/zzipdata.go: - - copyright: - contents: - /usr/share/doc/golang-1.24-go/copyright: diff --git a/slices/golang-1.24-src.yaml b/slices/golang-1.24-src.yaml deleted file mode 100644 index ee852d206..000000000 --- a/slices/golang-1.24-src.yaml +++ /dev/null @@ -1,241 +0,0 @@ -package: golang-1.24-src - -essential: - - golang-1.24-src_copyright - -slices: - # Note: This slice contains the source code of Go 1.24 as well as the tests. - # Due to Go's project layout convention, we cannot split the source code - # easily without Chisel's support for negative wildcards. - # To exclude the tests and test data, a command should be run after cutting - # this slice: - # find . -depth \( \ - # \( -path '*test*' \ - # ! -path '*src/testing*' \ - # ! -path '*src/internal/test*' \ - # ! -path '*src/runtime/synctest*' \) -o \ - # \( -path '*/testing/*' -name '*_test.go' \) \ - # \) -exec rm -rf {} + - src-with-tests: - essential: - - golang-1.24-src_api - - golang-1.24-src_libs - contents: - # Note: Some paths are explicitly listed to avoid conflicts with - # the paths defined in golang-1.24-go. - # src/cmd/** conflicts with - # src/cmd/cgo/zdefaultcc.go - # src/cmd/go/internal/cfg/zdefaultcc.go - # src/cmd/internal/objabi/zbootstrap.go - # src/go/** conflicts with - # src/go/build/zcgo.go - # src/internal/** conflicts with - # src/internal/buildcfg/zbootstrap.go - # src/internal/runtime/sys/zversion.go - # src/time/** conflicts with - # src/time/tzdata/zzipdata.go - /usr/share/go-1.24/misc/**: - /usr/share/go-1.24/src/Make.dist: - /usr/share/go-1.24/src/a*/**: - /usr/share/go-1.24/src/b*/**: - /usr/share/go-1.24/src/cmd/a*/**: - /usr/share/go-1.24/src/cmd/b*/**: - /usr/share/go-1.24/src/cmd/cgo/a*.go: - /usr/share/go-1.24/src/cmd/cgo/doc.go: - /usr/share/go-1.24/src/cmd/cgo/g*.go: - /usr/share/go-1.24/src/cmd/cgo/internal/**: - /usr/share/go-1.24/src/cmd/cgo/main.go: - /usr/share/go-1.24/src/cmd/cgo/out.go: - /usr/share/go-1.24/src/cmd/cgo/util.go: - /usr/share/go-1.24/src/cmd/co*/**: - /usr/share/go-1.24/src/cmd/d*/**: - /usr/share/go-1.24/src/cmd/f*/**: - /usr/share/go-1.24/src/cmd/go.mod: - /usr/share/go-1.24/src/cmd/go.sum: - /usr/share/go-1.24/src/cmd/go/*.go: - /usr/share/go-1.24/src/cmd/go/internal/a*/**: - /usr/share/go-1.24/src/cmd/go/internal/b*/**: - /usr/share/go-1.24/src/cmd/go/internal/ca*/**: - /usr/share/go-1.24/src/cmd/go/internal/cfg/bench_test.go: - /usr/share/go-1.24/src/cmd/go/internal/cfg/cfg.go: - /usr/share/go-1.24/src/cmd/go/internal/cl*/**: - /usr/share/go-1.24/src/cmd/go/internal/cm*/**: - /usr/share/go-1.24/src/cmd/go/internal/d*/**: - /usr/share/go-1.24/src/cmd/go/internal/e*/**: - /usr/share/go-1.24/src/cmd/go/internal/f*/**: - /usr/share/go-1.24/src/cmd/go/internal/g*/**: - /usr/share/go-1.24/src/cmd/go/internal/h*/**: - /usr/share/go-1.24/src/cmd/go/internal/i*/**: - /usr/share/go-1.24/src/cmd/go/internal/l*/**: - /usr/share/go-1.24/src/cmd/go/internal/m*/**: - /usr/share/go-1.24/src/cmd/go/internal/r*/**: - /usr/share/go-1.24/src/cmd/go/internal/s*/**: - /usr/share/go-1.24/src/cmd/go/internal/t*/**: - /usr/share/go-1.24/src/cmd/go/internal/v*/**: - /usr/share/go-1.24/src/cmd/go/internal/w*/**: - /usr/share/go-1.24/src/cmd/go/t*/**: - /usr/share/go-1.24/src/cmd/gof*/**: - /usr/share/go-1.24/src/cmd/internal/a*/**: - /usr/share/go-1.24/src/cmd/internal/b*/**: - /usr/share/go-1.24/src/cmd/internal/c*/**: - /usr/share/go-1.24/src/cmd/internal/d*/**: - /usr/share/go-1.24/src/cmd/internal/e*/**: - /usr/share/go-1.24/src/cmd/internal/g*/**: - /usr/share/go-1.24/src/cmd/internal/h*/**: - /usr/share/go-1.24/src/cmd/internal/m*/**: - /usr/share/go-1.24/src/cmd/internal/obj/**: - /usr/share/go-1.24/src/cmd/internal/objabi/a*: - /usr/share/go-1.24/src/cmd/internal/objabi/f*: - /usr/share/go-1.24/src/cmd/internal/objabi/h*: - /usr/share/go-1.24/src/cmd/internal/objabi/l*: - /usr/share/go-1.24/src/cmd/internal/objabi/p*: - /usr/share/go-1.24/src/cmd/internal/objabi/r*: - /usr/share/go-1.24/src/cmd/internal/objabi/s*: - /usr/share/go-1.24/src/cmd/internal/objabi/u*: - /usr/share/go-1.24/src/cmd/internal/objfile/*.go: - /usr/share/go-1.24/src/cmd/internal/os*/**: - /usr/share/go-1.24/src/cmd/internal/p*/**: - /usr/share/go-1.24/src/cmd/internal/q*/**: - /usr/share/go-1.24/src/cmd/internal/r*/**: - /usr/share/go-1.24/src/cmd/internal/s*/**: - /usr/share/go-1.24/src/cmd/internal/t*/**: - /usr/share/go-1.24/src/cmd/l*/**: - /usr/share/go-1.24/src/cmd/n*/**: - /usr/share/go-1.24/src/cmd/o*/**: - /usr/share/go-1.24/src/cmd/p*/**: - /usr/share/go-1.24/src/cmd/r*/**: - /usr/share/go-1.24/src/cmd/t*/**: - /usr/share/go-1.24/src/cmd/v*/**: - /usr/share/go-1.24/src/cmp/**: - /usr/share/go-1.24/src/co*/**: - /usr/share/go-1.24/src/crypto/**: - /usr/share/go-1.24/src/d*/**: - /usr/share/go-1.24/src/e*/**: - /usr/share/go-1.24/src/f*/**: - /usr/share/go-1.24/src/go.mod: - /usr/share/go-1.24/src/go.sum: - /usr/share/go-1.24/src/go/a*/**: - /usr/share/go-1.24/src/go/build/b*: - /usr/share/go-1.24/src/go/build/c*/**: - /usr/share/go-1.24/src/go/build/d*: - /usr/share/go-1.24/src/go/build/g*: - /usr/share/go-1.24/src/go/build/r*: - /usr/share/go-1.24/src/go/build/s*: - /usr/share/go-1.24/src/go/build/t*/**: - /usr/share/go-1.24/src/go/build/v*: - /usr/share/go-1.24/src/go/c*/**: - /usr/share/go-1.24/src/go/d*/**: - /usr/share/go-1.24/src/go/f*/**: - /usr/share/go-1.24/src/go/i*/**: - /usr/share/go-1.24/src/go/p*/**: - /usr/share/go-1.24/src/go/s*/**: - /usr/share/go-1.24/src/go/t*/**: - /usr/share/go-1.24/src/go/v*/**: - /usr/share/go-1.24/src/h*/**: - /usr/share/go-1.24/src/im*/**: - /usr/share/go-1.24/src/ind*/**: - /usr/share/go-1.24/src/internal/a*/**: - /usr/share/go-1.24/src/internal/bi*/**: - /usr/share/go-1.24/src/internal/buildcfg/c*: - /usr/share/go-1.24/src/internal/buildcfg/e*: - /usr/share/go-1.24/src/internal/by*/**: - /usr/share/go-1.24/src/internal/c*/**: - /usr/share/go-1.24/src/internal/d*/**: - /usr/share/go-1.24/src/internal/e*/**: - /usr/share/go-1.24/src/internal/f*/**: - /usr/share/go-1.24/src/internal/g*/**: - /usr/share/go-1.24/src/internal/i*/**: - /usr/share/go-1.24/src/internal/l*/**: - /usr/share/go-1.24/src/internal/m*/**: - /usr/share/go-1.24/src/internal/n*/**: - /usr/share/go-1.24/src/internal/o*/**: - /usr/share/go-1.24/src/internal/p*/**: - /usr/share/go-1.24/src/internal/ra*/**: - /usr/share/go-1.24/src/internal/re*/**: - /usr/share/go-1.24/src/internal/runtime/a*/**: - /usr/share/go-1.24/src/internal/runtime/e*/**: - /usr/share/go-1.24/src/internal/runtime/m*/**: - /usr/share/go-1.24/src/internal/runtime/sys/c*: - /usr/share/go-1.24/src/internal/runtime/sys/d*: - /usr/share/go-1.24/src/internal/runtime/sys/e*: - /usr/share/go-1.24/src/internal/runtime/sys/i*: - /usr/share/go-1.24/src/internal/runtime/sys/n*: - /usr/share/go-1.24/src/internal/runtime/sys/s*: - /usr/share/go-1.24/src/internal/runtime/sysc*/**: - /usr/share/go-1.24/src/internal/s*/**: - /usr/share/go-1.24/src/internal/t*/**: - /usr/share/go-1.24/src/internal/u*/**: - /usr/share/go-1.24/src/internal/x*/**: - /usr/share/go-1.24/src/internal/z*/**: - /usr/share/go-1.24/src/io*/**: - /usr/share/go-1.24/src/it*/**: - /usr/share/go-1.24/src/l*/**: - /usr/share/go-1.24/src/m*/**: - /usr/share/go-1.24/src/n*/**: - /usr/share/go-1.24/src/o*/**: - /usr/share/go-1.24/src/p*/**: - /usr/share/go-1.24/src/re*/**: - /usr/share/go-1.24/src/runtime/**.S: - /usr/share/go-1.24/src/runtime/**.c: - /usr/share/go-1.24/src/runtime/**.h: - /usr/share/go-1.24/src/runtime/**.s: - /usr/share/go-1.24/src/runtime/*.go: - /usr/share/go-1.24/src/runtime/*.py: - /usr/share/go-1.24/src/runtime/Makefile: - /usr/share/go-1.24/src/runtime/a*/**: - /usr/share/go-1.24/src/runtime/c*/**: - /usr/share/go-1.24/src/runtime/d*/**: - /usr/share/go-1.24/src/runtime/internal/st*/**: - /usr/share/go-1.24/src/runtime/internal/w*/**: - /usr/share/go-1.24/src/runtime/m*/**: - /usr/share/go-1.24/src/runtime/p*/**: - /usr/share/go-1.24/src/runtime/r*/**: - /usr/share/go-1.24/src/runtime/t*/**: - /usr/share/go-1.24/src/s*/**: - /usr/share/go-1.24/src/te*/**: - /usr/share/go-1.24/src/time/*.go: - /usr/share/go-1.24/src/time/te*/**: - /usr/share/go-1.24/src/time/tzdata/tzdata.go: - /usr/share/go-1.24/src/u*/**: - /usr/share/go-1.24/src/v*/**: - /usr/share/go-1.24/src/w*/**: - /usr/share/go-1.24/test/**: - - api: - contents: - /usr/share/go-1.24/api/*.txt: - - bash-scripts: - essential: - - bash_bins - - binutils_linker - # TODO: Include binutils-${ARCH_TRIPLET}_loader as well. - - coreutils_bins - - grep_bins - contents: - /usr/share/go-1.24/src/all.bash: - /usr/share/go-1.24/src/bootstrap.bash: - /usr/share/go-1.24/src/buildall.bash: - /usr/share/go-1.24/src/clean.bash: - /usr/share/go-1.24/src/cmp.bash: - /usr/share/go-1.24/src/make.bash: - /usr/share/go-1.24/src/race.bash: - /usr/share/go-1.24/src/run.bash: - - libs: - essential: - - bash_bins - - coreutils_bins - - make_bins - contents: - /usr/share/go-1.24/lib/fips140/Makefile: - /usr/share/go-1.24/lib/fips140/fips140.sum: - /usr/share/go-1.24/lib/fips140/v1.0.0.zip: - /usr/share/go-1.24/lib/time/mkzip.go: - /usr/share/go-1.24/lib/time/update.bash: - /usr/share/go-1.24/lib/time/zoneinfo.zip: - /usr/share/go-1.24/lib/wasm/*: - - copyright: - contents: - /usr/share/doc/golang-1.24-src/copyright: diff --git a/slices/golang-1.24.yaml b/slices/golang-1.24.yaml deleted file mode 100644 index c2702cee8..000000000 --- a/slices/golang-1.24.yaml +++ /dev/null @@ -1,15 +0,0 @@ -package: golang-1.24 - -essential: - - golang-1.24_copyright - -slices: - core: - essential: - # Note: Package golang-1.24-go is not available on i386. - - golang-1.24-go_core - - golang-1.24-src_src-with-tests - - copyright: - contents: - /usr/share/doc/golang-1.24/copyright: diff --git a/slices/golang-1.25-go.yaml b/slices/golang-1.25-go.yaml new file mode 100644 index 000000000..de8154961 --- /dev/null +++ b/slices/golang-1.25-go.yaml @@ -0,0 +1,98 @@ +package: golang-1.25-go + +essential: + - golang-1.25-go_copyright + +slices: + # Note: The minimal slice provides a working Go installation + # that can be used to build and run simple Go programs, + # such as a "Hello World" program. + # See tests/spread/integration/golang-1.25-go/test_minimal.sh + # for more details. + minimal: + essential: + - base-files_tmp + - golang-1.25-go_build-tools + - golang-1.25-go_headers + - golang-1.25-go_symlinks + - golang-1.25-src_src-with-tests + contents: + /usr/lib/go-1.25/bin/go: + /usr/lib/go-1.25/bin/gofmt: + + # Note: The core slices provides the source code within the golang-1.25-go + # package in additional to the minimal slice. + core: + essential: + - golang-1.25-go_cmd-src + - golang-1.25-go_go-env + - golang-1.25-go_internal-src + - golang-1.25-go_minimal + - golang-1.25-go_runtime-src + - golang-1.25-go_time-src + + # Note: The build-tools provides the essential Go tools for building + # a minimal Go program, i.e., a single Hello World program. + build-tools: + contents: + /usr/lib/go-1.25/pkg/tool/linux_*/asm: + /usr/lib/go-1.25/pkg/tool/linux_*/compile: + /usr/lib/go-1.25/pkg/tool/linux_*/link: + # vet is used for go test + /usr/lib/go-1.25/pkg/tool/linux_*/vet: + + cgo-tools: + essential: + - gcc_gcc + - libc6-dev_core + - libc6-dev_libresolv + - libc6-dev_runtime + contents: + /usr/lib/go-1.25/pkg/tool/linux_*/cgo: + + cmd-src: + contents: + /usr/share/go-1.25/src/cmd/cgo/zdefaultcc.go: + /usr/share/go-1.25/src/cmd/go/internal/cfg/zdefaultcc.go: + /usr/share/go-1.25/src/cmd/internal/objabi/zbootstrap.go: + + go-env: + contents: + /usr/lib/go-1.25/go.env: + + headers: + contents: + /usr/share/go-1.25/pkg/include/*.h: + + internal-src: + contents: + /usr/share/go-1.25/src/internal/buildcfg/zbootstrap.go: + + profiling-tools: + contents: + /usr/lib/go-1.25/pkg/tool/linux_*/preprofile: + + runtime-src: + contents: + /usr/share/go-1.25/src/internal/runtime/sys/zversion.go: + + symlinks: + contents: + /usr/lib/go-1.25/api: # Symlink to ../share/go-1.25/api + /usr/lib/go-1.25/lib: # Symlink to ../share/go-1.25/lib + /usr/lib/go-1.25/misc: # Symlink to ../share/go-1.25/misc + /usr/lib/go-1.25/pkg/include: # Symlink to ../share/go-1.25/pkg/include + /usr/lib/go-1.25/src: # Symlink to ../share/go-1.25/src + /usr/lib/go-1.25/test: # Symlink to ../share/go-1.25/test + + testing-tools: + contents: + /usr/lib/go-1.25/pkg/tool/linux_*/cover: + + time-src: + contents: + /usr/share/go-1.25/src/time/tzdata/zzipdata.go: + + copyright: + contents: + /usr/share/doc/golang-1.25-go/copyright: diff --git a/slices/golang-1.25-src.yaml b/slices/golang-1.25-src.yaml new file mode 100644 index 000000000..9e4b8e1cd --- /dev/null +++ b/slices/golang-1.25-src.yaml @@ -0,0 +1,231 @@ +package: golang-1.25-src + +essential: + - golang-1.25-src_copyright + +slices: + # Note: This slice contains the source code of Go 1.25 as well as the tests. + # Due to Go's project layout convention, we cannot split the source code + # easily without Chisel's support for negative wildcards. + # To exclude the tests and test data, a command should be run after cutting + # this slice: + # find . -depth \( \ + # \( -path '*test*' \ + # ! -path '*src/testing*' \ + # ! -path '*src/internal/test*' \ + # ! -path '*src/internal/synctest' \ + # ! -path '*synctest.go' \ + # ! -path '*synctest_o*' \) -o \ + # \( -path '*/testing/*' -name '*_test.go' \) \ + # \) -exec rm -rf {} + + src-with-tests: + essential: + - golang-1.25-src_api + - golang-1.25-src_libs + contents: + # Note: Some paths are explicitly listed to avoid conflicts with + # the paths defined in golang-1.25-go. + # src/cmd/** conflicts with + # src/cmd/cgo/zdefaultcc.go + # src/cmd/go/internal/cfg/zdefaultcc.go + # src/cmd/internal/objabi/zbootstrap.go + # src/internal/** conflicts with + # src/internal/buildcfg/zbootstrap.go + # src/internal/runtime/sys/zversion.go + # src/time/** conflicts with + # src/time/tzdata/zzipdata.go + /usr/share/go-1.25/misc/**: + /usr/share/go-1.25/src/Make.dist: + /usr/share/go-1.25/src/a*/**: + /usr/share/go-1.25/src/b*/**: + /usr/share/go-1.25/src/cmd/a*/**: + /usr/share/go-1.25/src/cmd/b*/**: + /usr/share/go-1.25/src/cmd/cgo/a*.go: + /usr/share/go-1.25/src/cmd/cgo/doc.go: + /usr/share/go-1.25/src/cmd/cgo/g*.go: + /usr/share/go-1.25/src/cmd/cgo/internal/**: + /usr/share/go-1.25/src/cmd/cgo/main.go: + /usr/share/go-1.25/src/cmd/cgo/out.go: + /usr/share/go-1.25/src/cmd/cgo/util.go: + /usr/share/go-1.25/src/cmd/co*/**: + /usr/share/go-1.25/src/cmd/d*/**: + /usr/share/go-1.25/src/cmd/f*/**: + /usr/share/go-1.25/src/cmd/go.mod: + /usr/share/go-1.25/src/cmd/go.sum: + /usr/share/go-1.25/src/cmd/go/*.go: + /usr/share/go-1.25/src/cmd/go/internal/a*/**: + /usr/share/go-1.25/src/cmd/go/internal/b*/**: + /usr/share/go-1.25/src/cmd/go/internal/ca*/**: + /usr/share/go-1.25/src/cmd/go/internal/cfg/bench_test.go: + /usr/share/go-1.25/src/cmd/go/internal/cfg/cfg.go: + /usr/share/go-1.25/src/cmd/go/internal/cl*/**: + /usr/share/go-1.25/src/cmd/go/internal/cm*/**: + /usr/share/go-1.25/src/cmd/go/internal/d*/**: + /usr/share/go-1.25/src/cmd/go/internal/e*/**: + /usr/share/go-1.25/src/cmd/go/internal/f*/**: + /usr/share/go-1.25/src/cmd/go/internal/g*/**: + /usr/share/go-1.25/src/cmd/go/internal/h*/**: + /usr/share/go-1.25/src/cmd/go/internal/i*/**: + /usr/share/go-1.25/src/cmd/go/internal/l*/**: + /usr/share/go-1.25/src/cmd/go/internal/m*/**: + /usr/share/go-1.25/src/cmd/go/internal/r*/**: + /usr/share/go-1.25/src/cmd/go/internal/s*/**: + /usr/share/go-1.25/src/cmd/go/internal/t*/**: + /usr/share/go-1.25/src/cmd/go/internal/v*/**: + /usr/share/go-1.25/src/cmd/go/internal/w*/**: + /usr/share/go-1.25/src/cmd/go/t*/**: + /usr/share/go-1.25/src/cmd/gof*/**: + /usr/share/go-1.25/src/cmd/internal/a*/**: + /usr/share/go-1.25/src/cmd/internal/b*/**: + /usr/share/go-1.25/src/cmd/internal/c*/**: + /usr/share/go-1.25/src/cmd/internal/d*/**: + /usr/share/go-1.25/src/cmd/internal/e*/**: + /usr/share/go-1.25/src/cmd/internal/g*/**: + /usr/share/go-1.25/src/cmd/internal/h*/**: + /usr/share/go-1.25/src/cmd/internal/m*/**: + /usr/share/go-1.25/src/cmd/internal/obj/**: + /usr/share/go-1.25/src/cmd/internal/objabi/a*: + /usr/share/go-1.25/src/cmd/internal/objabi/f*: + /usr/share/go-1.25/src/cmd/internal/objabi/h*: + /usr/share/go-1.25/src/cmd/internal/objabi/l*: + /usr/share/go-1.25/src/cmd/internal/objabi/p*: + /usr/share/go-1.25/src/cmd/internal/objabi/r*: + /usr/share/go-1.25/src/cmd/internal/objabi/s*: + /usr/share/go-1.25/src/cmd/internal/objabi/u*: + /usr/share/go-1.25/src/cmd/internal/objfile/*.go: + /usr/share/go-1.25/src/cmd/internal/os*/**: + /usr/share/go-1.25/src/cmd/internal/p*/**: + /usr/share/go-1.25/src/cmd/internal/q*/**: + /usr/share/go-1.25/src/cmd/internal/r*/**: + /usr/share/go-1.25/src/cmd/internal/s*/**: + /usr/share/go-1.25/src/cmd/internal/t*/**: + /usr/share/go-1.25/src/cmd/l*/**: + /usr/share/go-1.25/src/cmd/n*/**: + /usr/share/go-1.25/src/cmd/o*/**: + /usr/share/go-1.25/src/cmd/p*/**: + /usr/share/go-1.25/src/cmd/r*/**: + /usr/share/go-1.25/src/cmd/t*/**: + /usr/share/go-1.25/src/cmd/v*/**: + /usr/share/go-1.25/src/cmp/**: + /usr/share/go-1.25/src/co*/**: + /usr/share/go-1.25/src/crypto/**: + /usr/share/go-1.25/src/d*/**: + /usr/share/go-1.25/src/e*/**: + /usr/share/go-1.25/src/f*/**: + /usr/share/go-1.25/src/go.mod: + /usr/share/go-1.25/src/go.sum: + /usr/share/go-1.25/src/go/**: + /usr/share/go-1.25/src/h*/**: + /usr/share/go-1.25/src/im*/**: + /usr/share/go-1.25/src/ind*/**: + /usr/share/go-1.25/src/internal/a*/**: + /usr/share/go-1.25/src/internal/bi*/**: + /usr/share/go-1.25/src/internal/buildcfg/c*: + /usr/share/go-1.25/src/internal/buildcfg/e*: + /usr/share/go-1.25/src/internal/by*/**: + /usr/share/go-1.25/src/internal/c*/**: + /usr/share/go-1.25/src/internal/d*/**: + /usr/share/go-1.25/src/internal/e*/**: + /usr/share/go-1.25/src/internal/f*/**: + /usr/share/go-1.25/src/internal/g*/**: + /usr/share/go-1.25/src/internal/i*/**: + /usr/share/go-1.25/src/internal/l*/**: + /usr/share/go-1.25/src/internal/m*/**: + /usr/share/go-1.25/src/internal/n*/**: + /usr/share/go-1.25/src/internal/o*/**: + /usr/share/go-1.25/src/internal/p*/**: + /usr/share/go-1.25/src/internal/ra*/**: + /usr/share/go-1.25/src/internal/re*/**: + /usr/share/go-1.25/src/internal/ro*/**: + /usr/share/go-1.25/src/internal/runtime/a*/**: + /usr/share/go-1.25/src/internal/runtime/c*/**: + /usr/share/go-1.25/src/internal/runtime/e*/**: + /usr/share/go-1.25/src/internal/runtime/g*/**: + /usr/share/go-1.25/src/internal/runtime/m*/**: + /usr/share/go-1.25/src/internal/runtime/st*/**: + /usr/share/go-1.25/src/internal/runtime/sys/c*: + /usr/share/go-1.25/src/internal/runtime/sys/d*: + /usr/share/go-1.25/src/internal/runtime/sys/e*: + /usr/share/go-1.25/src/internal/runtime/sys/i*: + /usr/share/go-1.25/src/internal/runtime/sys/n*: + /usr/share/go-1.25/src/internal/runtime/sys/s*: + /usr/share/go-1.25/src/internal/runtime/sysc*/**: + /usr/share/go-1.25/src/internal/runtime/w*/**: + /usr/share/go-1.25/src/internal/s*/**: + /usr/share/go-1.25/src/internal/t*/**: + /usr/share/go-1.25/src/internal/u*/**: + /usr/share/go-1.25/src/internal/x*/**: + /usr/share/go-1.25/src/internal/z*/**: + /usr/share/go-1.25/src/io*/**: + /usr/share/go-1.25/src/it*/**: + /usr/share/go-1.25/src/l*/**: + /usr/share/go-1.25/src/m*/**: + /usr/share/go-1.25/src/n*/**: + /usr/share/go-1.25/src/o*/**: + /usr/share/go-1.25/src/p*/**: + /usr/share/go-1.25/src/re*/**: + /usr/share/go-1.25/src/runtime/**.S: + /usr/share/go-1.25/src/runtime/**.c: + /usr/share/go-1.25/src/runtime/**.h: + /usr/share/go-1.25/src/runtime/**.s: + /usr/share/go-1.25/src/runtime/*.go: + /usr/share/go-1.25/src/runtime/*.py: + /usr/share/go-1.25/src/runtime/Makefile: + /usr/share/go-1.25/src/runtime/a*/**: + /usr/share/go-1.25/src/runtime/c*/**: + /usr/share/go-1.25/src/runtime/d*/**: + # /usr/share/go-1.25/src/runtime/internal/st*/**: + # /usr/share/go-1.25/src/runtime/internal/w*/**: + /usr/share/go-1.25/src/runtime/m*/**: + /usr/share/go-1.25/src/runtime/p*/**: + /usr/share/go-1.25/src/runtime/r*/**: + /usr/share/go-1.25/src/runtime/t*/**: + /usr/share/go-1.25/src/s*/**: + /usr/share/go-1.25/src/te*/**: + /usr/share/go-1.25/src/time/*.go: + /usr/share/go-1.25/src/time/te*/**: + /usr/share/go-1.25/src/time/tzdata/tzdata.go: + /usr/share/go-1.25/src/u*/**: + /usr/share/go-1.25/src/v*/**: + /usr/share/go-1.25/src/w*/**: + /usr/share/go-1.25/test/**: + + api: + contents: + /usr/share/go-1.25/api/*.txt: + + bash-scripts: + essential: + - bash_bins + - binutils_linker + # TODO: Include binutils-${ARCH_TRIPLET}_loader as well. + - coreutils_bins + - grep_bins + contents: + /usr/share/go-1.25/src/all.bash: + /usr/share/go-1.25/src/bootstrap.bash: + /usr/share/go-1.25/src/buildall.bash: + /usr/share/go-1.25/src/clean.bash: + /usr/share/go-1.25/src/cmp.bash: + /usr/share/go-1.25/src/make.bash: + /usr/share/go-1.25/src/race.bash: + /usr/share/go-1.25/src/run.bash: + + libs: + essential: + - bash_bins + - coreutils_bins + - make_bins + contents: + /usr/share/go-1.25/lib/fips140/Makefile: + /usr/share/go-1.25/lib/fips140/fips140.sum: + /usr/share/go-1.25/lib/fips140/inprocess.txt: + /usr/share/go-1.25/lib/fips140/v1.0.0.zip: + /usr/share/go-1.25/lib/time/mkzip.go: + /usr/share/go-1.25/lib/time/update.bash: + /usr/share/go-1.25/lib/time/zoneinfo.zip: + /usr/share/go-1.25/lib/wasm/*: + + copyright: + contents: + /usr/share/doc/golang-1.25-src/copyright: diff --git a/slices/golang-1.25.yaml b/slices/golang-1.25.yaml new file mode 100644 index 000000000..0579bf3c2 --- /dev/null +++ b/slices/golang-1.25.yaml @@ -0,0 +1,15 @@ +package: golang-1.25 + +essential: + - golang-1.25_copyright + +slices: + core: + essential: + # Note: Package golang-1.25-go is not available on i386. + - golang-1.25-go_core + - golang-1.25-src_src-with-tests + + copyright: + contents: + /usr/share/doc/golang-1.25/copyright: diff --git a/slices/golang-go.yaml b/slices/golang-go.yaml index 33a6cd708..38a014ac4 100644 --- a/slices/golang-go.yaml +++ b/slices/golang-go.yaml @@ -6,15 +6,15 @@ essential: slices: core: essential: - - golang-1.24-go_core + - golang-1.25-go_core contents: - /usr/bin/go: # Symlink to ../lib/go-1.24/bin/go - /usr/bin/gofmt: # Symlink to ../lib/go-1.24/bin/gofmt - /usr/lib/go: # Symlink to ../share/go-1.24 + /usr/bin/go: # Symlink to ../lib/go-1.25/bin/go + /usr/bin/gofmt: # Symlink to ../lib/go-1.25/bin/gofmt + /usr/lib/go: # Symlink to ../share/go-1.25 cgo-tools: essential: - - golang-1.24-go_cgo-tools + - golang-1.25-go_cgo-tools copyright: contents: diff --git a/slices/golang-src.yaml b/slices/golang-src.yaml index 75a0a2cb5..83e936a68 100644 --- a/slices/golang-src.yaml +++ b/slices/golang-src.yaml @@ -6,9 +6,9 @@ essential: slices: src-with-tests: essential: - - golang-1.24-src_src-with-tests + - golang-1.25-src_src-with-tests contents: - /usr/share/go: # Symlink to go-1.24 + /usr/share/go: # Symlink to go-1.25 copyright: contents: diff --git a/slices/golang.yaml b/slices/golang.yaml index 783e581ce..5ccc56ece 100644 --- a/slices/golang.yaml +++ b/slices/golang.yaml @@ -11,7 +11,7 @@ slices: cgo-support: essential: - - golang-1.24-go_cgo-tools + - golang-1.25-go_cgo-tools - golang_core copyright: diff --git a/tests/spread/integration/golang-1.24-go/test_build-tools.sh b/tests/spread/integration/golang-1.24-go/test_build-tools.sh deleted file mode 100644 index 3628c4e31..000000000 --- a/tests/spread/integration/golang-1.24-go/test_build-tools.sh +++ /dev/null @@ -1,7 +0,0 @@ -[ -n "${rootfs}" ] || { echo "rootfs not set"; exit 1; } -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool asm -V -(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool buildid 2>&1 || true) | grep "usage" -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool compile -V -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool link -V -(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool pack --help 2>&1 || true) | grep "Usage" -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool vet -V diff --git a/tests/spread/integration/golang-1.24-go/test_cgo-tools.sh b/tests/spread/integration/golang-1.24-go/test_cgo-tools.sh deleted file mode 100644 index b67d3c237..000000000 --- a/tests/spread/integration/golang-1.24-go/test_cgo-tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool cgo -V -cp ../golang/hello/cmd/hello_cgo/main_cgo.go "${rootfs}/main_cgo.go" -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool cgo main_cgo.go -grep -q "hello_from_c" "${rootfs}/_obj/_cgo_.o" diff --git a/tests/spread/integration/golang-1.24-go/test_debug-tools.sh b/tests/spread/integration/golang-1.24-go/test_debug-tools.sh deleted file mode 100644 index 48e225d65..000000000 --- a/tests/spread/integration/golang-1.24-go/test_debug-tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool fix --help 2>&1 || true) | grep "usage" -(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool nm --help 2>&1 || true) | grep "usage" -(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool objdump --help 2>&1 || true) | grep "usage" -(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool trace --help 2>&1 || true) | grep "Usage" diff --git a/tests/spread/integration/golang-1.24-go/test_dist-tools.sh b/tests/spread/integration/golang-1.24-go/test_dist-tools.sh deleted file mode 100644 index cf9b99e1c..000000000 --- a/tests/spread/integration/golang-1.24-go/test_dist-tools.sh +++ /dev/null @@ -1,2 +0,0 @@ -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool dist version -(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool distpack --help 2>&1 || true) | grep "usage" diff --git a/tests/spread/integration/golang-1.24-go/test_doc-tools.sh b/tests/spread/integration/golang-1.24-go/test_doc-tools.sh deleted file mode 100644 index acefa49ab..000000000 --- a/tests/spread/integration/golang-1.24-go/test_doc-tools.sh +++ /dev/null @@ -1 +0,0 @@ -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool doc help diff --git a/tests/spread/integration/golang-1.24-go/test_profiling-tools.sh b/tests/spread/integration/golang-1.24-go/test_profiling-tools.sh deleted file mode 100644 index 533a39805..000000000 --- a/tests/spread/integration/golang-1.24-go/test_profiling-tools.sh +++ /dev/null @@ -1,2 +0,0 @@ -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool addr2line --help -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool pprof --help diff --git a/tests/spread/integration/golang-1.24-go/test_testing-tools.sh b/tests/spread/integration/golang-1.24-go/test_testing-tools.sh deleted file mode 100644 index f251e630c..000000000 --- a/tests/spread/integration/golang-1.24-go/test_testing-tools.sh +++ /dev/null @@ -1,3 +0,0 @@ -(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool covdata --help 2>&1 || true) | grep "usage" -chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool cover -V -(chroot "${rootfs}" /usr/lib/go-1.24/bin/go tool test2json --help 2>&1 || true) | grep "usage" diff --git a/tests/spread/integration/golang-1.24-go/shared/epilogue.sh b/tests/spread/integration/golang-1.25-go/shared/epilogue.sh similarity index 100% rename from tests/spread/integration/golang-1.24-go/shared/epilogue.sh rename to tests/spread/integration/golang-1.25-go/shared/epilogue.sh diff --git a/tests/spread/integration/golang-1.24-go/shared/prologue.sh b/tests/spread/integration/golang-1.25-go/shared/prologue.sh similarity index 83% rename from tests/spread/integration/golang-1.24-go/shared/prologue.sh rename to tests/spread/integration/golang-1.25-go/shared/prologue.sh index 449c3a6ed..a42cd1495 100644 --- a/tests/spread/integration/golang-1.24-go/shared/prologue.sh +++ b/tests/spread/integration/golang-1.25-go/shared/prologue.sh @@ -12,7 +12,7 @@ echo "Unsupported architecture: ${arch}" exit 1 fi -rootfs="$(install-slices --arch "${chisel_arch}" golang-1.24-go_${SLICE} golang-1.24-go_minimal)" +rootfs="$(install-slices --arch "${chisel_arch}" golang-1.25-go_${SLICE} golang-1.25-go_minimal)" # we need dev/sys mounted for some of them mkdir "${rootfs}"/dev diff --git a/tests/spread/integration/golang-1.24-go/task.yaml b/tests/spread/integration/golang-1.25-go/task.yaml similarity index 73% rename from tests/spread/integration/golang-1.24-go/task.yaml rename to tests/spread/integration/golang-1.25-go/task.yaml index 0dd54581f..33de921e0 100644 --- a/tests/spread/integration/golang-1.24-go/task.yaml +++ b/tests/spread/integration/golang-1.25-go/task.yaml @@ -1,11 +1,8 @@ -summary: Integration tests for golang-1.24-go +summary: Integration tests for golang-1.25-go variants: - build-tools - cgo-tools - - debug-tools - - dist-tools - - doc-tools - minimal - profiling-tools - testing-tools diff --git a/tests/spread/integration/golang-1.25-go/test_build-tools.sh b/tests/spread/integration/golang-1.25-go/test_build-tools.sh new file mode 100644 index 000000000..7b90e8c16 --- /dev/null +++ b/tests/spread/integration/golang-1.25-go/test_build-tools.sh @@ -0,0 +1,5 @@ +[ -n "${rootfs}" ] || { echo "rootfs not set"; exit 1; } +chroot "${rootfs}" /usr/lib/go-1.25/bin/go tool asm -V +chroot "${rootfs}" /usr/lib/go-1.25/bin/go tool compile -V +chroot "${rootfs}" /usr/lib/go-1.25/bin/go tool link -V +chroot "${rootfs}" /usr/lib/go-1.25/bin/go tool vet -V diff --git a/tests/spread/integration/golang-1.25-go/test_cgo-tools.sh b/tests/spread/integration/golang-1.25-go/test_cgo-tools.sh new file mode 100644 index 000000000..6276ecc91 --- /dev/null +++ b/tests/spread/integration/golang-1.25-go/test_cgo-tools.sh @@ -0,0 +1,4 @@ +chroot "${rootfs}" /usr/lib/go-1.25/bin/go tool cgo -V +cp ../golang/hello/cmd/hello_cgo/main_cgo.go "${rootfs}/main_cgo.go" +chroot "${rootfs}" /usr/lib/go-1.25/bin/go tool cgo main_cgo.go +grep -q "hello_from_c" "${rootfs}/_obj/_cgo_.o" diff --git a/tests/spread/integration/golang-1.24-go/test_minimal.sh b/tests/spread/integration/golang-1.25-go/test_minimal.sh similarity index 53% rename from tests/spread/integration/golang-1.24-go/test_minimal.sh rename to tests/spread/integration/golang-1.25-go/test_minimal.sh index 93f2d4ef2..590766a5b 100644 --- a/tests/spread/integration/golang-1.24-go/test_minimal.sh +++ b/tests/spread/integration/golang-1.25-go/test_minimal.sh @@ -1,2 +1,2 @@ cp ../golang/hello/cmd/hello/main.go "${rootfs}/hello.go" -chroot "${rootfs}" /usr/lib/go-1.24/bin/go run /hello.go | grep "Hello, World!" +chroot "${rootfs}" /usr/lib/go-1.25/bin/go run /hello.go | grep "Hello, World!" diff --git a/tests/spread/integration/golang-1.25-go/test_profiling-tools.sh b/tests/spread/integration/golang-1.25-go/test_profiling-tools.sh new file mode 100644 index 000000000..ec7f4ec73 --- /dev/null +++ b/tests/spread/integration/golang-1.25-go/test_profiling-tools.sh @@ -0,0 +1 @@ +(chroot "${rootfs}" /usr/lib/go-1.25/bin/go tool preprofile 2>&1 || true) | grep "usage" diff --git a/tests/spread/integration/golang-1.25-go/test_testing-tools.sh b/tests/spread/integration/golang-1.25-go/test_testing-tools.sh new file mode 100644 index 000000000..bf0196acc --- /dev/null +++ b/tests/spread/integration/golang-1.25-go/test_testing-tools.sh @@ -0,0 +1 @@ +chroot "${rootfs}" /usr/lib/go-1.25/bin/go tool cover -V diff --git a/tests/spread/integration/golang/test_all.sh b/tests/spread/integration/golang/test_all.sh index 0eb959933..feb3bda88 100644 --- a/tests/spread/integration/golang/test_all.sh +++ b/tests/spread/integration/golang/test_all.sh @@ -15,11 +15,13 @@ rootfs="$(install-slices --arch "${chisel_arch}" \ ca-certificates_data \ # for `go get` to work properly )" -find ${rootfs}/usr/share/go-1.24 -depth \( \ +find ${rootfs}/usr/share/go-1.25 -depth \( \ \( -path '*test*' \ ! -path '*src/testing*' \ ! -path '*src/internal/test*' \ - ! -path '*src/runtime/synctest*' \) -o \ + ! -path '*src/internal/synctest' \ + ! -path '*synctest.go' \ + ! -path '*synctest_o*' \) -o \ \( -path '*/testing/*' -name '*_test.go' \) \ \) -exec rm -rf {} + From 4673aabdf48c10bc67eb693f50da5e026fd7f033 Mon Sep 17 00:00:00 2001 From: zhijie-yang Date: Thu, 15 Jan 2026 16:47:00 +0100 Subject: [PATCH 3/4] chore(26.04): apply changes from code review Co-authored-by: Marcin Konowalczyk --- tests/spread/integration/golang-1.25-go/task.yaml | 3 +++ tests/spread/integration/golang/task.yaml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/tests/spread/integration/golang-1.25-go/task.yaml b/tests/spread/integration/golang-1.25-go/task.yaml index 33de921e0..e4f6627e2 100644 --- a/tests/spread/integration/golang-1.25-go/task.yaml +++ b/tests/spread/integration/golang-1.25-go/task.yaml @@ -7,6 +7,9 @@ variants: - profiling-tools - testing-tools +environment: + GOTOOLCHAIN: local + execute: | export "SLICE=${SPREAD_VARIANT}" export "rootfs=$(bash -ex ./shared/prologue.sh)" diff --git a/tests/spread/integration/golang/task.yaml b/tests/spread/integration/golang/task.yaml index 3b854c89b..9d478fca3 100644 --- a/tests/spread/integration/golang/task.yaml +++ b/tests/spread/integration/golang/task.yaml @@ -3,4 +3,7 @@ summary: Integration tests for golang variants: - all +environment: + GOTOOLCHAIN: local + execute: bash -ex ./test_${SPREAD_VARIANT}.sh From bbd0fbe82a9835f3a88c53027152ef6888ab1663 Mon Sep 17 00:00:00 2001 From: Zhijie Yang Date: Thu, 15 Jan 2026 16:47:40 +0100 Subject: [PATCH 4/4] feat(26.04): add cgo-support --- slices/golang-1.25.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/slices/golang-1.25.yaml b/slices/golang-1.25.yaml index 0579bf3c2..9907f208d 100644 --- a/slices/golang-1.25.yaml +++ b/slices/golang-1.25.yaml @@ -10,6 +10,11 @@ slices: - golang-1.25-go_core - golang-1.25-src_src-with-tests + cgo-support: + essential: + - golang-1.25-go_cgo-tools + - golang-1.25_core + copyright: contents: /usr/share/doc/golang-1.25/copyright: