internal/rosa/package: migrate qemu
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m46s
Test / ShareFS (push) Successful in 3m44s
Test / Hakurei (push) Successful in 3m54s
Test / Sandbox (race detector) (push) Successful in 5m33s
Test / Hakurei (race detector) (push) Successful in 6m27s
Test / Flake checks (push) Successful in 1m19s

This has many dependencies.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-20 05:10:41 +09:00
parent 1a2699b486
commit 1a9974ffdc
4 changed files with 102 additions and 116 deletions

View File

@@ -0,0 +1,22 @@
diff --git a/tests/qtest/netdev-socket.c b/tests/qtest/netdev-socket.c
index b731af0ad9..b5cbed4801 100644
--- a/tests/qtest/netdev-socket.c
+++ b/tests/qtest/netdev-socket.c
@@ -401,7 +401,7 @@ static void test_dgram_inet(void)
qtest_quit(qts0);
}
-#if !defined(_WIN32) && !defined(CONFIG_DARWIN)
+#if 0
static void test_dgram_mcast(void)
{
QTestState *qts;
@@ -513,7 +513,7 @@ int main(int argc, char **argv)
if (has_ipv4) {
qtest_add_func("/netdev/stream/inet/ipv4", test_stream_inet_ipv4);
qtest_add_func("/netdev/dgram/inet", test_dgram_inet);
-#if !defined(_WIN32) && !defined(CONFIG_DARWIN)
+#if 0
qtest_add_func("/netdev/dgram/mcast", test_dgram_mcast);
#endif
}

View File

@@ -0,0 +1,80 @@
package qemu {
description = "a generic and open source machine emulator and virtualizer";
website = "https://www.qemu.org";
anitya = 13607;
version* = "11.0.0";
source = remoteTar {
url = "https://download.qemu.org/qemu-"+version+".tar.bz2";
checksum = "C64gdi_Tkdg2fTwD9ERxtWGcf8vNn_6UvczW0c-x0KW1NZtd3NbEOIrlDhYGn15n";
compress = bzip2;
};
patches = [ "disable-mcast-test.patch" ];
// configure script uses source as scratch space
writable = true;
chmod = true;
early = `
# tests expect /var/tmp/ to be available
mkdir -p /var/tmp/
# https://gitlab.com/qemu-project/qemu/-/issues/3145
sed -i \
's,Input/output error,I/O error,g' \
tests/qemu-iotests/[0-9][0-9][0-9]* \
tests/qemu-iotests/tests/copy-before-write \
tests/qemu-iotests/tests/file-io-error.out
cat << EOF > tests/qemu-iotests/150
#!/bin/sh
_notrun 'appears to spuriously fail on zfs'
EOF
`;
exec = make {
configure = {
"disable-download";
"disable-docs";
"static";
"target-list-exclude": join {
elems = [
// fails to load firmware
"ppc-linux-user",
"ppc64-linux-user",
"ppc64le-linux-user",
"ppc-softmmu",
"ppc64-softmmu",
];
sep = ",";
};
};
};
inputs = [
bash,
python,
python-setuptools,
python-wheel,
ninja,
pkg-config,
diffutils,
openssl,
xz,
flex,
bison,
m4,
glib,
zstd,
dtc,
kernel-headers,
];
runtime = [
glib,
zstd,
];
}

View File

@@ -1,109 +0,0 @@
package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newQEMU() (pkg.Artifact, string) {
const (
version = "11.0.0"
checksum = "C64gdi_Tkdg2fTwD9ERxtWGcf8vNn_6UvczW0c-x0KW1NZtd3NbEOIrlDhYGn15n"
)
return t.NewPackage("qemu", version, newTar(
"https://download.qemu.org/qemu-"+version+".tar.bz2",
checksum,
pkg.TarBzip2,
), &PackageAttr{
Patches: []KV{
{"disable-mcast-test", `diff --git a/tests/qtest/netdev-socket.c b/tests/qtest/netdev-socket.c
index b731af0ad9..b5cbed4801 100644
--- a/tests/qtest/netdev-socket.c
+++ b/tests/qtest/netdev-socket.c
@@ -401,7 +401,7 @@ static void test_dgram_inet(void)
qtest_quit(qts0);
}
-#if !defined(_WIN32) && !defined(CONFIG_DARWIN)
+#if 0
static void test_dgram_mcast(void)
{
QTestState *qts;
@@ -513,7 +513,7 @@ int main(int argc, char **argv)
if (has_ipv4) {
qtest_add_func("/netdev/stream/inet/ipv4", test_stream_inet_ipv4);
qtest_add_func("/netdev/dgram/inet", test_dgram_inet);
-#if !defined(_WIN32) && !defined(CONFIG_DARWIN)
+#if 0
qtest_add_func("/netdev/dgram/mcast", test_dgram_mcast);
#endif
}
`},
},
// configure script uses source as scratch space
Writable: true,
Chmod: true,
ScriptEarly: `
# tests expect /var/tmp/ to be available
mkdir -p /var/tmp/
# https://gitlab.com/qemu-project/qemu/-/issues/3145
sed -i \
's,Input/output error,I/O error,g' \
tests/qemu-iotests/[0-9][0-9][0-9]* \
tests/qemu-iotests/tests/copy-before-write \
tests/qemu-iotests/tests/file-io-error.out
cat << EOF > tests/qemu-iotests/150
#!/bin/sh
_notrun 'appears to spuriously fail on zfs'
EOF
`,
}, &MakeHelper{
Configure: []KV{
{"disable-download"},
{"disable-docs"},
{"static"},
{"target-list-exclude", "" +
// fails to load firmware
"ppc-linux-user," +
"ppc64-linux-user," +
"ppc64le-linux-user," +
"ppc-softmmu," +
"ppc64-softmmu"},
},
},
Bash,
Python,
PythonSetuptools,
PythonWheel,
Ninja,
PkgConfig,
Diffutils,
OpenSSL,
XZ,
Flex,
Bison,
M4,
GLib,
Zstd,
DTC,
KernelHeaders,
), version
}
func init() {
native.mustRegister(Toolchain.newQEMU, &Metadata{
Name: "qemu",
Description: "a generic and open source machine emulator and virtualizer",
Website: "https://www.qemu.org/",
Dependencies: P{
GLib,
Zstd,
},
ID: 13607,
})
}

View File

@@ -13,17 +13,14 @@ var (
Bzip2 = H("bzip2") Bzip2 = H("bzip2")
Coreutils = H("coreutils") Coreutils = H("coreutils")
DBus = H("dbus") DBus = H("dbus")
DTC = H("dtc")
Diffutils = H("diffutils") Diffutils = H("diffutils")
Findutils = H("findutils") Findutils = H("findutils")
Flex = H("flex")
FontUtil = H("font-util") FontUtil = H("font-util")
Freetype = H("freetype") Freetype = H("freetype")
Fuse = H("fuse") Fuse = H("fuse")
GLib = H("glib") GLib = H("glib")
Gawk = H("gawk") Gawk = H("gawk")
GenInitCPIO = H("gen_init_cpio") GenInitCPIO = H("gen_init_cpio")
Gettext = H("gettext")
Go = H("go") Go = H("go")
Gzip = H("gzip") Gzip = H("gzip")
Hakurei = H("hakurei") Hakurei = H("hakurei")
@@ -43,7 +40,6 @@ var (
Libmd = H("libmd") Libmd = H("libmd")
Libpciaccess = H("libpciaccess") Libpciaccess = H("libpciaccess")
Libseccomp = H("libseccomp") Libseccomp = H("libseccomp")
Libtasn1 = H("libtasn1")
Libtirpc = H("libtirpc") Libtirpc = H("libtirpc")
Libtool = H("libtool") Libtool = H("libtool")
LibxcbRenderUtil = H("libxcb-render-util") LibxcbRenderUtil = H("libxcb-render-util")
@@ -61,13 +57,10 @@ var (
NSSCACert = H("nss-cacert") NSSCACert = H("nss-cacert")
Ncurses = H("ncurses") Ncurses = H("ncurses")
Nettle = H("nettle") Nettle = H("nettle")
OpenSSL = H("openssl")
Patch = H("patch") Patch = H("patch")
Pixman = H("pixman") Pixman = H("pixman")
PkgConfig = H("pkg-config") PkgConfig = H("pkg-config")
PythonPyTest = H("python-pytest") PythonPyTest = H("python-pytest")
PythonSetuptools = H("python-setuptools")
PythonWheel = H("python-wheel")
QEMU = H("qemu") QEMU = H("qemu")
Sed = H("sed") Sed = H("sed")
SquashfsTools = H("squashfs-tools") SquashfsTools = H("squashfs-tools")