aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-01-26 03:12:50 +0900
committerOphestra <cat@gensokyo.uk>2026-01-26 03:15:25 +0900
commitcd9da57f206e697f1cd4f357feaa8bb0b808766a (patch)
tree7bee74a04cbd5782f41225db9b07a73370f77283
parentc6a95f5a6a7a91b35dfff29991ecf4b03719bc56 (diff)
internal/rosa: libexpat artifact
Required by wayland. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--cmd/mbf/main.go2
-rw-r--r--internal/rosa/all.go1
-rw-r--r--internal/rosa/libexpat.go33
3 files changed, 36 insertions, 0 deletions
diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go
index 61a78cb0..43ae72c4 100644
--- a/cmd/mbf/main.go
+++ b/cmd/mbf/main.go
@@ -168,6 +168,8 @@ func main() {
p = rosa.Go
case "kernel-headers":
p = rosa.KernelHeaders
+ case "libexpat":
+ p = rosa.Libexpat
case "libffi":
p = rosa.Libffi
case "m4":
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 2401e582..76d4c3b0 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -20,6 +20,7 @@ const (
Git
Go
KernelHeaders
+ Libexpat
Libffi
M4
Make
diff --git a/internal/rosa/libexpat.go b/internal/rosa/libexpat.go
new file mode 100644
index 00000000..e5317d86
--- /dev/null
+++ b/internal/rosa/libexpat.go
@@ -0,0 +1,33 @@
+package rosa
+
+import (
+ "strings"
+
+ "hakurei.app/internal/pkg"
+)
+
+func (t Toolchain) newLibexpat() pkg.Artifact {
+ const (
+ version = "2.7.3"
+ checksum = "GmkoD23nRi9cMT0cgG1XRMrZWD82UcOMzkkvP1gkwSFWCBgeSXMuoLpa8-v8kxW-"
+ )
+ return t.New("libexpat-"+version, []pkg.Artifact{
+ t.Load(Make),
+ t.Load(Bash),
+ }, nil, nil, `
+cd "$(mktemp -d)"
+/usr/src/libexpat/configure \
+ --prefix=/system \
+ --build="${ROSA_TRIPLE}"
+make "-j$(nproc)" check
+make DESTDIR=/work install
+`, pkg.Path(AbsUsrSrc.Append("libexpat"), false, pkg.NewHTTPGetTar(
+ nil,
+ "https://github.com/libexpat/libexpat/releases/download/"+
+ "R_"+strings.ReplaceAll(version, ".", "_")+"/"+
+ "expat-"+version+".tar.bz2",
+ mustDecode(checksum),
+ pkg.TarBzip2,
+ )))
+}
+func init() { artifactsF[Libexpat] = Toolchain.newLibexpat }