mirror of
https://github.com/qemu/qemu.git
synced 2026-02-04 02:24:38 +00:00
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:
8
configure
vendored
8
configure
vendored
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user