aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-01-29 18:06:17 +0900
committerOphestra <cat@gensokyo.uk>2026-01-29 18:06:17 +0900
commit85eda49b2b7ab27cbebfd82200760ff609b003c5 (patch)
tree617f17b7fe126d79de5580c8237367400c36cb6e
parentb26bc05bb0c392e52e964061ec598f4487e14f08 (diff)
internal/rosa: xz artifact
Wanted to avoid this as much as possible. Unfortunately newer versions of GNU findutils only come in xz and is required for llvm compiler-rt sanitisers. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--internal/rosa/all.go2
-rw-r--r--internal/rosa/xz.go27
2 files changed, 29 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 72c7e176..9b4872a3 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -58,6 +58,7 @@ const (
XCB
XCBProto
Xproto
+ XZ
Zlib
buildcatrust
@@ -135,6 +136,7 @@ func ResolveName(name string) (p PArtifact, ok bool) {
"xcb": XCB,
"xcb-proto": XCBProto,
"xproto": Xproto,
+ "xz": XZ,
"zlib": Zlib,
}[name]
return
diff --git a/internal/rosa/xz.go b/internal/rosa/xz.go
new file mode 100644
index 00000000..2d95ce1e
--- /dev/null
+++ b/internal/rosa/xz.go
@@ -0,0 +1,27 @@
+package rosa
+
+import "hakurei.app/internal/pkg"
+
+func (t Toolchain) newXZ() pkg.Artifact {
+ const (
+ version = "5.8.2"
+ checksum = "rXT-XCp9R2q6cXqJ5qenp0cmGPfiENQiU3BWtUVeVgArfRmSsISeUJgvCR3zI0a0"
+ )
+ return t.New("xz-"+version, false, []pkg.Artifact{
+ t.Load(Make),
+ }, nil, nil, `
+cd "$(mktemp -d)"
+/usr/src/xz/configure \
+ --prefix=/system \
+ --build="${ROSA_TRIPLE}"
+make "-j$(nproc)" check
+make DESTDIR=/work install
+`, pkg.Path(AbsUsrSrc.Append("xz"), false, pkg.NewHTTPGetTar(
+ nil,
+ "https://github.com/tukaani-project/xz/releases/download/"+
+ "v"+version+"/xz-"+version+".tar.bz2",
+ mustDecode(checksum),
+ pkg.TarBzip2,
+ )))
+}
+func init() { artifactsF[XZ] = Toolchain.newXZ }