[Libguestfs] Further nbdkit patches for Haiku
Richard W.M. Jones
rjones at redhat.com
Tue Nov 13 14:18:34 UTC 2018
On Tue, Nov 13, 2018 at 03:09:16PM +0100, François Revol wrote:
> Le 13/11/2018 à 14:40, Richard W.M. Jones a écrit :
> > On Tue, Nov 06, 2018 at 09:02:17AM +0000, Richard W.M. Jones wrote:
> >> 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.
> >
> > FWIW this turns out to be a problem in RHEL 7 as well :-( I worked
> > around it (in RHEL 7 only) by patching the affected tests like this:
> >
> > # Ancient qemu-io in RHEL 7 doesn't support -f FORMAT option. However
> > # we can just omit it and the tests still work fine.
> > for f in tests/*.sh; do
> > sed -i -e 's/qemu-io -f raw/qemu-io/g' $f
> > done
> >
>
>
> Possibly use something like this?
>
> qemuioargs="-f raw"
> qemu-io -h | grep -- -f > /dev/null 2>&1 || qemuioargs=""
>
> qemu-io $qemuioargs ...
>
> Seems to work here.
Yes we could do something like that, but perhaps with a better name
such as ‘$qemu_io_format_raw_args’.
> > I reproduced this on FreeBSD. The path used in the tests is indeed
> > relative:
> >
> > #!../nbdkit
> >
> > However replacing this with an absolute path did *not* fix the issue.
> > FreeBSD seems to not like running a shell script from a shebang,
> > probably because this is (was?) insecure. However because of the way
> > our test harness works we really need to run the shell script. As
> > there seems to be no simple way to fix this for now, I left the bug in
> > 1.8.0.
>
> Possibly there are other restrictions, like having the interpreter
> root-owned, dunno.
>
> Looks like their ports attempt to fix those:
> https://www.freebsd.org/doc/en/books/porters-handbook/uses-shebangfix.html
>
> But the page doesn't list the restrictions.
>
> >
> > Finally the way that iconv detection was implemented broke FreeBSD. I
> > added an interim replacement for this which at least fixes FreeBSD &
> > Linux, however of couse I did not test Haiku:
> >
> > https://github.com/libguestfs/nbdkit/commit/acbe7ad89e75efa8eea41d5891bca3972214200a
>
> Well it doesn't work, because you don't link with the library, so the
> floppy plugin will be skipped.
Right, that was expected. It's a small regression for Haiku though so
if you can work out a better way then let me know.
However the problem is it's not easy to fix. On FreeBSD by default
they have two <iconv.h> headers, and two iconv libraries, and if they
are mixed up then it all breaks.
Rich.
> > So hopefully nbdkit 1.8.0 works for you, or at least is not completely
> > broken. If there are any problems then let us know.
>
>
>
> François.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages. http://libguestfs.org
More information about the Libguestfs
mailing list