aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-02-24 16:02:54 +0900
committerOphestra <cat@gensokyo.uk>2026-02-24 16:02:54 +0900
commit6c2da4c4b2cf896a28bec6311cfaaac47749d674 (patch)
tree216076ab05573516c66156aa4ca5748de14223bb /internal
parent90f915a708c7684446e4ad6bfd96989c6c59cb49 (diff)
internal/rosa: libcap artifact
Required by fakeroot. Quite refreshing to package a non-autotools project. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal')
-rw-r--r--internal/rosa/all.go2
-rw-r--r--internal/rosa/libcap.go40
2 files changed, 42 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 532264b6..381d887b 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -46,6 +46,7 @@ const (
KernelSource
Kmod
LibXau
+ Libcap
Libexpat
Libiconv
Libpsl
@@ -171,6 +172,7 @@ func ResolveName(name string) (p PArtifact, ok bool) {
"kernel-source": KernelSource,
"kmod": Kmod,
"libXau": LibXau,
+ "libcap": Libcap,
"libexpat": Libexpat,
"libiconv": Libiconv,
"libpsl": Libpsl,
diff --git a/internal/rosa/libcap.go b/internal/rosa/libcap.go
new file mode 100644
index 00000000..804581c1
--- /dev/null
+++ b/internal/rosa/libcap.go
@@ -0,0 +1,40 @@
+package rosa
+
+import "hakurei.app/internal/pkg"
+
+func (t Toolchain) newLibcap() pkg.Artifact {
+ const (
+ version = "2.77"
+ checksum = "2GOTFU4cl2QoS7Dv5wh0c9-hxsQwIzMB9Y_gfAo5xKHqcM13fiHt1RbPkfemzjmB"
+ )
+ return t.NewViaMake("libcap", version, t.NewPatchedSource(
+ "libcap", version, pkg.NewHTTPGetTar(
+ nil, "https://git.kernel.org/pub/scm/libs/libcap/libcap.git/"+
+ "snapshot/libcap-"+version+".tar.gz",
+ mustDecode(checksum),
+ pkg.TarGzip,
+ ), false,
+ ), &MakeAttr{
+ Writable: true,
+ SkipConfigure: true,
+ InPlace: true,
+
+ Env: []string{
+ "prefix=/system",
+ "lib=lib",
+ },
+ ScriptEarly: `
+ln -s ../system/bin/bash /bin/
+cd /usr/src/libcap
+`,
+ Make: []string{
+ "CC=cc",
+ "all",
+ },
+ CheckName: "test",
+ },
+ t.Load(Bash),
+ t.Load(Diffutils),
+ )
+}
+func init() { artifactsF[Libcap] = Toolchain.newLibcap }