[Libguestfs] Patchable build problems on OS X 10.10

Margaret Lewicka margaret at meaningless.name
Thu Feb 5 22:53:06 UTC 2015


Hello,

I'm attempting to create a Homebrew formula to get libguestfs to
compile on Mac OS X. I've managed to achieve success with several
monkey patches, but since Homebrew's policy is to contact maintainers
about proper fixes in upstream, I would like to ask if there are any
plans to fix these issues. I'm afraid I don't know C well enough to
propose decent solutions myself.

Here's a list of compilation issues for 1.28.6 on 10.10:

* It's not possible to build Java bindings with Java 8, because
javadoc fails on GuestFS.java with a hundred or so errors.

* ruby/Makefile.in assumes a .so extension for the built file, while
on Mac DLEXT appears to default to .bundle.

* src/launch-libvirt.c uses SOCK_CLOEXEC and SOCK_NONBLOCK which don't
exist on Darwin.

* src/launch-libvirt.c needs to #include <sys/un.h> for sockaddr_un.

The rest of the issues have been mentioned in
https://www.redhat.com/archives/libguestfs/2013-October/msg00042.html,
and I've reused RWMJ's patches.

* fuse/guestunmount.c uses Linux-specific fusermount and '-v' option for fuser.

* src/proto.c -- From Apple's xdr.h: "If your code invokes an
xdrproc_t callback, it must be modified to pass a third parameter,
which may simply be zero."

* OS X does not provide open_memstream().

* src/guestfs-internal-frontend.h and gnulib/lib/error.c need
monkey-patching to replace program_name with getprogname().

The patch I'm using right now to get libguestfs to successfully
compile is here: https://gist.github.com/shulima/c194c5057e88dbd8f686

Configure flags are --disable-probes, --disable-daemon, --disable-appliance.


-- 
Margaret




More information about the Libguestfs mailing list