Commit f2981f9901 for qemu.org

commit f2981f99019584a59a80c22b416b2437005ab40e
Author: Thomas Huth <thuth@redhat.com>
Date:   Fri Jan 23 19:44:29 2026 +0100

    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>

diff --git a/configure b/configure
index 213880df89..4b61fd3bbf 100755
--- a/configure
+++ b/configure
@@ -987,6 +987,12 @@ if [ -f "$meson$EXESUF" ]; then
   meson="$meson$EXESUF"
 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.

 mkvenv_online_flag=""
@@ -1069,7 +1075,7 @@ static THREAD int tls_var;
 int main(void) { return tls_var; }
 EOF

-if test "$host_os" = windows || test "$host_os" = haiku; then
+if test "$host_os" = windows ; then
   if test "$pie" = "yes"; then
     error_exit "PIE not available due to missing OS support"
   fi
diff --git a/tests/vm/haiku.x86_64 b/tests/vm/haiku.x86_64
index 71cf75a9a3..529283c39f 100755
--- a/tests/vm/haiku.x86_64
+++ b/tests/vm/haiku.x86_64
@@ -78,6 +78,8 @@ class HaikuVM(basevm.BaseVM):
         "devel:libusb_1.0",
         "devel:libz",
         "ninja",
+        "pip",
+        "tomli_python310",
     ]

     BUILD_SCRIPT = """
@@ -109,6 +111,8 @@ class HaikuVM(basevm.BaseVM):
         self.wait_ssh(wait_root=True, cmd="exit 0")

         # 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.graceful_shutdown()