An error occurred fetching the project authors.
- 28 Dec, 2023 1 commit
-
-
Levin Zimmermann authored
Go1.21 already has the fifth minor revision (released 2023-12-05) and should therefore already be sufficiently stable. Furthermore we need it to fix a bug in a NEO/go dependency [1]. Please find all details in the official release note: https://go.dev/doc/go1.21 It was released on 2023-08-08 [2]. Due to the go promise of compatibility most software should still compile without any problems. In golang < 1.21 we needed to patch golang to fix https://github.com/golang/go/issues/42525. In golang 1.21 we still need to apply a fix, but can't apply the old patch because the code changed. In golang > 1.21 this problem is already fixed with https://go-review.googlesource.com/c/go/+/520055. Because of https://github.com/golang/go/commit/092671423cd95eaa6df93eb29442fef41504d097 'TestUnshareMountNameSpace' fails on golang 1.21 [3]. In golang 1.20 this test was skipped [4]. To fix this failure the additional patch 'skip-unshare-mount-test.patch' has been added. --- [1] wendelin.core!22 (comment 195769)] [2] https://go.dev/doc/devel/release [3] --- FAIL: TestUnshareMountNameSpace (0.18s) exec_linux_test.go:243: unshare failed: exit status 2 unshare: mount /tmp/TestUnshareMountNameSpace2210137852/001 failed: 0x1 [4] === RUN TestUnshareMountNameSpace exec_linux_test.go:333: kernel prohibits unshare in unprivileged process, unless using user namespace — SKIP: TestUnshareMountNameSpace (0.00s) /reviewed-by @kirr and @jerome /reviewed-on !1494
-
- 31 Aug, 2023 1 commit
-
-
Thomas Gambier authored
we should definitely get rid of this old golang version by upgrading gitlab
-
- 14 Aug, 2023 2 commits
-
-
Levin Zimmermann authored
Since go1.18 is no longer supported, we should switch to a newer version (("Each major Go release is supported until there are two newer major releases" [1]). [1] https://go.dev/doc/devel/release /reviewed-by @kirr /reviewed-on nexedi/slapos!1417
-
Levin Zimmermann authored
We should upgrade to Go 1.20, because Go 1.18 is already no longer supported. ("Each major Go release is supported until there are two newer major releases" [1]). Go 1.20 is the incremental improvement for earlier go 1.19 release. We skip Go 1.19, because it's also unsupported as soon as Go 1.21 is released (this is expected to happen in one month [2]). Please find all details in the official release note: https://go.dev/doc/go1.20 It was released on 2023-02-01 [1]. Due to the go promise of compatibility most software should still compile without any problems. We need to differentiate between go before 1.19 and go after 1.19, because go before 1.19 needs TestSCMCredentials patch, while starting from go 1.19 this patch has been applied upstream [3]. [1] https://go.dev/doc/devel/release [2] https://tip.golang.org/doc/go1.21 [3] https://github.com/golang/go/commit/f839aaa22b66bc556fac72f7396082212d2ef45d /reviewed-by @kirr /reviewed-on nexedi/slapos!1417
-
- 11 Jan, 2023 1 commit
-
-
Kirill Smelkov authored
See merge request nexedi/slapos!1317
-
- 30 Dec, 2022 2 commits
-
-
Levin Zimmermann authored
Go1.18 is the next stable go release. There is already Go1.19 (released 2022-08-02), but we incrementally increase versions. For Go1.18 there are already many bug fix releases (last one 2022-12-06) which gives it a more stable/mature impression. /reviewed-on nexedi/slapos!1305
-
Levin Zimmermann authored
Go 1.18 is the incremental improvement for earlier go 1.17 release. Is "is a significant release, including changes to the language, implementation of the toolchain, runtime, and libraries". Please find all details in the official release note: https://go.dev/doc/go1.18 It was released on 2022-03-15. Due to the go promise of compatibility most software should still compile without any problems. /reviewed-on nexedi/slapos!1305
-
- 20 Dec, 2022 1 commit
-
-
Levin Zimmermann authored
Going from 1.17.6 to 1.17.13 gives us security and bug fixes. See at official changelog for details: https://go.dev/doc/devel/release#go1.17.minor Passed tests: https://erp5js.nexedi.net/#/test_result_module/20221219-8E2857F /reviewed at nexedi/slapos!1304 /reviewed-by @kirr
-
- 12 May, 2022 1 commit
-
-
Kirill Smelkov authored
@tomo reports that parts/golang1.17/pkg/obj/go-build takes ~ 1GB which makes it wasteful if we want to upload result of compilation to shacache. It turns out we can drop that particular build cache completely, because it is used only during the build and test of Go itself and its standard library. And when Go is installed it will be another - "user" build cache - that will be used to maintain and reuse build artifacts. For the reference: in SlapOS that latter "user" build cache is located inside go.work/ -> Purge internal build cache after compilation is over. Size of parts/golang1.17 before and after hereby patch: before: 1.6G after: 447M See also related discussion in nexedi/slapos!929 (comment 128379) /reviewed-by @tomo, @jerome /reviewed-on nexedi/slapos!1169
-
- 28 Apr, 2022 1 commit
-
-
Thomas Leymonerie authored
Use slapos.recipe.template instead of slapos.recipe.template if possible Harmonize template keys : rendered -> output template -> url template = inline: -> inline = Delete "mode" key See merge request nexedi/slapos!1151
-
- 19 Jan, 2022 1 commit
-
-
Kirill Smelkov authored
Going Go1.17.3 -> Go1.17.6 brings in fixes to compiler, runtime and stdlib including security fixes to syscall and net/http packages. https://go.dev/doc/devel/release#go1.17.minor Tested via: - SlapOS.SoftwareReleases.IntegrationTest.Python2 (https://nexedijs.erp5.net/#/test_result_module/20220118-7422B39B), and - SlapOS.SoftwareReleases.IntegrationTest.Python3 (https://nexedijs.erp5.net/#/test_result_module/20220118-30B9FCE8) /cc @luke, @jerome, @alain.takoudjou, @xavier_thompson @tomo, @lu.xu /reviewed-on nexedi/slapos!1116
-
- 18 Jan, 2022 1 commit
-
-
Kirill Smelkov authored
Going Go1.16.10 -> Go1.16.13 brings in fixes to compiler, runtime and stdlib including security fixes to syscall and net/http packages. https://go.dev/doc/devel/release#go1.16.minor Tested manually via adjusted helloworld because nothing intree currently uses Go1.16.
-
- 10 Dec, 2021 1 commit
-
-
Kirill Smelkov authored
If we enter user namespace via regular unshare without help from SUID newuidmap/newgidmap, all supplementary groups are mapped to -1. As the result when Go test tries to chown to a supplementary group, it gets EINVAL: https://github.com/golang/go/issues/42525 -> work it around with patch to skip this chown tests. A more proper, longer-term fix would be to fix Linux kernel to allow writes to /proc/self/gid_map to setup mapping not only to original gid, but to all original supplementary groups as well here: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/user_namespace.c?id=v5.16-rc4-0-g0fcfb00b28c0#n1143 this fix, even if accepted by upstream, would be long to be waited for to propagate to distribution kernels that we currently use. So we go with this workaround for now. -------- Another patch is to fix the following TestSCMCredentials failure: === RUN TestSCMCredentials creds_test.go:81: WriteMsgUnix failed with invalid argument, want EPERM --- FAIL: TestSCMCredentials (0.00s) There the code tries to send uid0/gid0 credentials from non-zero uid and expects EPERM reject from kernel. However under `unshare -Umc` uid0/gid0 are not mapped to anywhere and so implicitly map to -1 and are rejected with EINVAL by the kernel. /reviewed-by @jerome /reviewed-on nexedi/slapos!1095
-
- 02 Dec, 2021 1 commit
-
-
Julien Muchembled authored
-
- 12 Nov, 2021 1 commit
-
-
Kirill Smelkov authored
Go1.17 is current stable Go release which, besides other improvements, compared to Go1.16 generates code that runs 5-10-15% faster(*): https://go.dev/blog/go1.17 It makes sense to use that version by default. Cc'ing people who might be affected: - caddy (@luke) - hugo (@lu.xu) - repman, restic (@alain.takoudjou, @jerome) - galene (@tomo, @alain.takoudjou) - gitlab (@alain.takoudjou, @jerome, @lpgeneau) - grafana (@jerome) - theia (@jerome, @xavier_thompson) If for some reason Go1.17 default does not work for a software, maintainer of that software release - please pin Go to Go1.16 explicitly inside that particular software-release. (*) Go blog mentions 5% speedup on the average, but it was reported that sometimes for important inner loops the speedup can be as much as 15%. /reviewed-by @jerome /reviewed-on nexedi/slapos!1082
-
- 11 Nov, 2021 2 commits
-
-
Kirill Smelkov authored
Going Go1.16.8 -> Go1.16.10 brings in fixes to compiler, runtime and stdlib including security fixes to linker, archive/zip package. https://golang.org/doc/devel/release.html#go1.16.minor Tested via: - SlapOS.SoftwareReleases.IntegrationTest.Python2 (https://nexedijs.erp5.net/#/test_result_module/20211110-4DA2B2E), and - SlapOS.SoftwareReleases.IntegrationTest.Python3 (https://nexedijs.erp5.net/#/test_result_module/20211110-40489859)
-
Kirill Smelkov authored
Going Go1.17.1 -> Go1.17.3 brings in fixes to compiler, runtime and stdlib including security fixes to linker and archive/zip package. https://golang.org/doc/devel/release.html#go1.17.minor Tested via: - SlapOS.SoftwareReleases.IntegrationTest.Python2 (https://nexedijs.erp5.net/#/test_result_module/20211110-4DA2B2E), and - SlapOS.SoftwareReleases.IntegrationTest.Python3 (https://nexedijs.erp5.net/#/test_result_module/20211110-40489859)
-
- 10 Sep, 2021 3 commits
-
-
Kirill Smelkov authored
Even if we don't use swig in our go projects, if hosting environment has swig, but incorrectly installed, then Go build will fail as: --- FAIL: TestScript (0.03s) --- FAIL: TestScript/list_swigcxx (0.46s) script_test.go:252: # go list should not report SWIG-generated C++ files in CompiledGoFiles. (0.001s) # CompiledGoFiles should contain 4 files: # a.go # a.swigcxx.go # _cgo_gotypes.go # a.cgo1.go (0.421s) > go list -f '{{.CompiledGoFiles}}' -compiled=true example/swig [stdout] [] [stderr] # example/swig :1: Error: Unable to find 'swig.swg' :3: Error: Unable to find 'go.swg' [exit status 2] FAIL: testdata/script/list_swigcxx.txt:12: unexpected command failure Such broken environment, in particular, is present on our testnodes, because there swig program is being included into slapos-node package, slapos command includes it into $PATH for spawned programs https://lab.nexedi.com/nexedi/slapos/blob/99cf4bfd/component/slapos/buildout.cfg#L22-30 https://lab.nexedi.com/nexedi/slapos/blob/99cf4bfd/component/slapos/buildout.cfg#L74-88 but the swig binary itself is configured to look into its supporting files in the wrong place: slapuser91@vifibcloud-rapidspace-hosting-007:~/t/swig$ /opt/slapos/parts/swig/bin/swig -swiglib /usr/src/packages/BUILD/slapos/build/opt/slapos/parts/swig/share/swig/3.0.10 slapuser91@vifibcloud-rapidspace-hosting-007:~/t/swig$ ll /usr/src/packages/BUILD/slapos/build/opt/slapos/parts/swig/share/swig/3.0.10 ls: cannot access '/usr/src/packages/BUILD/slapos/build/opt/slapos/parts/swig/share/swig/3.0.10': No such file or directory which leads to SWIG being broken: slapuser91@vifibcloud-rapidspace-hosting-007:~/t/swig$ /opt/slapos/parts/swig/bin/swig -v -go -intgosize 64 a.swigcxx Language subdirectory: go Search paths: ./ ./swig_lib/go/ /usr/src/packages/BUILD/slapos/build/opt/slapos/parts/swig/share/swig/3.0.10/go/ ./swig_lib/ /usr/src/packages/BUILD/slapos/build/opt/slapos/parts/swig/share/swig/3.0.10/ Preprocessing... :1: Error: Unable to find 'swig.swg' :3: Error: Unable to find 'go.swg' -> Fix it by building SWIG ourselves and using that built swig to build go and in the Go environment provided to users. See "Troubleshooting" in http://www.swig.org/Release/README for details. /cc @luke, @jerome, @romain
-
Kirill Smelkov authored
Go1.17 is incremental improvement over Go1.16 with better and faster compiler, runtime, module-mode improvements and faster generated code: https://blog.golang.org/go1.17 https://golang.org/doc/go1.17 Drop support for Go1.15, as that release reached EOL and nothing currently uses it in SlapOS. Don't drop support for Go1.12 yet, as that long-ago-EOL and no longer supported Go release is still being used by software/gitlab. Remain default at Go1.16 yet. Switch helloworld to Go1.17 and test this patch on that software-release.
-
Kirill Smelkov authored
Going Go1.16.4 -> Go1.16.8 brings in fixes to compiler, runtime and stdlib including security fixes to net, crypto/tls, archive/zip, math/big, and net/http/httputil packages: https://golang.org/doc/devel/release.html#go1.16.minor Tested on helloworld SR.
-
- 28 May, 2021 2 commits
-
-
Kirill Smelkov authored
Going Go1.15.11 -> Go1.15.12 brings in fixes to compiler, runtime and stdlib including security fix to net/http package: https://golang.org/doc/devel/release.html#go1.15.minor Tested on helloworld SR (by adjusting it to use go1.15 instead of go1.16).
-
Kirill Smelkov authored
Going Go1.16.3 -> Go1.16.4 brings in fixes to compiler, runtime and stdlib including security fix to net/http package: https://golang.org/doc/devel/release.html#go1.16.minor Tested on helloworld SR.
-
- 07 Apr, 2021 2 commits
-
-
Kirill Smelkov authored
Going Go1.15.10 -> Go1.15.11 brings in fixes to compiler, runtime and stdlib: https://golang.org/doc/devel/release.html#go1.15.minor Tested on helloworld SR (by adjusting it to use go1.15 instead of go1.16).
-
Kirill Smelkov authored
Going Go1.16.2 -> Go1.16.3 brings in fixes to compiler, runtime and stdlib: https://golang.org/doc/devel/release.html#go1.16.minor Tested on helloworld SR.
-
- 25 Mar, 2021 5 commits
-
-
Thomas Gambier authored
Also remove old golang 1.13 version
-
Kirill Smelkov authored
This Go release is EOL now. Don't drop support for Go1.12 and Go1.13 yet. Even though those Go releases are also EOL since long ago, they are still being used inside SlapOS: Go1.12 - by gitlab (/cc @jerome, @alain.takoudjou) Go1.13 - by galène (/cc @tomo, @alain.takoudjou)
-
Kirill Smelkov authored
-
Kirill Smelkov authored
Going Go1.15.8 -> Go1.15.10 brings in fixes to compiler, runtime and stdlib including security fixes to archive/zip and encoding/xml: https://golang.org/doc/devel/release.html#go1.15.minor Tested on helloworld SR (by adjusting it to use go1.15 instead of go1.16).
-
Kirill Smelkov authored
Going Go1.16 -> Go1.16.2 brings in fixes to compiler, runtime and stdlib including security fixes to archive/zip and encoding/xml: https://golang.org/doc/devel/release.html#go1.16.minor Tested on helloworld SR.
-
- 10 Mar, 2021 3 commits
-
-
Jérome Perrin authored
Run this whole script in `set -e` so that if any of the go install fail buildout exit with error.
-
Jérome Perrin authored
With this new environment option to gowork section, it is possible to specify environment variables that will be set during the build, more specifically when env.sh is sourced. The implementation is a bit complex, so that the syntax is not strict and whitespace are tolerated in the definition, ie. all these should be understood: [gowork] environment = A=a B =b C= c D=d=d
-
Jérome Perrin authored
to make management of this template easier
-
- 09 Mar, 2021 1 commit
-
-
Kirill Smelkov authored
Xavier Thompson reports that when Theia is compiled inside Theia, Go fails to install with the error showing that golang14's make.bash calls `go install` to install cmd/go and other commands to the outer go.work/bin instead of inside $GOROOT_FINAL set by the build recipe. Similarly to nexedi/slapos!928 this might be to the fact that internal `go install` prioritizes $GOBIN even in the presence of set $GOROOT_FINAL. -> Don't try to fix Go itself, and make the compilation more robust by unsetting $GOBIN, so that even if that variable is set in the environment where buildout runs, it does not affect the compilation procedure. Fixes: 8eac67a5 (golang: Prepare for future GOPATH removal) Reported-on: https://www.erp5.com/group_section/forum/Go-compilation-error-P6f5WisQkc Tested-by: @xavier_thompson Reviewed-on: nexedi/slapos!932
-
- 02 Mar, 2021 3 commits
-
-
Kirill Smelkov authored
Add support for using Go modules to golang/gowork infrastructure: - Users can now request to install a module via gowork:install as. e.g. in the following example: [gowork] install = lab.nexedi.com/kirr/neo/go/...@v0.0.0-20210103165133-f3effa6c535f golang.org/x/tools/gopls@v0.4.3 ${helloweb:location}/go:./... The first two request to install programs from an external module at particular revision/version. The latter requests to install programs from locally cloned/checked-out module source. The documentation now talks only about programs, because "package installation" became unnecessary long time ago as Go toolchain uses right packages and recompiles things as needed automatically since introduction of the Go build cache in go 1.10. - The change comes accompanied by corresponding helloweb change that reworks it to a) become a module itself, and b) to use other modules - that are not explicitly cloned by buildout - so that we can be sure that module way of fetching/building things actually works. kirr/helloweb@a7c788ae - Non-module way - e.g. build via GOPATH - is still supported (because e.g. software/gitlab still uses it), but not explicitly documented and scheduled to be deprecated and removed. The reason for this is that upstream Go is going to remove support for GOPATH and leave only module-based approach in Go1.17 https://github.com/golang/go/issues/37755#issuecomment-771879911
-
Kirill Smelkov authored
Some software releases - e.g. wendelin.core - only use ${go:exe} and does not put anything into ${gowork:install}.
-
Kirill Smelkov authored
Put emphasis on that gowork defines Go workspace and explain first settings that are related to that definition. Only after that say how to use gowork.install. The reason for this is that gowork.install will become optional in the next patch.
-
- 01 Mar, 2021 2 commits
-
-
Kirill Smelkov authored
Consider a Go package that is defined via go-git-package, for example [helloweb] <= go-git-package go.importpath = lab.nexedi.com/nexedi/helloweb repository = https://lab.nexedi.com/nexedi/helloweb.git Currently, since go-git-package references ${gowork:src}, it creates helloweb -> gowork dependency. gowork, in turn, depends on gowork.goinstall, which gets list of things to install from ${gowork:install}. Currently we put only plain strings into ${gowork.install}, e.g. [gowork] install = lab.nexedi.com/nexedi/helloweb/go/... but for Go modules support and for properly expressing what depends on what, we'll want in the next patch to be able to specify something like [gowork] install = ${helloweb:location}/go:./... which will create helloweb ⇄ gowork cycle. Unfortunately buildout does not detect nor report an error for such cycles, and simply processes parts in an order, which leads to situation where e.g. helloweb was not yet cloned, but gowork.goinstall tries to `go install` it and complains "no such helloweb directory". -> Fix it by leaving gowork to use by component/golang/ users, and putting settings about where gowork directories is into underlying gowork.dir section.
-
Kirill Smelkov authored
GOPATH is going to be removed in Go1.17 (see e.g. https://github.com/golang/go/issues/37755#issuecomment-771879911). -> Prevent programs suddenly become installed into $HOME/go/bin instead of gowork/bin, and mod cache to become something like $HOME/go/... instead of being kept under gowork/ No change in behaviour for Go ≤ 1.16
-
- 26 Feb, 2021 2 commits
-
-
Kirill Smelkov authored
Go1.16 is incremental improvement over Go1.15 with better and faster compiler, runtime and module-mode improvements: https://blog.golang.org/go1.16 https://golang.org/doc/go1.16 Since this Go release switches GO111MODULE default from "auto" to "on", but we still have in-tree GOPATH-mode uses, add GO111MODULE=auto to our goenv.sh to preserve previous behaviour for now. Don't drop support for Go1.14, Go1.13, Go1.12 yet, as that no longer supported Go releases are still being used by in-tree components(*). Remain default at Go1.15 yet. Switch helloworld to Go1.16 and test this patch on that software-release. (*) theia, caddy, galene, replication-manager, restic, gitlab and grafana
-
Kirill Smelkov authored
Go1.14 is end-of-life by today as it will no longer be updated after Go1.16 was released in Feb 2021: https://golang.org/doc/devel/release.html#go1.14 https://golang.org/doc/devel/release.html#go1.16 Go1.15 is current oldstable - i.e. it is still supported and mature.
-