summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 2d51700)
raw | patch | inline | side by side (parent: 2d51700)
| author | Guido Günther <agx@sigxcpu.org> | |
| Thu, 10 Nov 2011 17:22:25 +0000 (18:22 +0100) | ||
| committer | Guido Günther <agx@sigxcpu.org> | |
| Thu, 10 Nov 2011 17:22:25 +0000 (18:22 +0100) |
297 files changed:
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
+2011-11-08 Eric Blake <eblake@redhat.com>
+
+ build: fix build on platforms without ptsname_r
+ MacOS lacks ptsname_r, and gnulib doesn't (yet) provide it.
+ But we can avoid it altogether, by using gnulib openpty()
+ instead. Note that we do _not_ want the pt_chown module;
+ gnulib uses it only to implement a replacement openpty() if
+ the system lacks both openpty() and granpt(), but all
+ systems that we currently port to either have at least one of
+ openpty() and/or grantpt(), or lack ptys altogether. That is,
+ we aren't porting to any system that requires us to deal with
+ the hassle of installing a setuid pt_chown helper just to use
+ gnulib's ability to provide openpty() on obscure platforms.
+
+ * .gnulib: Update to latest, for openpty fixes
+ * bootstrap.conf (gnulib_modules): Add openpty, ttyname_r.
+ (gnulib_tool_option_extras): Exclude pt_chown module.
+ * src/util/util.c (virFileOpenTty): Rewrite in terms of openpty
+ and ttyname_r.
+ * src/util/util.h (virFileOpenTtyAt): Delete dead prototype.
+
+2011-11-07 Daniel P. Berrange <berrange@redhat.com>
+
+ Add missing defaultConsoleTargetType callback for AppArmour
+ Every instance of virCapsPtr must have the defaultConsoleTargetType
+ field set.
+
+ * src/security/virt-aa-helper.c: Add defaultConsoleTargetType to
+ virCapsPtr
+
+ Fix sending/receiving of FDs when stream returns EAGAIN
+ The code calling sendfd/recvfd was mistakenly assuming those
+ calls would never block. They can in fact return EAGAIN and
+ this is causing us to drop the client connection when blocking
+ ocurrs while sending/receiving FDs.
+
+ Fixing this is a little hairy on the incoming side, since at
+ the point where we see the EAGAIN, we already thought we had
+ finished receiving all data for the packet. So we play a little
+ trick to reset bufferOffset again and go back into polling for
+ more data.
+
+ * src/rpc/virnetsocket.c, src/rpc/virnetsocket.h: Update
+ virNetSocketSendFD/RecvFD to return 0 on EAGAIN, or 1
+ on success
+ * src/rpc/virnetclient.c: Move decoding of header & fds
+ out of virNetClientCallDispatch and into virNetClientIOHandleInput.
+ Handling blocking when sending/receiving FDs
+ * src/rpc/virnetmessage.h: Add a 'donefds' field to track
+ how many FDs we've sent / received
+ * src/rpc/virnetserverclient.c: Handling blocking when
+ sending/receiving FDs
+
+2011-11-05 Eric Blake <eblake@redhat.com>
+
+ build: silence compiler warning on BSD
+ Building on 64-bit FreeBSD 8.2 complained about a cast between
+ a pointer and a smaller integer. Going through an intermediate
+ cast shuts up the compiler.
+
+ * src/util/threads-pthread.c (virThreadSelfID): Silence a warning.
+
+ build: fix linking on BSD
+ While building on FreeBSD (and after fixing a ptsname_r link error),
+ I got this failure:
+
+ ./.libs/libvirt_util.a(libvirt_util_la-threads.o)(.text+0x240): In function `virThreadCreate':
+ util/threads-pthread.c:185: undefined reference to `pthread_create'
+
+ It turns out that gnulib used only pthread_join for LIB_PTHREAD,
+ but on FreeBSD, libc provides that (as a stub function); whereas
+ the more complex pthread_create really does require -pthread,
+ which gnulib tracked under [LT]LIBMULTITHREAD.
+
+ * configure.ac (LIBS): Check LIBMULTITHREAD alongside LIB_PTHREAD.
+ * src/Makefile.am (THREAD_LIBS): New variable.
+ (libvirt_util_la_LIBADD, libvirt_lxc_LDADD): Use it.
+
+2011-11-05 Laine Stump <laine@laine.org>
+
+ remote: fix mingw32 build
+ tty is initialized, and later set in code that is compiled for all
+ platforms, but is only used in a section that's inside #ifndef WIN32.
+
+2011-11-04 Eric Blake <eblake@redhat.com>
+
+ lxc: avoid use-after-free
+ I got this weird failure:
+
+ error: Failed to start domain simple
+ error: internal error cannot mix caller fds with blocking execution
+
+ and tracked it down to a use-after-free - virCommandSetOutputFD
+ was storing the address of a stack-local variable, which then
+ went out of scope before the virCommandRun that dereferenced it.
+
+ Bug introduced in commit 451cfd05 (0.9.2).
+
+ * src/lxc/lxc_driver.c (lxcBuildControllerCmd): Move log fd
+ registration...
+ (lxcVmStart): ...to caller.
+
+2011-11-04 Daniel P. Berrange <berrange@redhat.com>
+
+ Fix naming of constant for disk event
+ All constants related to events should have a prefix of
+ VIR_DOMAIN_EVENT_
+
+ * include/libvirt/libvirt.h.in, src/qemu/qemu_domain.c:
+ Rename VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START to
+ VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START
+
+2011-11-04 Jiri Denemark <jdenemar@redhat.com>
+
+ conf: Don't free uninitialized pointer
+ This causes libvirtd to crash when both <boot dev='...'/> and <boot
+ order='...'/> are used in one domain XML. Introduced by
+ 5fa3d775a9f8cdb3423373eb084219aaf778df11
+
+2011-11-04 Eric Blake <eblake@redhat.com>
+
+ build: fix deep VPATH builds
+ I ran into the following build failure:
+ $ mkdir -p build1 build2/a/very/deep/hierarcy
+ $ cd build2/a/very/deep/hierarcy
+ $ ../../../../../configure && make
+ $ cd ../../../../build1
+ $ ../configure && make
+ ...
+ ../../src/remote/remote_protocol.c:7:55: fatal error: ../../../../../src/remote/remote_protocol.h: No such file or directory
+
+ Turns out that we were sometimes generating the remote_protocol.c
+ file with information from the VPATH build, which is bad, since
+ any file shipped in the tarball should be idempotent no matter how
+ deep the VPATH build tree that created it.
+
+ * src/rpc/genprotocol.pl: Don't embed VPATH into generated file.
+
+2011-11-04 Philipp Hahn <hahn@univention.de>
+
+ doc: Add <deviceboot> capability.
+ Allow /capabilities/guest/features/deviceboot.
+
+2011-11-03 Eric Blake <eblake@redhat.com>
+
+ lxc: use common code for process cleanup
+ Based on a Coverity report - the return value of waitpid() should
+ always be checked, to avoid problems with leaking resources.
+
+ * src/lxc/lxc_controller.c (lxcControllerRun): Use simpler virPidAbort.
+
+2011-11-03 Daniel P. Berrange <berrange@redhat.com>
+
+ Fix default console type setting
+ The default console type may vary based on the OS type. ie a Xen
+ paravirt guests wants a 'xen' console, while a fullvirt guests
+ wants a 'serial' console.
+
+ A plain integer default console type in the capabilities does
+ not suffice. Instead introduce a callback that is passed the
+ OS type.
+
+ * src/conf/capabilities.h: Use a callback for default console
+ type
+ * src/conf/domain_conf.c, src/conf/domain_conf.h: Use callback
+ for default console type. Add missing LXC/OpenVZ console types.
+ * src/esx/esx_driver.c, src/libxl/libxl_conf.c,
+ src/lxc/lxc_conf.c, src/openvz/openvz_conf.c,
+ src/phyp/phyp_driver.c, src/qemu/qemu_capabilities.c,
+ src/uml/uml_conf.c, src/vbox/vbox_tmpl.c,
+ src/vmware/vmware_conf.c, src/xen/xen_hypervisor.c,
+ src/xenapi/xenapi_driver.c: Set default console type callback
+
+ Set aliases for LXC/UML console devices
+ To allow virDomainOpenConsole to access non-primary consoles,
+ device aliases are required to be set. Until now only the QEMU
+ driver has done this. Update LXC & UML to set aliases for any
+ console devices
+
+ * src/lxc/lxc_driver.c, src/uml/uml_driver.c: Set aliases
+ for console devices
+
+ Default console target type with no <target> element
+ When no <target> element was set at all, the default console
+ target type was not being honoured
+
+ * src/conf/domain_conf.c: Set default target type for consoles
+ with no <target>
+
+ Add support for multiple consoles in LXC
+ Currently the LXC controller only supports setup of a single
+ text console. This is wired up to the container init's stdio,
+ as well as /dev/console and /dev/tty1. Extending support for
+ multiple consoles, means wiring up additional PTYs to /dev/tty2,
+ /dev/tty3, etc, etc. The LXC controller is passed multiple open
+ file handles, one for each console requested.
+
+ * src/lxc/lxc_container.c, src/lxc/lxc_container.h: Wire up
+ all the /dev/ttyN links required to symlink to /dev/pts/NN
+ * src/lxc/lxc_container.h: Open more container side /dev/pts/NN
+ devices, and adapt event loop to handle I/O from all consoles
+ * src/lxc/lxc_driver.c: Setup multiple host side PTYs
+
+ Rewrite LXC I/O forwarding to use main event loop
+ The current I/O code for LXC uses a hand crafted event loop
+ to forward I/O between the container & host app, based on
+ epoll to handle EOF on PTYs. This event loop is not easily
+ extensible to add more consoles, or monitor other types of
+ file descriptors.
+
+ Remove the custom event loop and replace it with a normal
+ libvirt event loop. When detecting EOF on a PTY, disable
+ the event watch on that FD, and fork off a background thread
+ that does a edge-triggered epoll() on the FD. When the FD
+ finally shows new incoming data, the thread re-enables the
+ watch on the FD and exits.
+
+ When getting EOF from a read() on the PTY, the existing code
+ would do waitpid(WNOHANG) to see if the container had exited.
+ Unfortunately there is a race condition, because even though
+ the process has closed its stdio handles, it might still
+ exist.
+
+ To deal with this the new event loop uses a SIG_CHILD handler
+ to perform the waitpid only when the container is known to
+ have actually exited.
+
+ * src/lxc/lxc_controller.c: Rewrite the event loop to use
+ the standard APIs.
+
+ Fix crash formatting virtio console
+ qemuBuildVirtioSerialPortDevStr was mistakenly accessing the
+ target.name field in the virDomainChrDef object for chardevs
+ belonging to a console. Those chardevs only have port set,
+ and if there's > 1 console, the > 1port number results in
+ trying to access a target.name with address 0x1
+
+ * src/qemu/qemu_command.c: Fix target.name handling and
+ make code more robust wrt error reporting
+
+ * src/qemu/qemu_command.c: Conditionally access target.name
+
+ Allow multiple consoles per virtual guest
+ While Xen only has a single paravirt console, UML, and
+ QEMU both support multiple paravirt consoles. The LXC
+ driver can also be trivially made to support multiple
+ consoles. This patch extends the XML to allow multiple
+ <console> elements in the XML. It also makes the UML
+ and QEMU drivers support this config.
+
+ * src/conf/domain_conf.c, src/conf/domain_conf.h: Allow
+ multiple <console> devices
+ * src/lxc/lxc_driver.c, src/xen/xen_driver.c,
+ src/xenxs/xen_sxpr.c, src/xenxs/xen_xm.c: Update for
+ internal API changes
+ * src/security/security_selinux.c, src/security/virt-aa-helper.c:
+ Only label consoles that aren't a copy of the serial device
+ * src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
+ src/qemu/qemu_process.c, src/uml/uml_conf.c,
+ src/uml/uml_driver.c: Support multiple console devices
+ * tests/qemuxml2xmltest.c, tests/qemuxml2argvtest.c: Extra
+ tests for multiple virtio consoles. Set QEMU_CAPS_CHARDEV
+ for all console /channel tests
+ * tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-auto.args,
+ tests/qemuxml2argvdata/qemuxml2argv-channel-virtio.args
+ tests/qemuxml2argvdata/qemuxml2argv-console-virtio.args: Update
+ for correct chardev syntax
+ * tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.args,
+ tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.xml: New
+ test file
+
+ Remove translations in socket test case
+ The test case errors should not be translated since they're only
+ targetted at developers, not users.
+
+ * tests/virnetsockettest.c: Remove error reporting with translations
+
2011-11-03 Guido Günther <agx@sigxcpu.org>
virnetsockettest: Use a temporary directory in /tmp
diff --git a/GNUmakefile b/GNUmakefile
--- a/GNUmakefile
+++ b/GNUmakefile
# Some projects override e.g., _autoreconf here.
-include $(srcdir)/cfg.mk
-include $(srcdir)/maint.mk
# Allow cfg.mk to override these.
_build-aux ?= build-aux
_autoreconf ?= autoreconf -v
+include $(srcdir)/maint.mk
+
# Ensure that $(VERSION) is up to date for dist-related targets, but not
# for others: rerunning autoreconf and recompiling everything isn't cheap.
_have-git-version-gen := \
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
STATIC_BINARIES = @STATIC_BINARIES@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
--- a/NEWS
+++ b/NEWS
http://libvirt.org/news.html
+0.9.7: Nov 8 2011:
+ - Features:
+ esx: support vSphere 5.x (Patrice LACHANCE),
+ vbox: support for VirtualBox 4.1 (Matthias Bolte),
+ Introduce the virDomainOpenGraphics API (Daniel P. Berrange),
+ Add AHCI support to qemu driver (Jim Fehlig),
+ snapshot: many improvements and 2 new APIs (Eric Blake),
+ api: Add public api for 'reset' (Xu He Jie),
+
+ - Documentation:
+ Add <deviceboot> capability. (Philipp Hahn),
+ API: document scheduler parameter names (Eric Blake),
+ improve typed parameter documentation (Eric Blake),
+ fix typo in <disk>/<target> example (Eric Blake),
+ python: Fix documentation of virStream recv (Matthias Bolte),
+ Add documentation about migration. (Daniel P. Berrange),
+ Document filesystem type='block' for LXC (Ryota Ozaki),
+ fix incorrect info about routed networks (Laine Stump),
+ document managed=yes of hostdev passthrough (Eric Blake),
+ trivial spelling fix (Philipp Hahn),
+ Fix virt-sanlock-cleanup documentation (Philipp Hahn),
+ Fix two comments related to error handling (Philipp Hahn),
+ fix network XML documentation (Laine Stump),
+ Clarify semantics of virDomainMigrate2 (Jiri Denemark),
+ Update examples for probing with systemtap (Daniel P. Berrange),
+ fix html bug (Eric Blake),
+ virsh: Update the help information for undefine command. (tangchen),
+ Document STREQ_NULLABLE and STRNEQ_NULLABLE (Guido Günther),
+ Document that ff callbacks need to be invoked from a clean stack. (Guido Günther),
+ formatdomain.html.in: fix tickpolicy (Douglas Schilling Landgraf),
+ virsh: describe attach-interface parameter target (Daniel Veillard),
+ virsh: update man page for cpu_shares parameter (Daniel Veillard),
+ document node device XML (Eric Blake),
+ document virsh nodedev-* commands (Eric Blake),
+ snapshot: fix man page typos (Eric Blake),
+ virsh: Better document --copy-storage migrate options (Jiri Denemark),
+ virsh: Enhance documentation of commands starting jobs (Jiri Denemark),
+ virsh: Improve virsh manual for virsh memtune command (Peter Krempa)
+
+ - Portability:
+ build: fix build on platforms without ptsname_r (Eric Blake),
+ build: silence compiler warning on BSD (Eric Blake),
+ build: fix linking on BSD (Eric Blake),
+ remote: fix mingw32 build (Laine Stump),
+ build: fix deep VPATH builds (Eric Blake),
+ Use ENAMETOOLONG if the the socket path is longer than UNIX_PATH_MAX (Guido Günther),
+ build: avoid RHEL 5 build failure on LXC (Eric Blake),
+ build: use gnulib fdatasync (Eric Blake),
+ Fix virFileOpenTty definition on Win32 (Daniel P. Berrange),
+ compile: fix undefined reference to gnutls_x509_crt_get_dn with gcc-4.6.1 (Xu He Jie),
+ Fix VPATH build (Jiri Denemark),
+ build: fix 'make dist' error (Wen Congyang),
+ Fix syntax problem in mingw32-libvirt.spec.in (Daniel P. Berrange),
+ spec: mingw cleanups (Eric Blake),
+ build: fix mingw build without sasl (Eric Blake),
+ build: fix 'make rpm' (Eric Blake),
+ build: fix 'make distcheck' (Eric Blake),
+ disable xenlight for non-Xen platforms (Dan Horák),
+ build: Fix VPATH build with new probes (Jiri Denemark),
+ build: fix 'make distcheck' with pdwtags installed (Eric Blake),
+ spec: F15 still uses cgconfig, RHEL lacks hyperv (Eric Blake)
+
+ - Bug Fixes:
+ Fix sending/receiving of FDs when stream returns EAGAIN (Daniel P. Berrange),
+ lxc: avoid use-after-free (Eric Blake),
+ conf: Don't free uninitialized pointer (Jiri Denemark),
+ Fix default console type setting (Daniel P. Berrange),
+ Fix crash formatting virtio console (Daniel P. Berrange),
+ Fix off-by-one printing month in logging code (Daniel P. Berrange),
+ Add missing param initialization in qemuDomainBlockStatsFlags (Daniel P. Berrange),
+ fix crash when starting network (Wen Congyang),
+ Don't overwrite error message during VM cleanup (Daniel P. Berrange),
+ Correctly handle '*' in /etc/filesystems (Daniel P. Berrange),
+ Fix URI alias prefix matching (Wen Ruo Lv),
+ ServerClient: Flush cached data (Michal Privoznik),
+ Fix storage pool source comparison to avoid comparing with self (Daniel P. Berrange),
+ qemu: plug memory leak (Alex Jia),
+ qemu: Restore the original states of PCI device when restarting daemon (Osier Yang),
+ macvtap: Fix error return value convention/inconsistencies (Roopa Prabhu),
+ pci address conflict when virtio disk with drive type (Xu He Jie),
+ qemu: plug memory leak (Alex Jia),
+ qemu: avoid leaking uninit data from hotplug to dumpxml (Eric Blake),
+ util: Fix virUUIDGeneratePseudoRandomBytes (Ryota Ozaki),
+ lxc: Revert zeroing count of allocated items if VIR_REALLOC_N fails (Peter Krempa),
+ lxc: avoid null deref on lxcSetupLoopDevices failure (Alex Jia),
+ lxc: avoid missing '{' in the function (Alex Jia),
+ storage: avoid null deref on qemu-img failure (Eric Blake),
+ storage: make previous leak less likely to regress (Eric Blake),
+ storage: plug iscsi memory leak (Eric Blake),
+ qemu: avoid leaking uninit data from hotplug to dumpxml (Eric Blake),
+ qemu: Do not wait if the PCI device is not managed when reattaching (Osier Yang),
+ Add missing strdup return value check (Roopa Prabhu),
+ macvtap: avoid invalid free (Roopa Prabhu),
+ util: Fix typo in virGetHostname description (Jiri Denemark),
+ macvtap: plug memory leak for 802.1Qbh (Eric Blake),
+ qemu: plug memory leak on migration (Eric Blake),
+ conf: plug memory leak on error (Eric Blake),
+ storage: plug memory leak on error (Eric Blake),
+ util: Make getaddrinfo failure nonfatal in virGetHostname (Jiri Denemark),
+ qemu: fix text block info parsing (Eric Blake),
+ qemu: avoid text monitor null deref (Eric Blake),
+ qemu: check for json allocation failure (Eric Blake),
+ virFDStream: close also given errfd (fd leak) (Marc-André Lureau),
+ command: avoid fd leak on failure (Eric Blake),
+ qemu: Check for domain being active on successful job acquire (Michal Privoznik),
+ xen: Return tap2 for tap2 disks (Philipp Hahn),
+ xen: fix PyGrub boot device order (Philipp Hahn),
+ build: fix 'make check' linkage with dtrace (Eric Blake),
+ Fix deps for probes.o to ensure correct build ordering (Daniel P. Berrange),
+ If receiving a stream error, mark EOF on the stream (Daniel P. Berrange),
+ xen_xs: Guard against set but empty kernel argument (Guido Günther),
+ snapshot: avoid accidental renames with snapshot-edit (Eric Blake),
+ storage: Do not use comma as seperator for lvs output (Osier Yang),
+ qemuDomainAttach: Initialize pidfile variable (Michal Privoznik),
+ lxc: fix logic bug (Eric Blake),
+ Don't send back unknown program errors for async messages (Daniel P. Berrange),
+ Fix deadlock when the RPC program is unknown (Daniel P. Berrange),
+ remote_driver: Avoid double free in EventControl building (Michal Privoznik),
+ xenParseXM: don't dereference NULL pointer when script is empty (Guido Günther),
+ qemu: Fix migration with dname (Jiri Denemark),
+ virsh: do not unlink NULL file (Marc-André Lureau),
+ qemu: Fix error message mentioning VNC instead of SPICE (Peter Krempa),
+ qemu: Check for ejected media during startup and migration (Michal Privoznik),
+ qemu: add return value check (Alex Jia),
+ qemu: Always remove domain object if MigratePrepare fails (Jiri Denemark),
+ fix AppArmor driver for pipe character devices (Jamie Strandboge),
+ daemon: Don't remove pidfiles in init scripts (Peter Krempa),
+ storage: Do not break the whole vol lookup process in the middle (Osier Yang),
+ Fix synchronous reading of stream data (Daniel P. Berrange)
+
+ - Improvements:
+ Add missing defaultConsoleTargetType callback for AppArmour (Daniel P. Berrange),
+ Fix naming of constant for disk event (Daniel P. Berrange),
+ lxc: use common code for process cleanup (Eric Blake),
+ Set aliases for LXC/UML console devices (Daniel P. Berrange),
+ Default console target type with no <target> element (Daniel P. Berrange),
+ Add support for multiple consoles in LXC (Daniel P. Berrange),
+ Rewrite LXC I/O forwarding to use main event loop (Daniel P. Berrange),
+ Allow multiple consoles per virtual guest (Daniel P. Berrange),
+ virnetsockettest: Use a temporary directory in /tmp (Guido Günther),
+ xen: allow getting < max typed parameters (Eric Blake),
+ lxc: allow getting < max typed parameters (Eric Blake),
+ libxl: allow getting < max typed parameters (Eric Blake),
+ esx: allow getting < max typed parameters (Eric Blake),
+ qemu: allow getting < max typed parameters (Eric Blake),
+ Add support for probing filesystem with libblkid (Daniel P. Berrange),
+ Fix error message when failing to detect filesystem (Daniel P. Berrange),
+ Workaround for broken kernel autofs mounts (Daniel P. Berrange),
+ Ensure errno is valid when returning from lxcContainerWaitForContinue (Daniel P. Berrange),
+ Create /var/lib/libvirt/filesystems for LXC trees (Daniel P. Berrange),
+ esx: Support folders in the path of vpx:// connection URIs (Matthias Bolte),
+ qemu: pass virConnectPtr into Domain{Attach,Detach}* (Sage Weil),
+ vbox: Support shared folders (Matthias Bolte),
+ xenapi: Improve error reporting in xenapiOpen once again (Matthias Bolte),
+ Use a common xml type for ceph secret usage. (Josh Durgin),
+ storage: add auth to virDomainDiskDef (Josh Durgin),
+ secret: add Ceph secret type (Sage Weil),
+ Implement RPC driver support for virDomainOpenGraphics (Daniel P. Berrange),
+ Extend RPC server to allow FD passing (Daniel P. Berrange),
+ Add client side support for FD passing (Daniel P. Berrange),
+ Extend RPC protocol to allow FD passing (Daniel P. Berrange),
+ Add APIs for virNetSocket for sending/receiving file descriptors (Daniel P. Berrange),
+ Wire up QEMU implementation for virDomainOpenGraphics (Daniel P. Berrange),
+ Extend graphics event to include UNIX socket (Daniel P. Berrange),
+ virsh: Fix error message on vol-create-from failure (Ryota Ozaki),
+ bridge: modify for use when sVirt is enabled with qemu (Tyler Coumbes),
+ Use virXMLSaveFile when writing XML config (Jiri Denemark),
+ Introduce virXMLSaveFile as a wrapper for virFileRewrite (Jiri Denemark),
+ Introduce virFileRewrite for safe file rewrite (Jiri Denemark),
+ Add a systemtap script for watching QEMU monitor interactions (Daniel P. Berrange),
+ qemu: simplify use of HAVE_YAJL (Eric Blake),
+ snapshot: simplify indentation of disk encryption xml (Eric Blake),
+ snapshot: simplify indentation of nwfilter (Eric Blake),
+ Add REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE to remote_protocol-structs (Daniel P. Berrange),
+ nwfilter: extend schema to support new targets (Stefan Berger),
+ util: Add virFileAccessibleAs to private symbols (Michal Privoznik),
+ startupPolicy: Emit event on disk source dropping (Michal Privoznik),
+ qemu: implement startupPolicy (Michal Privoznik),
+ qemu: Move device alias assigning before command line construction (Michal Privoznik),
+ util: Create virFileAccessibleAs function (Michal Privoznik),
+ conf: Introduce optional startupPolicy attribute for cdrom and floppy (Michal Privoznik),
+ waitpid: improve safety (Eric Blake),
+ virsh: Fix vol-info's 'Type' output (Ryota Ozaki),
+ support continue/return targets in nwfilter (David L Stevens),
+ snapshot: simplify indentation of network xml (Eric Blake),
+ snapshot: simplify indentation of cpu features (Eric Blake),
+ snapshot: simplify indentation of sysinfo (Eric Blake),
+ snapshot: test domainsnapshot indentation (Eric Blake),
+ snapshot: indent domain xml when nesting (Eric Blake),
+ virbuf: add auto-indentation support (Eric Blake),
+ virbuf: more detailed error reporting (Eric Blake),
+ virbuf: improve testsuite reporting (Eric Blake),
+ virbuf: fix const-correctness (Eric Blake),
+ qemu: allow json in domxml-to-native (tangchen),
+ support setting bandwidth from virsh attach-interface (Hu Tao),
+ lxc: use hand-rolled code in place of unlockpt and grantpt (Serge E. Hallyn),
+ qemu: Test name-space handling (Philipp Hahn),
+ qemu: Fix name-space handling (Philipp Hahn),
+ Replace virBufferAdd with virBufferAddLit for const string (Daniel P. Berrange),
+ Allow for URI aliases when connecting to libvirt (Daniel P. Berrange),
+ Add support for autodestroy of guests to the LXC and UML drivers (Daniel P. Berrange),
+ Use virBufferEscapeShell in cmdEcho (Guido Günther),
+ qemu: replace qemuMonitorEscapeShell by virBufferEscapeShell (Guido Günther),
+ virBufferEscapeShell: Emit quotes for the empty string (Guido Günther),
+ snapshot: detect when qemu lacks disk-snapshot support (Eric Blake),
+ virBufferEscapeShell: Fix escaping of single quotes. (Guido Günther),
+ compile: Add a missing function 'pciDeviceListFind' to libvirt_private.syms (Xu He Jie),
+ snapshot: implement LIST_LEAVES flag in esx (Eric Blake),
+ qemu: Relax -no-shutdown check to [0.14.0, 0.15.0] (Jiri Denemark),
+ qemu: Honor the orginal PCI dev properties when reattaching (Osier Yang),
+ qemu: Do not reattach PCI device used by other domain when shutdown (Osier Yang),
+ Xen: Fake versions in xencapstest (Philipp Hahn),
+ Xen: move versions to struct (Philipp Hahn),
+ Use virBufferEscapeShell in virNetSocketNewConnectSSH (Guido Günther),
+ Add virBufferEscapeShell (Guido Günther),
+ Autodetect if the remote nc command supports the -q option (Guido Günther),
+ qemu: Make sure BeginJob is always followed by EndJob (Jiri Denemark),
+ qemu: Log debug messages when changing job (Jiri Denemark),
+ build: add compiler attributes to virUUIDParse (Eric Blake),
+ Fix typo in lxc_controller (Serge E. Hallyn),
+ build: update to latest gnulib (Eric Blake),
+ events: Propose a separate lock for event queue (Michal Privoznik),
+ qemu: Implement VIR_DUMP_RESET (Michal Privoznik),
+ virDomainCoreDump: Introduce VIR_DUMP_RESET flag (Michal Privoznik),
+ example: Support debug output and loop switch (Philipp Hahn),
+ example: Redirect --help output to stdout/stderr (Philipp Hahn),
+ example: Fix argument handling (Philipp Hahn),
+ snapshot: implement LIST_LEAVES flag in qemu (Eric Blake),
+ snapshot: add API for filtering by leaves (Eric Blake),
+ tests: Add support for skipping tests (Philipp Hahn),
+ Introduce <driver> under <filesystem> to support open-by-handle (Harsh Prateek Bora),
+ buf: implement generic virBufferEscape (Sage Weil),
+ daemon: Always advertise libvirtd service (Osier Yang),
+ snapshot: take advantage of new relations (Eric Blake),
+ snapshot: track qemu snapshot relations (Eric Blake),
+ snapshot: framework for more efficient relation traversal (Eric Blake),
+ snapshot: use correct qmp monitor command (Eric Blake),
+ snapshot: virsh shorthand for operating on current snap (Eric Blake),
+ build: ship helper scripts (Eric Blake),
+ Rewrite all the DTrace/SystemTAP probing (Daniel P. Berrange),
+ Fix missing lock calls on virNetTLSContextRef (Daniel P. Berrange),
+ Refactor TLS to facilitate dynamic probing (Daniel P. Berrange),
+ Add virSocketRef API to facilitate dynamic probing (Daniel P. Berrange),
+ Make libvirt.so include the RPC server code (Daniel P. Berrange),
+ snapshot: implement snapshot children listing in esx (Eric Blake),
+ snapshot: implement snapshot children listing in qemu (Eric Blake),
+ snapshot: remote protocol for snapshot children (Eric Blake),
+ snapshot: virsh fallback for snapshot-list --descendants --from (Eric Blake),
+ snapshot: virsh fallback for snapshot-list --from children (Eric Blake),
+ snapshot: virsh fallback for snapshot-list --tree --from (Eric Blake),
+ snapshot: virsh snapshot-list and children (Eric Blake),
+ xen: add error handling to UUID parsing (Guido Günther),
+ maint: typo fixes (Eric Blake),
+ snapshot: sort snapshot-list --tree (Eric Blake),
+ snapshot: simplify redefinition of disk snapshot (Eric Blake),
+ snapshot: let virsh edit disk snapshots (Eric Blake),
+ snapshot: fix virsh error message typo (Eric Blake),
+ qemu: add separate rerror_policy for disk errors (Laine Stump),
+ qemu: leave rerror policy at default when enospace is requested (Laine Stump),
+ qemu: enable multifunction for older qemu (Eric Blake),
+ Make LXC work with new network configuration types (Daniel P. Berrange),
+ init: raise default system aio limits (Eric Blake),
+ maint: fix minor issues in virterror public header (Eric Blake),
+ snapshot: enforce REVERT_FORCE on qemu (Eric Blake),
+ snapshot: use qemu-img on disks in use at time of snapshot (Eric Blake),
+ snapshot: add REVERT_FORCE to API (Eric Blake),
+ snapshot: implement snapshot roots listing in vbox (Eric Blake),
+ qemu: Don't fail virDomainGetInfo if we can't update balloon info (Jiri Denemark),
+ snapshot: simplify esx snapshot name lookup (Eric Blake),
+ snapshot: implement snapshot roots listing in esx (Eric Blake),
+ qemu: correct misspelled 'enospc' option, and only use for werror (Laine Stump),
+ snapshot: better virsh handling of missing current, parent (Eric Blake),
+ Allow passing of command line args to LXC container (Daniel P. Berrange),
+ Add support for bandwidth filtering on LXC guests (Daniel P. Berrange),
+ network: fill in bandwidth from portgroup for all forward modes (Laine Stump),
+ bridge_driver.c: Fix autoconf setting (Neil Wilson),
+ Set to NULL members that have been freed to prevent crashes (Marc-André Lureau),
+ snapshot: implement getparent for vbox (Eric Blake),
+ snapshot: implement getparent for esx (Eric Blake),
+ qemu: make PCI multifunction support more manual (Laine Stump),
+ lvm storage backend: handle command_names=1 in lvm.conf (Serge E. Hallyn),
+ qemu: Check for outstanding async job too (Michal Privoznik),
+ virsh: Add 'reset' command for virsh (Xu He Jie),
+ remote: Implement 'reset' for remote driver (Xu He Jie),
+ qemu: Implement 'reset' for qemu driver (Xu He Jie),
+ logging: Add date to log timestamp (Jiri Denemark),
+ logging: Do not log timestamp through syslog (Jiri Denemark),
+ hyperv: Report an error for acceptable URI schemes with a transport (Matthias Bolte),
+ esx: Report an error for acceptable URI schemes with a transport (Matthias Bolte),
+ snapshot: implement getparent in qemu (Eric Blake),
+ snapshot: add virsh snapshot-list --tree (Eric Blake),
+ snapshot: refactor virsh snapshot parent computation (Eric Blake),
+ snapshot: remote protocol for getparent (Eric Blake),
+ security: properly chown/label bidirectional and unidirectional fifos (Laine Stump),
+ qemu: Preserve fakeReboot flag in domain status (Jiri Denemark),
+ qemu: Finish domain shutdown on reconnect (Jiri Denemark),
+ qemu: Check domain status details when reconnecting monitor (Jiri Denemark),
+ virsh: Allow using complete <capabilities> elements with cpu-baseline (Peter Krempa),
+ virsh: Allow using domain and capabilities XMLs with cpu-compare (Peter Krempa),
+ qemu: add ability to set PCI device "rombar" on or off (Laine Stump),
+ qemu: Relax -no-shutdown check to [0.14.0, 0.15.50) (Jiri Denemark),
+ virLockManagerNopInit: Rename flags to unused_flags (Michal Privoznik),
+ debug: Annotate some variables as unused (Michal Privoznik),
+ maint: update authors (Peter Krempa),
+ Add unsafe cache mode support for disk driver (Oskari Saarenmaa),
+ selinux: Correctly report warning if virt_use_nfs not set (Michal Privoznik),
+ virsh: Do not ignore the specified flags for cmdSaveImageDefine (Osier Yang),
+ qemu: Transfer inactive XML among cookie (Michal Privoznik)
+
+ - Cleanups:
+ Remove translations in socket test case (Daniel P. Berrange),
+ test: drop redundant check (Eric Blake),
+ startupPolicty: Minor cleanups (Michal Privoznik),
+ secret: fix bad patch application (Eric Blake),
+ Remove trailing whitespace from all xfig files (Daniel P. Berrange),
+ Fix typo in virFileAccessibleAs (Daniel P. Berrange),
+ snapshot: minor cleanups from reviewing indentation (Eric Blake),
+ build: ignore test executable (Eric Blake),
+ esx: drop dead code to silence Coverity (Eric Blake),
+ snapshot: drop dead parameters (Eric Blake),
+ qemu: silence Coverity false positive (Eric Blake),
+ conf: remove unused VIR_ENUM_DECL (Laine Stump)
+
+
+
0.9.6: Sep 22 2011:
- Portability:
build: silence warning on 32-bit build (Eric Blake)
diff --git a/aclocal.m4 b/aclocal.m4
--- a/aclocal.m4
+++ b/aclocal.m4
m4_include([gnulib/m4/environ.m4])
m4_include([gnulib/m4/errno_h.m4])
m4_include([gnulib/m4/error.m4])
+m4_include([gnulib/m4/exponentd.m4])
m4_include([gnulib/m4/extensions.m4])
m4_include([gnulib/m4/fatal-signal.m4])
m4_include([gnulib/m4/fclose.m4])
m4_include([gnulib/m4/getugroups.m4])
m4_include([gnulib/m4/gnulib-common.m4])
m4_include([gnulib/m4/gnulib-comp.m4])
+m4_include([gnulib/m4/grantpt.m4])
m4_include([gnulib/m4/hostent.m4])
m4_include([gnulib/m4/include_next.m4])
m4_include([gnulib/m4/inet_ntop.m4])
m4_include([gnulib/m4/poll.m4])
m4_include([gnulib/m4/poll_h.m4])
m4_include([gnulib/m4/posix-shell.m4])
+m4_include([gnulib/m4/posix_openpt.m4])
m4_include([gnulib/m4/posix_spawn.m4])
m4_include([gnulib/m4/printf.m4])
m4_include([gnulib/m4/pthread.m4])
m4_include([gnulib/m4/pthread_sigmask.m4])
+m4_include([gnulib/m4/ptsname.m4])
+m4_include([gnulib/m4/pty.m4])
+m4_include([gnulib/m4/pty_h.m4])
m4_include([gnulib/m4/putenv.m4])
m4_include([gnulib/m4/raise.m4])
m4_include([gnulib/m4/random_r.m4])
m4_include([gnulib/m4/ssize_t.m4])
m4_include([gnulib/m4/stat-time.m4])
m4_include([gnulib/m4/stat.m4])
+m4_include([gnulib/m4/stdalign.m4])
m4_include([gnulib/m4/stdarg.m4])
m4_include([gnulib/m4/stdbool.m4])
m4_include([gnulib/m4/stddef_h.m4])
m4_include([gnulib/m4/time_r.m4])
m4_include([gnulib/m4/timegm.m4])
m4_include([gnulib/m4/tm_gmtoff.m4])
+m4_include([gnulib/m4/ttyname_r.m4])
m4_include([gnulib/m4/uname.m4])
m4_include([gnulib/m4/ungetc.m4])
m4_include([gnulib/m4/unistd_h.m4])
+m4_include([gnulib/m4/unlockpt.m4])
m4_include([gnulib/m4/usleep.m4])
m4_include([gnulib/m4/vasnprintf.m4])
m4_include([gnulib/m4/vasprintf.m4])
if 0;
# Convert git log output to ChangeLog format.
-my $VERSION = '2009-10-30 13:46'; # UTC
+my $VERSION = '2011-11-02 07:53'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
OPTIONS:
+ --amend=FILE FILE maps from an SHA1 to perl code (i.e., s/old/new/) that
+ makes a change to SHA1's commit log text or metadata.
+ --append-dot append a dot to the first line of each commit message if
+ there is no other punctuation or blank at the end.
--since=DATE convert only the logs since DATE;
the default is to convert all log entries.
--format=FMT set format string for commit subject and body;
$ME --since=2008-01-01 > ChangeLog
$ME -- -n 5 foo > last-5-commits-to-branch-foo
+In a FILE specified via --amend, comment lines (starting with "#") are ignored.
+FILE must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1 (alone on
+a line) referring to a commit in the current project, and CODE refers to one
+or more consecutive lines of Perl code. Pairs must be separated by one or
+more blank line.
+
+Here is sample input for use with --amend=FILE, from coreutils:
+
+3a169f4c5d9159283548178668d2fae6fced3030
+# fix typo in title:
+s/all tile types/all file types/
+
+1379ed974f1fa39b12e2ffab18b3f7a607082202
+# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
+# Change the author to be Paul. Note the escaped "@":
+s,Jim .*>,Paul Eggert <eggert\@cs.ucla.edu>,
+
EOF
}
exit $exit_code;
return join (' ', map {shell_quote $_} @_);
}
+# Parse file F.
+# Comment lines (starting with "#") are ignored.
+# F must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1
+# (alone on a line) referring to a commit in the current project, and
+# CODE refers to one or more consecutive lines of Perl code.
+# Pairs must be separated by one or more blank line.
+sub parse_amend_file($)
+{
+ my ($f) = @_;
+
+ open F, '<', $f
+ or die "$ME: $f: failed to open for reading: $!\n";
+
+ my $fail;
+ my $h = {};
+ my $in_code = 0;
+ my $sha;
+ while (defined (my $line = <F>))
+ {
+ $line =~ /^\#/
+ and next;
+ chomp $line;
+ $line eq ''
+ and $in_code = 0, next;
+
+ if (!$in_code)
+ {
+ $line =~ /^([0-9a-fA-F]{40})$/
+ or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"),
+ $fail = 1, next;
+ $sha = lc $1;
+ $in_code = 1;
+ exists $h->{$sha}
+ and (warn "$ME: $f:$.: duplicate SHA1\n"),
+ $fail = 1, next;
+ }
+ else
+ {
+ $h->{$sha} ||= '';
+ $h->{$sha} .= "$line\n";
+ }
+ }
+ close F;
+
+ $fail
+ and exit 1;
+
+ return $h;
+}
+
{
- my $since_date = '1970-01-01 UTC';
+ my $since_date;
my $format_string = '%s%n%b%n';
+ my $amend_file;
+ my $append_dot = 0;
GetOptions
(
help => sub { usage 0 },
version => sub { print "$ME version $VERSION\n"; exit },
'since=s' => \$since_date,
'format=s' => \$format_string,
+ 'amend=s' => \$amend_file,
+ 'append-dot' => \$append_dot,
) or usage 1;
- my @cmd = (qw (git log --log-size), "--since=$since_date",
- '--pretty=format:%ct %an <%ae>%n%n'.$format_string, @ARGV);
+
+ defined $since_date
+ and unshift @ARGV, "--since=$since_date";
+
+ # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/)
+ # that makes a correction in the log or attribution of that commit.
+ my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {};
+
+ my @cmd = (qw (git log --log-size),
+ '--pretty=format:%H:%ct %an <%ae>%n%n'.$format_string, @ARGV);
open PIPE, '-|', @cmd
or die ("$ME: failed to run `". quoted_cmd (@cmd) ."': $!\n"
. "(Is your Git too old? Version 1.5.1 or later is required.)\n");
$n_read == $log_nbytes
or die "$ME:$.: unexpected EOF\n";
- my @line = split "\n", $log;
+ # Extract leading hash.
+ my ($sha, $rest) = split ':', $log, 2;
+ defined $sha
+ or die "$ME:$.: malformed log entry\n";
+ $sha =~ /^[0-9a-fA-F]{40}$/
+ or die "$ME:$.: invalid SHA1: $sha\n";
+
+ # If this commit's log requires any transformation, do it now.
+ my $code = $amend_code->{$sha};
+ if (defined $code)
+ {
+ eval 'use Safe';
+ my $s = new Safe;
+ # Put the unpreprocessed entry into "$_".
+ $_ = $rest;
+
+ # Let $code operate on it, safely.
+ my $r = $s->reval("$code")
+ or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n";
+
+ # Note that we've used this entry.
+ delete $amend_code->{$sha};
+
+ # Update $rest upon success.
+ $rest = $_;
+ }
+
+ my @line = split "\n", $rest;
my $author_line = shift @line;
defined $author_line
or die "$ME:$.: unexpected EOF\n";
# Omit "Signed-off-by..." lines.
@line = grep !/^Signed-off-by: .*>$/, @line;
+ # Remove leading and trailing blank lines.
+ if (@line)
+ {
+ while ($line[0] =~ /^\s*$/) { shift @line; }
+ while ($line[$#line] =~ /^\s*$/) { pop @line; }
+ }
+
# If there were any lines
if (@line == 0)
{
}
else
{
- # Remove leading and trailing blank lines.
- while ($line[0] =~ /^\s*$/) { shift @line; }
- while ($line[$#line] =~ /^\s*$/) { pop @line; }
+ if ($append_dot)
+ {
+ # If the first line of the message has enough room, then
+ if (length $line[0] < 72)
+ {
+ # append a dot if there is no other punctuation or blank
+ # at the end.
+ $line[0] =~ /[[:punct:]\s]$/
+ or $line[0] .= '.';
+ }
+ }
# Prefix each non-empty line with a TAB.
@line = map { length $_ ? "\t$_" : '' } @line;
close PIPE
or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n";
# FIXME-someday: include $PROCESS_STATUS in the diagnostic
+
+ # Complain about any unused entry in the --amend=F specified file.
+ my $fail = 0;
+ foreach my $sha (keys %$amend_code)
+ {
+ warn "$ME:$amend_file: unused entry: $sha\n";
+ $fail = 1;
+ }
+
+ exit $fail;
}
# Local Variables:
diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex
--- a/build-aux/texinfo.tex
+++ b/build-aux/texinfo.tex
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2011-09-23.09}
+\def\texinfoversion{2011-10-19.08}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
\else\ifx\next-%
\else\ifx\next.%
\else\ptexslash
- \fi\fi\fi}
+ \fi\fi\fi
+ \aftersmartic
+}
% like \smartslanted except unconditionally uses \ttsl, and no ic.
% @var is set to this for defun arguments.
% ttsl for book titles, do we?
\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection}
+\def\aftersmartic{}
+\def\var#1{%
+ \let\saveaftersmartic = \aftersmartic
+ \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}%
+ \smartslanted{#1}%
+}
+
\let\i=\smartitalic
\let\slanted=\smartslanted
-\def\var#1{\smartslanted{#1}}
\let\dfn=\smartslanted
\let\emph=\smartitalic
\plainfrenchspacing
#1%
}%
- \null
+ \null % reset spacefactor to 1000
}
% We *must* turn on hyphenation at `-' and `_' in @code.
\ifx\temp\empty \else
\space ({\unsepspaces \ignorespaces \temp \unskip})%
\fi
+ \null % reset \spacefactor=1000
}
% @abbr for "Comput. J." and the like.
\ifx\temp\empty \else
\space ({\unsepspaces \ignorespaces \temp \unskip})%
\fi
+ \null % reset \spacefactor=1000
}
% @asis just yields its argument. Used with @table, for example.
% space to prevent strange expansion errors.)
\def\supereject{\par\penalty -20000\footnoteno =0 }
-% @footnotestyle is meaningful for info output only.
+% @footnotestyle is meaningful for Info output only.
\let\footnotestyle=\comment
{\catcode `\@=11
% expands into a box, it must come within the paragraph, lest it
% provide a place where TeX can split the footnote.
\footstrut
+ %
+ % Invoke rest of plain TeX footnote routine.
\futurelet\next\fo@t
}
}%end \catcode `\@=11
--- a/cfg.mk
+++ b/cfg.mk
@@ -676,7 +676,7 @@ $(srcdir)/src/remote/remote_client_bodies.h: $(srcdir)/src/remote/remote_protoco
# List all syntax-check exemptions:
exclude_file_name_regexp--sc_avoid_strcase = ^tools/virsh\.c$$
-_src1=libvirt|fdstream|qemu/qemu_monitor|util/(command|util)|xen/xend_internal|rpc/virnetsocket
+_src1=libvirt|fdstream|qemu/qemu_monitor|util/(command|util)|xen/xend_internal|rpc/virnetsocket|lxc/lxc_controller
exclude_file_name_regexp--sc_avoid_write = \
^(src/($(_src1))|daemon/libvirtd|tools/console|tests/(shunload|virnettlscontext)test)\.c$$
diff --git a/config.h.in b/config.h.in
--- a/config.h.in
+++ b/config.h.in
/* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA
+/* Define as the bit index in the word where to find bit 0 of the exponent of
+ 'double'. */
+#undef DBL_EXPBIT0_BIT
+
+/* Define as the word index where to find the exponent of 'double'. */
+#undef DBL_EXPBIT0_WORD
+
/* Location or name of the dmsetup program */
#undef DMSETUP
/* Define to 1 when the gnulib module gettimeofday should be tested. */
#undef GNULIB_TEST_GETTIMEOFDAY
+/* Define to 1 when the gnulib module grantpt should be tested. */
+#undef GNULIB_TEST_GRANTPT
+
/* Define to 1 when the gnulib module ioctl should be tested. */
#undef GNULIB_TEST_IOCTL
/* Define to 1 when the gnulib module open should be tested. */
#undef GNULIB_TEST_OPEN
+/* Define to 1 when the gnulib module openpty should be tested. */
+#undef GNULIB_TEST_OPENPTY
+
/* Define to 1 when the gnulib module perror should be tested. */
#undef GNULIB_TEST_PERROR
/* Define to 1 when the gnulib module poll should be tested. */
#undef GNULIB_TEST_POLL
+/* Define to 1 when the gnulib module posix_openpt should be tested. */
+#undef GNULIB_TEST_POSIX_OPENPT
+
/* Define to 1 when the gnulib module posix_spawnattr_destroy should be
tested. */
#undef GNULIB_TEST_POSIX_SPAWNATTR_DESTROY
/* Define to 1 when the gnulib module pthread_sigmask should be tested. */
#undef GNULIB_TEST_PTHREAD_SIGMASK
+/* Define to 1 when the gnulib module ptsname should be tested. */
+#undef GNULIB_TEST_PTSNAME
+
/* Define to 1 when the gnulib module putenv should be tested. */
#undef GNULIB_TEST_PUTENV
/* Define to 1 when the gnulib module time_r should be tested. */
#undef GNULIB_TEST_TIME_R
+/* Define to 1 when the gnulib module ttyname_r should be tested. */
+#undef GNULIB_TEST_TTYNAME_R
+
+/* Define to 1 when the gnulib module unlockpt should be tested. */
+#undef GNULIB_TEST_UNLOCKPT
+
/* Define to 1 when the gnulib module unsetenv should be tested. */
#undef GNULIB_TEST_UNSETENV
don't. */
#undef HAVE_DECL_MBSRTOWCS
+/* Define to 1 if you have the declaration of `openpty', and to 0 if you
+ don't. */
+#undef HAVE_DECL_OPENPTY
+
/* Define to 1 if you have the declaration of `program_invocation_name', and
to 0 if you don't. */
#undef HAVE_DECL_PROGRAM_INVOCATION_NAME
don't. */
#undef HAVE_DECL_TOWLOWER
+/* Define to 1 if you have the declaration of `ttyname_r', and to 0 if you
+ don't. */
+#undef HAVE_DECL_TTYNAME_R
+
/* Define to 1 if you have the declaration of `unsetenv', and to 0 if you
don't. */
#undef HAVE_DECL_UNSETENV
/* Define to 1 if you have the `getuid' function. */
#undef HAVE_GETUID
+/* Define to 1 if you have the `grantpt' function. */
+#undef HAVE_GRANTPT
+
/* Define to 1 if you have the <grp.h> header file. */
#undef HAVE_GRP_H
/* Define to 1 if you have the <libtasn1.h> header file. */
#undef HAVE_LIBTASN1_H
+/* Define to 1 if you have the <libutil.h> header file. */
+#undef HAVE_LIBUTIL_H
+
/* Define to 1 if you have the `uuid' library (-luuid). */
#undef HAVE_LIBUUID
/* whether numactl is available for topology info */
#undef HAVE_NUMACTL
+/* Define to 1 if the system has the 'openpty' function. */
+#undef HAVE_OPENPTY
+
/* Define to 1 if you have the <OS.h> header file. */
#undef HAVE_OS_H
/* Define to 1 if you have the <poll.h> header file. */
#undef HAVE_POLL_H
+/* Define if the ttyname_r function has a POSIX compliant declaration. */
+#undef HAVE_POSIXDECL_TTYNAME_R
+
/* Define to 1 if you have the `posix_fallocate' function. */
#undef HAVE_POSIX_FALLOCATE
/* Define to 1 if you have the `posix_memalign' function. */
#undef HAVE_POSIX_MEMALIGN
+/* Define to 1 if you have the `posix_openpt' function. */
+#undef HAVE_POSIX_OPENPT
+
/* Define to 1 if you have the `posix_spawn' function. */
#undef HAVE_POSIX_SPAWN
/* Define to 1 if the system has the type `pthread_t'. */
#undef HAVE_PTHREAD_T
+/* Define to 1 if you have the `ptsname' function. */
+#undef HAVE_PTSNAME
+
+/* Define to 1 if you have the <pty.h> header file. */
+#undef HAVE_PTY_H
+
/* Define to 1 if you have the <pwd.h> header file. */
#undef HAVE_PWD_H
/* Define to 1 if you have the <regex.h> header file. */
#undef HAVE_REGEX_H
+/* Define to 1 if you have the `revoke' function. */
+#undef HAVE_REVOKE
+
/* whether Sanlock plugin for lock management is available */
#undef HAVE_SANLOCK
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
+/* Define to 1 if you have the `setrlimit' function. */
+#undef HAVE_SETRLIMIT
+
/* Define to 1 if you have the `shutdown' function. */
#undef HAVE_SHUTDOWN
/* Define to 1 if you have the <spawn.h> header file. */
#undef HAVE_SPAWN_H
+/* Define to 1 if you have the <stdalign.h> header file. */
+#undef HAVE_STDALIGN_H
+
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the `tsearch' function. */
#undef HAVE_TSEARCH
+/* Define to 1 if you have the `ttyname' function. */
+#undef HAVE_TTYNAME
+
+/* Define to 1 if you have the `ttyname_r' function. */
+#undef HAVE_TTYNAME_R
+
/* use UDEV for host device enumeration */
#undef HAVE_UDEV
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
+/* Define to 1 if you have the `unlockpt' function. */
+#undef HAVE_UNLOCKPT
+
/* Define to 1 if you have the `unsetenv' function. */
#undef HAVE_UNSETENV
/* Define to 1 if you have the `usleep' function. */
#undef HAVE_USLEEP
+/* Define to 1 if you have the <util.h> header file. */
+#undef HAVE_UTIL_H
+
/* Define to 1 if you have the `vasnprintf' function. */
#undef HAVE_VASNPRINTF
/* Define to 1 if you have the `_ftime' function. */
#undef HAVE__FTIME
+/* Define to 1 if you have the `_getpty' function. */
+#undef HAVE__GETPTY
+
/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */
#undef HAVE__SET_INVALID_PARAMETER_HANDLER
diff --git a/configure b/configure
--- a/configure
+++ b/configure
STDARG_H
NEXT_AS_FIRST_DIRECTIVE_STDARG_H
NEXT_STDARG_H
+GL_GENERATE_STDALIGN_H_FALSE
+GL_GENERATE_STDALIGN_H_TRUE
+STDALIGN_H
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H
NEXT_SIGNAL_H
LIB_SELECT
REPLACE_POLL
HAVE_POLL
GNULIB_POLL
+NEXT_AS_FIRST_DIRECTIVE_PTY_H
+NEXT_PTY_H
+HAVE_PTY_H
+REPLACE_OPENPTY
+REPLACE_FORKPTY
+HAVE_OPENPTY
+HAVE_FORKPTY
+HAVE_LIBUTIL_H
+HAVE_UTIL_H
+GNULIB_OPENPTY
+GNULIB_FORKPTY
+PTY_LIB
ASM_SYMBOL_PREFIX
GL_GENERATE_NETINET_IN_H_FALSE
GL_GENERATE_NETINET_IN_H_TRUE
HAVE_RANDOM_R
HAVE_RANDOM_H
HAVE_PTSNAME
+HAVE_POSIX_OPENPT
HAVE_MKSTEMPS
HAVE_MKSTEMP
HAVE_MKOSTEMPS
GNULIB_RANDOM_R
GNULIB_PUTENV
GNULIB_PTSNAME
+GNULIB_POSIX_OPENPT
GNULIB_MKSTEMPS
GNULIB_MKSTEMP
GNULIB_MKOSTEMPS
gl_func_list="$gl_func_list mkstemp"
gl_func_list="$gl_func_list mkstemps"
gl_func_list="$gl_func_list alarm"
+gl_header_list="$gl_header_list pty.h"
gl_func_list="$gl_func_list recvmsg"
gl_func_list="$gl_func_list sendmsg"
gl_func_list="$gl_func_list strerror_r"
gl_header_list="$gl_header_list poll.h"
gl_header_list="$gl_header_list sys/ioctl.h"
gl_header_list="$gl_header_list sys/filio.h"
+gl_func_list="$gl_func_list posix_openpt"
gl_header_list="$gl_header_list pthread.h"
gl_func_list="$gl_func_list pthread_sigmask"
gl_header_list="$gl_header_list sched.h"
gl_func_list="$gl_func_list siginterrupt"
gl_func_list="$gl_func_list sleep"
gl_func_list="$gl_func_list snprintf"
+gl_header_list="$gl_header_list stdalign.h"
gl_header_list="$gl_header_list wchar.h"
gl_header_list="$gl_header_list stdint.h"
gl_func_list="$gl_func_list strdup"
# Code from module accept:
# Code from module accept-tests:
- # Code from module alignof:
- # Code from module alignof-tests:
# Code from module alloca:
# Code from module alloca-opt:
# Code from module alloca-opt-tests:
# Code from module getugroups:
# Code from module gitlog-to-changelog:
# Code from module gnumakefile:
+ # Code from module grantpt:
+ # Code from module grantpt-tests:
# Code from module havelib:
# Code from module hostent:
# Code from module ignore-value:
# Code from module nonblocking-tests:
# Code from module open:
# Code from module open-tests:
+ # Code from module openpty:
+ # Code from module openpty-tests:
# Code from module passfd:
# Code from module passfd-tests:
# Code from module pathmax:
# Code from module poll-h-tests:
# Code from module poll-tests:
# Code from module posix-shell:
+ # Code from module posix_openpt:
+ # Code from module posix_openpt-tests:
# Code from module posix_spawn-internal:
# Code from module posix_spawn_file_actions_addclose:
# Code from module posix_spawn_file_actions_addclose-tests:
# Code from module pthread:
# Code from module pthread_sigmask:
# Code from module pthread_sigmask-tests:
+ # Code from module ptsname:
+ # Code from module ptsname-tests:
+ # Code from module pty:
+ # Code from module pty-tests:
# Code from module putenv:
# Code from module raise:
# Code from module raise-tests:
# Code from module stat-tests:
# Code from module stat-time:
# Code from module stat-time-tests:
+ # Code from module stdalign:
+ # Code from module stdalign-tests:
# Code from module stdarg:
# Code from module time-tests:
# Code from module time_r:
# Code from module timegm:
+ # Code from module ttyname_r:
+ # Code from module ttyname_r-tests:
# Code from module uname:
# Code from module uname-tests:
# Code from module unistd:
# Code from module unistd-tests:
+ # Code from module unlockpt:
+ # Code from module unlockpt-tests:
# Code from module unsetenv:
# Code from module unsetenv-tests:
# Code from module useless-if-before-free:
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/socket.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/socket.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/socket.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
GNULIB_MKOSTEMPS=0;
GNULIB_MKSTEMP=0;
GNULIB_MKSTEMPS=0;
+ GNULIB_POSIX_OPENPT=0;
GNULIB_PTSNAME=0;
GNULIB_PUTENV=0;
GNULIB_RANDOM_R=0;
HAVE_MKOSTEMPS=1;
HAVE_MKSTEMP=1;
HAVE_MKSTEMPS=1;
+ HAVE_POSIX_OPENPT=1;
HAVE_PTSNAME=1;
HAVE_RANDOM_H=1;
HAVE_RANDOM_R=1;
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'errno.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'errno.h\)".*|\1|
+ gl_header_literal_regex=`echo 'errno.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'netdb.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'netdb.h\)".*|\1|
+ gl_header_literal_regex=`echo 'netdb.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/time.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/time.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/time.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
@@ -14893,6 +14941,205 @@ _ACEOF
+ # Check for the library required for forkpty.
+ PTY_LIB=
+ save_LIBS="$LIBS"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing forkpty" >&5
+$as_echo_n "checking for library containing forkpty... " >&6; }
+if test "${ac_cv_search_forkpty+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char forkpty ();
+int
+main ()
+{
+return forkpty ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' util; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_forkpty=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if test "${ac_cv_search_forkpty+set}" = set; then :
+ break
+fi
+done
+if test "${ac_cv_search_forkpty+set}" = set; then :
+
+else
+ ac_cv_search_forkpty=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_forkpty" >&5
+$as_echo "$ac_cv_search_forkpty" >&6; }
+ac_res=$ac_cv_search_forkpty
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+ if test "$ac_cv_search_forkpty" != "none required"; then
+ PTY_LIB="$ac_cv_search_forkpty"
+ fi
+fi
+
+ LIBS="$save_LIBS"
+
+
+
+ GNULIB_FORKPTY=0;
+ GNULIB_OPENPTY=0;
+ HAVE_UTIL_H=0;
+ HAVE_LIBUTIL_H=0;
+ HAVE_FORKPTY=1;
+ HAVE_OPENPTY=1;
+ REPLACE_FORKPTY=0;
+ REPLACE_OPENPTY=0;
+
+
+
+
+
+
+
+
+
+ # Make sure that pty.h provides forkpty, or setup the replacement.
+
+ :
+
+
+
+
+
+ if test $ac_cv_header_pty_h != yes; then
+ HAVE_PTY_H=0
+ for ac_header in util.h libutil.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_util_h = yes; then
+ HAVE_UTIL_H=1
+ fi
+ if test $ac_cv_header_libutil_h = yes; then
+ HAVE_LIBUTIL_H=1
+ fi
+ else # Have <pty.h>, assume forkpty is declared there.
+ HAVE_PTY_H=1
+ fi
+
+
+
+
+
+
+
+ :
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_pty_h='<'pty.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <pty.h>" >&5
+$as_echo_n "checking absolute name of <pty.h>... " >&6; }
+if test "${gl_cv_next_pty_h+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_pty_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <pty.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'pty.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_pty_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_pty_h='<'pty.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_pty_h" >&5
+$as_echo "$gl_cv_next_pty_h" >&6; }
+ fi
+ NEXT_PTY_H=$gl_cv_next_pty_h
+
+ if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+ # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+ gl_next_as_first_directive='<'pty.h'>'
+ else
+ # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+ gl_next_as_first_directive=$gl_cv_next_pty_h
+ fi
+ NEXT_AS_FIRST_DIRECTIVE_PTY_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'poll.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'poll.h\)".*|\1|
+ gl_header_literal_regex=`echo 'poll.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
+
+
+
+
+
HAVE_PTHREAD_H=1;
HAVE_PTHREAD_T=1;
HAVE_PTHREAD_SPINLOCK_T=1;
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/select.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/select.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/select.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
_ACEOF
+
+
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
if test "${ac_cv_header_stdbool_h+set}" = set; then :
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'stdint.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'stdint.h\)".*|\1|
+ gl_header_literal_regex=`echo 'stdint.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'string.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'string.h\)".*|\1|
+ gl_header_literal_regex=`echo 'string.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'strings.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'strings.h\)".*|\1|
+ gl_header_literal_regex=`echo 'strings.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'time.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'time.h\)".*|\1|
+ gl_header_literal_regex=`echo 'time.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
+ ac_fn_c_check_decl "$LINENO" "ttyname_r" "ac_cv_have_decl_ttyname_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_ttyname_r" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TTYNAME_R $ac_have_decl
+_ACEOF
+
+
+
@@ -18446,6 +18734,352 @@ _ACEOF
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
+$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
+if test "${gl_cv_cc_double_expbit0+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined arm || defined __arm || defined __arm__
+ mixed_endianness
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "mixed_endianness" >/dev/null 2>&1; then :
+ gl_cv_cc_double_expbit0="unknown"
+else
+
+ :
+if test "${ac_cv_c_bigendian+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
+else
+ ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+fi
+:
+ case $ac_cv_c_bigendian in #(
+ yes)
+ gl_cv_cc_double_expbit0="word 0 bit 20";; #(
+ no)
+ gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
+ universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+ ;; #(
+ *)
+ gl_cv_cc_double_expbit0="unknown" ;;
+ esac
+
+
+fi
+rm -f conftest*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+ memory_double m;
+ size_t i;
+ /* Clear it first, in case sizeof (double) < sizeof (memory_double). */
+ memset (&m, 0, sizeof (memory_double));
+ m.value = x;
+ for (i = 0; i < NWORDS; i++)
+ {
+ ored_words[i] |= m.word[i];
+ anded_words[i] &= m.word[i];
+ }
+}
+int main ()
+{
+ size_t j;
+ FILE *fp = fopen ("conftest.out", "w");
+ if (fp == NULL)
+ return 1;
+ for (j = 0; j < NWORDS; j++)
+ anded_words[j] = ~ (unsigned int) 0;
+ add_to_ored_words (0.25);
+ add_to_ored_words (0.5);
+ add_to_ored_words (1.0);
+ add_to_ored_words (2.0);
+ add_to_ored_words (4.0);
+ /* Remove bits that are common (e.g. if representation of the first mantissa
+ bit is explicit). */
+ for (j = 0; j < NWORDS; j++)
+ ored_words[j] &= ~anded_words[j];
+ /* Now find the nonzero word. */
+ for (j = 0; j < NWORDS; j++)
+ if (ored_words[j] != 0)
+ break;
+ if (j < NWORDS)
+ {
+ size_t i;
+ for (i = j + 1; i < NWORDS; i++)
+ if (ored_words[i] != 0)
+ {
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+ }
+ for (i = 0; ; i++)
+ if ((ored_words[j] >> i) & 1)
+ {
+ fprintf (fp, "word %d bit %d", (int) j, (int) i);
+ return (fclose (fp) != 0);
+ }
+ }
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_cc_double_expbit0=`cat conftest.out`
+else
+ gl_cv_cc_double_expbit0="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.out
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
+$as_echo "$gl_cv_cc_double_expbit0" >&6; }
+ case "$gl_cv_cc_double_expbit0" in
+ word*bit*)
+ word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+ bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
+
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_WORD $word
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_BIT $bit
+_ACEOF
+
+ ;;
+ esac
+
+
_ACEOF
+
case "$gl_cv_func_snprintf_retval_c99" in
*yes)
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'inttypes.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'inttypes.h\)".*|\1|
+ gl_header_literal_regex=`echo 'inttypes.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'arpa/inet.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'arpa/inet.h\)".*|\1|
+ gl_header_literal_regex=`echo 'arpa/inet.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'fcntl.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'fcntl.h\)".*|\1|
+ gl_header_literal_regex=`echo 'fcntl.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'float.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'float.h\)".*|\1|
+ gl_header_literal_regex=`echo 'float.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'netdb.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'netdb.h\)".*|\1|
+ gl_header_literal_regex=`echo 'netdb.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'netinet/in.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'netinet/in.h\)".*|\1|
+ gl_header_literal_regex=`echo 'netinet/in.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
@@ -26707,6 +27360,128 @@ $as_echo "#define GNULIB_TEST_OPEN 1" >>confdefs.h
+
+
+
+ ac_fn_c_check_decl "$LINENO" "openpty" "ac_cv_have_decl_openpty" "
+/* <sys/types.h> is a prerequisite of <libutil.h> on FreeBSD 8.0. */
+#include <sys/types.h>
+#if HAVE_PTY_H
+# include <pty.h>
+#endif
+#if HAVE_UTIL_H
+# include <util.h>
+#endif
+#if HAVE_LIBUTIL_H
+# include <libutil.h>
+#endif
+
+"
+if test "x$ac_cv_have_decl_openpty" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_OPENPTY $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_openpty = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for const-safe openpty signature" >&5
+$as_echo_n "checking for const-safe openpty signature... " >&6; }
+if test "${gl_cv_func_openpty_const+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* <sys/types.h> is a prerequisite of <libutil.h> on FreeBSD 8.0. */
+#include <sys/types.h>
+#if HAVE_PTY_H
+# include <pty.h>
+#endif
+#if HAVE_UTIL_H
+# include <util.h>
+#endif
+#if HAVE_LIBUTIL_H
+# include <libutil.h>
+#endif
+
+int
+main ()
+{
+
+ int openpty (int *, int *, char *, struct termios const *,
+ struct winsize const *);
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_openpty_const=yes
+else
+ gl_cv_func_openpty_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_openpty_const" >&5
+$as_echo "$gl_cv_func_openpty_const" >&6; }
+ if test $gl_cv_func_openpty_const != yes; then
+ REPLACE_OPENPTY=1
+
+$as_echo "#define HAVE_OPENPTY 1" >>confdefs.h
+
+ fi
+ else
+ HAVE_OPENPTY=0
+ for ac_func in _getpty posix_openpt
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+if test $HAVE_OPENPTY = 0 || test $REPLACE_OPENPTY = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS openpty.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_OPENPTY=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_OPENPTY 1" >>confdefs.h
+
+
+
+
+
+
:
else
if test "$cross_compiling" = yes; then :
gl_cv_func_perror_works="guessing no"
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <errno.h>
#include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
int
main ()
puts (str);
errno = -1;
perror ("");
+ return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
- CONFTEST_OUTPUT=1 ./conftest$EXEEXT >conftest.txt1 2>conftest.txt2
- if cmp conftest.txt1 conftest.txt2 >/dev/null; then
+ if CONFTEST_OUTPUT=1 ./conftest$EXEEXT >conftest.txt1 2>conftest.txt2 \
+ && cmp conftest.txt1 conftest.txt2 >/dev/null; then
gl_cv_func_perror_works=yes
else
gl_cv_func_perror_works=no
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_perror_works" >&5
$as_echo "$gl_cv_func_perror_works" >&6; }
- if test "$gl_cv_func_perror_works" != yes; then
- REPLACE_PERROR=1
- fi ;;
- *) REPLACE_PERROR=1 ;;
+ if test "$gl_cv_func_perror_works" != yes; then
+ REPLACE_PERROR=1
+ fi
+ ;;
+ *)
+ REPLACE_PERROR=1
+ ;;
esac
if test $REPLACE_PERROR = 1; then
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'poll.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'poll.h\)".*|\1|
+ gl_header_literal_regex=`echo 'poll.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
+ :
+
+
+
+
+
+ if test $ac_cv_func_posix_openpt != yes; then
+ HAVE_POSIX_OPENPT=0
+ fi
+
+if test $HAVE_POSIX_OPENPT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS posix_openpt.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_POSIX_OPENPT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_POSIX_OPENPT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
:
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'pthread.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'pthread.h\)".*|\1|
+ gl_header_literal_regex=`echo 'pthread.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
+
for ac_func in raise
do :
ac_fn_c_check_func "$LINENO" "raise" "ac_cv_func_raise"
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sched.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sched.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sched.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'signal.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'signal.h\)".*|\1|
+ gl_header_literal_regex=`echo 'signal.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
+
+ :
+
+
+
+
+
+
+ if test $ac_cv_header_stdalign_h = yes; then
+ STDALIGN_H=''
+ else
+ STDALIGN_H='stdalign.h'
+ fi
+
+
+ if test -n "$STDALIGN_H"; then
+ GL_GENERATE_STDALIGN_H_TRUE=
+ GL_GENERATE_STDALIGN_H_FALSE='#'
+else
+ GL_GENERATE_STDALIGN_H_TRUE='#'
+ GL_GENERATE_STDALIGN_H_FALSE=
+fi
+
+
+
STDARG_H=''
NEXT_STDARG_H='<stdarg.h>'
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'stdarg.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'stdarg.h\)".*|\1|
+ gl_header_literal_regex=`echo 'stdarg.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'stddef.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'stddef.h\)".*|\1|
+ gl_header_literal_regex=`echo 'stddef.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'stdio.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'stdio.h\)".*|\1|
+ gl_header_literal_regex=`echo 'stdio.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'stdlib.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'stdlib.h\)".*|\1|
+ gl_header_literal_regex=`echo 'stdlib.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/ioctl.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/ioctl.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/ioctl.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/select.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/select.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/select.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/socket.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/socket.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/socket.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/stat.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/stat.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/stat.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/types.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/types.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/types.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/uio.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/uio.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/uio.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/utsname.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/utsname.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/utsname.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'sys/wait.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'sys/wait.h\)".*|\1|
+ gl_header_literal_regex=`echo 'sys/wait.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'termios.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'termios.h\)".*|\1|
+ gl_header_literal_regex=`echo 'termios.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
@@ -32473,6 +33376,173 @@ $as_echo "#define GNULIB_TEST_TIMEGM 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+
+
+ if test $ac_cv_have_decl_ttyname_r = no; then
+ HAVE_DECL_TTYNAME_R=0
+ fi
+
+ for ac_func in ttyname_r
+do :
+ ac_fn_c_check_func "$LINENO" "ttyname_r" "ac_cv_func_ttyname_r"
+if test "x$ac_cv_func_ttyname_r" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_TTYNAME_R 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_ttyname_r = no; then
+ HAVE_TTYNAME_R=0
+ else
+ HAVE_TTYNAME_R=1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ttyname_r is compatible with its POSIX signature" >&5
+$as_echo_n "checking whether ttyname_r is compatible with its POSIX signature... " >&6; }
+if test "${gl_cv_func_ttyname_r_posix+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ #include <unistd.h>
+int
+main ()
+{
+*ttyname_r (0, NULL, 0);
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_ttyname_r_posix=no
+else
+ gl_cv_func_ttyname_r_posix=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ttyname_r_posix" >&5
+$as_echo "$gl_cv_func_ttyname_r_posix" >&6; }
+ if test $gl_cv_func_ttyname_r_posix = no; then
+ REPLACE_TTYNAME_R=1
+ else
+
+$as_echo "#define HAVE_POSIXDECL_TTYNAME_R 1" >>confdefs.h
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ttyname_r works with small buffers" >&5
+$as_echo_n "checking whether ttyname_r works with small buffers... " >&6; }
+if test "${gl_cv_func_ttyname_r_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on Solaris.
+ solaris*) gl_cv_func_ttyname_r_works="guessing no" ;;
+ # Guess no on OSF/1.
+ osf*) gl_cv_func_ttyname_r_works="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_ttyname_r_works="guessing yes" ;;
+ esac
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <unistd.h>
+int
+main (void)
+{
+ int result = 0;
+ int fd;
+ char buf[31]; /* use any size < 128 here */
+
+ fd = open ("/dev/tty", O_RDONLY);
+ if (fd < 0)
+ result |= 16;
+ else if (ttyname_r (fd, buf, sizeof (buf)) != 0)
+ result |= 17;
+ else if (ttyname_r (fd, buf, 1) == 0)
+ result |= 18;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_ttyname_r_works=yes
+else
+ case $? in
+ 17 | 18) gl_cv_func_ttyname_r_works=no ;;
+ esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ttyname_r_works" >&5
+$as_echo "$gl_cv_func_ttyname_r_works" >&6; }
+ case "$gl_cv_func_ttyname_r_works" in
+ *yes) ;;
+ *) REPLACE_TTYNAME_R=1 ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_TTYNAME_R = 0 || test $REPLACE_TTYNAME_R = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS ttyname_r.$ac_objext"
+
+
+ for ac_func in ttyname
+do :
+ ac_fn_c_check_func "$LINENO" "ttyname" "ac_cv_func_ttyname"
+if test "x$ac_cv_func_ttyname" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_TTYNAME 1
+_ACEOF
+
+fi
+done
+
+
+fi
+
+
+
+
+
+ GNULIB_TTYNAME_R=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_TTYNAME_R 1" >>confdefs.h
+
+
+
+
+
for ac_func in uname
do :
ac_fn_c_check_func "$LINENO" "uname" "ac_cv_func_uname"
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'unistd.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'unistd.h\)".*|\1|
+ gl_header_literal_regex=`echo 'unistd.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'wchar.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'wchar.h\)".*|\1|
+ gl_header_literal_regex=`echo 'wchar.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'wctype.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'wctype.h\)".*|\1|
+ gl_header_literal_regex=`echo 'wctype.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
+
+
+
+
+
+ for ac_func in grantpt
+do :
+ ac_fn_c_check_func "$LINENO" "grantpt" "ac_cv_func_grantpt"
+if test "x$ac_cv_func_grantpt" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_GRANTPT 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_grantpt = no; then
+ HAVE_GRANTPT=0
+ fi
+
+if test $HAVE_GRANTPT = 0; then
+
+
+
+
+
+
+
+
+ gltests_LIBOBJS="$gltests_LIBOBJS grantpt.$ac_objext"
+
+
+ for ac_func in setrlimit
+do :
+ ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit"
+if test "x$ac_cv_func_setrlimit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SETRLIMIT 1
+_ACEOF
+
+fi
+done
+
+
+fi
+
+
+
+
+
+ if test "$GNULIB_GRANTPT" != 1; then
+ if test "$GNULIB_GRANTPT" = 0; then
+ GNULIB_GRANTPT=$gl_module_indicator_condition
+ else
+ GNULIB_GRANTPT="($GNULIB_GRANTPT || $gl_module_indicator_condition)"
+ fi
+ fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GRANTPT 1" >>confdefs.h
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
if test "${ac_cv_c_bigendian+set}" = set; then :
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'locale.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'locale.h\)".*|\1|
+ gl_header_literal_regex=`echo 'locale.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
+
+
+
+ for ac_func in ptsname
+do :
+ ac_fn_c_check_func "$LINENO" "ptsname" "ac_cv_func_ptsname"
+if test "x$ac_cv_func_ptsname" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_PTSNAME 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_ptsname = no; then
+ HAVE_PTSNAME=0
+ fi
+
+if test $HAVE_PTSNAME = 0; then
+
+
+
+
+
+
+
+
+ gltests_LIBOBJS="$gltests_LIBOBJS ptsname.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ if test "$GNULIB_PTSNAME" != 1; then
+ if test "$GNULIB_PTSNAME" = 0; then
+ GNULIB_PTSNAME=$gl_module_indicator_condition
+ else
+ GNULIB_PTSNAME="($GNULIB_PTSNAME || $gl_module_indicator_condition)"
+ fi
+ fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_PTSNAME 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for putenv compatible with GNU and SVID" >&5
$as_echo_n "checking for putenv compatible with GNU and SVID... " >&6; }
if test "${gl_cv_func_svid_putenv+set}" = set; then :
gl_dirsep_regex='[/\\]'
;;
*)
- gl_dirsep_regex='/'
+ gl_dirsep_regex='\/'
;;
esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
- gl_absolute_header_sed='\|'"${gl_dirsep_regex}"'spawn.h|{
- s|.*"\(.*'"${gl_dirsep_regex}"'spawn.h\)".*|\1|
+ gl_header_literal_regex=`echo 'spawn.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
s|^/[^/]|//&|
p
q
+
+
+ for ac_func in unlockpt
+do :
+ ac_fn_c_check_func "$LINENO" "unlockpt" "ac_cv_func_unlockpt"
+if test "x$ac_cv_func_unlockpt" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_UNLOCKPT 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_unlockpt = no; then
+ HAVE_UNLOCKPT=0
+ fi
+
+if test $HAVE_UNLOCKPT = 0; then
+
+
+
+
+
+
+
+
+ gltests_LIBOBJS="$gltests_LIBOBJS unlockpt.$ac_objext"
+
+
+ for ac_func in revoke
+do :
+ ac_fn_c_check_func "$LINENO" "revoke" "ac_cv_func_revoke"
+if test "x$ac_cv_func_revoke" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_REVOKE 1
+_ACEOF
+
+fi
+done
+
+
+fi
+
+
+
+
+
+ if test "$GNULIB_UNLOCKPT" != 1; then
+ if test "$GNULIB_UNLOCKPT" = 0; then
+ GNULIB_UNLOCKPT=$gl_module_indicator_condition
+ else
+ GNULIB_UNLOCKPT="($GNULIB_UNLOCKPT || $gl_module_indicator_condition)"
+ fi
+ fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_UNLOCKPT 1" >>confdefs.h
+
+
+
+
+
+
:
old_LIBS=$LIBS
-LIBS="$LIBS $LIB_PTHREAD"
+LIBS="$LIBS $LIB_PTHREAD $LIBMULTITHREAD"
for ac_func in pthread_mutexattr_init
do :
ac_fn_c_check_func "$LINENO" "pthread_mutexattr_init" "ac_cv_func_pthread_mutexattr_init"
@@ -58203,6 +59483,10 @@ if test -z "${GL_GENERATE_SCHED_H_TRUE}" && test -z "${GL_GENERATE_SCHED_H_FALSE
as_fn_error $? "conditional \"GL_GENERATE_SCHED_H\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDALIGN_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then
as_fn_error $? "conditional \"GL_GENERATE_STDARG_H\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -58220,6 +59504,7 @@ if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FAL
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+
gl_libobjs=
gl_ltlibobjs=
if test -n "$gl_LIBOBJS"; then
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
dnl Availability of pthread functions (if missing, win32 threading is
dnl assumed). Because of $LIB_PTHREAD, we cannot use AC_CHECK_FUNCS_ONCE.
-dnl LIB_PTHREAD was set during gl_INIT by gnulib.
+dnl LIB_PTHREAD and LIBMULTITHREAD were set during gl_INIT by gnulib.
old_LIBS=$LIBS
-LIBS="$LIBS $LIB_PTHREAD"
+LIBS="$LIBS $LIB_PTHREAD $LIBMULTITHREAD"
AC_CHECK_FUNCS([pthread_mutexattr_init])
LIBS=$old_libs
diff --git a/daemon/Makefile.in b/daemon/Makefile.in
--- a/daemon/Makefile.in
+++ b/daemon/Makefile.in
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
STATIC_BINARIES = @STATIC_BINARIES@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
diff --git a/docs/Makefile.in b/docs/Makefile.in
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
STATIC_BINARIES = @STATIC_BINARIES@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectDomainEventDiskChangeReason">Enum </a>virConnectDomainEventDiskChangeReason</h3><pre class="programlisting">enum <a href="#virConnectDomainEventDiskChangeReason">virConnectDomainEventDiskChangeReason</a> {
- <a name="VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START">VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START</a> = 0 /* oldSrcPath is set */
+ <a name="VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START">VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START</a> = 0 /* oldSrcPath is set */
};
</pre><p/>
</div>
<function name="VIR_DOMAIN_DEVICE_MODIFY_CURRENT" link="libvirt-libvirt.html#VIR_DOMAIN_DEVICE_MODIFY_CURRENT"/>
<function name="VIR_DOMAIN_DEVICE_MODIFY_FORCE" link="libvirt-libvirt.html#VIR_DOMAIN_DEVICE_MODIFY_FORCE"/>
<function name="VIR_DOMAIN_DEVICE_MODIFY_LIVE" link="libvirt-libvirt.html#VIR_DOMAIN_DEVICE_MODIFY_LIVE"/>
- <function name="VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START" link="libvirt-libvirt.html#VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START"/>
<function name="VIR_DOMAIN_EVENT_DEFINED" link="libvirt-libvirt.html#VIR_DOMAIN_EVENT_DEFINED"/>
<function name="VIR_DOMAIN_EVENT_DEFINED_ADDED" link="libvirt-libvirt.html#VIR_DOMAIN_EVENT_DEFINED_ADDED"/>
<function name="VIR_DOMAIN_EVENT_DEFINED_UPDATED" link="libvirt-libvirt.html#VIR_DOMAIN_EVENT_DEFINED_UPDATED"/>
+ <function name="VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START" link="libvirt-libvirt.html#VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START"/>
<function name="VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV4" link="libvirt-libvirt.html#VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV4"/>
<function name="VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV6" link="libvirt-libvirt.html#VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV6"/>
<function name="VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX" link="libvirt-libvirt.html#VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX"/>
diff --git a/docs/formatdomain.html b/docs/formatdomain.html
--- a/docs/formatdomain.html
+++ b/docs/formatdomain.html
<a name="elementCharConsole" id="elementCharConsole">Console</a>
</h6>
<p>
- This represents the primary console. This can be the paravirtualized
- console with Xen guests, virtio console for QEMU/KVM, or duplicates
- the primary serial port for fully virtualized guests without a
- paravirtualized console.
- </p>
+ The console element is used to represent interactive consoles. Depending
+ on the type of guest in use, the consoles might be paravirtualized devices,
+ or they might be a clone of a serial device, according to the following
+ rules:
+ </p>
+ <ul><li>If no <code>targetType</code> attribue is set, then the default
+ device type is according to the hypervisor's rules. The default
+ type will be added when re-querying the XML fed into libvirt.
+ For fully virtualized guests, the default device type will usually
+ be a serial port.</li><li>If the <code>targetType</code> attribute is <code>serial</code>,
+ then if no <code><serial></code> element exists, the console
+ element will be copied to the serial element. If a <code><serial></code>
+ element does already exist, the console element will be ignored.</li><li>If the <code>targetType</code> attribute is not <code>serial</code>,
+ it will be treated normally.</li><li>Only the first <code>console</code> element may use a <code>targetType</code>
+ of <code>serial</code>. Secondary consoles must all be paravirtualized.
+ </li></ul>
<p>
A virtio console device is exposed in the
guest as /dev/hvc[0-7] (for more information, see
<h6><a name="elementCharConsole">Console</a></h6>
<p>
- This represents the primary console. This can be the paravirtualized
- console with Xen guests, virtio console for QEMU/KVM, or duplicates
- the primary serial port for fully virtualized guests without a
- paravirtualized console.
+ The console element is used to represent interactive consoles. Depending
+ on the type of guest in use, the consoles might be paravirtualized devices,
+ or they might be a clone of a serial device, according to the following
+ rules:
</p>
+ <ul>
+ <li>If no <code>targetType</code> attribue is set, then the default
+ device type is according to the hypervisor's rules. The default
+ type will be added when re-querying the XML fed into libvirt.
+ For fully virtualized guests, the default device type will usually
+ be a serial port.</li>
+ <li>If the <code>targetType</code> attribute is <code>serial</code>,
+ then if no <code><serial></code> element exists, the console
+ element will be copied to the serial element. If a <code><serial></code>
+ element does already exist, the console element will be ignored.</li>
+ <li>If the <code>targetType</code> attribute is not <code>serial</code>,
+ it will be treated normally.</li>
+ <li>Only the first <code>console</code> element may use a <code>targetType</code>
+ of <code>serial</code>. Secondary consoles must all be paravirtualized.
+ </li>
+ </ul>
+
<p>
A virtio console device is exposed in the
guest as /dev/hvc[0-7] (for more information, see
</pre></div><h3><a name="virConnectDomainEventBlockJobStatus" id="virConnectDomainEventBlockJobStatus"><code>virConnectDomainEventBlockJobStatus</code></a></h3><div class="api"><pre>enum virConnectDomainEventBlockJobStatus {
</pre><table><tr><td><a name="VIR_DOMAIN_BLOCK_JOB_COMPLETED" id="VIR_DOMAIN_BLOCK_JOB_COMPLETED">VIR_DOMAIN_BLOCK_JOB_COMPLETED</a></td><td> = </td><td>0</td></tr><tr><td><a name="VIR_DOMAIN_BLOCK_JOB_FAILED" id="VIR_DOMAIN_BLOCK_JOB_FAILED">VIR_DOMAIN_BLOCK_JOB_FAILED</a></td><td> = </td><td>1</td></tr></table><pre>}
</pre></div><h3><a name="virConnectDomainEventDiskChangeReason" id="virConnectDomainEventDiskChangeReason"><code>virConnectDomainEventDiskChangeReason</code></a></h3><div class="api"><pre>enum virConnectDomainEventDiskChangeReason {
-</pre><table><tr><td><a name="VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START" id="VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START">VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START</a></td><td> = </td><td>0</td><td> : oldSrcPath is set</td></tr></table><pre>}
+</pre><table><tr><td><a name="VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START" id="VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START">VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START</a></td><td> = </td><td>0</td><td> : oldSrcPath is set</td></tr></table><pre>}
</pre></div><h3><a name="virConnectFlags" id="virConnectFlags"><code>virConnectFlags</code></a></h3><div class="api"><pre>enum virConnectFlags {
</pre><table><tr><td><a name="VIR_CONNECT_RO" id="VIR_CONNECT_RO">VIR_CONNECT_RO</a></td><td> = </td><td>1</td><td> : A readonly connection</td></tr><tr><td><a name="VIR_CONNECT_NO_ALIASES" id="VIR_CONNECT_NO_ALIASES">VIR_CONNECT_NO_ALIASES</a></td><td> = </td><td>2</td><td> : Don't try to resolve URI aliases</td></tr></table><pre>}
</pre></div><h3><a name="virDomain" id="virDomain"><code>virDomain</code></a></h3><div class="api"><pre>struct virDomain{
diff --git a/docs/libvirt-api.xml b/docs/libvirt-api.xml
--- a/docs/libvirt-api.xml
+++ b/docs/libvirt-api.xml
<exports symbol='VIR_DOMAIN_DEVICE_MODIFY_CURRENT' type='enum'/>
<exports symbol='VIR_DOMAIN_DEVICE_MODIFY_FORCE' type='enum'/>
<exports symbol='VIR_DOMAIN_DEVICE_MODIFY_LIVE' type='enum'/>
- <exports symbol='VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START' type='enum'/>
<exports symbol='VIR_DOMAIN_EVENT_DEFINED' type='enum'/>
<exports symbol='VIR_DOMAIN_EVENT_DEFINED_ADDED' type='enum'/>
<exports symbol='VIR_DOMAIN_EVENT_DEFINED_UPDATED' type='enum'/>
+ <exports symbol='VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START' type='enum'/>
<exports symbol='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV4' type='enum'/>
<exports symbol='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV6' type='enum'/>
<exports symbol='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX' type='enum'/>
<enum name='VIR_DOMAIN_DEVICE_MODIFY_FORCE' file='libvirt' value='4' type='virDomainDeviceModifyFlags' info='Forcibly modify device
(ex. force eject a cdrom)'/>
<enum name='VIR_DOMAIN_DEVICE_MODIFY_LIVE' file='libvirt' value='VIR_DOMAIN_AFFECT_LIVE' type='virDomainDeviceModifyFlags'/>
- <enum name='VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START' file='libvirt' value='0' type='virConnectDomainEventDiskChangeReason' info='oldSrcPath is set'/>
<enum name='VIR_DOMAIN_EVENT_DEFINED' file='libvirt' value='0' type='virDomainEventType'/>
<enum name='VIR_DOMAIN_EVENT_DEFINED_ADDED' file='libvirt' value='0' type='virDomainEventDefinedDetailType' info='Newly created config file'/>
<enum name='VIR_DOMAIN_EVENT_DEFINED_UPDATED' file='libvirt' value='1' type='virDomainEventDefinedDetailType' info='Changed config file'/>
+ <enum name='VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START' file='libvirt' value='0' type='virConnectDomainEventDiskChangeReason' info='oldSrcPath is set'/>
<enum name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV4' file='libvirt' value='1' type='virDomainEventGraphicsAddressType' info='IPv4 address'/>
<enum name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV6' file='libvirt' value='2' type='virDomainEventGraphicsAddressType' info='IPv6 address'/>
<enum name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX' file='libvirt' value='3' type='virDomainEventGraphicsAddressType' info='UNIX socket path'/>
diff --git a/docs/libvirt-refs.xml b/docs/libvirt-refs.xml
--- a/docs/libvirt-refs.xml
+++ b/docs/libvirt-refs.xml
<reference name='VIR_DOMAIN_DEVICE_MODIFY_CURRENT' href='html/libvirt-libvirt.html#VIR_DOMAIN_DEVICE_MODIFY_CURRENT'/>
<reference name='VIR_DOMAIN_DEVICE_MODIFY_FORCE' href='html/libvirt-libvirt.html#VIR_DOMAIN_DEVICE_MODIFY_FORCE'/>
<reference name='VIR_DOMAIN_DEVICE_MODIFY_LIVE' href='html/libvirt-libvirt.html#VIR_DOMAIN_DEVICE_MODIFY_LIVE'/>
- <reference name='VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START' href='html/libvirt-libvirt.html#VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START'/>
<reference name='VIR_DOMAIN_EVENT_CALLBACK' href='html/libvirt-libvirt.html#VIR_DOMAIN_EVENT_CALLBACK'/>
<reference name='VIR_DOMAIN_EVENT_DEFINED' href='html/libvirt-libvirt.html#VIR_DOMAIN_EVENT_DEFINED'/>
<reference name='VIR_DOMAIN_EVENT_DEFINED_ADDED' href='html/libvirt-libvirt.html#VIR_DOMAIN_EVENT_DEFINED_ADDED'/>
<reference name='VIR_DOMAIN_EVENT_DEFINED_UPDATED' href='html/libvirt-libvirt.html#VIR_DOMAIN_EVENT_DEFINED_UPDATED'/>
+ <reference name='VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START' href='html/libvirt-libvirt.html#VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START'/>
<reference name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV4' href='html/libvirt-libvirt.html#VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV4'/>
<reference name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV6' href='html/libvirt-libvirt.html#VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV6'/>
<reference name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX' href='html/libvirt-libvirt.html#VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX'/>
<ref name='VIR_DOMAIN_DEVICE_MODIFY_CURRENT'/>
<ref name='VIR_DOMAIN_DEVICE_MODIFY_FORCE'/>
<ref name='VIR_DOMAIN_DEVICE_MODIFY_LIVE'/>
- <ref name='VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START'/>
<ref name='VIR_DOMAIN_EVENT_CALLBACK'/>
<ref name='VIR_DOMAIN_EVENT_DEFINED'/>
<ref name='VIR_DOMAIN_EVENT_DEFINED_ADDED'/>
<ref name='VIR_DOMAIN_EVENT_DEFINED_UPDATED'/>
+ <ref name='VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START'/>
<ref name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV4'/>
<ref name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV6'/>
<ref name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX'/>
<ref name='VIR_DOMAIN_DEVICE_MODIFY_CURRENT'/>
<ref name='VIR_DOMAIN_DEVICE_MODIFY_FORCE'/>
<ref name='VIR_DOMAIN_DEVICE_MODIFY_LIVE'/>
- <ref name='VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START'/>
<ref name='VIR_DOMAIN_EVENT_CALLBACK'/>
<ref name='VIR_DOMAIN_EVENT_DEFINED'/>
<ref name='VIR_DOMAIN_EVENT_DEFINED_ADDED'/>
<ref name='VIR_DOMAIN_EVENT_DEFINED_UPDATED'/>
+ <ref name='VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START'/>
<ref name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV4'/>
<ref name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV6'/>
<ref name='VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX'/>
diff --git a/docs/news.html b/docs/news.html
--- a/docs/news.html
+++ b/docs/news.html
<h1>Releases</h1>
<p>Here is the list of official releases, it is also possible to just use the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list
and check the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress.</p>
+ <h3>0.9.7: Nov 8 2011</h3>
+ <ul><li> Features:<br />
+ esx: support vSphere 5.x (Patrice LACHANCE),<br />
+ vbox: support for VirtualBox 4.1 (Matthias Bolte),<br />
+ Introduce the virDomainOpenGraphics API (Daniel P. Berrange),<br />
+ Add AHCI support to qemu driver (Jim Fehlig),<br />
+ snapshot: many improvements and 2 new APIs (Eric Blake),<br />
+ api: Add public api for 'reset' (Xu He Jie),<br /></li><li> Documentation:<br />
+ Add <deviceboot> capability. (Philipp Hahn),<br />
+ API: document scheduler parameter names (Eric Blake),<br />
+ improve typed parameter documentation (Eric Blake),<br />
+ fix typo in <disk>/<target> example (Eric Blake),<br />
+ python: Fix documentation of virStream recv (Matthias Bolte),<br />
+ Add documentation about migration. (Daniel P. Berrange),<br />
+ Document filesystem type='block' for LXC (Ryota Ozaki),<br />
+ fix incorrect info about routed networks (Laine Stump),<br />
+ document managed=yes of hostdev passthrough (Eric Blake),<br />
+ trivial spelling fix (Philipp Hahn),<br />
+ Fix virt-sanlock-cleanup documentation (Philipp Hahn),<br />
+ Fix two comments related to error handling (Philipp Hahn),<br />
+ fix network XML documentation (Laine Stump),<br />
+ Clarify semantics of virDomainMigrate2 (Jiri Denemark),<br />
+ Update examples for probing with systemtap (Daniel P. Berrange),<br />
+ fix html bug (Eric Blake),<br />
+ virsh: Update the help information for undefine command. (tangchen),<br />
+ Document STREQ_NULLABLE and STRNEQ_NULLABLE (Guido Günther),<br />
+ Document that ff callbacks need to be invoked from a clean stack. (Guido Günther),<br />
+ formatdomain.html.in: fix tickpolicy (Douglas Schilling Landgraf),<br />
+ virsh: describe attach-interface parameter target (Daniel Veillard),<br />
+ virsh: update man page for cpu_shares parameter (Daniel Veillard),<br />
+ document node device XML (Eric Blake),<br />
+ document virsh nodedev-* commands (Eric Blake),<br />
+ snapshot: fix man page typos (Eric Blake),<br />
+ virsh: Better document --copy-storage migrate options (Jiri Denemark),<br />
+ virsh: Enhance documentation of commands starting jobs (Jiri Denemark),<br />
+ virsh: Improve virsh manual for virsh memtune command (Peter Krempa)<br /></li><li> Portability:<br />
+ build: fix build on platforms without ptsname_r (Eric Blake),<br />
+ build: silence compiler warning on BSD (Eric Blake),<br />
+ build: fix linking on BSD (Eric Blake),<br />
+ remote: fix mingw32 build (Laine Stump),<br />
+ build: fix deep VPATH builds (Eric Blake),<br />
+ Use ENAMETOOLONG if the the socket path is longer than UNIX_PATH_MAX (Guido Günther),<br />
+ build: avoid RHEL 5 build failure on LXC (Eric Blake),<br />
+ build: use gnulib fdatasync (Eric Blake),<br />
+ Fix virFileOpenTty definition on Win32 (Daniel P. Berrange),<br />
+ compile: fix undefined reference to gnutls_x509_crt_get_dn with gcc-4.6.1 (Xu He Jie),<br />
+ Fix VPATH build (Jiri Denemark),<br />
+ build: fix 'make dist' error (Wen Congyang),<br />
+ Fix syntax problem in mingw32-libvirt.spec.in (Daniel P. Berrange),<br />
+ spec: mingw cleanups (Eric Blake),<br />
+ build: fix mingw build without sasl (Eric Blake),<br />
+ build: fix 'make rpm' (Eric Blake),<br />
+ build: fix 'make distcheck' (Eric Blake),<br />
+ disable xenlight for non-Xen platforms (Dan Horák),<br />
+ build: Fix VPATH build with new probes (Jiri Denemark),<br />
+ build: fix 'make distcheck' with pdwtags installed (Eric Blake),<br />
+ spec: F15 still uses cgconfig, RHEL lacks hyperv (Eric Blake)<br /></li><li> Bug Fixes:<br />
+ Fix sending/receiving of FDs when stream returns EAGAIN (Daniel P. Berrange),<br />
+ lxc: avoid use-after-free (Eric Blake),<br />
+ conf: Don't free uninitialized pointer (Jiri Denemark),<br />
+ Fix default console type setting (Daniel P. Berrange),<br />
+ Fix crash formatting virtio console (Daniel P. Berrange),<br />
+ Fix off-by-one printing month in logging code (Daniel P. Berrange),<br />
+ Add missing param initialization in qemuDomainBlockStatsFlags (Daniel P. Berrange),<br />
+ fix crash when starting network (Wen Congyang),<br />
+ Don't overwrite error message during VM cleanup (Daniel P. Berrange),<br />
+ Correctly handle '*' in /etc/filesystems (Daniel P. Berrange),<br />
+ Fix URI alias prefix matching (Wen Ruo Lv),<br />
+ ServerClient: Flush cached data (Michal Privoznik),<br />
+ Fix storage pool source comparison to avoid comparing with self (Daniel P. Berrange),<br />
+ qemu: plug memory leak (Alex Jia),<br />
+ qemu: Restore the original states of PCI device when restarting daemon (Osier Yang),<br />
+ macvtap: Fix error return value convention/inconsistencies (Roopa Prabhu),<br />
+ pci address conflict when virtio disk with drive type (Xu He Jie),<br />
+ qemu: plug memory leak (Alex Jia),<br />
+ qemu: avoid leaking uninit data from hotplug to dumpxml (Eric Blake),<br />
+ util: Fix virUUIDGeneratePseudoRandomBytes (Ryota Ozaki),<br />
+ lxc: Revert zeroing count of allocated items if VIR_REALLOC_N fails (Peter Krempa),<br />
+ lxc: avoid null deref on lxcSetupLoopDevices failure (Alex Jia),<br />
+ lxc: avoid missing '{' in the function (Alex Jia),<br />
+ storage: avoid null deref on qemu-img failure (Eric Blake),<br />
+ storage: make previous leak less likely to regress (Eric Blake),<br />
+ storage: plug iscsi memory leak (Eric Blake),<br />
+ qemu: avoid leaking uninit data from hotplug to dumpxml (Eric Blake),<br />
+ qemu: Do not wait if the PCI device is not managed when reattaching (Osier Yang),<br />
+ Add missing strdup return value check (Roopa Prabhu),<br />
+ macvtap: avoid invalid free (Roopa Prabhu),<br />
+ util: Fix typo in virGetHostname description (Jiri Denemark),<br />
+ macvtap: plug memory leak for 802.1Qbh (Eric Blake),<br />
+ qemu: plug memory leak on migration (Eric Blake),<br />
+ conf: plug memory leak on error (Eric Blake),<br />
+ storage: plug memory leak on error (Eric Blake),<br />
+ util: Make getaddrinfo failure nonfatal in virGetHostname (Jiri Denemark),<br />
+ qemu: fix text block info parsing (Eric Blake),<br />
+ qemu: avoid text monitor null deref (Eric Blake),<br />
+ qemu: check for json allocation failure (Eric Blake),<br />
+ virFDStream: close also given errfd (fd leak) (Marc-André Lureau),<br />
+ command: avoid fd leak on failure (Eric Blake),<br />
+ qemu: Check for domain being active on successful job acquire (Michal Privoznik),<br />
+ xen: Return tap2 for tap2 disks (Philipp Hahn),<br />
+ xen: fix PyGrub boot device order (Philipp Hahn),<br />
+ build: fix 'make check' linkage with dtrace (Eric Blake),<br />
+ Fix deps for probes.o to ensure correct build ordering (Daniel P. Berrange),<br />
+ If receiving a stream error, mark EOF on the stream (Daniel P. Berrange),<br />
+ xen_xs: Guard against set but empty kernel argument (Guido Günther),<br />
+ snapshot: avoid accidental renames with snapshot-edit (Eric Blake),<br />
+ storage: Do not use comma as seperator for lvs output (Osier Yang),<br />
+ qemuDomainAttach: Initialize pidfile variable (Michal Privoznik),<br />
+ lxc: fix logic bug (Eric Blake),<br />
+ Don't send back unknown program errors for async messages (Daniel P. Berrange),<br />
+ Fix deadlock when the RPC program is unknown (Daniel P. Berrange),<br />
+ remote_driver: Avoid double free in EventControl building (Michal Privoznik),<br />
+ xenParseXM: don't dereference NULL pointer when script is empty (Guido Günther),<br />
+ qemu: Fix migration with dname (Jiri Denemark),<br />
+ virsh: do not unlink NULL file (Marc-André Lureau),<br />
+ qemu: Fix error message mentioning VNC instead of SPICE (Peter Krempa),<br />
+ qemu: Check for ejected media during startup and migration (Michal Privoznik),<br />
+ qemu: add return value check (Alex Jia),<br />
+ qemu: Always remove domain object if MigratePrepare fails (Jiri Denemark),<br />
+ fix AppArmor driver for pipe character devices (Jamie Strandboge),<br />
+ daemon: Don't remove pidfiles in init scripts (Peter Krempa),<br />
+ storage: Do not break the whole vol lookup process in the middle (Osier Yang),<br />
+ Fix synchronous reading of stream data (Daniel P. Berrange)<br /></li><li> Improvements:<br />
+ Add missing defaultConsoleTargetType callback for AppArmour (Daniel P. Berrange),<br />
+ Fix naming of constant for disk event (Daniel P. Berrange),<br />
+ lxc: use common code for process cleanup (Eric Blake),<br />
+ Set aliases for LXC/UML console devices (Daniel P. Berrange),<br />
+ Default console target type with no <target> element (Daniel P. Berrange),<br />
+ Add support for multiple consoles in LXC (Daniel P. Berrange),<br />
+ Rewrite LXC I/O forwarding to use main event loop (Daniel P. Berrange),<br />
+ Allow multiple consoles per virtual guest (Daniel P. Berrange),<br />
+ virnetsockettest: Use a temporary directory in /tmp (Guido Günther),<br />
+ xen: allow getting < max typed parameters (Eric Blake),<br />
+ lxc: allow getting < max typed parameters (Eric Blake),<br />
+ libxl: allow getting < max typed parameters (Eric Blake),<br />
+ esx: allow getting < max typed parameters (Eric Blake),<br />
+ qemu: allow getting < max typed parameters (Eric Blake),<br />
+ Add support for probing filesystem with libblkid (Daniel P. Berrange),<br />
+ Fix error message when failing to detect filesystem (Daniel P. Berrange),<br />
+ Workaround for broken kernel autofs mounts (Daniel P. Berrange),<br />
+ Ensure errno is valid when returning from lxcContainerWaitForContinue (Daniel P. Berrange),<br />
+ Create /var/lib/libvirt/filesystems for LXC trees (Daniel P. Berrange),<br />
+ esx: Support folders in the path of vpx:// connection URIs (Matthias Bolte),<br />
+ qemu: pass virConnectPtr into Domain{Attach,Detach}* (Sage Weil),<br />
+ vbox: Support shared folders (Matthias Bolte),<br />
+ xenapi: Improve error reporting in xenapiOpen once again (Matthias Bolte),<br />
+ Use a common xml type for ceph secret usage. (Josh Durgin),<br />
+ storage: add auth to virDomainDiskDef (Josh Durgin),<br />
+ secret: add Ceph secret type (Sage Weil),<br />
+ Implement RPC driver support for virDomainOpenGraphics (Daniel P. Berrange),<br />
+ Extend RPC server to allow FD passing (Daniel P. Berrange),<br />
+ Add client side support for FD passing (Daniel P. Berrange),<br />
+ Extend RPC protocol to allow FD passing (Daniel P. Berrange),<br />
+ Add APIs for virNetSocket for sending/receiving file descriptors (Daniel P. Berrange),<br />
+ Wire up QEMU implementation for virDomainOpenGraphics (Daniel P. Berrange),<br />
+ Extend graphics event to include UNIX socket (Daniel P. Berrange),<br />
+ virsh: Fix error message on vol-create-from failure (Ryota Ozaki),<br />
+ bridge: modify for use when sVirt is enabled with qemu (Tyler Coumbes),<br />
+ Use virXMLSaveFile when writing XML config (Jiri Denemark),<br />
+ Introduce virXMLSaveFile as a wrapper for virFileRewrite (Jiri Denemark),<br />
+ Introduce virFileRewrite for safe file rewrite (Jiri Denemark),<br />
+ Add a systemtap script for watching QEMU monitor interactions (Daniel P. Berrange),<br />
+ qemu: simplify use of HAVE_YAJL (Eric Blake),<br />
+ snapshot: simplify indentation of disk encryption xml (Eric Blake),<br />
+ snapshot: simplify indentation of nwfilter (Eric Blake),<br />
+ Add REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE to remote_protocol-structs (Daniel P. Berrange),<br />
+ nwfilter: extend schema to support new targets (Stefan Berger),<br />
+ util: Add virFileAccessibleAs to private symbols (Michal Privoznik),<br />
+ startupPolicy: Emit event on disk source dropping (Michal Privoznik),<br />
+ qemu: implement startupPolicy (Michal Privoznik),<br />
+ qemu: Move device alias assigning before command line construction (Michal Privoznik),<br />
+ util: Create virFileAccessibleAs function (Michal Privoznik),<br />
+ conf: Introduce optional startupPolicy attribute for cdrom and floppy (Michal Privoznik),<br />
+ waitpid: improve safety (Eric Blake),<br />
+ virsh: Fix vol-info's 'Type' output (Ryota Ozaki),<br />
+ support continue/return targets in nwfilter (David L Stevens),<br />
+ snapshot: simplify indentation of network xml (Eric Blake),<br />
+ snapshot: simplify indentation of cpu features (Eric Blake),<br />
+ snapshot: simplify indentation of sysinfo (Eric Blake),<br />
+ snapshot: test domainsnapshot indentation (Eric Blake),<br />
+ snapshot: indent domain xml when nesting (Eric Blake),<br />
+ virbuf: add auto-indentation support (Eric Blake),<br />
+ virbuf: more detailed error reporting (Eric Blake),<br />
+ virbuf: improve testsuite reporting (Eric Blake),<br />
+ virbuf: fix const-correctness (Eric Blake),<br />
+ qemu: allow json in domxml-to-native (tangchen),<br />
+ support setting bandwidth from virsh attach-interface (Hu Tao),<br />
+ lxc: use hand-rolled code in place of unlockpt and grantpt (Serge E. Hallyn),<br />
+ qemu: Test name-space handling (Philipp Hahn),<br />
+ qemu: Fix name-space handling (Philipp Hahn),<br />
+ Replace virBufferAdd with virBufferAddLit for const string (Daniel P. Berrange),<br />
+ Allow for URI aliases when connecting to libvirt (Daniel P. Berrange),<br />
+ Add support for autodestroy of guests to the LXC and UML drivers (Daniel P. Berrange),<br />
+ Use virBufferEscapeShell in cmdEcho (Guido Günther),<br />
+ qemu: replace qemuMonitorEscapeShell by virBufferEscapeShell (Guido Günther),<br />
+ virBufferEscapeShell: Emit quotes for the empty string (Guido Günther),<br />
+ snapshot: detect when qemu lacks disk-snapshot support (Eric Blake),<br />
+ virBufferEscapeShell: Fix escaping of single quotes. (Guido Günther),<br />
+ compile: Add a missing function 'pciDeviceListFind' to libvirt_private.syms (Xu He Jie),<br />
+ snapshot: implement LIST_LEAVES flag in esx (Eric Blake),<br />
+ qemu: Relax -no-shutdown check to [0.14.0, 0.15.0] (Jiri Denemark),<br />
+ qemu: Honor the orginal PCI dev properties when reattaching (Osier Yang),<br />
+ qemu: Do not reattach PCI device used by other domain when shutdown (Osier Yang),<br />
+ Xen: Fake versions in xencapstest (Philipp Hahn),<br />
+ Xen: move versions to struct (Philipp Hahn),<br />
+ Use virBufferEscapeShell in virNetSocketNewConnectSSH (Guido Günther),<br />
+ Add virBufferEscapeShell (Guido Günther),<br />
+ Autodetect if the remote nc command supports the -q option (Guido Günther),<br />
+ qemu: Make sure BeginJob is always followed by EndJob (Jiri Denemark),<br />
+ qemu: Log debug messages when changing job (Jiri Denemark),<br />
+ build: add compiler attributes to virUUIDParse (Eric Blake),<br />
+ Fix typo in lxc_controller (Serge E. Hallyn),<br />
+ build: update to latest gnulib (Eric Blake),<br />
+ events: Propose a separate lock for event queue (Michal Privoznik),<br />
+ qemu: Implement VIR_DUMP_RESET (Michal Privoznik),<br />
+ virDomainCoreDump: Introduce VIR_DUMP_RESET flag (Michal Privoznik),<br />
+ example: Support debug output and loop switch (Philipp Hahn),<br />
+ example: Redirect --help output to stdout/stderr (Philipp Hahn),<br />
+ example: Fix argument handling (Philipp Hahn),<br />
+ snapshot: implement LIST_LEAVES flag in qemu (Eric Blake),<br />
+ snapshot: add API for filtering by leaves (Eric Blake),<br />
+ tests: Add support for skipping tests (Philipp Hahn),<br />
+ Introduce <driver> under <filesystem> to support open-by-handle (Harsh Prateek Bora),<br />
+ buf: implement generic virBufferEscape (Sage Weil),<br />
+ daemon: Always advertise libvirtd service (Osier Yang),<br />
+ snapshot: take advantage of new relations (Eric Blake),<br />
+ snapshot: track qemu snapshot relations (Eric Blake),<br />
+ snapshot: framework for more efficient relation traversal (Eric Blake),<br />
+ snapshot: use correct qmp monitor command (Eric Blake),<br />
+ snapshot: virsh shorthand for operating on current snap (Eric Blake),<br />
+ build: ship helper scripts (Eric Blake),<br />
+ Rewrite all the DTrace/SystemTAP probing (Daniel P. Berrange),<br />
+ Fix missing lock calls on virNetTLSContextRef (Daniel P. Berrange),<br />
+ Refactor TLS to facilitate dynamic probing (Daniel P. Berrange),<br />
+ Add virSocketRef API to facilitate dynamic probing (Daniel P. Berrange),<br />
+ Make libvirt.so include the RPC server code (Daniel P. Berrange),<br />
+ snapshot: implement snapshot children listing in esx (Eric Blake),<br />
+ snapshot: implement snapshot children listing in qemu (Eric Blake),<br />
+ snapshot: remote protocol for snapshot children (Eric Blake),<br />
+ snapshot: virsh fallback for snapshot-list --descendants --from (Eric Blake),<br />
+ snapshot: virsh fallback for snapshot-list --from children (Eric Blake),<br />
+ snapshot: virsh fallback for snapshot-list --tree --from (Eric Blake),<br />
+ snapshot: virsh snapshot-list and children (Eric Blake),<br />
+ xen: add error handling to UUID parsing (Guido Günther),<br />
+ maint: typo fixes (Eric Blake),<br />
+ snapshot: sort snapshot-list --tree (Eric Blake),<br />
+ snapshot: simplify redefinition of disk snapshot (Eric Blake),<br />
+ snapshot: let virsh edit disk snapshots (Eric Blake),<br />
+ snapshot: fix virsh error message typo (Eric Blake),<br />
+ qemu: add separate rerror_policy for disk errors (Laine Stump),<br />
+ qemu: leave rerror policy at default when enospace is requested (Laine Stump),<br />
+ qemu: enable multifunction for older qemu (Eric Blake),<br />
+ Make LXC work with new network configuration types (Daniel P. Berrange),<br />
+ init: raise default system aio limits (Eric Blake),<br />
+ maint: fix minor issues in virterror public header (Eric Blake),<br />
+ snapshot: enforce REVERT_FORCE on qemu (Eric Blake),<br />
+ snapshot: use qemu-img on disks in use at time of snapshot (Eric Blake),<br />
+ snapshot: add REVERT_FORCE to API (Eric Blake),<br />
+ snapshot: implement snapshot roots listing in vbox (Eric Blake),<br />
+ qemu: Don't fail virDomainGetInfo if we can't update balloon info (Jiri Denemark),<br />
+ snapshot: simplify esx snapshot name lookup (Eric Blake),<br />
+ snapshot: implement snapshot roots listing in esx (Eric Blake),<br />
+ qemu: correct misspelled 'enospc' option, and only use for werror (Laine Stump),<br />
+ snapshot: better virsh handling of missing current, parent (Eric Blake),<br />
+ Allow passing of command line args to LXC container (Daniel P. Berrange),<br />
+ Add support for bandwidth filtering on LXC guests (Daniel P. Berrange),<br />
+ network: fill in bandwidth from portgroup for all forward modes (Laine Stump),<br />
+ bridge_driver.c: Fix autoconf setting (Neil Wilson),<br />
+ Set to NULL members that have been freed to prevent crashes (Marc-André Lureau),<br />
+ snapshot: implement getparent for vbox (Eric Blake),<br />
+ snapshot: implement getparent for esx (Eric Blake),<br />
+ qemu: make PCI multifunction support more manual (Laine Stump),<br />
+ lvm storage backend: handle command_names=1 in lvm.conf (Serge E. Hallyn),<br />
+ qemu: Check for outstanding async job too (Michal Privoznik),<br />
+ virsh: Add 'reset' command for virsh (Xu He Jie),<br />
+ remote: Implement 'reset' for remote driver (Xu He Jie),<br />
+ qemu: Implement 'reset' for qemu driver (Xu He Jie),<br />
+ logging: Add date to log timestamp (Jiri Denemark),<br />
+ logging: Do not log timestamp through syslog (Jiri Denemark),<br />
+ hyperv: Report an error for acceptable URI schemes with a transport (Matthias Bolte),<br />
+ esx: Report an error for acceptable URI schemes with a transport (Matthias Bolte),<br />
+ snapshot: implement getparent in qemu (Eric Blake),<br />
+ snapshot: add virsh snapshot-list --tree (Eric Blake),<br />
+ snapshot: refactor virsh snapshot parent computation (Eric Blake),<br />
+ snapshot: remote protocol for getparent (Eric Blake),<br />
+ security: properly chown/label bidirectional and unidirectional fifos (Laine Stump),<br />
+ qemu: Preserve fakeReboot flag in domain status (Jiri Denemark),<br />
+ qemu: Finish domain shutdown on reconnect (Jiri Denemark),<br />
+ qemu: Check domain status details when reconnecting monitor (Jiri Denemark),<br />
+ virsh: Allow using complete <capabilities> elements with cpu-baseline (Peter Krempa),<br />
+ virsh: Allow using domain and capabilities XMLs with cpu-compare (Peter Krempa),<br />
+ qemu: add ability to set PCI device "rombar" on or off (Laine Stump),<br />
+ qemu: Relax -no-shutdown check to [0.14.0, 0.15.50) (Jiri Denemark),<br />
+ virLockManagerNopInit: Rename flags to unused_flags (Michal Privoznik),<br />
+ debug: Annotate some variables as unused (Michal Privoznik),<br />
+ maint: update authors (Peter Krempa),<br />
+ Add unsafe cache mode support for disk driver (Oskari Saarenmaa),<br />
+ selinux: Correctly report warning if virt_use_nfs not set (Michal Privoznik),<br />
+ virsh: Do not ignore the specified flags for cmdSaveImageDefine (Osier Yang),<br />
+ qemu: Transfer inactive XML among cookie (Michal Privoznik)<br /></li><li> Cleanups:<br />
+ Remove translations in socket test case (Daniel P. Berrange),<br />
+ test: drop redundant check (Eric Blake),<br />
+ startupPolicty: Minor cleanups (Michal Privoznik),<br />
+ secret: fix bad patch application (Eric Blake),<br />
+ Remove trailing whitespace from all xfig files (Daniel P. Berrange),<br />
+ Fix typo in virFileAccessibleAs (Daniel P. Berrange),<br />
+ snapshot: minor cleanups from reviewing indentation (Eric Blake),<br />
+ build: ignore test executable (Eric Blake),<br />
+ esx: drop dead code to silence Coverity (Eric Blake),<br />
+ snapshot: drop dead parameters (Eric Blake),<br />
+ qemu: silence Coverity false positive (Eric Blake),<br />
+ conf: remove unused VIR_ENUM_DECL (Laine Stump)<br /></li></ul>
<h3>0.9.6: Sep 22 2011</h3>
<ul><li> Portability:<br />
build: silence warning on 32-bit build (Eric Blake)<br /></li><li> Bug Fixes:<br />
diff --git a/docs/news.html.in b/docs/news.html.in
--- a/docs/news.html.in
+++ b/docs/news.html.in
<p>Here is the list of official releases, it is also possible to just use the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list
and check the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress.</p>
+ <h3>0.9.7: Nov 8 2011</h3>
+ <ul>
+ <li> Features:<br/>
+ esx: support vSphere 5.x (Patrice LACHANCE),<br/>
+ vbox: support for VirtualBox 4.1 (Matthias Bolte),<br/>
+ Introduce the virDomainOpenGraphics API (Daniel P. Berrange),<br/>
+ Add AHCI support to qemu driver (Jim Fehlig),<br/>
+ snapshot: many improvements and 2 new APIs (Eric Blake),<br/>
+ api: Add public api for 'reset' (Xu He Jie),<br/>
+ </li>
+
+ <li> Documentation:<br/>
+ Add <deviceboot> capability. (Philipp Hahn),<br/>
+ API: document scheduler parameter names (Eric Blake),<br/>
+ improve typed parameter documentation (Eric Blake),<br/>
+ fix typo in <disk>/<target> example (Eric Blake),<br/>
+ python: Fix documentation of virStream recv (Matthias Bolte),<br/>
+ Add documentation about migration. (Daniel P. Berrange),<br/>
+ Document filesystem type='block' for LXC (Ryota Ozaki),<br/>
+ fix incorrect info about routed networks (Laine Stump),<br/>
+ document managed=yes of hostdev passthrough (Eric Blake),<br/>
+ trivial spelling fix (Philipp Hahn),<br/>
+ Fix virt-sanlock-cleanup documentation (Philipp Hahn),<br/>
+ Fix two comments related to error handling (Philipp Hahn),<br/>
+ fix network XML documentation (Laine Stump),<br/>
+ Clarify semantics of virDomainMigrate2 (Jiri Denemark),<br/>
+ Update examples for probing with systemtap (Daniel P. Berrange),<br/>
+ fix html bug (Eric Blake),<br/>
+ virsh: Update the help information for undefine command. (tangchen),<br/>
+ Document STREQ_NULLABLE and STRNEQ_NULLABLE (Guido Günther),<br/>
+ Document that ff callbacks need to be invoked from a clean stack. (Guido Günther),<br/>
+ formatdomain.html.in: fix tickpolicy (Douglas Schilling Landgraf),<br/>
+ virsh: describe attach-interface parameter target (Daniel Veillard),<br/>
+ virsh: update man page for cpu_shares parameter (Daniel Veillard),<br/>
+ document node device XML (Eric Blake),<br/>
+ document virsh nodedev-* commands (Eric Blake),<br/>
+ snapshot: fix man page typos (Eric Blake),<br/>
+ virsh: Better document --copy-storage migrate options (Jiri Denemark),<br/>
+ virsh: Enhance documentation of commands starting jobs (Jiri Denemark),<br/>
+ virsh: Improve virsh manual for virsh memtune command (Peter Krempa)<br/>
+ </li>
+
+ <li> Portability:<br/>
+ build: fix build on platforms without ptsname_r (Eric Blake),<br/>
+ build: silence compiler warning on BSD (Eric Blake),<br/>
+ build: fix linking on BSD (Eric Blake),<br/>
+ remote: fix mingw32 build (Laine Stump),<br/>
+ build: fix deep VPATH builds (Eric Blake),<br/>
+ Use ENAMETOOLONG if the the socket path is longer than UNIX_PATH_MAX (Guido Günther),<br/>
+ build: avoid RHEL 5 build failure on LXC (Eric Blake),<br/>
+ build: use gnulib fdatasync (Eric Blake),<br/>
+ Fix virFileOpenTty definition on Win32 (Daniel P. Berrange),<br/>
+ compile: fix undefined reference to gnutls_x509_crt_get_dn with gcc-4.6.1 (Xu He Jie),<br/>
+ Fix VPATH build (Jiri Denemark),<br/>
+ build: fix 'make dist' error (Wen Congyang),<br/>
+ Fix syntax problem in mingw32-libvirt.spec.in (Daniel P. Berrange),<br/>
+ spec: mingw cleanups (Eric Blake),<br/>
+ build: fix mingw build without sasl (Eric Blake),<br/>
+ build: fix 'make rpm' (Eric Blake),<br/>
+ build: fix 'make distcheck' (Eric Blake),<br/>
+ disable xenlight for non-Xen platforms (Dan Horák),<br/>
+ build: Fix VPATH build with new probes (Jiri Denemark),<br/>
+ build: fix 'make distcheck' with pdwtags installed (Eric Blake),<br/>
+ spec: F15 still uses cgconfig, RHEL lacks hyperv (Eric Blake)<br/>
+ </li>
+
+ <li> Bug Fixes:<br/>
+ Fix sending/receiving of FDs when stream returns EAGAIN (Daniel P. Berrange),<br/>
+ lxc: avoid use-after-free (Eric Blake),<br/>
+ conf: Don't free uninitialized pointer (Jiri Denemark),<br/>
+ Fix default console type setting (Daniel P. Berrange),<br/>
+ Fix crash formatting virtio console (Daniel P. Berrange),<br/>
+ Fix off-by-one printing month in logging code (Daniel P. Berrange),<br/>
+ Add missing param initialization in qemuDomainBlockStatsFlags (Daniel P. Berrange),<br/>
+ fix crash when starting network (Wen Congyang),<br/>
+ Don't overwrite error message during VM cleanup (Daniel P. Berrange),<br/>
+ Correctly handle '*' in /etc/filesystems (Daniel P. Berrange),<br/>
+ Fix URI alias prefix matching (Wen Ruo Lv),<br/>
+ ServerClient: Flush cached data (Michal Privoznik),<br/>
+ Fix storage pool source comparison to avoid comparing with self (Daniel P. Berrange),<br/>
+ qemu: plug memory leak (Alex Jia),<br/>
+ qemu: Restore the original states of PCI device when restarting daemon (Osier Yang),<br/>
+ macvtap: Fix error return value convention/inconsistencies (Roopa Prabhu),<br/>
+ pci address conflict when virtio disk with drive type (Xu He Jie),<br/>
+ qemu: plug memory leak (Alex Jia),<br/>
+ qemu: avoid leaking uninit data from hotplug to dumpxml (Eric Blake),<br/>
+ util: Fix virUUIDGeneratePseudoRandomBytes (Ryota Ozaki),<br/>
+ lxc: Revert zeroing count of allocated items if VIR_REALLOC_N fails (Peter Krempa),<br/>
+ lxc: avoid null deref on lxcSetupLoopDevices failure (Alex Jia),<br/>
+ lxc: avoid missing '{' in the function (Alex Jia),<br/>
+ storage: avoid null deref on qemu-img failure (Eric Blake),<br/>
+ storage: make previous leak less likely to regress (Eric Blake),<br/>
+ storage: plug iscsi memory leak (Eric Blake),<br/>
+ qemu: avoid leaking uninit data from hotplug to dumpxml (Eric Blake),<br/>
+ qemu: Do not wait if the PCI device is not managed when reattaching (Osier Yang),<br/>
+ Add missing strdup return value check (Roopa Prabhu),<br/>
+ macvtap: avoid invalid free (Roopa Prabhu),<br/>
+ util: Fix typo in virGetHostname description (Jiri Denemark),<br/>
+ macvtap: plug memory leak for 802.1Qbh (Eric Blake),<br/>
+ qemu: plug memory leak on migration (Eric Blake),<br/>
+ conf: plug memory leak on error (Eric Blake),<br/>
+ storage: plug memory leak on error (Eric Blake),<br/>
+ util: Make getaddrinfo failure nonfatal in virGetHostname (Jiri Denemark),<br/>
+ qemu: fix text block info parsing (Eric Blake),<br/>
+ qemu: avoid text monitor null deref (Eric Blake),<br/>
+ qemu: check for json allocation failure (Eric Blake),<br/>
+ virFDStream: close also given errfd (fd leak) (Marc-André Lureau),<br/>
+ command: avoid fd leak on failure (Eric Blake),<br/>
+ qemu: Check for domain being active on successful job acquire (Michal Privoznik),<br/>
+ xen: Return tap2 for tap2 disks (Philipp Hahn),<br/>
+ xen: fix PyGrub boot device order (Philipp Hahn),<br/>
+ build: fix 'make check' linkage with dtrace (Eric Blake),<br/>
+ Fix deps for probes.o to ensure correct build ordering (Daniel P. Berrange),<br/>
+ If receiving a stream error, mark EOF on the stream (Daniel P. Berrange),<br/>
+ xen_xs: Guard against set but empty kernel argument (Guido Günther),<br/>
+ snapshot: avoid accidental renames with snapshot-edit (Eric Blake),<br/>
+ storage: Do not use comma as seperator for lvs output (Osier Yang),<br/>
+ qemuDomainAttach: Initialize pidfile variable (Michal Privoznik),<br/>
+ lxc: fix logic bug (Eric Blake),<br/>
+ Don't send back unknown program errors for async messages (Daniel P. Berrange),<br/>
+ Fix deadlock when the RPC program is unknown (Daniel P. Berrange),<br/>
+ remote_driver: Avoid double free in EventControl building (Michal Privoznik),<br/>
+ xenParseXM: don't dereference NULL pointer when script is empty (Guido Günther),<br/>
+ qemu: Fix migration with dname (Jiri Denemark),<br/>
+ virsh: do not unlink NULL file (Marc-André Lureau),<br/>
+ qemu: Fix error message mentioning VNC instead of SPICE (Peter Krempa),<br/>
+ qemu: Check for ejected media during startup and migration (Michal Privoznik),<br/>
+ qemu: add return value check (Alex Jia),<br/>
+ qemu: Always remove domain object if MigratePrepare fails (Jiri Denemark),<br/>
+ fix AppArmor driver for pipe character devices (Jamie Strandboge),<br/>
+ daemon: Don't remove pidfiles in init scripts (Peter Krempa),<br/>
+ storage: Do not break the whole vol lookup process in the middle (Osier Yang),<br/>
+ Fix synchronous reading of stream data (Daniel P. Berrange)<br/>
+ </li>
+
+ <li> Improvements:<br/>
+ Add missing defaultConsoleTargetType callback for AppArmour (Daniel P. Berrange),<br/>
+ Fix naming of constant for disk event (Daniel P. Berrange),<br/>
+ lxc: use common code for process cleanup (Eric Blake),<br/>
+ Set aliases for LXC/UML console devices (Daniel P. Berrange),<br/>
+ Default console target type with no <target> element (Daniel P. Berrange),<br/>
+ Add support for multiple consoles in LXC (Daniel P. Berrange),<br/>
+ Rewrite LXC I/O forwarding to use main event loop (Daniel P. Berrange),<br/>
+ Allow multiple consoles per virtual guest (Daniel P. Berrange),<br/>
+ virnetsockettest: Use a temporary directory in /tmp (Guido Günther),<br/>
+ xen: allow getting < max typed parameters (Eric Blake),<br/>
+ lxc: allow getting < max typed parameters (Eric Blake),<br/>
+ libxl: allow getting < max typed parameters (Eric Blake),<br/>
+ esx: allow getting < max typed parameters (Eric Blake),<br/>
+ qemu: allow getting < max typed parameters (Eric Blake),<br/>
+ Add support for probing filesystem with libblkid (Daniel P. Berrange),<br/>
+ Fix error message when failing to detect filesystem (Daniel P. Berrange),<br/>
+ Workaround for broken kernel autofs mounts (Daniel P. Berrange),<br/>
+ Ensure errno is valid when returning from lxcContainerWaitForContinue (Daniel P. Berrange),<br/>
+ Create /var/lib/libvirt/filesystems for LXC trees (Daniel P. Berrange),<br/>
+ esx: Support folders in the path of vpx:// connection URIs (Matthias Bolte),<br/>
+ qemu: pass virConnectPtr into Domain{Attach,Detach}* (Sage Weil),<br/>
+ vbox: Support shared folders (Matthias Bolte),<br/>
+ xenapi: Improve error reporting in xenapiOpen once again (Matthias Bolte),<br/>
+ Use a common xml type for ceph secret usage. (Josh Durgin),<br/>
+ storage: add auth to virDomainDiskDef (Josh Durgin),<br/>
+ secret: add Ceph secret type (Sage Weil),<br/>
+ Implement RPC driver support for virDomainOpenGraphics (Daniel P. Berrange),<br/>
+ Extend RPC server to allow FD passing (Daniel P. Berrange),<br/>
+ Add client side support for FD passing (Daniel P. Berrange),<br/>
+ Extend RPC protocol to allow FD passing (Daniel P. Berrange),<br/>
+ Add APIs for virNetSocket for sending/receiving file descriptors (Daniel P. Berrange),<br/>
+ Wire up QEMU implementation for virDomainOpenGraphics (Daniel P. Berrange),<br/>
+ Extend graphics event to include UNIX socket (Daniel P. Berrange),<br/>
+ virsh: Fix error message on vol-create-from failure (Ryota Ozaki),<br/>
+ bridge: modify for use when sVirt is enabled with qemu (Tyler Coumbes),<br/>
+ Use virXMLSaveFile when writing XML config (Jiri Denemark),<br/>
+ Introduce virXMLSaveFile as a wrapper for virFileRewrite (Jiri Denemark),<br/>
+ Introduce virFileRewrite for safe file rewrite (Jiri Denemark),<br/>
+ Add a systemtap script for watching QEMU monitor interactions (Daniel P. Berrange),<br/>
+ qemu: simplify use of HAVE_YAJL (Eric Blake),<br/>
+ snapshot: simplify indentation of disk encryption xml (Eric Blake),<br/>
+ snapshot: simplify indentation of nwfilter (Eric Blake),<br/>
+ Add REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE to remote_protocol-structs (Daniel P. Berrange),<br/>
+ nwfilter: extend schema to support new targets (Stefan Berger),<br/>
+ util: Add virFileAccessibleAs to private symbols (Michal Privoznik),<br/>
+ startupPolicy: Emit event on disk source dropping (Michal Privoznik),<br/>
+ qemu: implement startupPolicy (Michal Privoznik),<br/>
+ qemu: Move device alias assigning before command line construction (Michal Privoznik),<br/>
+ util: Create virFileAccessibleAs function (Michal Privoznik),<br/>
+ conf: Introduce optional startupPolicy attribute for cdrom and floppy (Michal Privoznik),<br/>
+ waitpid: improve safety (Eric Blake),<br/>
+ virsh: Fix vol-info's 'Type' output (Ryota Ozaki),<br/>
+ support continue/return targets in nwfilter (David L Stevens),<br/>
+ snapshot: simplify indentation of network xml (Eric Blake),<br/>
+ snapshot: simplify indentation of cpu features (Eric Blake),<br/>
+ snapshot: simplify indentation of sysinfo (Eric Blake),<br/>
+ snapshot: test domainsnapshot indentation (Eric Blake),<br/>
+ snapshot: indent domain xml when nesting (Eric Blake),<br/>
+ virbuf: add auto-indentation support (Eric Blake),<br/>
+ virbuf: more detailed error reporting (Eric Blake),<br/>
+ virbuf: improve testsuite reporting (Eric Blake),<br/>
+ virbuf: fix const-correctness (Eric Blake),<br/>
+ qemu: allow json in domxml-to-native (tangchen),<br/>
+ support setting bandwidth from virsh attach-interface (Hu Tao),<br/>
+ lxc: use hand-rolled code in place of unlockpt and grantpt (Serge E. Hallyn),<br/>
+ qemu: Test name-space handling (Philipp Hahn),<br/>
+ qemu: Fix name-space handling (Philipp Hahn),<br/>
+ Replace virBufferAdd with virBufferAddLit for const string (Daniel P. Berrange),<br/>
+ Allow for URI aliases when connecting to libvirt (Daniel P. Berrange),<br/>
+ Add support for autodestroy of guests to the LXC and UML drivers (Daniel P. Berrange),<br/>
+ Use virBufferEscapeShell in cmdEcho (Guido Günther),<br/>
+ qemu: replace qemuMonitorEscapeShell by virBufferEscapeShell (Guido Günther),<br/>
+ virBufferEscapeShell: Emit quotes for the empty string (Guido Günther),<br/>
+ snapshot: detect when qemu lacks disk-snapshot support (Eric Blake),<br/>
+ virBufferEscapeShell: Fix escaping of single quotes. (Guido Günther),<br/>
+ compile: Add a missing function 'pciDeviceListFind' to libvirt_private.syms (Xu He Jie),<br/>
+ snapshot: implement LIST_LEAVES flag in esx (Eric Blake),<br/>
+ qemu: Relax -no-shutdown check to [0.14.0, 0.15.0] (Jiri Denemark),<br/>
+ qemu: Honor the orginal PCI dev properties when reattaching (Osier Yang),<br/>
+ qemu: Do not reattach PCI device used by other domain when shutdown (Osier Yang),<br/>
+ Xen: Fake versions in xencapstest (Philipp Hahn),<br/>
+ Xen: move versions to struct (Philipp Hahn),<br/>
+ Use virBufferEscapeShell in virNetSocketNewConnectSSH (Guido Günther),<br/>
+ Add virBufferEscapeShell (Guido Günther),<br/>
+ Autodetect if the remote nc command supports the -q option (Guido Günther),<br/>
+ qemu: Make sure BeginJob is always followed by EndJob (Jiri Denemark),<br/>
+ qemu: Log debug messages when changing job (Jiri Denemark),<br/>
+ build: add compiler attributes to virUUIDParse (Eric Blake),<br/>
+ Fix typo in lxc_controller (Serge E. Hallyn),<br/>
+ build: update to latest gnulib (Eric Blake),<br/>
+ events: Propose a separate lock for event queue (Michal Privoznik),<br/>
+ qemu: Implement VIR_DUMP_RESET (Michal Privoznik),<br/>
+ virDomainCoreDump: Introduce VIR_DUMP_RESET flag (Michal Privoznik),<br/>
+ example: Support debug output and loop switch (Philipp Hahn),<br/>
+ example: Redirect --help output to stdout/stderr (Philipp Hahn),<br/>
+ example: Fix argument handling (Philipp Hahn),<br/>
+ snapshot: implement LIST_LEAVES flag in qemu (Eric Blake),<br/>
+ snapshot: add API for filtering by leaves (Eric Blake),<br/>
+ tests: Add support for skipping tests (Philipp Hahn),<br/>
+ Introduce <driver> under <filesystem> to support open-by-handle (Harsh Prateek Bora),<br/>
+ buf: implement generic virBufferEscape (Sage Weil),<br/>
+ daemon: Always advertise libvirtd service (Osier Yang),<br/>
+ snapshot: take advantage of new relations (Eric Blake),<br/>
+ snapshot: track qemu snapshot relations (Eric Blake),<br/>
+ snapshot: framework for more efficient relation traversal (Eric Blake),<br/>
+ snapshot: use correct qmp monitor command (Eric Blake),<br/>
+ snapshot: virsh shorthand for operating on current snap (Eric Blake),<br/>
+ build: ship helper scripts (Eric Blake),<br/>
+ Rewrite all the DTrace/SystemTAP probing (Daniel P. Berrange),<br/>
+ Fix missing lock calls on virNetTLSContextRef (Daniel P. Berrange),<br/>
+ Refactor TLS to facilitate dynamic probing (Daniel P. Berrange),<br/>
+ Add virSocketRef API to facilitate dynamic probing (Daniel P. Berrange),<br/>
+ Make libvirt.so include the RPC server code (Daniel P. Berrange),<br/>
+ snapshot: implement snapshot children listing in esx (Eric Blake),<br/>
+ snapshot: implement snapshot children listing in qemu (Eric Blake),<br/>
+ snapshot: remote protocol for snapshot children (Eric Blake),<br/>
+ snapshot: virsh fallback for snapshot-list --descendants --from (Eric Blake),<br/>
+ snapshot: virsh fallback for snapshot-list --from children (Eric Blake),<br/>
+ snapshot: virsh fallback for snapshot-list --tree --from (Eric Blake),<br/>
+ snapshot: virsh snapshot-list and children (Eric Blake),<br/>
+ xen: add error handling to UUID parsing (Guido Günther),<br/>
+ maint: typo fixes (Eric Blake),<br/>
+ snapshot: sort snapshot-list --tree (Eric Blake),<br/>
+ snapshot: simplify redefinition of disk snapshot (Eric Blake),<br/>
+ snapshot: let virsh edit disk snapshots (Eric Blake),<br/>
+ snapshot: fix virsh error message typo (Eric Blake),<br/>
+ qemu: add separate rerror_policy for disk errors (Laine Stump),<br/>
+ qemu: leave rerror policy at default when enospace is requested (Laine Stump),<br/>
+ qemu: enable multifunction for older qemu (Eric Blake),<br/>
+ Make LXC work with new network configuration types (Daniel P. Berrange),<br/>
+ init: raise default system aio limits (Eric Blake),<br/>
+ maint: fix minor issues in virterror public header (Eric Blake),<br/>
+ snapshot: enforce REVERT_FORCE on qemu (Eric Blake),<br/>
+ snapshot: use qemu-img on disks in use at time of snapshot (Eric Blake),<br/>
+ snapshot: add REVERT_FORCE to API (Eric Blake),<br/>
+ snapshot: implement snapshot roots listing in vbox (Eric Blake),<br/>
+ qemu: Don't fail virDomainGetInfo if we can't update balloon info (Jiri Denemark),<br/>
+ snapshot: simplify esx snapshot name lookup (Eric Blake),<br/>
+ snapshot: implement snapshot roots listing in esx (Eric Blake),<br/>
+ qemu: correct misspelled 'enospc' option, and only use for werror (Laine Stump),<br/>
+ snapshot: better virsh handling of missing current, parent (Eric Blake),<br/>
+ Allow passing of command line args to LXC container (Daniel P. Berrange),<br/>
+ Add support for bandwidth filtering on LXC guests (Daniel P. Berrange),<br/>
+ network: fill in bandwidth from portgroup for all forward modes (Laine Stump),<br/>
+ bridge_driver.c: Fix autoconf setting (Neil Wilson),<br/>
+ Set to NULL members that have been freed to prevent crashes (Marc-André Lureau),<br/>
+ snapshot: implement getparent for vbox (Eric Blake),<br/>
+ snapshot: implement getparent for esx (Eric Blake),<br/>
+ qemu: make PCI multifunction support more manual (Laine Stump),<br/>
+ lvm storage backend: handle command_names=1 in lvm.conf (Serge E. Hallyn),<br/>
+ qemu: Check for outstanding async job too (Michal Privoznik),<br/>
+ virsh: Add 'reset' command for virsh (Xu He Jie),<br/>
+ remote: Implement 'reset' for remote driver (Xu He Jie),<br/>
+ qemu: Implement 'reset' for qemu driver (Xu He Jie),<br/>
+ logging: Add date to log timestamp (Jiri Denemark),<br/>
+ logging: Do not log timestamp through syslog (Jiri Denemark),<br/>
+ hyperv: Report an error for acceptable URI schemes with a transport (Matthias Bolte),<br/>
+ esx: Report an error for acceptable URI schemes with a transport (Matthias Bolte),<br/>
+ snapshot: implement getparent in qemu (Eric Blake),<br/>
+ snapshot: add virsh snapshot-list --tree (Eric Blake),<br/>
+ snapshot: refactor virsh snapshot parent computation (Eric Blake),<br/>
+ snapshot: remote protocol for getparent (Eric Blake),<br/>
+ security: properly chown/label bidirectional and unidirectional fifos (Laine Stump),<br/>
+ qemu: Preserve fakeReboot flag in domain status (Jiri Denemark),<br/>
+ qemu: Finish domain shutdown on reconnect (Jiri Denemark),<br/>
+ qemu: Check domain status details when reconnecting monitor (Jiri Denemark),<br/>
+ virsh: Allow using complete <capabilities> elements with cpu-baseline (Peter Krempa),<br/>
+ virsh: Allow using domain and capabilities XMLs with cpu-compare (Peter Krempa),<br/>
+ qemu: add ability to set PCI device "rombar" on or off (Laine Stump),<br/>
+ qemu: Relax -no-shutdown check to [0.14.0, 0.15.50) (Jiri Denemark),<br/>
+ virLockManagerNopInit: Rename flags to unused_flags (Michal Privoznik),<br/>
+ debug: Annotate some variables as unused (Michal Privoznik),<br/>
+ maint: update authors (Peter Krempa),<br/>
+ Add unsafe cache mode support for disk driver (Oskari Saarenmaa),<br/>
+ selinux: Correctly report warning if virt_use_nfs not set (Michal Privoznik),<br/>
+ virsh: Do not ignore the specified flags for cmdSaveImageDefine (Osier Yang),<br/>
+ qemu: Transfer inactive XML among cookie (Michal Privoznik)<br/>
+ </li>
+
+ <li> Cleanups:<br/>
+ Remove translations in socket test case (Daniel P. Berrange),<br/>
+ test: drop redundant check (Eric Blake),<br/>
+ startupPolicty: Minor cleanups (Michal Privoznik),<br/>
+ secret: fix bad patch application (Eric Blake),<br/>
+ Remove trailing whitespace from all xfig files (Daniel P. Berrange),<br/>
+ Fix typo in virFileAccessibleAs (Daniel P. Berrange),<br/>
+ snapshot: minor cleanups from reviewing indentation (Eric Blake),<br/>
+ build: ignore test executable (Eric Blake),<br/>
+ esx: drop dead code to silence Coverity (Eric Blake),<br/>
+ snapshot: drop dead parameters (Eric Blake),<br/>
+ qemu: silence Coverity false positive (Eric Blake),<br/>
+ conf: remove unused VIR_ENUM_DECL (Laine Stump)<br/>
+ </li>
+ </ul>
+
<h3>0.9.6: Sep 22 2011</h3>
<ul>
<li> Portability:<br/>
--- a/docs/schemas/Makefile.in
+++ b/docs/schemas/Makefile.in
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
STATIC_BINARIES = @STATIC_BINARIES@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
<empty/>
</element>
</optional>
+ <optional>
+ <element name='deviceboot'>
+ <empty/>
+ </element>
+ </optional>
</element>
</define>
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
STATIC_BINARIES = @STATIC_BINARIES@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
diff --git a/examples/domain-events/events-c/Makefile.in b/examples/domain-events/events-c/Makefile.in
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
STATIC_BINARIES = @STATIC_BINARIES@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
STATIC_BINARIES = @STATIC_BINARIES@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
STATIC_BINARIES = @STATIC_BINARIES@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
STATIC_BINARIES = @STATIC_BINARIES@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
STATIC_BINARIES = @STATIC_BINARIES@
+STDALIGN_H = @STDALIGN_H@
STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
STDDEF_H = @STDDEF_H@
$(top_srcdir)/gnulib/m4/environ.m4 \
$(top_srcdir)/gnulib/m4/errno_h.m4 \
$(top_srcdir)/gnulib/m4/error.m4 \
+ $(top_srcdir)/gnulib/m4/exponentd.m4 \
$(top_srcdir)/gnulib/m4/extensions.m4 \
$(top_srcdir)/gnulib/m4/fatal-signal.m4 \
$(top_srcdir)/gnulib/m4/fclose.m4 \
$(top_srcdir)/gnulib/m4/getugroups.m4 \
$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib/m4/grantpt.m4 \
$(top_srcdir)/gnulib/m4/hostent.m4 \
$(top_srcdir)/gnulib/m4/include_next.m4 \
$(top_srcdir)/gnulib/m4/inet_ntop.m4 \
$(top_srcdir)/gnulib/m4/poll.m4 \
$(top_srcdir)/gnulib/m4/poll_h.m4 \
$(top_srcdir)/gnulib/m4/posix-shell.m4 \
+ $(top_srcdir)/gnulib/m4/posix_openpt.m4 \
$(top_srcdir)/gnulib/m4/posix_spawn.m4 \
$(top_srcdir)/gnulib/m4/printf.m4 \
$(top_srcdir)/gnulib/m4/pthread.m4 \
$(top_srcdir)/gnulib/m4/pthread_sigmask.m4 \
+ $(top_srcdir)/gnulib/m4/ptsname.m4 \
+ $(top_srcdir)/gnulib/m4/pty.m4 \
+ $(top_srcdir)/gnulib/m4/pty_h.m4 \
$(top_srcdir)/gnulib/m4/putenv.m4 \
$(top_srcdir)/gnulib/m4/raise.m4 \
$(top_srcdir)/gnulib/m4/random_r.m4 \
$(top_srcdir)/gnulib/m4/ssize_t.m4 \
$(top_srcdir)/gnulib/m4/stat-time.m4 \
$(top_srcdir)/gnulib/m4/stat.m4 \
+ $(top_srcdir)/gnulib/m4/stdalign.m4 \
$(top_srcdir)/gnulib/m4/stdarg.m4 \
$(top_srcdir)/gnulib/m4/stdbool.m4 \
$(top_srcdir)/gnulib/m4/stddef_h.m4 \
$(top_srcdir)/gnulib/m4/time_r.m4 \
$(top_srcdir)/gnulib/m4/timegm.m4 \
$(top_srcdir)/gnulib/m4/tm_gmtoff.m4 \
+ $(top_srcdir)/gnulib/m4/ttyname_r.m4 \
$(top_srcdir)/gnulib/m4/uname.m4 \
$(top_srcdir)/gnulib/m4/ungetc.m4 \
$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib/m4/unlockpt.m4 \
$(top_srcdir)/gnulib/m4/usleep.m4 \
$(top_srcdir)/gnulib/m4/vasnprintf.m4 \
$(top_srcdir)/gnulib/m4/vasprintf.m4 \
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FORKPTY = @GNULIB_FORKPTY@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
GNULIB_OPEN = @GNULIB_OPEN@
GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENPTY = @GNULIB_OPENPTY@
GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
GNULIB_PIPE = @GNULIB_PIPE@
GNULIB_PIPE2 = @GNULIB_PIPE2@
GNULIB_POLL = @GNULIB_POLL@
GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@
GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@
GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FORKPTY = @HAVE_FORKPTY@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
HAVE_LCHMOD = @HAVE_LCHMOD@
HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LIBUTIL_H = @HAVE_LIBUTIL_H@
HAVE_LINK = @HAVE_LINK@
HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_NETDB_H = @HAVE_NETDB_H@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENPTY = @HAVE_OPENPTY@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
HAVE_POLL = @HAVE_POLL@
HAVE_POLL_H = @HAVE_POLL_H@
HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@
HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@
HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@
HAVE_PTHREAD_T = @HAVE_PTHREAD_T@
HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTY_H = @HAVE_PTY_H@
HAVE_PWRITE = @HAVE_PWRITE@
HAVE_RAISE = @HAVE_RAISE@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIL_H = @HAVE_UTIL_H@
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@
NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@
+NEXT_AS_FIRST_DIRECTIVE_PTY_H = @NEXT_AS_FIRST_DIRECTIVE_PTY_H@
NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
NEXT_POLL_H = @NEXT_POLL_H@
NEXT_PTHREAD_H = @NEXT_PTHREAD_H@
+NEXT_PTY_H = @NEXT_PTY_H@
NEXT_SCHED_H = @NEXT_SCHED_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_SPAWN_H = @NEXT_SPAWN_H@
PTHREAD_H = @PTHREAD_H@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PTY_LIB = @PTY_LIB@
PVCREATE = @PVCREATE@
PVREMOVE = @PVREMOVE@
PVS = @PVS@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FORKPTY = @REPLACE_FORKPTY@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
+REPLACE_OPENPTY = @REPLACE_OPENPTY@
REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POLL = @REPLACE_POLL@
REPLACE_POPEN = @REPLACE_POPEN@
