internal/rosa: perl artifact
All checks were successful
Test / Create distribution (push) Successful in 49s
Test / Sandbox (push) Successful in 2m34s
Test / Hakurei (push) Successful in 3m47s
Test / ShareFS (push) Successful in 3m55s
Test / Hpkg (push) Successful in 4m36s
Test / Sandbox (race detector) (push) Successful in 5m3s
Test / Hakurei (race detector) (push) Successful in 5m58s
Test / Flake checks (push) Successful in 1m43s

This runs without tests for now, will be enabled after some toolchain patches.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-01-21 21:33:12 +09:00
parent e88ae87e50
commit 349d8693bf

32
internal/rosa/perl.go Normal file
View File

@@ -0,0 +1,32 @@
package rosa
import "hakurei.app/internal/pkg"
// NewPerl returns a [pkg.Artifact] containing an installation of perl.
func (t Toolchain) NewPerl() pkg.Artifact {
const (
version = "5.42.0"
checksum = "2KR7Jbpk-ZVn1a30LQRwbgUvg2AXlPQZfzrqCr31qD5-yEsTwVQ_W76eZH-EdxM9"
)
return t.New("perl-"+version, []pkg.Artifact{
t.NewMake(),
}, nil, nil, `
chmod -R +w /usr/src/perl && cd /usr/src/perl
./Configure \
-des \
-Dprefix=/system \
-Dcc="${CC}" \
-Dcflags='--std=gnu99' \
-Dldflags="${LDFLAGS}" \
-Doptimize='-O2 -fno-strict-aliasing' \
-Duseithreads
make "-j$(nproc)" # test
make DESTDIR=/work install
`, pkg.Path(AbsUsrSrc.Append("perl"), true, pkg.NewHTTPGetTar(
nil,
"https://www.cpan.org/src/5.0/perl-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
)))
}