tests/vm: Make the haiku VM usable again

The haiku VM bitrotted in the course of time. Make sure to use the
latest version of the repositories here and install missing pieces
like "pip" and "tomli" now.

Since we nowadays also install our own version of meson in our venv,
this also requires a change to our configure script: On Haiku, the
meson binary shows up as pyvenv/non-packaged/bin/meson here, and not
in the expected location pyvenv/bin/meson. Adjust the "meson" variable
to point to that Haiku-specific location to fix this issue. See also:
https://github.com/haiku/haiku/blob/r1beta5/docs/user/storage/storageintro.dox

And finally, with the new toolchain from the beta 5, we also have to
compile with "-pie", otherwise the linker complains about bad relocations
in the object files, so allow compiling with PIE in the configure script
now.

Reviewed-by: Prasad Pandit <pjp@fedoraproject.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20260123184429.5278-1-thuth@redhat.com>
This commit is contained in:
Thomas Huth
2026-01-23 19:44:29 +01:00
parent 6f028a17a9
commit f2981f9901
2 changed files with 11 additions and 1 deletions

8
configure vendored
View File

@@ -987,6 +987,12 @@ if [ -f "$meson$EXESUF" ]; then
meson="$meson$EXESUF" meson="$meson$EXESUF"
fi fi
# On Haiku, meson might show up in a "non-packaged" subfolder instead, see
# https://github.com/haiku/haiku/blob/r1beta5/docs/user/storage/storageintro.dox
if test "$host_os" = "haiku" && test ! -e "$meson" ; then
meson="$(cd pyvenv/non-packaged/bin; get_pwd)/meson"
fi
# Conditionally ensure Sphinx is installed. # Conditionally ensure Sphinx is installed.
mkvenv_online_flag="" mkvenv_online_flag=""
@@ -1069,7 +1075,7 @@ static THREAD int tls_var;
int main(void) { return tls_var; } int main(void) { return tls_var; }
EOF EOF
if test "$host_os" = windows || test "$host_os" = haiku; then if test "$host_os" = windows ; then
if test "$pie" = "yes"; then if test "$pie" = "yes"; then
error_exit "PIE not available due to missing OS support" error_exit "PIE not available due to missing OS support"
fi fi

View File

@@ -78,6 +78,8 @@ class HaikuVM(basevm.BaseVM):
"devel:libusb_1.0", "devel:libusb_1.0",
"devel:libz", "devel:libz",
"ninja", "ninja",
"pip",
"tomli_python310",
] ]
BUILD_SCRIPT = """ BUILD_SCRIPT = """
@@ -109,6 +111,8 @@ class HaikuVM(basevm.BaseVM):
self.wait_ssh(wait_root=True, cmd="exit 0") self.wait_ssh(wait_root=True, cmd="exit 0")
# Install packages # Install packages
self.ssh_root("echo yes | pkgman add-repo https://eu.hpkg.haiku-os.org/haiku/r1beta5/$(getarch)/current")
self.ssh_root("echo yes | pkgman add-repo https://eu.hpkg.haiku-os.org/haikuports/r1beta5/$(getarch)/current")
self.ssh_root("pkgman install -y %s" % " ".join(self.requirements)) self.ssh_root("pkgman install -y %s" % " ".join(self.requirements))
self.graceful_shutdown() self.graceful_shutdown()