aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/perl.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-01-21 21:33:12 +0900
committerOphestra <cat@gensokyo.uk>2026-01-21 21:33:12 +0900
commit349d8693bf696c37c33bd50dd201614741ad5b8a (patch)
tree2d110ff5dc0d89863058081019b9d27063fa3f6e /internal/rosa/perl.go
parente88ae87e505396724f5e953f2d4440043e0069a0 (diff)
internal/rosa: perl artifact
This runs without tests for now, will be enabled after some toolchain patches. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/perl.go')
-rw-r--r--internal/rosa/perl.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/internal/rosa/perl.go b/internal/rosa/perl.go
new file mode 100644
index 00000000..169a64d1
--- /dev/null
+++ b/internal/rosa/perl.go
@@ -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,
+ )))
+}