On Thu, 22 Jan 2026 at 15:01, Thomas Huth <[email protected]> wrote: > 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. > > We also have to add a little "hack" to our configure script: For some > weird reasons, the meson binary shows up as pyvenv/non-packaged/bin/meson > here, and not in the expected location pyvenv/bin/meson. Use a symlink > to fix it.
-> https://github.com/haiku/haiku/blob/master/docs/user/storage/storageintro.dox * Packages not available in the HPKG format are installed under the "/non-packaged/" directory, it seems. > For this new version, 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. > > Signed-off-by: Thomas Huth <[email protected]> > --- > configure | 8 +++++++- > tests/vm/haiku.x86_64 | 4 ++++ > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index 9d7fd13a98b..587cd2a2fe6 100755 > --- a/configure > +++ b/configure > @@ -967,6 +967,12 @@ mkvenv="$python ${source_path}/python/scripts/mkvenv.py" > $mkvenv ensuregroup --dir "${source_path}/python/wheels" \ > ${source_path}/pythondeps.toml meson || exit 1 > > +# For some unknown reason, the meson binary shows up in the wrong > +# folder on Haiku. Use a symlink to fix it. > +if test "$host_os" = "haiku" && test ! -e pyvenv/bin/meson ; then > + ln -s "$PWD"/pyvenv/non-packaged/bin/meson pyvenv/bin/meson > +fi > + > # At this point, we expect Meson to be installed and available. > # We expect mkvenv or pip to have created pyvenv/bin/meson for us. > # We ignore PATH completely here: we want to use the venv's Meson > @@ -1068,7 +1074,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 71cf75a9a3e..529283c39f6 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() > > -- * Instead of creating a symlink for meson, could we add '/non-packaged/' directory to an appropriate PATH variable, so that all such binaries are accessible from 'non-packaged/bin/' directory? That way we avoid creating symlinks for many /non-packaged/ binaries. * Otherwise change looks okay. Reviewed-by: Prasad Pandit <[email protected]> Thank you. --- - Prasad
