aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-01-26 03:47:42 +0900
committerOphestra <cat@gensokyo.uk>2026-01-26 03:47:42 +0900
commitfecb963e85fca988e9e1ce4fb66ceab0072557ee (patch)
treed31ee6b75842557970014988bade0b0c70b4be73
parentcd9da57f206e697f1cd4f357feaa8bb0b808766a (diff)
internal/rosa: libxml2 artifact
Required by wayland. Release tarball is xz only, unfortunately. 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/libxml2.go34
3 files changed, 37 insertions, 0 deletions
diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go
index 43ae72c4..26974925 100644
--- a/cmd/mbf/main.go
+++ b/cmd/mbf/main.go
@@ -170,6 +170,8 @@ func main() {
p = rosa.KernelHeaders
case "libexpat":
p = rosa.Libexpat
+ case "libxml2":
+ p = rosa.Libxml2
case "libffi":
p = rosa.Libffi
case "m4":
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 76d4c3b0..330d25a0 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -22,6 +22,7 @@ const (
KernelHeaders
Libexpat
Libffi
+ Libxml2
M4
Make
Meson
diff --git a/internal/rosa/libxml2.go b/internal/rosa/libxml2.go
new file mode 100644
index 00000000..d2654a29
--- /dev/null
+++ b/internal/rosa/libxml2.go
@@ -0,0 +1,34 @@
+package rosa
+
+import (
+ "strings"
+
+ "hakurei.app/internal/pkg"
+)
+
+func (t Toolchain) newLibxml2() pkg.Artifact {
+ const (
+ version = "2.15.1"
+ checksum = "pYzAR3cNrEHezhEMirgiq7jbboLzwMj5GD7SQp0jhSIMdgoU4G9oU9Gxun3zzUIU"
+ )
+ return t.New("libxml2-"+version, []pkg.Artifact{
+ t.Load(Make),
+ }, nil, nil, `
+cd /usr/src/
+tar xf libxml2.tar.xz
+mv libxml2-`+version+` libxml2
+
+cd "$(mktemp -d)"
+/usr/src/libxml2/configure \
+ --prefix=/system \
+ --build="${ROSA_TRIPLE}"
+make "-j$(nproc)" check
+make DESTDIR=/work install
+`, pkg.Path(AbsUsrSrc.Append("libxml2.tar.xz"), false, pkg.NewHTTPGet(
+ nil, "https://download.gnome.org/sources/libxml2/"+
+ strings.Join(strings.Split(version, ".")[:2], ".")+
+ "/libxml2-"+version+".tar.xz",
+ mustDecode(checksum),
+ )))
+}
+func init() { artifactsF[Libxml2] = Toolchain.newLibxml2 }