Hi,
from time to time, there have been requests (or attempts, like the
mingw port posted on the list some months ago) to make libguestfs work
on OSes different than Linux. Of course this would imply using a fixed
appliance, since it is currently heavily dependent on Linux.
The attached series provides some easy changes in this direction,
resolving some of the easy issues found in porting to FreeBSD; while
they don't solve all the build and runtime issues, at least they get
libguestfs a bit closer to it, while causing no actual changes on
Linux.
Other issues (with partial solutions, or not dealt yet) w.r.t porting
to non-Linux so far found are the following:
a) lack of UNIX_PATH_MAX (which seems Linux-specific anyway)
b) usage of meta /dev/fd/N files; while on (k)FreeBSD there's a fdescfs
filesystem providing it, IMHO a better solution would be adding API
using FDs, like download_fd, upload_fd, tar_in_fd, and tar_out_fd
c) program_invocation_short_name is specific to GNU libc
d) iconv outside of GNU libc, in an own libintl
e) different cli tools, and different output for them
Also, as mentioned in the mingw porting patch,
https://www.redhat.com/archives/libguestfs/2014-February/msg00160.html
a way to disable entirely the usage of supermin (thus leaving only the
fixed appliance as appliance style) is needed too.
Thanks,
--
Pino
Pino Toscano (16):
build: use the ptsname_r gnulib module
Include string.h where needed
Include sys/wait.h where needed
build: look for and use sys/endian.h
fuse: test-fuse: enclose acl vars within HAVE_ACL
p2v: remove unused variable
normalize iconv handling
builder: rename "program_name" into "progname"
tests: isolate iso_system_id baseline string
Include stdint.h where needed
build: use $(SED) instead of sed when possible
tests/c-api: add a way to skip test when host and appliance differ
actions: mark as IfNotCrossAppliance tests of command and
command_lines
customize, mllib: use the libvirt CFLAGS
tests: switch from get_current_dir_name to getcwd(0, NULL)
configure: map also amd64 as host_cpu to x86_64 qemu
bootstrap | 2 ++
builder/index-parse.y | 4 +--
builder/index-parser-c.c | 2 +-
builder/index-struct.h | 2 +-
configure.ac | 4 ++-
customize/Makefile.am | 1 +
daemon/ext2.c | 1 +
daemon/hotplug.c | 1 +
daemon/initrd.c | 1 +
daemon/journal.c | 5 +++
daemon/ldm.c | 1 +
daemon/lvm-filter.c | 1 +
daemon/mktemp.c | 1 +
daemon/utsname.c | 1 +
diff/diff.c | 1 +
fish/Makefile.am | 2 +-
fish/file-edit.c | 1 +
fuse/test-fuse.c | 2 ++
generator/actions.ml | 50 +++++++++++++++---------------
generator/c.ml | 1 +
generator/tests_c_api.ml | 20 +++++++++++-
generator/types.ml | 5 +++
m4/.gitignore | 3 ++
mllib/Makefile.am | 1 +
p2v/Makefile.am | 2 +-
p2v/ssh.c | 2 --
po-docs/Makefile.am | 2 +-
run.in | 2 +-
sparsify/statvfs-c.c | 1 +
src/Makefile.am | 3 +-
src/create.c | 1 +
src/dbdump.c | 1 +
src/file.c | 1 +
src/filearch.c | 1 +
src/fuse.c | 1 +
src/info.c | 1 +
src/inspect-apps.c | 3 ++
src/inspect-fs-windows.c | 5 ++-
src/inspect-icon.c | 1 +
src/journal.c | 3 ++
src/launch-direct.c | 1 +
src/launch-libvirt.c | 1 +
src/launch-unix.c | 1 +
src/libvirt-auth.c | 1 +
src/libvirt-domain.c | 1 +
tests/c-api/test-pwd.c | 2 +-
tests/c-api/tests-main.c | 39 +++++++++++++++++++++++
tests/c-api/tests.h | 1 +
tests/events/test-libvirt-auth-callbacks.c | 4 +--
tests/guests/Makefile.am | 2 +-
50 files changed, 153 insertions(+), 43 deletions(-)
--
1.9.3