aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-02-16 01:20:52 +0900
committerOphestra <cat@gensokyo.uk>2026-02-16 01:20:52 +0900
commit93911d60150ed55b8ec2afed75726779490ace12 (patch)
tree2b5d2dfefd313f108d86fa248e5e7fec9cdb21e7 /internal
parentbb097536d4b954d95a4b5239544c615a5eb76825 (diff)
internal/rosa: pcre2 artifact
Required by GLib. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal')
-rw-r--r--internal/rosa/all.go2
-rw-r--r--internal/rosa/pcre2.go33
2 files changed, 35 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 51d15760..3c087e5d 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -55,6 +55,7 @@ const (
NSSCACert
Ninja
OpenSSL
+ PCRE2
Packaging
Patch
Perl
@@ -160,6 +161,7 @@ func ResolveName(name string) (p PArtifact, ok bool) {
"nss-cacert": NSSCACert,
"ninja": Ninja,
"openssl": OpenSSL,
+ "pcre2": PCRE2,
"packaging": Packaging,
"patch": Patch,
"perl": Perl,
diff --git a/internal/rosa/pcre2.go b/internal/rosa/pcre2.go
new file mode 100644
index 00000000..406129a9
--- /dev/null
+++ b/internal/rosa/pcre2.go
@@ -0,0 +1,33 @@
+package rosa
+
+import (
+ "hakurei.app/internal/pkg"
+)
+
+func (t Toolchain) newPCRE2() pkg.Artifact {
+ const (
+ version = "10.47"
+ checksum = "IbC24vVayju6nB9EhrBPSDexk22wDecdpyrjgC3nCZXkwTnUjq4CD2q5sopqu6CW"
+ )
+ return t.NewViaMake("pcre2", version, pkg.NewHTTPGetTar(
+ nil, "https://github.com/PCRE2Project/pcre2/releases/download/"+
+ "pcre2-"+version+"/pcre2-"+version+".tar.bz2",
+ mustDecode(checksum),
+ pkg.TarBzip2,
+ ), &MakeAttr{
+ ScriptEarly: `
+# RunGrepTest expects /bin/echo
+ln -s ../system/bin/toybox /bin/echo
+`,
+
+ Configure: [][2]string{
+ {"enable-jit"},
+ {"enable-pcre2-8"},
+ {"enable-pcre2-16"},
+ {"enable-pcre2-32"},
+ },
+ },
+ t.Load(Diffutils),
+ )
+}
+func init() { artifactsF[PCRE2] = Toolchain.newPCRE2 }