aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-20 04:37:42 +0900
committerOphestra <cat@gensokyo.uk>2026-05-20 04:37:58 +0900
commit47f4e287fc7ec65a3de20891004462a63dea68b3 (patch)
tree24bc65bff28c00caee2da4fb4d1b282fa3eefa15 /internal
parent2e710328a4a64f5803de317c936912cf2ccddddf (diff)
internal/rosa/package: migrate multiple libraries
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal')
-rw-r--r--internal/rosa/musl-fts.go34
-rw-r--r--internal/rosa/musl-obstack.go34
-rw-r--r--internal/rosa/ncurses.go36
-rw-r--r--internal/rosa/netfilter.go141
-rw-r--r--internal/rosa/nettle.go33
-rw-r--r--internal/rosa/openssl.go53
-rw-r--r--internal/rosa/package/musl-fts.az26
-rw-r--r--internal/rosa/package/musl-obstack.az26
-rw-r--r--internal/rosa/package/ncurses.az26
-rw-r--r--internal/rosa/package/netfilter/libbsd-sys-queue.patch13
-rw-r--r--internal/rosa/package/netfilter/package.az107
-rw-r--r--internal/rosa/package/nettle.az23
-rw-r--r--internal/rosa/package/openssl.az45
-rw-r--r--internal/rosa/state_native.go3
14 files changed, 266 insertions, 334 deletions
diff --git a/internal/rosa/musl-fts.go b/internal/rosa/musl-fts.go
deleted file mode 100644
index a5b38a21..00000000
--- a/internal/rosa/musl-fts.go
+++ /dev/null
@@ -1,34 +0,0 @@
-package rosa
-
-import "hakurei.app/internal/pkg"
-
-func (t Toolchain) newMuslFts() (pkg.Artifact, string) {
- const (
- version = "1.2.7"
- checksum = "N_p_ZApX3eHt7xoDCw1hLf6XdJOw7ZSx7xPvpvAP0knG2zgU0zeN5w8tt5Pg60XJ"
- )
- return t.NewPackage("musl-fts", version, newFromGitHub(
- "void-linux/musl-fts",
- "v"+version,
- checksum,
- ), &PackageAttr{
- Env: []string{
- "CC=cc -fPIC",
- },
- }, &MakeHelper{
- Generate: "./bootstrap.sh",
- },
- Automake,
- Libtool,
- PkgConfig,
- ), version
-}
-func init() {
- native.mustRegister(Toolchain.newMuslFts, &Metadata{
- Name: "musl-fts",
- Description: "implementation of fts(3) functions which are missing in musl libc",
- Website: "https://github.com/void-linux/musl-fts",
-
- ID: 26980,
- })
-}
diff --git a/internal/rosa/musl-obstack.go b/internal/rosa/musl-obstack.go
deleted file mode 100644
index dfa168a8..00000000
--- a/internal/rosa/musl-obstack.go
+++ /dev/null
@@ -1,34 +0,0 @@
-package rosa
-
-import "hakurei.app/internal/pkg"
-
-func (t Toolchain) newMuslObstack() (pkg.Artifact, string) {
- const (
- version = "1.2.3"
- checksum = "tVRY_KjIlkkMszcaRlkKdBVQHIXTT_T_TiMxbwErlILXrOBosocg8KklppZhNdCG"
- )
- return t.NewPackage("musl-obstack", version, newFromGitHub(
- "void-linux/musl-obstack",
- "v"+version,
- checksum,
- ), &PackageAttr{
- Env: []string{
- "CC=cc -fPIC",
- },
- }, &MakeHelper{
- Generate: "./bootstrap.sh",
- },
- Automake,
- Libtool,
- PkgConfig,
- ), version
-}
-func init() {
- native.mustRegister(Toolchain.newMuslObstack, &Metadata{
- Name: "musl-obstack",
- Description: "obstack functions and macros separated from glibc",
- Website: "https://github.com/void-linux/musl-obstack",
-
- ID: 146206,
- })
-}
diff --git a/internal/rosa/ncurses.go b/internal/rosa/ncurses.go
deleted file mode 100644
index be75dd14..00000000
--- a/internal/rosa/ncurses.go
+++ /dev/null
@@ -1,36 +0,0 @@
-package rosa
-
-import "hakurei.app/internal/pkg"
-
-func (t Toolchain) newNcurses() (pkg.Artifact, string) {
- const (
- version = "6.6"
- checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w"
- )
- return t.NewPackage("ncurses", version, newTar(
- "https://ftpmirror.gnu.org/gnu/ncurses/ncurses-"+version+".tar.gz",
- checksum,
- pkg.TarGzip,
- ), nil, &MakeHelper{
- // "tests" are actual demo programs, not a test suite.
- SkipCheck: true,
-
- Configure: []KV{
- {"with-pkg-config"},
- {"enable-pc-files"},
- {"with-shared"},
- {"with-cxx-shared"},
- },
- },
- PkgConfig,
- ), version
-}
-func init() {
- native.mustRegister(Toolchain.newNcurses, &Metadata{
- Name: "ncurses",
- Description: "a free software emulation of curses in System V Release 4.0 (SVr4)",
- Website: "https://invisible-island.net/ncurses/",
-
- ID: 373226,
- })
-}
diff --git a/internal/rosa/netfilter.go b/internal/rosa/netfilter.go
deleted file mode 100644
index 4ac70878..00000000
--- a/internal/rosa/netfilter.go
+++ /dev/null
@@ -1,141 +0,0 @@
-package rosa
-
-import "hakurei.app/internal/pkg"
-
-func (t Toolchain) newLibmnl() (pkg.Artifact, string) {
- const (
- version = "1.0.5"
- checksum = "DN-vbbvQDpxXJm0TJ6xlluILvfrB86avrCTX50XyE9SEFSAZ_o8nuKc5Gu0Am7-u"
- )
- return t.NewPackage("libmnl", version, newTar(
- "https://www.netfilter.org/projects/libmnl/files/"+
- "libmnl-"+version+".tar.bz2",
- checksum,
- pkg.TarBzip2,
- ), &PackageAttr{
- Patches: []KV{
- {"libbsd-sys-queue", `diff --git a/examples/netfilter/nfct-daemon.c b/examples/netfilter/nfct-daemon.c
-index d223ac2..a7878d0 100644
---- a/examples/netfilter/nfct-daemon.c
-+++ b/examples/netfilter/nfct-daemon.c
-@@ -20,7 +20,7 @@
- #include <linux/netfilter/nfnetlink.h>
- #include <linux/netfilter/nfnetlink_conntrack.h>
-
--#include <sys/queue.h>
-+#include <bsd/sys/queue.h>
-
- struct nstats {
- LIST_ENTRY(nstats) list;
-`},
- },
- }, &MakeHelper{
- Configure: []KV{
- {"enable-static"},
- },
- },
- Libbsd,
- KernelHeaders,
- ), version
-}
-func init() {
- native.mustRegister(Toolchain.newLibmnl, &Metadata{
- Name: "libmnl",
- Description: "a minimalistic user-space library oriented to Netlink developers",
- Website: "https://www.netfilter.org/projects/libmnl/",
-
- ID: 1663,
- })
-}
-
-func (t Toolchain) newLibnftnl() (pkg.Artifact, string) {
- const (
- version = "1.3.1"
- checksum = "91ou66K-I17iX6DB6hiQkhhC_v4DFW5iDGzwjVRNbJNEmKqowLZBlh3FY-ZDO0r9"
- )
- return t.NewPackage("libnftnl", version, t.newTagRemote(
- "https://git.netfilter.org/libnftnl",
- "libnftnl-"+version, checksum,
- ), &PackageAttr{
- Env: []string{
- "CFLAGS=-D_GNU_SOURCE",
- },
- }, &MakeHelper{
- Generate: "./autogen.sh",
- Configure: []KV{
- {"enable-static"},
- },
- },
- Automake,
- Libtool,
- PkgConfig,
-
- Libmnl,
- KernelHeaders,
- ), version
-}
-func init() {
- native.mustRegister(Toolchain.newLibnftnl, &Metadata{
- Name: "libnftnl",
- Description: "a userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem",
- Website: "https://www.netfilter.org/projects/libnftnl/",
-
- Dependencies: P{
- Libmnl,
- },
-
- ID: 1681,
- })
-}
-
-func (t Toolchain) newIPTables() (pkg.Artifact, string) {
- const (
- version = "1.8.13"
- checksum = "TUA-cFIAsiMvtRR-XzQvXzoIhJUOc9J2gQDJCbBRjmgmVfGfPTCf58wL7e-cUKVQ"
- )
- return t.NewPackage("iptables", version, t.newTagRemote(
- "https://git.netfilter.org/iptables",
- "v"+version, checksum,
- ), &PackageAttr{
- ScriptEarly: `
-rm \
- extensions/libxt_connlabel.txlate \
- extensions/libxt_conntrack.txlate
-sed -i \
- 's/de:ad:0:be:ee:ff/DE:AD:00:BE:EE:FF/g' \
- extensions/libebt_dnat.txlate \
- extensions/libebt_snat.txlate
-`,
- }, &MakeHelper{
- Generate: "./autogen.sh",
- Configure: []KV{
- {"enable-static"},
- },
- ScriptCheckEarly: `
-ln -s ../system/bin/bash /bin/
-chmod +w /etc/ && ln -s ../usr/src/iptables/etc/ethertypes /etc/
- `,
- },
- Automake,
- Libtool,
- PkgConfig,
- Bash,
- Python,
-
- Libnftnl,
- KernelHeaders,
- ), version
-}
-func init() {
- native.mustRegister(Toolchain.newIPTables, &Metadata{
- Name: "iptables",
- Description: "the userspace command line program used to configure the Linux 2.4.x and later packet filtering ruleset",
- Website: "https://www.netfilter.org/projects/iptables/",
-
- Dependencies: P{
- Libnftnl,
- },
-
- ID: 1394,
- })
-}
diff --git a/internal/rosa/nettle.go b/internal/rosa/nettle.go
deleted file mode 100644
index e65942b4..00000000
--- a/internal/rosa/nettle.go
+++ /dev/null
@@ -1,33 +0,0 @@
-package rosa
-
-import "hakurei.app/internal/pkg"
-
-func (t Toolchain) newNettle() (pkg.Artifact, string) {
- const (
- version = "4.0"
- checksum = "6agC-vHzzoqAlaX3K9tX8yHgrm03HLqPZzVzq8jh_ePbuPMIvpxereu_uRJFmQK7"
- )
- return t.NewPackage("nettle", version, newTar(
- "https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz",
- checksum,
- pkg.TarGzip,
- ), nil, (*MakeHelper)(nil),
- M4,
- Diffutils,
-
- GMP,
- ), version
-}
-func init() {
- native.mustRegister(Toolchain.newNettle, &Metadata{
- Name: "nettle",
- Description: "a low-level cryptographic library",
- Website: "https://www.lysator.liu.se/~nisse/nettle/",
-
- Dependencies: P{
- GMP,
- },
-
- ID: 2073,
- })
-}
diff --git a/internal/rosa/openssl.go b/internal/rosa/openssl.go
deleted file mode 100644
index b0e2d01d..00000000
--- a/internal/rosa/openssl.go
+++ /dev/null
@@ -1,53 +0,0 @@
-package rosa
-
-import "hakurei.app/internal/pkg"
-
-func (t Toolchain) newOpenSSL() (pkg.Artifact, string) {
- const (
- version = "3.6.2"
- checksum = "jH004dXTiE01Hp0kyShkWXwrSHEksZi4i_3v47D9H9Uz9LQ1aMwF7mrl2Tb4t_XA"
- )
- return t.NewPackage("openssl", version, newFromGitHubRelease(
- "openssl/openssl",
- "openssl-"+version,
- "openssl-"+version+".tar.gz",
- checksum,
- pkg.TarGzip,
- ), &PackageAttr{
- Env: []string{
- "CC=cc",
- },
- }, &MakeHelper{
- OmitDefaults: true,
-
- ConfigureName: "/usr/src/openssl/Configure",
- Configure: []KV{
- {"prefix", "/system"},
- {"libdir", "lib"},
- {"openssldir", "etc/ssl"},
- {"", "no-docs"},
- },
- Check: []string{
- "HARNESS_JOBS=" + jobsE,
- "test",
- },
- },
- Perl,
- Coreutils,
-
- Zlib,
- KernelHeaders,
- ), version
-}
-func init() {
- native.mustRegister(Toolchain.newOpenSSL, &Metadata{
- Name: "openssl",
- Description: "TLS/SSL and crypto library",
- Website: "https://www.openssl.org/",
-
- ID: 2566,
-
- // strange malformed tags treated as pre-releases in Anitya
- latest: (*Versions).getStable,
- })
-}
diff --git a/internal/rosa/package/musl-fts.az b/internal/rosa/package/musl-fts.az
new file mode 100644
index 00000000..f2273c50
--- /dev/null
+++ b/internal/rosa/package/musl-fts.az
@@ -0,0 +1,26 @@
+package musl-fts {
+ description = "implementation of fts(3) functions which are missing in musl libc";
+ website = "https://github.com/void-linux/musl-fts";
+ anitya = 26980;
+
+ version* = "1.2.7";
+ source = remoteGitHub {
+ suffix = "void-linux/musl-fts";
+ tag = "v"+version;
+ checksum = "N_p_ZApX3eHt7xoDCw1hLf6XdJOw7ZSx7xPvpvAP0knG2zgU0zeN5w8tt5Pg60XJ";
+ };
+
+ env = [
+ "CC=cc -fPIC",
+ ];
+
+ exec = make {
+ generate = "./bootstrap.sh";
+ };
+
+ inputs = [
+ automake,
+ libtool,
+ pkg-config,
+ ];
+}
diff --git a/internal/rosa/package/musl-obstack.az b/internal/rosa/package/musl-obstack.az
new file mode 100644
index 00000000..379eaf5d
--- /dev/null
+++ b/internal/rosa/package/musl-obstack.az
@@ -0,0 +1,26 @@
+package musl-obstack {
+ description = "obstack functions and macros separated from glibc";
+ website = "https://github.com/void-linux/musl-obstack";
+ anitya = 146206;
+
+ version* = "1.2.3";
+ source = remoteGitHub {
+ suffix = "void-linux/musl-obstack";
+ tag = "v"+version;
+ checksum = "tVRY_KjIlkkMszcaRlkKdBVQHIXTT_T_TiMxbwErlILXrOBosocg8KklppZhNdCG";
+ };
+
+ env = [
+ "CC=cc -fPIC",
+ ];
+
+ exec = make {
+ generate = "./bootstrap.sh";
+ };
+
+ inputs = [
+ automake,
+ libtool,
+ pkg-config,
+ ];
+}
diff --git a/internal/rosa/package/ncurses.az b/internal/rosa/package/ncurses.az
new file mode 100644
index 00000000..d4b52fa3
--- /dev/null
+++ b/internal/rosa/package/ncurses.az
@@ -0,0 +1,26 @@
+package ncurses {
+ description = "a free software emulation of curses in System V Release 4.0 (SVr4)";
+ website = "https://invisible-island.net/ncurses";
+ anitya = 373226;
+
+ version* = "6.6";
+ source = remoteTar {
+ url = "https://ftpmirror.gnu.org/gnu/ncurses/ncurses-"+version+".tar.gz";
+ checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w";
+ compress = gzip;
+ };
+
+ exec = make {
+ configure = {
+ "with-pkg-config";
+ "enable-pc-files";
+ "with-shared";
+ "with-cxx-shared";
+ };
+
+ // "tests" are actual demo programs, not a test suite.
+ skipCheck = true;
+ };
+
+ inputs = [ pkg-config ];
+}
diff --git a/internal/rosa/package/netfilter/libbsd-sys-queue.patch b/internal/rosa/package/netfilter/libbsd-sys-queue.patch
new file mode 100644
index 00000000..369ff19e
--- /dev/null
+++ b/internal/rosa/package/netfilter/libbsd-sys-queue.patch
@@ -0,0 +1,13 @@
+diff --git a/examples/netfilter/nfct-daemon.c b/examples/netfilter/nfct-daemon.c
+index d223ac2..a7878d0 100644
+--- a/examples/netfilter/nfct-daemon.c
++++ b/examples/netfilter/nfct-daemon.c
+@@ -20,7 +20,7 @@
+ #include <linux/netfilter/nfnetlink.h>
+ #include <linux/netfilter/nfnetlink_conntrack.h>
+
+-#include <sys/queue.h>
++#include <bsd/sys/queue.h>
+
+ struct nstats {
+ LIST_ENTRY(nstats) list;
diff --git a/internal/rosa/package/netfilter/package.az b/internal/rosa/package/netfilter/package.az
new file mode 100644
index 00000000..b6ee9cd5
--- /dev/null
+++ b/internal/rosa/package/netfilter/package.az
@@ -0,0 +1,107 @@
+package libmnl {
+ description = "a minimalistic user-space library oriented to Netlink developers";
+ website = "https://www.netfilter.org/projects/libmnl";
+ anitya = 1663;
+
+ version* = "1.0.5";
+ source = remoteTar {
+ url = "https://www.netfilter.org/projects/libmnl/files/"+
+ "libmnl-"+version+".tar.bz2";
+ checksum = "DN-vbbvQDpxXJm0TJ6xlluILvfrB86avrCTX50XyE9SEFSAZ_o8nuKc5Gu0Am7-u";
+ compress = bzip2;
+ };
+ patches = [ "libbsd-sys-queue.patch" ];
+
+ exec = make {
+ configure = {
+ "enable-static";
+ };
+ };
+
+ inputs = [
+ libbsd,
+ kernel-headers,
+ ];
+}
+
+package libnftnl {
+ description = "a userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem";
+ website = "https://www.netfilter.org/projects/libnftnl";
+ anitya = 1681;
+
+ version* = "1.3.1";
+ source = remoteGit {
+ url = "https://git.netfilter.org/libnftnl";
+ tag = "libnftnl-"+version;
+ checksum = "91ou66K-I17iX6DB6hiQkhhC_v4DFW5iDGzwjVRNbJNEmKqowLZBlh3FY-ZDO0r9";
+ };
+
+ env = [
+ "CFLAGS=-D_GNU_SOURCE",
+ ];
+
+ exec = make {
+ generate = "./autogen.sh";
+ configure = {
+ "enable-static";
+ };
+ };
+
+ inputs = [
+ automake,
+ libtool,
+ pkg-config,
+
+ libmnl,
+ kernel-headers,
+ ];
+
+ runtime = [ libmnl ];
+}
+
+package iptables {
+ description = "the userspace command line program used to configure the Linux 2.4.x and later packet filtering ruleset";
+ website = "https://www.netfilter.org/projects/iptables";
+ anitya = 1394;
+
+ version* = "1.8.13";
+ source = remoteGit {
+ url = "https://git.netfilter.org/iptables";
+ tag = "v"+version;
+ checksum = "TUA-cFIAsiMvtRR-XzQvXzoIhJUOc9J2gQDJCbBRjmgmVfGfPTCf58wL7e-cUKVQ";
+ };
+
+ early = `
+rm \
+ extensions/libxt_connlabel.txlate \
+ extensions/libxt_conntrack.txlate
+sed -i \
+ 's/de:ad:0:be:ee:ff/DE:AD:00:BE:EE:FF/g' \
+ extensions/libebt_dnat.txlate \
+ extensions/libebt_snat.txlate
+`;
+
+ exec = make {
+ generate = "./autogen.sh";
+ configure = {
+ "enable-static";
+ };
+ preCheck = `
+ln -s ../system/bin/bash /bin/
+chmod +w /etc/ && ln -s ../usr/src/iptables/etc/ethertypes /etc/
+`;
+ };
+
+ inputs = [
+ automake,
+ libtool,
+ pkg-config,
+ bash,
+ python,
+
+ libnftnl,
+ kernel-headers,
+ ];
+
+ runtime = [ libnftnl ];
+}
diff --git a/internal/rosa/package/nettle.az b/internal/rosa/package/nettle.az
new file mode 100644
index 00000000..5b993868
--- /dev/null
+++ b/internal/rosa/package/nettle.az
@@ -0,0 +1,23 @@
+package nettle {
+ description = "a low-level cryptographic library";
+ website = "https://www.lysator.liu.se/~nisse/nettle";
+ anitya = 2073;
+
+ version* = "4.0";
+ source = remoteTar {
+ url = "https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz";
+ checksum = "6agC-vHzzoqAlaX3K9tX8yHgrm03HLqPZzVzq8jh_ePbuPMIvpxereu_uRJFmQK7";
+ compress = gzip;
+ };
+
+ exec = make {};
+
+ inputs = [
+ m4,
+ diffutils,
+
+ gmp,
+ ];
+
+ runtime = [ gmp ];
+}
diff --git a/internal/rosa/package/openssl.az b/internal/rosa/package/openssl.az
new file mode 100644
index 00000000..9cdfc333
--- /dev/null
+++ b/internal/rosa/package/openssl.az
@@ -0,0 +1,45 @@
+package openssl {
+ description = "TLS/SSL and crypto library";
+ website = "https://www.openssl.org";
+ anitya = 2566;
+ // strange malformed tags treated as pre-releases in Anitya
+ latest = anityaFallback;
+
+ version* = "3.6.2";
+ source = remoteGitHubRelease {
+ suffix = "openssl/openssl";
+ tag = "openssl-"+version;
+ name = "openssl-"+version+".tar.gz";
+ checksum = "jH004dXTiE01Hp0kyShkWXwrSHEksZi4i_3v47D9H9Uz9LQ1aMwF7mrl2Tb4t_XA";
+ compress = gzip;
+ };
+
+ env = [
+ "CC=cc",
+ ];
+
+ exec = make {
+ omitDefaults = true;
+
+ configureName = "/usr/src/openssl/Configure";
+ configure = {
+ "prefix": "/system";
+ "libdir": "lib";
+ "openssldir": "etc/ssl";
+ "": "no-docs";
+ };
+
+ check = [
+ "HARNESS_JOBS=" + jobsE,
+ "test",
+ ];
+ };
+
+ inputs = [
+ perl,
+ coreutils,
+
+ zlib,
+ kernel-headers,
+ ];
+}
diff --git a/internal/rosa/state_native.go b/internal/rosa/state_native.go
index 49ede789..a092e79e 100644
--- a/internal/rosa/state_native.go
+++ b/internal/rosa/state_native.go
@@ -20,7 +20,6 @@ var (
FontUtil = H("font-util")
Freetype = H("freetype")
Fuse = H("fuse")
- GMP = H("gmp")
GLib = H("glib")
Gawk = H("gawk")
GenInitCPIO = H("gen_init_cpio")
@@ -42,8 +41,6 @@ var (
Libffi = H("libffi")
Libfontenc = H("libfontenc")
Libmd = H("libmd")
- Libmnl = H("libmnl")
- Libnftnl = H("libnftnl")
Libpciaccess = H("libpciaccess")
Libseccomp = H("libseccomp")
Libtasn1 = H("libtasn1")