Go 1.22 requires Go 1.20 or newer for bootstrapping. gccgo only
supports Go 1.18, therefore we cannot use it for bootstrapping
Go 1.22 directly and would need to package intermediate versions
of Go. Since our current packaging setup does not easily allow us
to maintain multiple versions of a package, and since it does not
seem likely that gccgo will support newer Go versions in the future,
this does not seam feasible.
Therefore, this commits abandons the much loved gccgo based bootstrap
and switches back to bootstrapping Go manually from an existing Alpine
installation using the bootstrap.sh script.
Fixes#15602
This reverts commit 3516e6e5e7.
It can be handy in situations when we build an image
and specify more than a couple of apk repositories.
Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@bell-sw.com>
Remove nomodeset for all release images for consistency
We have serial console enabled so we don't need to be able to run qemu
with -curses, which needed nomodeset.
With changes to the "random" code in recent kernels there seems little
need for haveged in general. This script adds the haveged package to
Alpine images but its init.d script never appears to be enabled
anywhere (neither in the image nor by setup-alpine) and so the
package's presence in the image appears unnecessary.
requested on irc- this makes decompressing data more convenient
starting only from an extended iso in certain usecases of having
additional images during installation.
increases image size by ~1.7MB
they need updating prior to introducing a new architecture, otherwise
the attempt by bootstrap to pull in musl headers via musl-dev prior
to GCC stage 2 build will fail with a misleading error about a missing
directory
Previously, community/go depended on itself for compiler-bootstrapping
purposes. This approach has several issue which are were further
discussed on the ML some time ago [1]. By bootstrapping community/go
using gcc-go we can make the bootstrap path more transparent and also
ease bootstrapping new builder via bootstrap.sh as community/go no
longer needs to be cross-compiled from an existing Go installation.
As such, this commit also removes community/go from the bootstrap.sh.
There is nothing on the bootstrap path that depends on it, hence it
is fine that a bootstrapped/cross-compiled gcc doesn't have LANG_GO
support. Go was only added to bootstrap.sh previously in commit
f5c4b29891 due to the cross-compilation
requirement. This commit also removes the cross-compilation related
quirks from the Go APKBUILD.
I will further enhance the Go bootstrap setup by having both
community/go and gcc-go provide a virtual go-bootstrap package. Thereby
allowing compilation with either gcc-go or a prior community/go
installation.
[1]: https://lists.alpinelinux.org/~alpine/devel/%3C33KG0XO61I4IL.2Z7RTAZ5J3SY6%408pit.net%3E
The issue is that 'abuild-apk' creates root-owned files in the workdir,
and they cannot be removed later without root privileges.
'abuild-apk' is called only with 2 commands (add --initdb, update),
and in the context of the script they don't seem to be requiring
root privileges, so I'm proposing to substitute the calls with 'apk'.
This will automatically resolve the issue mentioned above.
Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@bell-sw.com>