internal/rosa/package: migrate multiple libraries
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m44s
Test / ShareFS (push) Successful in 3m45s
Test / Hakurei (push) Successful in 3m51s
Test / Sandbox (race detector) (push) Successful in 5m23s
Test / Hakurei (race detector) (push) Successful in 6m27s
Test / Flake checks (push) Successful in 1m20s

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-20 04:37:42 +09:00
parent 2e710328a4
commit 47f4e287fc
14 changed files with 266 additions and 334 deletions

View File

@@ -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,
})
}

View File

@@ -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,
})
}

View File

@@ -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,
})
}

View File

@@ -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,
})
}

View File

@@ -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,
})
}

View File

@@ -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,
})
}

View File

@@ -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,
];
}

View File

@@ -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,
];
}

View File

@@ -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 ];
}

View File

@@ -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;

View File

@@ -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 ];
}

View File

@@ -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 ];
}

View File

@@ -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,
];
}

View File

@@ -20,7 +20,6 @@ var (
FontUtil = H("font-util") FontUtil = H("font-util")
Freetype = H("freetype") Freetype = H("freetype")
Fuse = H("fuse") Fuse = H("fuse")
GMP = H("gmp")
GLib = H("glib") GLib = H("glib")
Gawk = H("gawk") Gawk = H("gawk")
GenInitCPIO = H("gen_init_cpio") GenInitCPIO = H("gen_init_cpio")
@@ -42,8 +41,6 @@ var (
Libffi = H("libffi") Libffi = H("libffi")
Libfontenc = H("libfontenc") Libfontenc = H("libfontenc")
Libmd = H("libmd") Libmd = H("libmd")
Libmnl = H("libmnl")
Libnftnl = H("libnftnl")
Libpciaccess = H("libpciaccess") Libpciaccess = H("libpciaccess")
Libseccomp = H("libseccomp") Libseccomp = H("libseccomp")
Libtasn1 = H("libtasn1") Libtasn1 = H("libtasn1")