aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-01-26 07:38:56 +0900
committerOphestra <cat@gensokyo.uk>2026-01-26 07:38:56 +0900
commit0bd6a18326024a1056a8d9c95017a407e0822f8b (patch)
tree2e7c92349f9d1da377f94c211942bc09002ea784
parent67d592c3374808bb06796af74636f01b094053dd (diff)
internal/rosa: acl artifact
Required by hakurei. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--cmd/mbf/main.go4
-rw-r--r--internal/rosa/acl.go91
-rw-r--r--internal/rosa/all.go4
3 files changed, 98 insertions, 1 deletions
diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go
index 04082eb6..944fd75b 100644
--- a/cmd/mbf/main.go
+++ b/cmd/mbf/main.go
@@ -148,6 +148,10 @@ func main() {
}
var p rosa.PArtifact
switch args[0] {
+ case "acl":
+ p = rosa.ACL
+ case "attr":
+ p = rosa.Attr
case "autoconf":
p = rosa.Autoconf
case "bash":
diff --git a/internal/rosa/acl.go b/internal/rosa/acl.go
new file mode 100644
index 00000000..ce03b1fb
--- /dev/null
+++ b/internal/rosa/acl.go
@@ -0,0 +1,91 @@
+package rosa
+
+import "hakurei.app/internal/pkg"
+
+func (t Toolchain) newAttr() pkg.Artifact {
+ const (
+ version = "2.5.2"
+ checksum = "YWEphrz6vg1sUMmHHVr1CRo53pFXRhq_pjN-AlG8UgwZK1y6m7zuDhxqJhD0SV0l"
+ )
+ return t.New("attr-"+version, []pkg.Artifact{
+ t.Load(Make),
+ t.Load(Perl),
+ }, nil, nil, `
+cd /usr/src/attr
+chmod +w tools
+patch -p 1 << EOF
+From 8a80d895dfd779373363c3a4b62ecce5a549efb2 Mon Sep 17 00:00:00 2001
+From: "Haelwenn (lanodan) Monnier" <contact@hacktivis.me>
+Date: Sat, 30 Mar 2024 10:17:10 +0100
+Subject: tools/attr.c: Add missing libgen.h include for basename(3)
+
+Fixes compilation issue with musl and modern C99 compilers.
+
+See: https://bugs.gentoo.org/926294
+---
+ tools/attr.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/attr.c b/tools/attr.c
+index f12e4af..6a3c1e9 100644
+--- a/tools/attr.c
++++ b/tools/attr.c
+@@ -28,6 +28,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <locale.h>
++#include <libgen.h>
+
+ #include <attr/attributes.h>
+
+--
+cgit v1.1
+EOF
+
+chmod +w test
+sed -i 's/Operation not supported/Not supported/' test/attr.test
+ln -s ../../system/bin/perl /usr/bin
+
+cd "$(mktemp -d)"
+/usr/src/attr/configure \
+ --prefix=/system \
+ --build="${ROSA_TRIPLE}" \
+ --enable-static
+make "-j$(nproc)" check
+make DESTDIR=/work install
+`, pkg.Path(AbsUsrSrc.Append("attr"), true, pkg.NewHTTPGetTar(
+ nil,
+ "https://download.savannah.nongnu.org/releases/attr/"+
+ "attr-"+version+".tar.gz",
+ mustDecode(checksum),
+ pkg.TarGzip,
+ )))
+}
+func init() { artifactsF[Attr] = Toolchain.newAttr }
+
+func (t Toolchain) newACL() pkg.Artifact {
+ const (
+ version = "2.3.2"
+ checksum = "-fY5nwH4K8ZHBCRXrzLdguPkqjKI6WIiGu4dBtrZ1o0t6AIU73w8wwJz_UyjIS0P"
+ )
+ return t.New("acl-"+version, []pkg.Artifact{
+ t.Load(Make),
+
+ t.Load(Attr),
+ }, nil, nil, `
+cd "$(mktemp -d)"
+/usr/src/acl/configure \
+ --prefix=/system \
+ --build="${ROSA_TRIPLE}" \
+ --enable-static
+make "-j$(nproc)"
+make DESTDIR=/work install
+`, pkg.Path(AbsUsrSrc.Append("acl"), true, pkg.NewHTTPGetTar(
+ nil,
+ "https://download.savannah.nongnu.org/releases/acl/"+
+ "acl-"+version+".tar.gz",
+ mustDecode(checksum),
+ pkg.TarGzip,
+ )))
+}
+func init() { artifactsF[ACL] = Toolchain.newACL }
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index babd61dc..4d95d4e2 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -10,7 +10,9 @@ import (
type PArtifact int
const (
- Autoconf PArtifact = iota
+ ACL PArtifact = iota
+ Attr
+ Autoconf
Bash
Busybox
CMake