[Libguestfs] [PATCH] daemon/Win32: Use gnulib modules for first porting to Win32.
Richard W.M. Jones
rjones at redhat.com
Fri Nov 20 11:58:35 UTC 2009
Quite a victory for Gnulib here. I was able to port a large part
of the daemon just by adding some modules and fixing a few headers.
The remaining issues which are *not* fixed are:
* No chroot on Windows.
* No sync(2) call.
* No posix_fallocate call.
* No futimes call.
* No pread call.
* No custom printf format specifiers.
* Quite a few problems in guestfsd.c, eg. code to run external commands.
* No readlinkat call (use Gnulib {a,x}readlinkat instead?)
* No xdr_uint32_t in PortableXDR.
* Missing external commands.
* Test it.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v
-------------- next part --------------
>From d8b143eab59cb8250040dd5fe5f51197b883c7cc Mon Sep 17 00:00:00 2001
From: Richard Jones <rjones at redhat.com>
Date: Fri, 20 Nov 2009 11:48:51 +0000
Subject: [PATCH] daemon/Win32: Use gnulib modules for first porting to Win32.
---
daemon/.gitignore | 31 ++++++++++++++++++++++++++++++-
daemon/configure.ac | 3 ---
daemon/daemon.h | 1 +
daemon/guestfsd.c | 9 ---------
daemon/m4/gnulib-cache.m4 | 13 ++++++++++++-
daemon/proto.c | 1 +
6 files changed, 44 insertions(+), 14 deletions(-)
diff --git a/daemon/.gitignore b/daemon/.gitignore
index d5dc335..a55d996 100644
--- a/daemon/.gitignore
+++ b/daemon/.gitignore
@@ -3,6 +3,7 @@ lib
link-warning.h
m4/00gnulib.m4
m4/alloca.m4
+m4/arpa_inet_h.m4
m4/canonicalize-lgpl.m4
m4/chdir-long.m4
m4/chown.m4
@@ -26,12 +27,16 @@ m4/fclose.m4
m4/fcntl-safer.m4
m4/fcntl_h.m4
m4/fdopendir.m4
+m4/float_h.m4
m4/fnmatch.m4
m4/getcwd-abort-bug.m4
m4/getcwd-path-max.m4
m4/getcwd.m4
+m4/getdelim.m4
m4/getgroups.m4
+m4/getline.m4
m4/getlogin_r.m4
+m4/gettimeofday.m4
m4/getpagesize.m4
m4/getugroups.m4
m4/glibc21.m4
@@ -41,8 +46,11 @@ m4/gnulib-comp.m4
m4/gnulib-tool.m4
m4/hash.m4
m4/include_next.m4
+m4/inet_pton.m4
m4/inline.m4
+m4/intmax_t.m4
m4/inttostr.m4
+m4/inttypes_h.m4
m4/lchown.m4
m4/localcharset.m4
m4/locale-fr.m4
@@ -57,44 +65,64 @@ m4/mbrtowc.m4
m4/mbsinit.m4
m4/mbsrtowcs.m4
m4/mbstate_t.m4
-m4/mgetgroups.m4
m4/memchr.m4
m4/mempcpy.m4
m4/memrchr.m4
+m4/mgetgroups.m4
m4/mkdir.m4
+m4/mkdtemp.m4
m4/mmap-anon.m4
m4/mode_t.m4
m4/multiarch.m4
+m4/netdb_h.m4
+m4/netinet_in_h.m4
m4/onceonly.m4
m4/open.m4
m4/openat.m4
m4/pathmax.m4
+m4/perror.m4
m4/priv-set.m4
+m4/rawmemchr.m4
m4/readlink.m4
m4/realloc.m4
m4/rmdir.m4
m4/save-cwd.m4
+m4/select.m4
+m4/size_max.m4
m4/sleep.m4
+m4/sockets.m4
+m4/socklen.m4
+m4/sockpfaf.m4
m4/stat-time.m4
m4/stat.m4
m4/stdbool.m4
m4/stddef_h.m4
+m4/stdint_h.m4
m4/stdint.m4
m4/stdio_h.m4
m4/stdlib_h.m4
+m4/strchrnul.m4
m4/strdup.m4
m4/strerror.m4
m4/string_h.m4
m4/strndup.m4
m4/strnlen.m4
m4/symlink.m4
+m4/sys_ioctl_h.m4
+m4/sys_select_h.m4
+m4/sys_socket_h.m4
m4/sys_stat_h.m4
+m4/sys_time_h.m4
+m4/sys_wait_h.m4
+m4/tempname.m4
m4/time_h.m4
m4/unistd-safer.m4
m4/unistd_h.m4
m4/unlink.m4
m4/unlinkdir.m4
m4/usleep.m4
+m4/vasnprintf.m4
+m4/vasprintf.m4
m4/warnings.m4
m4/wchar.m4
m4/wchar_t.m4
@@ -103,6 +131,7 @@ m4/wctype.m4
m4/wint_t.m4
m4/xalloc.m4
m4/xgetcwd.m4
+m4/xsize.m4
m4/xstrndup.m4
mingw32-config.cache
tests
diff --git a/daemon/configure.ac b/daemon/configure.ac
index 92776c2..a1f54a3 100644
--- a/daemon/configure.ac
+++ b/daemon/configure.ac
@@ -179,11 +179,8 @@ AC_CHECK_FUNCS([\
dnl Headers.
AC_CHECK_HEADERS([\
attr/xattr.h \
- netdb.h \
printf.h \
sys/inotify.h \
- sys/select.h \
- sys/wait.h \
sys/xattr.h])
dnl For modified printf, we need glibc either (old-style)
diff --git a/daemon/daemon.h b/daemon/daemon.h
index ac68479..120c86c 100644
--- a/daemon/daemon.h
+++ b/daemon/daemon.h
@@ -19,6 +19,7 @@
#ifndef GUESTFSD_DAEMON_H
#define GUESTFSD_DAEMON_H
+#include <stdio.h>
#include <stdarg.h>
#include <errno.h>
#include <unistd.h>
diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c
index 4b91660..7f9edd1 100644
--- a/daemon/guestfsd.c
+++ b/daemon/guestfsd.c
@@ -32,18 +32,9 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <signal.h>
-
-#ifdef HAVE_NETDB_H
#include <netdb.h>
-#endif
-
-#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
-#endif
-
-#ifdef HAVE_SYS_WAIT_H
#include <sys/wait.h>
-#endif
#ifdef HAVE_PRINTF_H
#include <printf.h>
diff --git a/daemon/m4/gnulib-cache.m4 b/daemon/m4/gnulib-cache.m4
index 3c5b85d..619b89b 100644
--- a/daemon/m4/gnulib-cache.m4
+++ b/daemon/m4/gnulib-cache.m4
@@ -15,17 +15,28 @@
# Specification in the form of a command-line invocation:
-# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --no-libtool --macro-prefix=gl c-ctype glob hash ignore-value manywarnings openat warnings
+# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --no-libtool --macro-prefix=gl c-ctype getline glob hash ignore-value manywarnings mkdtemp netdb openat readlink select sleep strchrnul strndup sys_select sys_wait vasprintf warnings
# Specification in the form of a few gnulib-tool.m4 macro invocations:
gl_LOCAL_DIR([])
gl_MODULES([
c-ctype
+ getline
glob
hash
ignore-value
manywarnings
+ mkdtemp
+ netdb
openat
+ readlink
+ select
+ sleep
+ strchrnul
+ strndup
+ sys_select
+ sys_wait
+ vasprintf
warnings
])
gl_AVOID([])
diff --git a/daemon/proto.c b/daemon/proto.c
index a0d3736..050d74d 100644
--- a/daemon/proto.c
+++ b/daemon/proto.c
@@ -25,6 +25,7 @@
#include <unistd.h>
#include <errno.h>
#include <sys/param.h> /* defines MIN */
+#include <sys/select.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
--
1.6.5.2
More information about the Libguestfs
mailing list