From cdf2e4a2fb364599f2ac186f98f35384032277f4 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 22 Jan 2026 04:06:48 +0900 Subject: [PATCH] internal/rosa: bash artifact Required by llvm unit and regression tests. Signed-off-by: Ophestra --- internal/rosa/gnu.go | 27 +++++++++++++++++++++++++++ internal/rosa/llvm.go | 2 ++ 2 files changed, 29 insertions(+) diff --git a/internal/rosa/gnu.go b/internal/rosa/gnu.go index 1ee76b8..b208718 100644 --- a/internal/rosa/gnu.go +++ b/internal/rosa/gnu.go @@ -139,3 +139,30 @@ make DESTDIR=/work install pkg.TarGzip, ))) } + +// NewBash returns a [pkg.Artifact] containing an installation of GNU Bash. +func (t Toolchain) NewBash() pkg.Artifact { + const ( + version = "5.3" + checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq" + ) + return t.New("bash-"+version, []pkg.Artifact{ + t.NewMake(), + }, nil, nil, ` +cd /usr/src/bash +test_disable() { chmod +w "$2" && echo "$1" > "$2"; } + +cd "$(mktemp -d)" +/usr/src/bash/configure \ + --prefix=/system \ + --build="${ROSA_TRIPLE}" \ + --without-bash-malloc +make "-j$(nproc)" check +make DESTDIR=/work install +`, pkg.Path(AbsUsrSrc.Append("bash"), true, pkg.NewHTTPGetTar( + nil, + "https://ftp.gnu.org/gnu/bash/bash-"+version+".tar.gz", + mustDecode(checksum), + pkg.TarGzip, + ))) +} diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go index 898c92c..fd31d4b 100644 --- a/internal/rosa/llvm.go +++ b/internal/rosa/llvm.go @@ -129,6 +129,8 @@ func (t Toolchain) newLLVM(variant string, attr *llvmAttr) pkg.Artifact { t.NewPython(), t.NewPerl(), t.NewDiffutils(), + t.NewBash(), + t.NewKernelHeaders(), } if t == toolchainStage3 {