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 _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
