                                                     -*- coding: utf-8 -*-
Changes for APR 1.3.9

  *) Posix semaphores can now be named and used as named semaphores.
     [Jim Jagielski]

  *) Better handling of APR_OFF_T_FMT for Darwin 10 depending on -arch
     setting of compiler. [Jim Jagielski]

  *) Add comments describing the thread-safety properties of apr_pool_t.
     [Neil Conway nrc cs.berkeley.edu]

  *) Pass default environment to testsock, testshm and testproc children, so
     that tests run when APR is compiled with Intel C Compiler.
     [Bojan Smojver]

  *) Fix error handling in the Solaris pollset support (Event Port backend).
     PR 47645.  [Jeff Trawick]

  *) Add the remainder of this fix from trunk:
     Fix Solaris poll failure.  PR 43000
     [Henry Jen <henryjen ztune.net>]

Changes for APR 1.3.8

  *) SECURITY: CVE-2009-2412 (cve.mitre.org)
     Fix overflow in pools and rmm, where size alignment was taking place.
     [Matt Lewis <mattlewis@google.com>, Sander Striker]

  *) Make sure that "make check" is used in the RPM spec file, consistent
     with apr-util. [Graham Leggett]

  *) Pass default environment to testflock, testoc and testpipe children,
     so that tests run when APR is compiled with Intel C Compiler.
     [Bojan Smojver]

Changes for APR 1.3.7

  *) More elaborate detection for dup3(), accept4() and epoll_create1().
     [Chetan Reddy <chetanreddy gmail.com>, Bojan Smojver]

Changes for APR 1.3.6

  *) On Linux/hppa flock() returns EAGAIN instead of EWOULDBLOCK. This
     causes proc mutex failures.
     [Stefan Fritsch <sf sfritsch.de>]

  *) Set CLOEXEC flags where appropriate. Either use new O_CLOEXEC flag and
     associated functions, such as dup3(), accept4(), epoll_create1() etc.,
     or simply set CLOEXEC flag using fcntl().  PR 46425.  [Stefan Fritsch
     <sf sfritsch.de>, Arkadiusz Miskiewicz <arekm pld-linux.org>]

Changes for APR 1.3.5

  *) Dropped kqueue and apr_poll detection from Mac OS/X 10.5/Darwin 9
     due to various reported problems.  [William Rowe]

Changes for APR 1.3.4

  *) apr_strerror() on OS/2: Fix problem with calculating buffer size.
     PR 45689.  [Erik Lax <apache datahack.se>]

  *) Prefer glibtool1/glibtoolize1. [Jim Jagielski]

  *) Fix buildconf with libtool 2.2. [Joe Orton]

  *) Fix a bug with the APR_DELONCLOSE flag. Child processes were (also)
     unlinking the file. [Greg Stein]

  *) Fix compilation error on systems that do not have IPV6.
     PR 46601 [Julien Charbon <jch 4js.com>]

  *) apr_socket_sendfile() on Solaris: Fix handling of files truncated
     after the sender determines the length.  (This fixes a busy loop in 
     httpd when a file being served is truncated.)  [Jeff Trawick]

  *) Fix documentation for apr_temp_dir_get().
     PR 46303  [Carlo Marcelo Arenas Belon <carenas sajinet.com.pe>]

  *) Add AC_MSG_RESULT after AC_MSG_CHECKING.
     PR 46427  [Rainer Jung <rainer.jung kippdata.de>]

  *) Reset errno to zero in apr_strtoi64 to prevent returning an errno not
     equal zero in cases where the operation worked fine. [Ruediger Pluem]

  *) Win32: Do not error out on apr_pollset_poll() when there are no sockets.
     [Justin Erenkrantz]

  *) Fix apr_tokenize_to_argv parsing.  PR 46128
     [Edward Rudd <eddie omegaware.com>]

Changes for APR 1.3.3

  *) Rename apr_pool_create_core to apr_pool_create_unmanaged and
     deprecate the old API name. It better reflects the scope and usage
     of this function. [Mladen Turk]

  *) Use proper return code for fcntl-based apr_proc_mutex_trylock() 
     on platforms that return EACCES instead of EAGAIN when the lock
     is already held (AIX, HP-UX).
     [Eric Covener]

  *) Fix APR_PID_T_FMT detection on Solaris.  PR 45513
     [Rainer Jung <rainer.jung kippdata.de>]

Changes for APR 1.3.2

  *) Fix getservbyname_r() detection.  [Ruediger Pluem]

Changes for APR 1.3.1

  *) Fix win32 apr.hw to pick up XP/2003 TCP/IP multicast constants and
     revert to IPV6 disabled-by-default (a change present only in 1.3.0).
     [William Rowe]

  *) Fix autoconf cached detection of atomic builtins.  [Jim Jagielski]

  *) Use thread safe versions of getservbyname().  [Bojan Smojver]

  *) Use thread safe getpass_r on Netware.  [Guenter Knauf]

Changes for APR 1.3.0

  *) Fix Solaris poll failure.  PR 43000
     [Henry Jen <henryjen ztune.net>]

  *) apr_getservbyname(): Use proper method for converting port
     to host byte order.  PR 44903.
     [Chris Taylor <ctaylor wadeford.plus.com>]

  *) Use /dev/urandom in preference to /dev/random as entropy source
     for apr_generate_random_bytes.  PR 44881.  [Bojan Smojver]

  *) Implement apr_proc_wait_all_procs for windows.
     The implementation uses tool help library present
     on Windows 2000 and later. APR_ENOTIMPL is returned
     on platforms missing tool help from kernel32.dll.
     [Mladen Turk]

  *) Introduce apr_pool_pre_cleanup_register() for registering
     a cleanup that is called before any subpool is destroyed
     within apr_pool_clear or apr_pool_destroy.
     This allows to register a cleanup that will notify subpools
     about its inevitable destruction.
     [Mladen Turk]

  *) Introduce apr_pool_create_core_ex() for creation of standalone
     pools without parent. This function should be used for short
     living pools, usually ones that are created and destroyed
     either in a loop or inside function call. Since the pools
     created with this function doesn't have a parent they must
     be explicitly destroyed when done.
     [Mladen Turk]

  *) Fix return value when apr_pollset_poll interrupted.
     PR 42580 [Basant Kumar Kukreja <basant.kukreja sun.com>]

  *) Add missing semi-colon in Win9x code path of apr_file_open that breaks
     Win9X Debug builds. PR 44329. [Curt Arnold]

  *) z/OS: return standard apr_status_t codes from apr_dso_load()
     and apr_dso_sym().  [David Jones <oscaremma gmail.com>]

  *) Fix the make test target in the spec file. [Graham Leggett]

  *) Fix DSO-related crash on z/OS caused by incorrect memory
     allocation.  [David Jones <oscaremma gmail.com>]

  *) Implement Darwin-semantic (9.0.0 and later) sendfile support.
     Use writev in lieu of hdtr vecs since how Darwin counts the
     data is undocumented. [Geoff Greer <angryparsley mipsisrisc.com>,
     William Rowe, Jim Jagielski]

  *) Implemented the APR_FOPEN_SPARSE flag, permits win32 to create
     sparse data files.  Also bestow apr_fileinfo_t csize field for
     Windows versions 2000 and later, which helps in the detection
     that a sparse file is truly in use (see test/testlfs.c for an
     example, because different filesystems can vary in behavior
     even on an OS supporting sparse files).  [William Rowe]

  *) Corrected for Darwin and others to toggle APR_HAS_LARGE_FILES
     where large off_t's are enabled without any extra defines, hints
     or additional functions.  This is binary compatible, but apps
     may need to be recompiled to take full advantage depending on how
     they detect this feature.  [William Rowe]

  *) Implement apr_atomic_casptr() and apr_atomic_xchgptr() for z/OS.
     [David Jones <oscaremma gmail.com>]

  *) Introduce apr_file_pipe_create_ex() to portably permit one pipe
     end or another to be entirely blocking for non-APR applications
     (e.g. stdio streams) and the other (or both ends) non blocking,
     with a timeout of 0 by default.
     [William Rowe]

  *) apr_procattr_io_set() on Windows: Set non-blocking pipe handles
     to a default timeout of 0, following the Unix default.  No effect
     on pipe handles configured to block.  PR 43522.
     [Eric Covener <covener gmail.com>]

  *) apr_file_write() on Windows: Fix return code when writing to a non-
     blocking pipe would have blocked.  PR 43563. 
     [Eric Covener <covener gmail.com>]

  *) Introduce APR_NO_FILE as an option to apr_procattr_io_set() for any 
     of the three stdio streams to cause the corresponding streams to be 
     closed to the child process.  This becomes effective in 1.3.0 across
     platforms (equivilant to APR_NO_PIPE in 1.2.x except on Win32.)
     [William Rowe]

  *) Solve WinNT inherited pipe leaks by mutexing apr_proc_create calls,
     on WinNT (not WinCE, nor 9x) so that we toggle the inherited state 
     of the stdin/out/err pipes.  All other file handles are treated as
     not-inherited until apr_file_dup2'ed a std handle of this process, 
     or while they are used by apr_proc_create.  [William Rowe]

  *) Define the Mac OS/X filesystem_encoding as utf-8 (in previous
     releases the interpretation would vary).  [Branko Čibej]

  *) Add table cloning (deep copy) convenience function.
     [Davi Arnaut]

  *) Rework the WIN32 CV code to signal the condition only if one or
     more threads are blocked on the condition variable. If no threads
     are waiting on the condition variable, nothing happens. The change
     also eliminates the thundering-herd problem of the manual-reset
     event, which (theoretically) wakes up all threads waiting on. Now
     the behavior of the CV's should be the same on Unix and win32
     platforms. PR 42305.  [Davi Arnaut]

  *) Define SEM_FAILED if it isn't already defined, as the proc mutex
     code already does it. Also search for the sem_open function in
     the realtime library. (This fixes HP-UX sem_open detection).
     [Davi Arnaut]

  *) Define the _HPUX_SOURCE feature test macro to obtain maximum
     functionality.
     PR 42261.  [Davi Arnaut]

  *) Stop invoking the testshm* helpers upon 'make test' invocation.
     [Kurt Miller <kurt intricatesoftware.com>]

  *) Register a cleanup only if APR_FILE_NOCLEANUP was not flagged in
     apr_file_mktemp. [Brian J. France <list firehawksystems.com>]

  *) Numerous build fixes for non-GCC builds and GCC builds on Win32,
     as well as WinCE builds.  [Davi Arnaut <davi haxent.com.br>,
     Curt Arnold <carnold apache.org>, John Mark Vandenberg,
     Kouhei Sutou <kou cozmixng.org>, William Rowe]

  *) Discard file buffers when running cleanups for exec.
     PR 41119.  [Davi Arnaut <davi haxent.com.br>, Bojan Smojver]

  *) Improve thread safety of assorted file_io functions.
     PR 42400.  [Davi Arnaut <davi haxent.com.br>]

  *) Add the apr_pollcb API as an alternative more efficient method
     of polling sockets, compared to apr_pollset. [Paul Querna]

  *) Fix possible crash in apr_pool_initialize() when built with 
     verbose pool debugging.  PR 41063.  
     [Peter Steiner <peter.steiner+apache hugwi.ch>]

  *) Fix --disable-ipv6 build on platforms with getifaddrs().
     PR 39199.  [Joe Orton]

  *) Correctly retrieve 'empty' environment values with apr_env_get
     on Win32 (e.g. "VAR="), and added validation to testall suite.  
     PR 40764.  [Issac Goldstand <margol beamartyr.net>]

  *) Portably check for EEXIST in mktemp code.  PR 40818
     [Kenneth Golomb <KGolomb TradeCard.com>]

  *) Fix apr_socket_recvfrom() to ensure the peer's address is returned
     through the "from" parameter.  [Joe Orton]

  *) Fix error checking in kqueue, epoll and event port versions of
     apr_pollset_create.  PR 40660, 40661, 40662
     [Larry Cipriani <lvc lucent.com>]

  *) Add some documentation on the format matched by apr_fnmatch.
     [David Glasser <glasser mit.edu>]

  *) Add apr_hash_clear.  [Daniel L. Rall <dlr apache.org>]

  *) Don't try to build apr_app.c on MinGW.
     [Matthias Miller <Blog outofhanwell.com>]

  *) Fix the timeout converstion in apr_pollset with the KQueue
     backend. [Marco Molteni <mmolteni cisco.com>]

  *) Support MinGW.  [John Vandenberg, Justin Erenkrantz]

  *) Implement apr_thread_yield on Unix in terms of pthread_yield or
     sched_yield. [Keisuke Nishida <keisuke.nishida gmail.com>]

  *) Provide folding in autogenerated .manifest files for Win32 builders
     using VisualStudio 2005  [William Rowe]

  *) Utilise Solaris' native atomic_* functions for apr_atomics
     where appropriate. [Colm MacCárthaigh]

  *) Make apr_socket_recvfrom initialize the port field in the from
     sockaddr.  PR 39325 [Anthony Minessale <anthmct yahoo.com>]

  *) NetBSD: Avoid leaving zombie process when using apr_signal() 
     to ignore SIGCHLD.  PR 36750.  [Todd Vierling <tv pobox.com>]

  *) Implement support for apr_proc_mutex_trylock() on Unix platforms.
     PR 38785.  [Chris Darroch <chrisd pearsoncmg.com>]

  *) APR_FIND_APR macro now supports customisable detailed checks on
     each installed apr. [Justin Erenkrantz, Colm MacCárthaigh]

  *) APR_FIND_APR macro no longer checks /usr/local/apache2/
     [Colm MacCárthaigh]

  *) Add APR_POLLSET_NOCOPY option to apr_pollset API to eliminate
     O(n)-time lookup in apr_pollset_remove() (currently implemented
     only for epoll).  [Brian Pane]

  *) Add apr_file_buffer_set() and apr_file_buffer_size_get() functions
     to support variable buffer sizes with APR file handles.
     [Colm MacCárthaigh]

  *) Add apr_file_open_flags_std[err|out|in]() functions.
     [Colm MacCárthaigh]

  *) stdio: apr_file_open_std[err|out|in]() functions now set the APR_WRITE
     or APR_READ flag as appropriate. [Colm MacCárthaigh]

  *) multicast: apr_mcast_*() no longer return APR_ENOTIMPL when invoked
     for non-UDP/RAW sockets. The caller is expected to ensure that the
     socket-type is suitable for multicast. [Colm MacCárthaigh]

  *) Add apr_sockaddr_ip_getbuf() function.  [Joe Orton]

  *) Fix handling of %pI in apr_psprintf.  [Joe Orton]

  *) Provide APR_VERSION_AT_LEAST() macro for applications which 
     want to enable features based on a required level of APR.
     [Jeff Trawick]

  *) jlibtool: Teach to use static libraries with -static.
     [Justin Erenkrantz]

  *) Fix checks for alloca() support in configure.  PR 13037.
     [Noah Misch <noah cs.caltech.edu>]

  *) Add %pm support to apr_snprintf() for printing the error string
     corresponding to an apr_status_t value.  [Joe Orton]

  *) Add APR_ARRAY_IDX() and APR_ARRAY_PUSH() convenience macros to
     apr_tables.h.  [Garrett Rooney]

Changes for APR 1.2.12

  *) Define apr_ino_t in such a way that it doesn't change definition
     based on the library consumer's -D'efines to the filesystem.
     [Lucian Adrian Grijincu <lucian.grijincu gmail.com>]

  *) Fill in apr_fileinfo_t member st_csize on Netware and Unix (PR 41678),
     and refine the file times down to apr_time_t resolution if supported
     by a st_atimensec or st_atim.tv_nsec value by the OS.  Additional
     msec implementations are possible if exposed through autoconf.
     [William Rowe, Nicklas Edmundsson <nikke acc.umu.se>]

  *) Fix apr_socket_recvfrom() to ensure the peer's address is returned
     through the "from" parameter on Win32.  [William Rowe]

  *) Cause apr_file_dup2() on Win32 to update the MSVCRT psuedo-stdio
     handles for fd-based and FILE * based I/O.  [William Rowe]

Changes for APR 1.2.7

  *) Netware - add missing apu_version.c parsing for apu_version_string()
     to the Netware specific builds.  Unix platforms support this API 
     since 0.9.1.  [Brad Nicholes]

  *) Fix a regression in the updated win32 apr_file_read with timeouts
     since 1.2.6 which would fail to return the bytes read in specific
     edge cases.  [William Rowe]

Changes for APR 1.2.6

  *) Fully test the detected libuuid or libc based uuid_create or
     uuid_generate function against the detected uuid.h, uuid/uuid.h,
     or sys/uuid.h (using only the first-found .h examined in that order)
     for correct compilation.  Resolves various apr_os_uuid issues on
     multiple environments.  [William Rowe]

  *) Prevent detection of robust mutex support with glibc 2.4,
     fixing APR_LOCK_PROC_PTHREAD locks.  PR 38442.  [Joe Orton]

  *) Correct bug in kqueue backend for apr_pollset where we would
     erroneously indicate that a socket was readable or writeable.
     [Garrett Rooney]

  *) Make the filePtr in apr_file_t an apr_off_t on Unix, to avoid issues
     truncating offsets down to 32 bits on large file systems.
     [Garrett Rooney]

  *) Fix seeks with files opened in xthread mode for append on win32.
     [M Joonas Pihlaja <jpihlaja cc.helsinki.fi>, Garrett Rooney]

  *) Keep testpipe.c from hanging on win32. [Garrett Rooney]

  *) Cause apr_file_write_full on win32 to consider the timeout value set by 
     apr_file_pipe_timeout_set.  PR 30182
     [<eholyat olf.com>]

  *) Fix assertion from double close of a handle with a rwlock on win32.
     [Evgueni Brevnov <evgueni.brevnov gmail.com>]

  *) Fix EOF handling for unbuffered reads on win32.
     [Konstantin Sharenkov <Konstantin.Sharenkov enterra-inc.com>]

  *) Documented that apr_stat and apr_dir_read can return APR_INCOMPLETE,
     and how to determine which parts of the resulting apr_finfo_t can be
     used in such a case.
     [Garrett Rooney]

  *) Fix passing "" as an argument to the program started by apr_proc_create
     on Win32.
     [Philip Martin <philip codematters.co.uk>

  *) Bugfix for apr_pollset_poll() on systems that implement pollsets
     using select(2): properly compute the number of signalled desciptors
     when one or more of them are both readable and writable.
     [Dror Shilo <Dror.Shilo ericom.com>, Gerry <gerry everythingsucks.co.uk>]

  *) Fix apr_file_seek() to catch write failures when flushing
     pending writes for a buffered file.  [Joe Orton]

Changes for APR 1.2.2

  *) Fix crash in apr_dir_make_recursive() for relative path
     when the working directory has been deleted.  [Joe Orton]

  *) Win32: fix apr_proc_mutex_trylock() to handle WAIT_TIMEOUT,
     returning APR_EBUSY.  [Ronen Mizrahi <ronen@tversity.com>]

  *) Fix apr_socket_opt_set() issue where TCP_NODELAY would be
     set when TCP_DEFER_ACCEPT was set.  [Brian Pane]

  *) Allow TCP_NODELAY and TCP_CORK to be set concurrently on
     Linux 2.6 and later.  [Joe Orton]

  *) Fix apr_socket_addr_get(,APR_REMOTE,) after a non-blocking
     connection is completed.  PR 32737.  [Joe Orton]

  *) Fix apr_file_gets() and apr_file_read() to catch write failures
     when flushing pending writes for a buffered file.  [Joe Orton]

  *) Fix apr_file_write() infinite loop on write failure for buffered
     files.  [Erik Huelsmann <ehuels gmail.com>]

  *) Fix error handling where apr_uid_* and apr_gid_* could return
     APR_SUCCESS in failure cases.  PR 34053 continued.  [Joe Orton]

Changes for APR 1.2.1

  *) Refactor Win32 condition variables code to address bugs 27654, 34336.
     [Henry Jen <henryjen ztune.net>, E Holyat <eholyat yahoo.com>]

Changes for APR 1.2.0

  *) If getpwuid_r or getgrgid_r set their results to NULL, it is an error.
     PR 34053. [Paul Querna]

  *) Switch to lazy initialization of the pollset that's used within
     apr_file_t on platforms where apr_wait_for_io_or_timeout() doesn't
     use poll(2).  (This fixes a performance problem observed in httpd-2.x
     on OS X due to the use of poll now being disabled by default on that
     platform.)  [Brian Pane]

  *) Fix Pollset corruption on Solaris 10. [Paul Querna]

  *) Add %pt support to apr_snprintf() for printing an apr_os_thread_t
     in hex format.  [Jeff Trawick]

  *) Support APR_SO_SNDBUF and APR_SO_RCVBUF on Windows.  PR 32177.
     [Sim <sgobbi datamanagement.it>, Jeff Trawick]

  *) Fix apr_table_overlap()'s handling of tables allocated from
     different pools.  [Joe Schaefer <joe+gmane sunstarsys.com>]

  *) Add support for uuid_generate on OS X 10.4. [Paul Querna]

  *) Include the C preprocessor flags in --cflags for pkg-config.
     [Paul Querna]

  *) Fix issue with poll() followed by net I/O yielding EAGAIN on
     Mac OS 10.4 (Darwin 8). [Wilfredo Sanchez]

Changes for APR 1.1.1

  *) Disable sendfile support for S/390 only in kernel versions < 2.4.0. 
     [Joe Orton]

  *) Fix posix rwlock detection on Darwin. [Aaron Bannert]

  *) Build fix for Multicast support on HP-UX 11.00 and Tru64 [Joe Orton]

  *) Fix libapr.rc for Win32 builds [William Rowe]

  *) Rewrite apr_file_writev_full using apr_file_write_full. [Paul Querna]

  *) Use APR_RING_CONCAT for moving dead list in KQueue, sys_epoll, and 
     Event Ports. [Paul Querna]

  *) find_apr.m4: Try installed APR before bundled copy if --with-apr not
     passed to configure.  [Justin Erenkrantz]

Changes for APR 1.1.0

  *) Added apr_procattr_user_set and apr_procattr_group_set
     setting the user and group for new processes.  [Mladen Turk]

  *) Add APR Multicast functions; including support for
     Source-Specific Multicast from Colm MacCárthaigh.  [Paul Querna]

  *) Add a build script to create a solaris package.  [Graham Leggett]
  
  *) Add support for APR_TCP_DEFER_ACCEPT.  [Paul Querna]

  *) Rename the apr_file_permissions macros (APR_UREAD, APR_UWRITE etc.)
     to have prefix APR_FPROT_ (old names kept for compatibility).
     [Stas Bekman]

  *) Emit the run-time link path option in apr-config after installation
     if the user is linking with libtool.  [Justin Erenkrantz]

  *) Add apr_file_writev_full to ensure an entire iovec is writen to a file.
     [Paul Querna]

  *) Remove the runtime test for Sendfile versions on FreeBSD. PR 25718.
     [Mike Silbersack <silby silby.com>, Paul Querna]

  *) Rename the apr_file_open macros (APR_READ, APR_WRITE, etc.) to
     have prefix APR_FOPEN_ (old names kept for compatibility).
     [Stas Bekman]

  *) Added apr_os_uuid_get() support for Linux via libuuid and for modern 
     BSDs which have uuid_create as part of their libc.  [Paul Querna]

  *) Added Solaris 10 'Event Ports' as a backend for APR Pollset.  This 
     backend also supports the APR_POLLSET_THREADSAFE flag.  [Paul Querna]

  *) Added the APR_POLLSET_THREADSAFE flag. This allows multiple threads
     to call the Pollset Add or Remove functions in a thread safe manner.
     Currently only EPoll and KQueue support this flag.  [Paul Querna]

  *) Split poll/unix/poll.c into separate files for each Poll or Pollset 
     implementation. [Paul Querna]

  *) Rewrite apr_file_printf to handle arbitrary length strings.
     PR 28029.  [Chris Knight <Christopher.D.Knight nasa.gov>,
     Garrett Rooney <rooneg electricjellyfish.net>]

Changes for APR 1.0.2

  *) [NetWare] Fixed some type mismatches in threadproc/netware/proc.c and
     locks/netware/thread_mutex.c that prevented APR from building with the
     latest release of the LibC SDK. [Brad Nicholes]
     
Changes for APR 1.0.1

  *) apr_password_get(): Fix the check for buffer overflow.  [Jeff Trawick]

  *) Fix HUP return codes in pollset when using KQueue.
     [Paul Querna]

  *) Prevent unbounded memory use during repeated operations on a hash table.
     [Julian Foad <julianfoad btopenworld.com>

  *) Moved repository to SVN
     [Hackathon]

  *) jlibtool: Ignore '-export-symbols-regexp' option.
     [Justin Erenkrantz]

  *) fix apr_file_dup and apr_file_dup2 win32 implementations
     to create a mutex [Steve Hay <steve.hay uk.radan.com>]

  *) Makes the threads to behave like on posix. If the thread is created
     without APR_DETACH expect that the thread_join will be called, so don't
     close the handle in advance, if the thread has already finished.
     [Mladen Turk]

  *) The apr/test/Makefile.win is missing a target to build a
     readchild.exe that test is depending on but is never built.
     [Mladen Turk]

  *) Improve apr_file_gets() performance on buffered files. [Justin Erenkrantz]

  *) Win32: Fix bug in apr_socket_sendfile that interferred with
     Win32 LSPs. PR 23982 [Jan Bilek, Bill Stoddard]

  *) Win32: Fix bug tracking the file pointer on a file opened for 
     overlapped/APR_XTHREAD io. [Bill Stoddard]

Changes with APR 1.0

  *) Only install apr-$MAJOR-config and add appropriate detection code to
     find_apr.m4 (APR_FIND_APR).  [Max Bowsher <maxb ukf.net>]

  *) Remove APR_STATUS_IS_SUCCESS() macro.  [Justin Erenkrantz]

  *) apr_proc_create() on Unix: Remove unnecessary check for read 
     access to the working directory of the child process.
     PR 30137.  [Jeremy Chadwick <apache jdc.parodius.com>]

  *) Add jlibtool - enabled with '--enable-experimental-libtool' option.
     [Justin Erenkrantz]

  *) Add support for KQueue and sys_epoll to apr_pollset.  [Paul Querna]

  *) Support threading on FreeBSD 5.x where kern.osreldate >= 502102.
     [Craig Rodrigues <rodrigc crodrigues.org>]

  *) Add an RPM spec file derived from Fedora Core.
     [Graham Leggett, Joe Orton]

  *) Fix apr_threadattr_detach_set() on Mac OS X.  PR 28472.
     [INOUE Seiichiro <inoue ariel-networks.com>]

  *) Change default inter-process locking mechanisms: POSIX semaphores
     and pthread cross-process mutexes are not used by default; on 
     Solaris, fcntl locks are used by default.  [Joe Orton]

  *) Add apr_threadattr_guardsize_set() for overriding the default stack
     guard area size for created created by apr_thread_create().
     [Joe Orton]

  *) Add apr_shm_remove() function for removing a named shared
     memory segment.  [Amit Athavale <amit_athavale persistent.co.in>]

  *) Add apr_strtoff() function for converting numeric strings into 
     apr_off_t values.  [André Malo <nd perlig.de>, Joe Orton]

  *) Fix stack overflow with IPv6 apr_socket_accept() on Win32.
     PR 28471.  [inoue <inoue ariel-networks.com>]

  *) Add new functions apr_signal_block, apr_signal_unblock to block/unblock
     the delivery of a particular signal.  [Madhusudan Mathihalli]

  *) Add support for developers to use their own hashing function with
     apr_hash_make_custom.  [Ami Ganguli <hse_ami yahoo.co.uk>]

  *) Support "large files" by default on 32-bit Unix platforms which
     implement the LFS standard.  [Joe Orton]

  *) Add apr_threadattr_stacksize_set() for overriding the default
     stack size for threads created by apr_thread_create().
     [Jeff Trawick]

  *) The whole codebase was relicensed and is now available under
     the Apache License, Version 2.0 (http://www.apache.org/licenses).
     [Apache Software Foundation]

  *) Switch to a single, top-level make. [Greg Stein]

  *) new error status APR_STATUS_IS_ENOTENOUGHENTROPY, Doxygen fixes
     [Sander Temme <sander at temme dot net]

  *) Add apr_socket_type_get() for retrieving the type (e.g., stream)
     of the socket.  [Philippe M. Chiasson]

  *) Removed deprecated interface apr_proc_other_child_check() 
     that behaved differently between win32 and unix.
     The unix behavor is now accomplished with
         apr_proc_other_child_refresh_all(APR_OC_REASON_RESTART)
     The win32 behavor is now accomplished with
         apr_proc_other_child_refresh_all(APR_OC_REASON_RUNNING)

  *) Removed apr_socket_opt_{get|set}(..., APR_SO_TIMEOUT) which
     was deprecated in favor of apr_socket_timeout_{get|set}().

  *) Change i386 FreeBSD to use the asm routines in apr_atomic.h
     to overcome issues with the FreeBSD atomic functions return
     type on i386. [David Reid]

  *) Added new versions of the apr_atomic functions for
     use with 32-bit ints  [Brian Pane]

  *) The following deprecated interfaces have been removed:

     apr_accept                   -> apr_socket_accept
     apr_allocator_get_mutex      -> apr_allocator_mutex_get
     apr_allocator_get_owner      -> apr_allocator_owner_get
     apr_allocator_set_max_free   -> apr_allocator_max_free_set
     apr_allocator_set_mutex      -> apr_allocator_mutex_set
     apr_allocator_set_owner      -> apr_allocator_owner_set
     apr_atomic_add               -> apr_atomic_add32
     apr_atomic_cas               -> apr_atomic_cas32
     apr_atomic_dec               -> apr_atomic_dec32
     apr_atomic_inc               -> apr_atomic_inc32
     apr_atomic_read              -> apr_atomic_read32
     apr_atomic_set               -> apr_atomic_set32
     apr_bind                     -> apr_socket_bind
     apr_compare_groups           -> apr_gid_compare
     apr_compare_users            -> apr_uid_compare
     apr_connect                  -> apr_socket_connect
     apr_current_userid           -> apr_uid_current
     apr_explode_localtime        -> apr_time_exp_lt
     apr_explode_time             -> apr_time_exp_tz
     apr_filename_of_pathname     -> apr_filepath_name_get
     apr_file_set_inherit         -> apr_file_inherit_set
     apr_file_unset_inherit       -> apr_file_inherit_unset
     apr_getsocketopt             -> apr_socket_opt_get
     apr_get_groupid              -> apr_gid_get
     apr_get_groupname            -> apr_gid_name_get
     apr_get_home_directory       -> apr_uid_homepath_get
     apr_get_userid               -> apr_uid_get
     apr_get_username             -> apr_uid_name_get
     apr_group_name_get           -> apr_gid_name_get
     apr_implode_gmt              -> apr_time_exp_gmt_get
     apr_is_fnmatch               -> apr_fnmatch_test
     apr_listen                   -> apr_socket_listen
     apr_lstat                    -> apr_stat
     apr_pool_get_abort           -> apr_pool_abort_get
     apr_pool_get_parent          -> apr_pool_parent_get
     apr_pool_set_abort           -> apr_pool_abort_set
     apr_pool_sub_make            -> apr_pool_create_ex
     apr_proc_other_child_read    -> apr_proc_other_child_alert
     apr_recv                     -> apr_socket_recv
     apr_recvfrom                 -> apr_socket_recvfrom
     apr_send                     -> apr_socket_send
     apr_sendfile                 -> apr_socket_sendfile
     apr_sendto                   -> apr_socket_sendto
     apr_sendv                    -> apr_socket_sendv
     apr_setsocketopt             -> apr_socket_opt_set
     apr_shutdown                 -> apr_socket_shutdown
     apr_signal_get_description   -> apr_signal_description_get
     apr_sockaddr_ip_set          -> apr_sockaddr_info_get
     apr_sockaddr_port_get        -> (access directly)
     apr_sockaddr_port_set        -> apr_sockaddr_info_get
     apr_socket_create_ex         -> apr_socket_create
     apr_socket_set_inherit       -> apr_socket_inherit_set
     apr_socket_unset_inherit     -> apr_socket_inherit_unset
     FNM_NOMATCH                  -> APR_FNM_NOMATCH
     FNM_NOESCAPE                 -> APR_FNM_NOESCAPE
     FNM_PATHNAME                 -> APR_FNM_PATHNAME
     FNM_PERIOD                   -> APR_FNM_PERIOD
     FNM_CASE_BLIND               -> APR_FNM_CASE_BLIND
     MAX_SECONDS_TO_LINGER        -> APR_MAX_SECONDS_TO_LINGER

     The following interfaces have function argument changes:

     apr_mmap_dup
     apr_socket_create

     The following header files have been removed:

     apr_compat.h

Changes with APR 0.9.5

  *) Fix apr_snprintf() to respect precision for small floating point
     numbers.  PR 29621.  [Artur Zaprzala <zybi talex.pl>]

  *) Add command type APR_SHELLCMD_ENV for creating a process
     which is started by the shell and which inherits the parent's
     environment variables.  [Jeff Trawick]

  *) Don't try to enable run-time linking on AIX < 4.2, as this
     results in invalid linker options being used.  PR 29170.  
     [Jeff Trawick]

  *) Don't assume getnameinfo() can handle IPv4-mapped IPv6 addresses
     on any platforms.
     [Jeff Trawick, Joe Orton, Colm MacCárthaigh <colm stdlib.net>]

  *) Support setuid, setgid and sticky file permissions bits on Unix.
     [André Malo]

  *) Fix sign error in apr_file_seek(APR_END).
     [Greg Hudson <ghudson MIT.EDU>]

  *) Provide workaround for socklen_t declaration problem with 64-bit
     build on HP-UX.  Stop setting a PA-RISC-specific compile option
     on ia64.  Look for -mt thread option, which is used with HP-UX
     vendor compiler on ia64.  [Jeff Trawick, based on idea from
     Madhusudan Mathihalli]

  *) Return an error instead of silently failing when apr_poll() is
     used with file descriptors >= FD_SETSIZE.  (Unix systems with
     no native poll())  [Jeff Trawick, Brad Nicholes]

  *) Fix handling of negative numbers in apr_strtoi64() on platforms
     without strtoll.  [Joe Orton]

  *) Fix printing apr_int64_t values smaller than LONG_MIN on 32-bit
     platforms in apr_vformatter.  [Joe Orton]

  *) Fix apr_socket_opt_set with APR_IPV6_V6ONLY flag.  Fixes httpd
     Listen IPv6 socket behavior on FreeBSD 5.x, OpenBSD, NetBSD.
     [Justin Erenkrantz]

  *) Fix apr_time_exp_get() for dates in 2038.  
     [Philip Martin <philip codematters.co.uk>]

  *) Add APR_LARGEFILE flag to allow opening files with the
     O_LARGEFILE flag; not recommended for general use, see
     include/apr_file_io.h.  [Joe Orton]

  *) Various build fixes: thread_rwlock.c on some Solaris platforms
     (PR 22990); filestat.c on ReliantUnix (PR 22990); config.status
     on IRIX (PR 19251).  [Various]

  *) Use NI_NAMEREQD instead of NI_NUMERICHOST in
     APR_CHECK_GETNAMEINFO_IPV4_MAPPED.  PR 24469.  [Justin Erenkrantz]

  *) Ensure that apr_sockaddr_info_get() does not return anything
     other than AF_INET and AF_INET6 addresses.  [Joe Orton]

  *) Clarify that apr_dir_read() does not guarantee order of returned
     entries as previously claimed.  [Joe Orton]

  *) The whole codebase was relicensed and is now available under
     the Apache License, Version 2.0 (http://www.apache.org/licenses).
     [Apache Software Foundation]

  *) Define apr_off_t as long rather than as off_t on platforms with a
     32-bit off_t to prevent incompatibility with packages such as
     Perl which redefine the size of off_t via _FILE_OFFSET_BITS on
     some platforms.  [Ben Reser <ben reser.org>]

  *) apr_socket_connect(): allow app to make subsequent call on 
     non-blocking socket.  [Jeff Trawick]
 
  *) Add apr_os_pipe_put_ex(), which allows the caller to tell APR
     to establish a cleanup on the pipe.  [Jeff Trawick, Brad Nicholes]

  *) Fix make_exports.awk to work with apr-iconv.  [Justin Erenkrantz]

Changes with APR 0.9.4

  *) win32: fix apr_file_dup() and apr_file_dup2() to dup the
     ungetchar member [Stas Bekman]

  *) Preserve leading '../' segments as when merging to an empty and
     unrooted path - fixes a bug observed in SVN with Win32/Netware/OS2.
     [Mike Pilato <cmpilato collab.net>, William Rowe]

  *) Work around a bug in Darwin when calling getnameinfo() on IPv4-mapped
     IPv6-addresses.  [Colm MacCárthaigh <colm stdlib.net>, Jeff Trawick,
     Justin Erenkrantz]

  *) Add apr_temp_dir_get() for getting the most suitable temp directory
     [Mike Pilato <cmpilato collab.net>, Thom May]

  *) Modify apr_sockaddr_info_get to call the resolver when we
     do not have a hostname.  Also, fix bugs in the getaddrinfo()
     implementation.
     [Colm MacCárthaigh <colm stdlib.net>, Justin Erenkrantz]

  *) Change the behavior of unix process 'trylock's to return
     APR_ENOTIMPL instead of segfaulting, consistent with the
     other lock implementations.  [William Rowe]

  *) Fix a subtle race where the ownership of a unix nested
     thread lock could be corrupted when the prior owner released
     the lock with another thread waiting on the same lock.
     [William Rowe]

  *) apr_socket_data_set(): allow the same key to be used for
     multiple sockets in the same pool.  [Jeff Trawick]

  *) Add new table function apr_table_compress() and replace
     red-black trees with mergesort in apr_table_overlap()
     [Joe Schaefer <joe+gmane sunstarsys.com>, Brian Pane]

  *) Win32: Adopt Brian Havard's OS/2 rwlock implementation for
     Windows [Marc Adkins, Bill Stoddard]

  *) Add apr_proc_mutex_lockfile() for retrieving the name of the
     file associated with a mutex.  [Jeff Trawick]

  *) Don't require the lock file name to be passed into 
     apr_proc_mutex_child_init() or apr_global_mutex_child_init().
     This allows child init to work when the lock file was a temp
     file created by APR.  (The problem only occurred with flock-
     based mutexes.)  [Jeff Trawick]

  *) When using a temporary file for flock- and fcntl-based mutexes, 
     don't let the file be deleted on close.  For flock-based mutexes,
     this corrects a fatal problem, since the file would disappear 
     when a program was spawned and cleanup-for-exec was performed, 
     and a subsequent attempt to perform child process mutex 
     initialization would fail.  For fcntl-based mutexes, this was a 
     very minor issue that resulted in a failing unlink() when the 
     file was closed, since fcntl lock initialization always removes 
     the file immediately.  [Jeff Trawick]

  *) When writing to pipes with a timeout set, handle the situation
     where the kernel says the pipe is writable but an attempt to
     write <= PIPE_BUF bytes gets EAGAIN.  APR will now write whatever
     data will fit.  APR applications that relied on the atomic nature
     of relatively small pipe write requests may be affected.
     PR 20295  [Mark Street <mark faime.demon.co.uk>, Jeff Trawick]

  *) Define _THREAD_SAFE for all compilations on AIX.  Previously
     those of us who used the vendor compiler had it defined
     implicitly and others did not.  The difference became obvious
     with the recent thread safety fixes to apr_password_validate().
     PR 20420  [Jeff Trawick]

  *) For apr_proc_detach(APR_PROC_DETACH_FOREGROUND), don't treat
     a setsid() failure as fatal, as the usual cause is that the
     caller is already a process group leader.  PR 18519
     [Jeff Trawick]

  *) Fix some problems with non-blocking socket handling on unix
     that resulted in infinite timeouts being used for non-blocking
     sockets with apr_socket_connect() and some read/write calls.
     [Jeff Trawick]

  *) Fix a bug in socket timeout handling on unix that left the
     socket non-blocking after disabling the timeout.
     [Jacob Craig Lewallen <jlewalle cs.ucr.edu>]

  *) Added flag APR_FILE_ATTR_HIDDEN for manipulating the "hidden"
     file attribute on Windows and OS/2.  [Branko Čibej]

  *) SECURITY [CAN-2003-0245]: Fixed a bug that could be triggered
     remotely through mod_dav and possibly other mechanisms, causing
     an Apache child process to crash.  The crash was first reported
     by David Endler <DEndler iDefense.com> and was researched and
     fixed by Joe Orton <jorton redhat.com>.  Details will be released
     on 30 May 2003.

  *) apr_proc_wait(): Handle interrupted waitpid(2) calls by calling
     it repeatedly until it succeeds or fails with errno other than
     EINTR.  This hides this UNIX-specific behavior from APR clients.

  *) Removed the solaris-specific atomic code, due to licence
     concerns (it was MPL 1.0, and the author could not be contacted)
     [Ian Holsman]

  *) apr_file_gets(): Return APR_SUCCESS if any characters are
     returned.  Any I/O errors or EOF will be reported on the
     next call.  Callers that are coded to expect returned 
     data + APR_EOF when there is no final newline are affected 
     by this change.  [Jeff Trawick]

  *) apr_proc_create() on Unix: Make the APR_SHELLCMD mode work
     when there is more than one program argument passed in.
     [Jeff Trawick]

  *) Add --cc and --cpp flags to apr-config.  [Jeff Trawick]

  *) Don't segfault trying to close a file in error paths of flock
     and fcntl mutex creation.  PR 19036  [Jeff Trawick]

  *) Add %pT support to apr_snprintf() for printing an apr_os_thread_t.
     [Jeff Trawick]

  *) Add APR_TCP_NODELAY_INHERITED & APR_O_NONBLOCK_INHERITED to apr.hw
     [Allan Edwards]

  *) Add APR_UINT64_T_HEX_FMT.  [Jeff Trawick]

  *) Add parameter to APR_SUBDIR_CONFIG to drop options passed to configure
     before the subdir's configure is invoked.
     [Jeff Trawick, Justin Erenkrantz]

  *) Implement APR_SO_RCVBUF socket option on Unix.  
     [Adam Sussman <myddryn vishnu.vidya.com>]

  *) Don't add the math library (-lm) if the modf() function
     is already available via libc.  [Roy Fielding]

  *) Solaris cc: Don't use the -mt option for threaded builds.  That
     is for non-Posix threading, and the use of it prevented us from
     linking with -lpthread, which in turn caused weird problems for
     APR applications.  [Kristofer Spinka <kspinka style.net>]

  *) OS/2: apr_stat() fixes - When a character device is stat'ed, 
     fill in finfo.name if it was asked for.  Return APR_INCOMPLETE 
     when appropriate.  Addresses httpd incident [CAN-2003-0134].
     [Brian Havard]

Changes with APR 0.9.3

  *) Don't enable posixsem, at build time, on systems where sem_t *
     won't "fit" into an int (sizeof-wise). Also, better error handling
     when we fail to create a posixsem. PR 17186 [Scott Herod
     <sherod pillardata.com>, Jim Jagielski]

  *) Default hpux 10.x to disable threading, since if it exists at all
     the pthread implementation should not be trusted, while hpux 10 
     had its own threads implementation that is no longer supported.
     PR 9457 [William Rowe]

  *) Fix error in apr-config when symlinks are involved.
     [Garrett Rooney <rooneg electricjellyfish.net>]

Changes with APR 0.9.2
