[Libguestfs] Further nbdkit patches for Haiku

François Revol revol at free.fr
Fri Nov 9 00:44:38 UTC 2018


Le 06/11/2018 à 10:02, Richard W.M. Jones a écrit :
> François, thanks for the patches so far.
> This morning I pushed:
>   https://github.com/libguestfs/nbdkit/commit/e26fb6cea3fdba13b5472daf6767e76abacd8d03
>   build: add missing #include "byte-swapping.h"
>   https://github.com/libguestfs/nbdkit/commit/b962272a561bfed087316d24b7d510e4ab29a985
>   build: more fallbacks for mkostemp
> The iconv patch makes iconv a requirement.  I don't know how many
> systems actually lack iconv -- probably not very many -- but even so I
> don't want nbdkit to require a library just to compile a single
> plugin, as a feature of nbdkit is that the minimal set of
> requirements.  So I have modified your patch (see attachment) to make
> the iconv dependency optional.  Can you let me know if this works on
> Haiku or if I broke anything?

Seems to work.

> The final patch was:
>   https://github.com/mmuman/nbdkit/commit/50ee315525258b0defae06f6e29da841ddc42b58
>   build: avoid hardcoding /var/tmp by default, use P_tmpdir
> Unfortunately this won't work well on some Linux systems which use the
> /tmp-on-tmpdir misfeature.  On these systems, /tmp has only a small,
> limited amount of space and is backed by memory, and we must use
> /var/tmp for large files.  I don't know how to fix this.  Perhaps a
> simple:
> AS_CASE([$host_os],
>   [haiku*], [LARGE_TMPDIR=/tmp]
>   [LARGE_TMPDIR=/var/tmp]
> )
>                    [Temporary directory for large files])
> would be enough for now?

That should do.

I made a patch here:


Also added one for the loader lib search path environment, which is
different for us.

> Finally about the list of failing tests:
>   https://pastebin.com/1PFG85DS
> Mostly these are because of the old qemu-io binary.  The qemu-io -f
> option was added 4 years ago :-/ so it could be time to upgrade.

Well, our fork is quite old, and QEMU is fast-moving…

> This error:
>   ./test-shebang-perl.sh: PID file was not created
>   rect ELF header
>   FAIL test-shebang-perl.sh (exit status: 1)
> (I think the error message is "incorrect ELF header") could be
> something to do with the way we use shebangs (#!).  IIRC this also
> fails on FreeBSD so probably nbdkit is doing something which is not
> correct POSIX.

Yes I believe it gets rejected because the path is relative.
I think FreeBSD also probably rejects non-absolute interpreter paths for
security reasons.


More information about the Libguestfs mailing list