aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/xcb.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-01-27 02:02:49 +0900
committerOphestra <cat@gensokyo.uk>2026-01-27 02:02:49 +0900
commitc84fe632170301d417b58205d346e8fa15744fae (patch)
tree3f584d51054bbb832204863efb8383e906b770fe /internal/rosa/xcb.go
parenteb67e5e0a8821058fed782bf9c90b45c793036a5 (diff)
internal/rosa: various X artifacts
Required by xcb which is required by hakurei. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/xcb.go')
-rw-r--r--internal/rosa/xcb.go56
1 files changed, 56 insertions, 0 deletions
diff --git a/internal/rosa/xcb.go b/internal/rosa/xcb.go
new file mode 100644
index 00000000..58863567
--- /dev/null
+++ b/internal/rosa/xcb.go
@@ -0,0 +1,56 @@
+package rosa
+
+import "hakurei.app/internal/pkg"
+
+func (t Toolchain) newXCBProto() pkg.Artifact {
+ const (
+ version = "1.17.0"
+ checksum = "_NtbKaJ_iyT7XiJz25mXQ7y-niTzE8sHPvLXZPcqtNoV_-vTzqkezJ8Hp2U1enCv"
+ )
+ return t.New("xcb-proto-"+version, false, []pkg.Artifact{
+ t.Load(Make),
+ t.Load(Python),
+ }, nil, nil, `
+cd "$(mktemp -d)"
+/usr/src/xcb-proto/configure \
+ --prefix=/system \
+ --build="${ROSA_TRIPLE}" \
+ --enable-static
+make "-j$(nproc)" check
+make DESTDIR=/work install
+`, pkg.Path(AbsUsrSrc.Append("xcb-proto"), true, pkg.NewHTTPGetTar(
+ nil, "https://xcb.freedesktop.org/dist/xcb-proto-"+version+".tar.gz",
+ mustDecode(checksum),
+ pkg.TarGzip,
+ )))
+}
+func init() { artifactsF[XCBProto] = Toolchain.newXCBProto }
+
+func (t Toolchain) newXCB() pkg.Artifact {
+ const (
+ version = "1.17.0"
+ checksum = "hjjsc79LpWM_hZjNWbDDS6qRQUXREjjekS6UbUsDq-RR1_AjgNDxhRvZf-1_kzDd"
+ )
+ return t.New("xcb-"+version, false, []pkg.Artifact{
+ t.Load(Make),
+ t.Load(Python),
+ t.Load(PkgConfig),
+
+ t.Load(XCBProto),
+ t.Load(Xproto),
+ t.Load(LibXau),
+ }, nil, nil, `
+cd "$(mktemp -d)"
+/usr/src/xcb/configure \
+ --prefix=/system \
+ --build="${ROSA_TRIPLE}" \
+ --enable-static
+make "-j$(nproc)" check
+make DESTDIR=/work install
+`, pkg.Path(AbsUsrSrc.Append("xcb"), true, pkg.NewHTTPGetTar(
+ nil, "https://xcb.freedesktop.org/dist/libxcb-"+version+".tar.gz",
+ mustDecode(checksum),
+ pkg.TarGzip,
+ )))
+}
+func init() { artifactsF[XCB] = Toolchain.newXCB }