[Libguestfs] [PATCH 00/16] Small bits of non-Linux porting

Pino Toscano ptoscano at redhat.com
Thu Oct 23 18:18:28 UTC 2014


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




More information about the Libguestfs mailing list