New upstream version 0.9.7 upstream/0.9.7
authorGuido Günther <agx@sigxcpu.org>
Thu, 10 Nov 2011 17:22:25 +0000 (18:22 +0100)
committerGuido Günther <agx@sigxcpu.org>
Thu, 10 Nov 2011 17:22:25 +0000 (18:22 +0100)
297 files changed:
ChangeLog
GNUmakefile
Makefile.in
NEWS
aclocal.m4
build-aux/gitlog-to-changelog
build-aux/texinfo.tex
cfg.mk
config.h.in
configure
configure.ac
daemon/Makefile.in
docs/Makefile.in
docs/devhelp/libvirt-libvirt.html
docs/devhelp/libvirt.devhelp
docs/formatdomain.html
docs/formatdomain.html.in
docs/html/libvirt-libvirt.html
docs/libvirt-api.xml
docs/libvirt-refs.xml
docs/news.html
docs/news.html.in
docs/schemas/Makefile.in
docs/schemas/capability.rng
examples/apparmor/Makefile.in
examples/domain-events/events-c/Makefile.in
examples/dominfo/Makefile.in
examples/domsuspend/Makefile.in
examples/hellolibvirt/Makefile.in
examples/openauth/Makefile.in
examples/python/Makefile.in
examples/systemtap/Makefile.in
examples/xml/nwfilter/Makefile.in
gnulib/lib/Makefile.in
gnulib/lib/alignof.h [deleted file]
gnulib/lib/errno.in.h
gnulib/lib/ffs.c
gnulib/lib/gettext.h
gnulib/lib/gnulib.mk
gnulib/lib/md5.c
gnulib/lib/openpty.c [new file with mode: 0644]
gnulib/lib/posix_openpt.c [new file with mode: 0644]
gnulib/lib/pty.in.h [new file with mode: 0644]
gnulib/lib/stdalign.in.h [new file with mode: 0644]
gnulib/lib/stdlib.in.h
gnulib/lib/strerror-override.c
gnulib/lib/strerror-override.h
gnulib/lib/sys_socket.in.h
gnulib/lib/ttyname_r.c [new file with mode: 0644]
gnulib/lib/vasnprintf.c
gnulib/lib/w32sock.h
gnulib/m4/exponentd.m4 [new file with mode: 0644]
gnulib/m4/gnulib-comp.m4
gnulib/m4/grantpt.m4 [new file with mode: 0644]
gnulib/m4/include_next.m4
gnulib/m4/perror.m4
gnulib/m4/posix_openpt.m4 [new file with mode: 0644]
gnulib/m4/ptsname.m4 [new file with mode: 0644]
gnulib/m4/pty.m4 [new file with mode: 0644]
gnulib/m4/pty_h.m4 [new file with mode: 0644]
gnulib/m4/stdalign.m4 [new file with mode: 0644]
gnulib/m4/stdlib_h.m4
gnulib/m4/ttyname_r.m4 [new file with mode: 0644]
gnulib/m4/unlockpt.m4 [new file with mode: 0644]
gnulib/m4/vasnprintf.m4
gnulib/tests/Makefile.in
gnulib/tests/gnulib.mk
gnulib/tests/grantpt.c [new file with mode: 0644]
gnulib/tests/ptsname.c [new file with mode: 0644]
gnulib/tests/pty-private.h [new file with mode: 0644]
gnulib/tests/putenv.c
gnulib/tests/spawn.in.h
gnulib/tests/test-alignof.c [deleted file]
gnulib/tests/test-grantpt.c [new file with mode: 0644]
gnulib/tests/test-nonblocking-pipe.h
gnulib/tests/test-openpty.c [new file with mode: 0644]
gnulib/tests/test-posix_openpt.c [new file with mode: 0644]
gnulib/tests/test-ptsname.c [new file with mode: 0644]
gnulib/tests/test-raise.c
gnulib/tests/test-stdalign.c [new file with mode: 0644]
gnulib/tests/test-ttyname_r.c [new file with mode: 0644]
gnulib/tests/test-unlockpt.c [new file with mode: 0644]
gnulib/tests/unlockpt.c [new file with mode: 0644]
gnulib/tests/w32sock.h
include/Makefile.in
include/libvirt/Makefile.in
include/libvirt/libvirt.h
include/libvirt/libvirt.h.in
libvirt.spec
libvirt.spec.in
maint.mk
po/af.gmo
po/af.po
po/am.gmo
po/am.po
po/ar.gmo
po/ar.po
po/as.gmo
po/as.po
po/be.gmo
po/be.po
po/bg.gmo
po/bg.po
po/bn.gmo
po/bn.po
po/bn_IN.gmo
po/bn_IN.po
po/bs.gmo
po/bs.po
po/ca.gmo
po/ca.po
po/cs.gmo
po/cs.po
po/cy.gmo
po/cy.po
po/da.gmo
po/da.po
po/de.gmo
po/de.po
po/el.gmo
po/el.po
po/en_GB.gmo
po/en_GB.po
po/es.gmo
po/es.po
po/et.gmo
po/et.po
po/eu_ES.gmo
po/eu_ES.po
po/fa.gmo
po/fa.po
po/fi.gmo
po/fi.po
po/fr.gmo
po/fr.po
po/gl.gmo
po/gl.po
po/gu.gmo
po/gu.po
po/he.gmo
po/he.po
po/hi.gmo
po/hi.po
po/hr.gmo
po/hr.po
po/hu.gmo
po/hu.po
po/hy.gmo
po/hy.po
po/id.gmo
po/id.po
po/is.gmo
po/is.po
po/it.gmo
po/it.po
po/ja.gmo
po/ja.po
po/ka.gmo
po/ka.po
po/kn.gmo
po/kn.po
po/ko.gmo
po/ko.po
po/ku.gmo
po/ku.po
po/libvirt.pot
po/lo.gmo
po/lo.po
po/lt.gmo
po/lt.po
po/lv.gmo
po/lv.po
po/mk.gmo
po/mk.po
po/ml.gmo
po/ml.po
po/mr.gmo
po/mr.po
po/ms.gmo
po/ms.po
po/my.gmo
po/my.po
po/nb.gmo
po/nb.po
po/nl.gmo
po/nl.po
po/nn.gmo
po/nn.po
po/nso.gmo
po/nso.po
po/or.gmo
po/or.po
po/pa.gmo
po/pa.po
po/pl.gmo
po/pl.po
po/pt.gmo
po/pt.po
po/pt_BR.gmo
po/pt_BR.po
po/ro.gmo
po/ro.po
po/ru.gmo
po/ru.po
po/si.gmo
po/si.po
po/sk.gmo
po/sk.po
po/sl.gmo
po/sl.po
po/sq.gmo
po/sq.po
po/sr.gmo
po/sr.po
po/sr@latin.gmo
po/sr@latin.po
po/sv.gmo
po/sv.po
po/ta.gmo
po/ta.po
po/te.gmo
po/te.po
po/th.gmo
po/th.po
po/tr.gmo
po/tr.po
po/uk.gmo
po/uk.po
po/ur.gmo
po/ur.po
po/vi.gmo
po/vi.po
po/vi_VN.gmo
po/vi_VN.po
po/zh_CN.gmo
po/zh_CN.po
po/zh_TW.gmo
po/zh_TW.po
po/zu.gmo
po/zu.po
python/Makefile.in
python/tests/Makefile.in
src/Makefile.am
src/Makefile.in
src/conf/capabilities.h
src/conf/domain_conf.c
src/conf/domain_conf.h
src/esx/esx_driver.c
src/libxl/libxl_conf.c
src/lxc/lxc_conf.c
src/lxc/lxc_container.c
src/lxc/lxc_container.h
src/lxc/lxc_controller.c
src/lxc/lxc_driver.c
src/openvz/openvz_conf.c
src/phyp/phyp_driver.c
src/qemu/qemu_capabilities.c
src/qemu/qemu_command.c
src/qemu/qemu_domain.c
src/qemu/qemu_driver.c
src/qemu/qemu_process.c
src/remote/remote_driver.c
src/rpc/genprotocol.pl
src/rpc/virnetclient.c
src/rpc/virnetmessage.h
src/rpc/virnetserverclient.c
src/rpc/virnetsocket.c
src/rpc/virnetsocket.h
src/security/security_selinux.c
src/security/virt-aa-helper.c
src/test/test_driver.c
src/uml/uml_conf.c
src/uml/uml_driver.c
src/util/threads-pthread.c
src/util/util.c
src/util/util.h
src/vbox/vbox_tmpl.c
src/vmware/vmware_conf.c
src/xen/xen_driver.c
src/xen/xen_hypervisor.c
src/xenapi/xenapi_driver.c
src/xenxs/xen_sxpr.c
src/xenxs/xen_xm.c
tests/Makefile.in
tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-auto.args
tests/qemuxml2argvdata/qemuxml2argv-channel-virtio.args
tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.args [new file with mode: 0644]
tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.xml [new file with mode: 0644]
tests/qemuxml2argvdata/qemuxml2argv-console-virtio.args
tests/qemuxml2argvtest.c
tests/qemuxml2xmltest.c
tests/testutilsqemu.c
tests/testutilsxen.c
tests/virnetsockettest.c
tests/vmx2xmltest.c
tests/xml2vmxtest.c
tools/Makefile.in

index 139f808..68085e4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,280 @@
+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
index 6e00ec8..ca88b6b 100644 (file)
@@ -45,12 +45,13 @@ include Makefile
 
 # 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 := \
index 15f518c..913c6d8 100644 (file)
@@ -65,6 +65,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -101,6 +102,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -153,10 +155,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -184,6 +190,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -221,9 +228,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -458,6 +467,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -555,12 +565,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -784,6 +796,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -804,6 +817,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -831,6 +845,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -838,6 +853,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -849,6 +865,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -915,6 +932,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -1067,6 +1085,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1100,6 +1119,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1162,6 +1182,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1189,6 +1210,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1240,6 +1262,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@ -1321,6 +1344,7 @@ SHOWMOUNT = @SHOWMOUNT@
 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/NEWS b/NEWS
index 879c68b..874c633 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,331 @@
        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)
index 56ab638..71dcb35 100644 (file)
@@ -1484,6 +1484,7 @@ m4_include([gnulib/m4/eealloc.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])
@@ -1520,6 +1521,7 @@ m4_include([gnulib/m4/gettimeofday.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])
@@ -1572,10 +1574,14 @@ m4_include([gnulib/m4/pipe2.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])
@@ -1603,6 +1609,7 @@ m4_include([gnulib/m4/spawn_h.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])
@@ -1640,9 +1647,11 @@ m4_include([gnulib/m4/time_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])
index 4559704..56c7e4e 100755 (executable)
@@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
     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
@@ -60,6 +60,10 @@ $ME, they may be preceded by '--'.
 
 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;
@@ -74,6 +78,23 @@ EXAMPLE:
   $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;
@@ -99,19 +120,81 @@ sub quoted_cmd(@)
   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");
@@ -130,7 +213,34 @@ sub quoted_cmd(@)
       $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";
@@ -152,6 +262,13 @@ sub quoted_cmd(@)
       # 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)
         {
@@ -159,9 +276,17 @@ sub quoted_cmd(@)
         }
       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;
@@ -178,6 +303,16 @@ sub quoted_cmd(@)
   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:
index 3298298..631fdb2 100644 (file)
@@ -3,7 +3,7 @@
 % 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,
@@ -2372,7 +2372,9 @@ end
   \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.
@@ -2382,9 +2384,15 @@ end
 % 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
 
@@ -2480,7 +2488,7 @@ end
     \plainfrenchspacing
     #1%
   }%
-  \null
+  \null % reset spacefactor to 1000
 }
 
 % We *must* turn on hyphenation at `-' and `_' in @code.
@@ -2762,6 +2770,7 @@ end
   \ifx\temp\empty \else
     \space ({\unsepspaces \ignorespaces \temp \unskip})%
   \fi
+  \null % reset \spacefactor=1000
 }
 
 % @abbr for "Comput. J." and the like.
@@ -2774,6 +2783,7 @@ end
   \ifx\temp\empty \else
     \space ({\unsepspaces \ignorespaces \temp \unskip})%
   \fi
+  \null % reset \spacefactor=1000
 }
 
 % @asis just yields its argument.  Used with @table, for example.
@@ -8103,7 +8113,7 @@ end
 % 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
@@ -8166,6 +8176,8 @@ end
   % 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
diff --git a/cfg.mk b/cfg.mk
index 5a13158..463ce0c 100644 (file)
--- 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$$
 
index cc0809c..1620cb6 100644 (file)
 /* 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
 
index 2702c4a..35e9bb6 100755 (executable)
--- a/configure
+++ b/configure
@@ -1069,6 +1069,9 @@ GL_GENERATE_STDARG_H_TRUE
 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
@@ -1123,6 +1126,18 @@ HAVE_POLL_H
 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
@@ -1546,6 +1561,7 @@ HAVE_REALPATH
 HAVE_RANDOM_R
 HAVE_RANDOM_H
 HAVE_PTSNAME
+HAVE_POSIX_OPENPT
 HAVE_MKSTEMPS
 HAVE_MKSTEMP
 HAVE_MKOSTEMPS
@@ -1571,6 +1587,7 @@ GNULIB_REALLOC_POSIX
 GNULIB_RANDOM_R
 GNULIB_PUTENV
 GNULIB_PTSNAME
+GNULIB_POSIX_OPENPT
 GNULIB_MKSTEMPS
 GNULIB_MKSTEMP
 GNULIB_MKOSTEMPS
@@ -3879,6 +3896,7 @@ gl_func_list="$gl_func_list mprotect"
 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"
@@ -3888,6 +3906,7 @@ gl_func_list="$gl_func_list pipe2"
 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"
@@ -3897,6 +3916,7 @@ gl_func_list="$gl_func_list sigaltstack"
 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"
@@ -7838,8 +7858,6 @@ fi
 
   # 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:
@@ -7974,6 +7992,8 @@ fi
   # 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:
@@ -8040,6 +8060,8 @@ fi
   # 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:
@@ -8056,6 +8078,8 @@ fi
   # 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:
@@ -8075,6 +8099,10 @@ fi
   # 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:
@@ -8134,6 +8162,8 @@ fi
   # 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:
 
 
@@ -8203,10 +8233,14 @@ fi
   # 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:
@@ -8726,12 +8760,15 @@ _ACEOF
                                                                                                                                      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
@@ -9170,6 +9207,7 @@ _ACEOF
   GNULIB_MKOSTEMPS=0;
   GNULIB_MKSTEMP=0;
   GNULIB_MKSTEMPS=0;
+  GNULIB_POSIX_OPENPT=0;
   GNULIB_PTSNAME=0;
   GNULIB_PUTENV=0;
   GNULIB_RANDOM_R=0;
@@ -9195,6 +9233,7 @@ _ACEOF
   HAVE_MKOSTEMPS=1;
   HAVE_MKSTEMP=1;
   HAVE_MKSTEMPS=1;
+  HAVE_POSIX_OPENPT=1;
   HAVE_PTSNAME=1;
   HAVE_RANDOM_H=1;
   HAVE_RANDOM_R=1;
@@ -10316,12 +10355,15 @@ _ACEOF
                                                                                                                                      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
@@ -11456,12 +11498,15 @@ _ACEOF
                                                                                                                                      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
@@ -12322,12 +12367,15 @@ _ACEOF
                                                                                                                                      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
+
+
+
+
+
+
+
+
 
 
 
@@ -15299,12 +15546,15 @@ _ACEOF
                                                                                                                                      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
@@ -15546,6 +15796,11 @@ $as_echo "$gl_cv_lib_socket" >&6; }
 
 
 
+
+
+
+
+
     HAVE_PTHREAD_H=1;
   HAVE_PTHREAD_T=1;
   HAVE_PTHREAD_SPINLOCK_T=1;
@@ -16652,12 +16907,15 @@ _ACEOF
                                                                                                                                      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
@@ -16866,6 +17124,11 @@ cat >>confdefs.h <<_ACEOF
 _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 :
@@ -17087,12 +17350,15 @@ _ACEOF
                                                                                                                                      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
@@ -17796,12 +18062,15 @@ _ACEOF
                                                                                                                                      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
@@ -17881,12 +18150,15 @@ _ACEOF
                                                                                                                                      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
@@ -18203,12 +18475,15 @@ _ACEOF
                                                                                                                                      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
@@ -18261,6 +18536,19 @@ _ACEOF
 
 
 
+      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
+
+
 
 
 
@@ -18476,6 +19110,7 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
+
   case "$gl_cv_func_snprintf_retval_c99" in
     *yes)
 
@@ -19009,12 +19644,15 @@ _ACEOF
                                                                                                                                      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
@@ -19977,12 +20615,15 @@ _ACEOF
                                                                                                                                      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
@@ -20903,12 +21544,15 @@ _ACEOF
                                                                                                                                      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
@@ -21369,12 +22013,15 @@ _ACEOF
                                                                                                                                      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
@@ -26370,12 +27017,15 @@ _ACEOF
                                                                                                                                      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
@@ -26500,12 +27150,15 @@ _ACEOF
                                                                                                                                      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
+
+
+
+
+
+
   :
 
 
@@ -26762,11 +27537,14 @@ if test "${gl_cv_func_perror_works+set}" = set; then :
 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 ()
@@ -26777,14 +27555,15 @@ char *str = strerror (-1);
                 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
@@ -26797,13 +27576,17 @@ 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_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
@@ -27178,12 +27961,15 @@ _ACEOF
                                                                                                                                      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
@@ -27277,6 +28063,49 @@ $as_echo "$gl_cv_posix_shell" >&6; }
 
 
 
+  :
+
+
+
+
+
+  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
+
+
+
+
+
+
+
+
+
 
 
   :
@@ -27315,12 +28144,15 @@ _ACEOF
                                                                                                                                      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
@@ -27765,6 +28597,7 @@ $as_echo "#define GNULIB_TEST_PTHREAD_SIGMASK 1" >>confdefs.h
 
 
 
+
   for ac_func in raise
 do :
   ac_fn_c_check_func "$LINENO" "raise" "ac_cv_func_raise"
@@ -28216,12 +29049,15 @@ _ACEOF
                                                                                                                                      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
@@ -28697,12 +29533,15 @@ _ACEOF
                                                                                                                                      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
@@ -29675,6 +30514,31 @@ $as_echo "#define GNULIB_TEST_STAT 1" >>confdefs.h
 
 
 
+
+  :
+
+
+
+
+
+
+  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
@@ -29758,12 +30622,15 @@ _ACEOF
                                                                                                                                      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
@@ -29958,12 +30825,15 @@ _ACEOF
                                                                                                                                      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
@@ -30028,12 +30898,15 @@ _ACEOF
                                                                                                                                      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
@@ -30171,12 +31044,15 @@ _ACEOF
                                                                                                                                      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
@@ -31228,12 +32104,15 @@ _ACEOF
                                                                                                                                      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
@@ -31393,12 +32272,15 @@ _ACEOF
                                                                                                                                      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
@@ -31601,12 +32483,15 @@ _ACEOF
                                                                                                                                      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
@@ -31811,12 +32696,15 @@ _ACEOF
                                                                                                                                      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
@@ -31902,12 +32790,15 @@ _ACEOF
                                                                                                                                      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
@@ -31984,12 +32875,15 @@ _ACEOF
                                                                                                                                      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
@@ -32072,12 +32966,15 @@ _ACEOF
                                                                                                                                      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
@@ -32181,12 +33078,15 @@ _ACEOF
                                                                                                                                      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
@@ -32272,12 +33172,15 @@ _ACEOF
                                                                                                                                      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"
@@ -32559,12 +33629,15 @@ _ACEOF
                                                                                                                                      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
@@ -33110,12 +34183,15 @@ _ACEOF
                                                                                                                                      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
@@ -33234,12 +34310,15 @@ _ACEOF
                                                                                                                                      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
@@ -34707,6 +35786,72 @@ $as_echo "#define GNULIB_TEST_GETSOCKOPT 1" >>confdefs.h
 
 
 
+
+
+
+
+
+  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 :
@@ -35561,12 +36706,15 @@ _ACEOF
                                                                                                                                      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
@@ -37411,6 +38559,69 @@ _ACEOF
 
 
 
+
+
+
+  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 :
@@ -38433,12 +39644,15 @@ _ACEOF
                                                                                                                                      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
@@ -38943,6 +40157,72 @@ done
 
 
 
+
+
+  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
+
+
+
+
+
+
   :
 
 
@@ -48222,7 +49502,7 @@ _ACEOF
 
 
 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
index 2aaed41..e3c28fa 100644 (file)
@@ -141,9 +141,9 @@ AC_CHECK_FUNCS_ONCE([cfmakeraw geteuid getgid getgrnam_r getmntent_r \
 
 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
 
index c8f150d..c973bf3 100644 (file)
@@ -71,6 +71,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -107,6 +108,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -159,10 +161,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -190,6 +196,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -227,9 +234,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -469,6 +478,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -566,12 +576,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -795,6 +807,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -815,6 +828,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -842,6 +856,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -849,6 +864,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -860,6 +876,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -926,6 +943,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -1078,6 +1096,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1111,6 +1130,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1173,6 +1193,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1200,6 +1221,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1251,6 +1273,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@ -1332,6 +1355,7 @@ SHOWMOUNT = @SHOWMOUNT@
 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@
index ddf97a6..0929321 100644 (file)
@@ -55,6 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -91,6 +92,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -143,10 +145,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -174,6 +180,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -211,9 +218,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -413,6 +422,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -510,12 +520,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -739,6 +751,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -759,6 +772,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -786,6 +800,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -793,6 +808,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -804,6 +820,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -870,6 +887,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -1022,6 +1040,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1055,6 +1074,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1117,6 +1137,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1144,6 +1165,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1195,6 +1217,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@ -1276,6 +1299,7 @@ SHOWMOUNT = @SHOWMOUNT@
 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@
index c55eb0a..0f8fb64 100644 (file)
@@ -891,7 +891,7 @@ The content of this structure is not made public by the API.
 </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>
index a44c2d0..c30f5b7 100644 (file)
     <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"/>
index 75cbbe0..c964945 100644 (file)
@@ -2467,11 +2467,22 @@ qemu-kvm -net nic,model=? /dev/null
           <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>&lt;serial&gt;</code> element exists, the console
+        element will be copied to the serial element. If a <code>&lt;serial&gt;</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
index c3e7752..cbad196 100644 (file)
@@ -2681,12 +2681,29 @@ qemu-kvm -net nic,model=? /dev/null
     <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>&lt;serial&gt;</code> element exists, the console
+        element will be copied to the serial element. If a <code>&lt;serial&gt;</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
index 05ffedb..40177fd 100644 (file)
@@ -589,7 +589,7 @@ int <a href="#virStreamSourceFunc">virStreamSourceFunc</a>          (<a href="libvirt-li
 </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{
index 602770f..c8993bc 100644 (file)
      <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'/>
@@ -1196,10 +1196,10 @@ limited set of commands may be allowed'/>
     <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'/>
index cfb5001..e3c64db 100644 (file)
     <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'/>
index 21b0bca..0ea8e45 100644 (file)
         <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 &lt;deviceboot&gt; capability. (Philipp Hahn),<br />
+      API: document scheduler parameter names (Eric Blake),<br />
+      improve typed parameter documentation (Eric Blake),<br />
+      fix typo in &lt;disk&gt;/&lt;target&gt; 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 &lt;target&gt; 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 &lt; max typed parameters (Eric Blake),<br />
+      lxc: allow getting &lt; max typed parameters (Eric Blake),<br />
+      libxl: allow getting &lt; max typed parameters (Eric Blake),<br />
+      esx: allow getting &lt; max typed parameters (Eric Blake),<br />
+      qemu: allow getting &lt; 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 &lt;driver&gt; under &lt;filesystem&gt; 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 &lt;capabilities&gt; 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 />
index c33740f..bf97e95 100644 (file)
@@ -8,6 +8,337 @@
     <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 &lt;deviceboot&gt; capability. (Philipp Hahn),<br/>
+      API: document scheduler parameter names (Eric Blake),<br/>
+      improve typed parameter documentation (Eric Blake),<br/>
+      fix typo in &lt;disk&gt;/&lt;target&gt; 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 &lt;target&gt; 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 &lt; max typed parameters (Eric Blake),<br/>
+      lxc: allow getting &lt; max typed parameters (Eric Blake),<br/>
+      libxl: allow getting &lt; max typed parameters (Eric Blake),<br/>
+      esx: allow getting &lt; max typed parameters (Eric Blake),<br/>
+      qemu: allow getting &lt; 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 &lt;driver&gt; under &lt;filesystem&gt; 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 &lt;capabilities&gt; 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/>
index cb9fe6d..a79fd48 100644 (file)
@@ -56,6 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -92,6 +93,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -144,10 +146,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -175,6 +181,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -212,9 +219,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -397,6 +406,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -494,12 +504,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -723,6 +735,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -743,6 +756,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -770,6 +784,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -777,6 +792,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -788,6 +804,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -854,6 +871,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -1006,6 +1024,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1039,6 +1058,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1101,6 +1121,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1128,6 +1149,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1179,6 +1201,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@ -1260,6 +1283,7 @@ SHOWMOUNT = @SHOWMOUNT@
 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@
index 99b4a9a..0a63a1c 100644 (file)
           <empty/>
         </element>
       </optional>
+      <optional>
+        <element name='deviceboot'>
+          <empty/>
+        </element>
+      </optional>
     </element>
   </define>
 
index e825fe1..c10f251 100644 (file)
@@ -55,6 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -91,6 +92,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -143,10 +145,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -174,6 +180,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -211,9 +218,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -373,6 +382,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -470,12 +480,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -699,6 +711,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -719,6 +732,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -746,6 +760,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -753,6 +768,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -764,6 +780,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -830,6 +847,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -982,6 +1000,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1015,6 +1034,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1077,6 +1097,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1104,6 +1125,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1155,6 +1177,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@ -1236,6 +1259,7 @@ SHOWMOUNT = @SHOWMOUNT@
 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@
index c5a0d63..f56210e 100644 (file)
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -93,6 +94,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -145,10 +147,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -176,6 +182,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -213,9 +220,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -408,6 +417,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -505,12 +515,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -734,6 +746,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -754,6 +767,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -781,6 +795,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -788,6 +803,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -799,6 +815,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -865,6 +882,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -1017,6 +1035,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1050,6 +1069,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1112,6 +1132,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1139,6 +1160,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1190,6 +1212,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@ -1271,6 +1294,7 @@ SHOWMOUNT = @SHOWMOUNT@
 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@
index ab6f0da..d3ecfef 100644 (file)
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -93,6 +94,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -145,10 +147,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -176,6 +182,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -213,9 +220,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -410,6 +419,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -507,12 +517,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -736,6 +748,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -756,6 +769,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -783,6 +797,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -790,6 +805,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -801,6 +817,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -867,6 +884,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -1019,6 +1037,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1052,6 +1071,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1114,6 +1134,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1141,6 +1162,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1192,6 +1214,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@ -1273,6 +1296,7 @@ SHOWMOUNT = @SHOWMOUNT@
 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@
index c9323c9..c911038 100644 (file)
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -93,6 +94,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -145,10 +147,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -176,6 +182,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -213,9 +220,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -410,6 +419,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -507,12 +517,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -736,6 +748,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -756,6 +769,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -783,6 +797,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -790,6 +805,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -801,6 +817,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -867,6 +884,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -1019,6 +1037,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1052,6 +1071,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1114,6 +1134,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1141,6 +1162,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1192,6 +1214,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@ -1273,6 +1296,7 @@ SHOWMOUNT = @SHOWMOUNT@
 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@
index ec1b494..c323e28 100644 (file)
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -93,6 +94,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -145,10 +147,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -176,6 +182,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -213,9 +220,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -407,6 +416,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -504,12 +514,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -733,6 +745,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -753,6 +766,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -780,6 +794,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -787,6 +802,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -798,6 +814,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -864,6 +881,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -1016,6 +1034,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1049,6 +1068,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1111,6 +1131,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1138,6 +1159,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1189,6 +1211,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@ -1270,6 +1293,7 @@ SHOWMOUNT = @SHOWMOUNT@
 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@
index 1bd4103..4595abf 100644 (file)
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -93,6 +94,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -145,10 +147,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -176,6 +182,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -213,9 +220,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -407,6 +416,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -504,12 +514,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -733,6 +745,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -753,6 +766,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -780,6 +794,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -787,6 +802,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -798,6 +814,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -864,6 +881,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -1016,6 +1034,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1049,6 +1068,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1111,6 +1131,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1138,6 +1159,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1189,6 +1211,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@ -1270,6 +1293,7 @@ SHOWMOUNT = @SHOWMOUNT@
 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@
index ad34e08..cdbe049 100644 (file)
@@ -55,6 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.m4 \
        $(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 \
@@ -91,6 +92,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -143,10 +145,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -174,6 +180,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -211,9 +218,11 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/00gnulib.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 \
@@ -373,6 +382,7 @@ GNULIB_FFSLL = @GNULIB_FFSLL@
 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@
@@ -470,12 +480,14 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 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@
@@ -699,6 +711,7 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@
 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@
@@ -719,6 +732,7 @@ HAVE_ISWBLANK = @HAVE_ISWBLANK@
 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@
@@ -746,6 +760,7 @@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 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@
@@ -753,6 +768,7 @@ HAVE_PIPE2 = @HAVE_PIPE2@
 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@
@@ -764,6 +780,7 @@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 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@
@@ -830,6 +847,7 @@ HAVE_UNLINKAT = @HAVE_UNLINKAT@
 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@
@@ -982,6 +1000,7 @@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
 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@
@@ -1015,6 +1034,7 @@ NEXT_NETDB_H = @NEXT_NETDB_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@
@@ -1077,6 +1097,7 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 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@
@@ -1104,6 +1125,7 @@ REPLACE_FCNTL = @REPLACE_FCNTL@
 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@
@@ -1155,6 +1177,7 @@ REPLACE_NULL = @REPLACE_NULL@
 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@
@@