apr-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j..@apache.org
Subject svn commit: r820651 [2/2] - /apr/apr/trunk/CHANGES
Date Thu, 01 Oct 2009 13:31:25 GMT

Modified: apr/apr/trunk/CHANGES
URL: http://svn.apache.org/viewvc/apr/apr/trunk/CHANGES?rev=820651&r1=820650&r2=820651&view=diff
==============================================================================
--- apr/apr/trunk/CHANGES [utf-8] (original)
+++ apr/apr/trunk/CHANGES [utf-8] Thu Oct  1 13:31:24 2009
@@ -1,35 +1,9 @@
                                                      -*- coding: utf-8 -*-
 Changes for APR 2.0.0
 
-  *) 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]
-
-  *) apr_temp_dir_get() now checks the TMPDIR environment variable
-     first, instead of third. [Jim Jagielski]
-
-  *) 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]
-
-  *) The implementation of expand_array() in tables/apr_hash.c allocates
-     a new bucket array, without making any attempt to release the memory
-     allocated for the previous bucket array. That wastes memory: if the
-     hash table grows exponentially, this strategy wastes O(n) extra memory.
-     Use a subpool instead. [Neil Conway <nrc cs.berkeley.edu>]
-
   *) Add support for Berkeley DB 4.8. [Arfrever Frehtes Taifersar Arahesis
      <arfrever.fta gmail.com>]
 
-  *) Add comments describing the thread-safety properties of apr_pool_t.
-     [Neil Conway nrc cs.berkeley.edu]
-
-  *) Pass default environment to testflock, testoc, testpipe, testsock,
-     testshm and testproc children, so that tests run when APR is compiled
-     with Intel C Compiler. [Bojan Smojver]
-
   *) Make sure that "make check" is used in the RPM spec file, so that
      the crypto, dbd and dbm tests pass. [Graham Leggett]
 
@@ -42,9 +16,6 @@
 
   *) Clarify the error messages within the dbd tests. [Graham Leggett]
 
-  *) More elaborate detection for dup3(), accept4() and epoll_create1().
-     [Chetan Reddy <chetanreddy gmail.com>, Bojan Smojver]
-
   *) Use locally scoped variables in PostgreSQL driver to avoid stomping
      on return codes. PR 47431
      [Wayne Jensen <wayne_jensen trendmicro.com>]
@@ -53,9 +24,6 @@
      causes proc mutex failures.
      [Stefan Fritsch <sf sfritsch.de>]
 
-  *) Add apr_file_sync() and apr_file_datasync() calls.
-     [Bojan Smojver]
-
   *) Fix race conditions in initialisation of DBD, DBM and DSO.
      [Bojan Smojver]
 
@@ -69,11 +37,6 @@
   *) apr_thread_cond_*wait() on BeOS: Fix broken logic.  PR 45800.
      [Jochen Voss (no e-mail)]
 
-  *) 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>]
-
   *) Added Unix domain socket support.  [Mladen Turk]
 
   *) Win32: Use WSAPoll as default pollset method if supported and found
@@ -87,2345 +50,27 @@
      Currently only implemented for shm, proc and global mutexes on posix
      platforms.  [Mladen Turk]
 
-Changes for APR 1.4.0
-
-  *) Fix compilation error on systems that do not have IPV6.
-     PR 46601 [Julien Charbon <jch 4js.com>]
-
-  *) apr_pollset_wakeup() on Windows: Fix core caused by closing the
-     file_socket_pipe with standard file_close. 
-     [Arsen Chaloyan, Mladen Turk]
-
-  *) 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>]
-
-  *) Win32: Do not error out on apr_pollset_poll() when there are no sockets.
-     [Justin Erenkrantz]
-
-  *) Intruduce apr_hash_do for iterating over a hash table.
-     [Mladen Turk]
-
-  *) 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]
- 
-  *) Make sure WIN32 behaves the same as posix for file backed
-     shared memory by removing the file on cleanup/remove.
-     [Mladen Turk]
-
-  *) Fix Solaris poll failure.  PR 43000
-     [Henry Jen <henryjen ztune.net>]
-
-  *) Introduce apr_pollset_wakeup() for interrupting
-     the blocking apr_pollset_poll call.
-     [Mladen Turk]
-
-  *) Implement apr_proc_wait_all_procs for windows.
-     [Mladen Turk]
-
-  *) Add apr_file_link() function. PR 44841 
-     [Mark Heily <mark heily.com>]
-
-Changes for APR 1.3.0
-
-  *) apr_getservbyname(): Use proper method for converting port
-     to host byte order.  PR 44903.
-     [Chris Taylor <ctaylor wadeford.plus.com>]
-
-  *) 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
-
-  *) Numerous bug fixes for file and socket inheritence by child
-     processes on Unix, correcting bugs that affected the correct 
-     behavior of apr_[file|socket]_inherit_[un]set() API.
-     [Bjoern A. Zeeb <bz zabbadoz.net>, William Rowe, Joe Orton]
-
-  *) Define APR_UINT64_T_FMT and APR_UINT64_T_FMT_LEN.
-     Define APR_INT64_T_FMT_LEN on Windows and Netware.  [Branko Čibej]
-
-  *) Correct apr_file_gets() on OS2 and Win32 so that '\r's are no longer
-     eaten, and apr_file_gets() -> apr_file_puts() moves the contents
-     uncorrupted.  [William Rowe]
-
-  *) Alter Win32's handling of the apr_proc_t hproc member, so that we
-     close that system handle wherever an apr function would invoke the
-     final waitpid() against a zombie process on Unix.  [William Rowe]
-
-  *) APR_MAX_SECONDS_TO_LINGER and APR_FNM_* #defines replace their
-     old undecorated names (missing APR_ prefix).  The old names will
-     disappear with APR 1.0.0.
-     [Craig Rodrigues <rodrigc@attbi.com>, William Rowe]
-
-
-  *) When generating a semaphore name for posixsem locking, try to
-     be a little more robust (and unique). [Jim Jagielski]
-
-  *) Add functions apr_env_get, apr_env_set and apr_env_delete for
-     manipulating the environment.  [Branko Čibej]
-
-  *) Fix APR_LAYOUT to work with layout files with no preceding blank lines
-     and emit errors when layout is not found.  PR 15679.
-     [Justin Erenkrantz]
-
-  *) Add functions apr_filepath_list_split and apr_filepath_list_merge
-     for managing search paths.  [Branko Čibej]
-
-  *) Introduce Release mode debugging symbols for Win32 builds of apr.
-     All library builds gain /Zi for debug symbols (which are discarded
-     at link time if some flavor of the /debug flag isn't passed to link)
-     and .dll builds gain .pdb symbols.  [Allen Edwards, William Rowe]
-
-  *) Add two new proc attributes to improve diagnostics for 
-     apr_proc_create() failures on platforms where fork()+exec() is used.
-     See the doc for apr_procattr_child_errfn_set() and
-     apr_procattr_error_check_set().  [Jeff Trawick]
-
-  *) Rename rules.mk to apr_rules.mk and make apr_rules.mk be installed.
-     [Thom May]
-     
-  *) Fix a bug in apr_proc_create() that could cause a new child process
-     to run the parent's code if setrlimit() fails.  [Jeff Trawick]
-
-  *) Disable apr_socket_sendfile() on 64-bit AIX to avoid an apparent
-     system problem.  PR 11408.  [Jeff Trawick]
-
-  *) Add --includedir flag to apr-config.  [Justin Erenkrantz]
-
-  *) Only include sys/syslimits.h if we don't have limits.h
-     [Craig Rodrigues <rodrigc@attbi.com>, Garrett Rooney 
-     <rooneg@electricjellyfish.net>, Thom May]
-
-  *) Allow apr-config to work in symlinked install directories when
-     'realpath' is available.  [Justin Erenkrantz]
-
-  *) Namespace protect the header files in include/arch
-     [Thom May]
-
-  *) Add function apr_filepath_encoding and associated constants.
-     [Branko Čibej]
-
-  *) Allow apr_hash to have greater than int number of elements.
-     [Justin Erenkrantz]
-
-  *) Allow generation of dependencies by non-GCC compilers.
-     [Justin Erenkrantz]
-
-  *) Prevent obscenely large values of precision in apr_vformatter
-     from clobbering a buffer. [Sander Striker, Jim Jagielski]
-
-  *) limit the renames performed in apr_rename.pl to the most recent renames.
-     [Thom May]
-
-  *) Changed apr_mmap_dup() and friends so that there's no longer any
-     is_owner concept on the mmaped region, but rather something more
-     along the lines of a reference count.  This allows the old apr_mmap_t
-     to still be used safely when the new apr_mmap_t is in a disjoint pool.
-     [Cliff Woolley, Sander Striker]
-
-  *) Fix a bug in apr_hash_merge() which caused the last entry in the
-     overlay hash to be lost.  PR 10522  [Jeff Trawick]
-
-  *) Add DougM's apr_rename.pl script into helpers, and update for the new 
-     batch of updates [Thom May]
-
-  *) Renames done (deprecated functions wrapped):
-     apr_filename_of_pathname -> apr_filepath_name_get
-     apr_get_groupid -> apr_gid_get
-     apr_get_groupname -> apr_gid_name_get
-     apr_compare_groups -> apr_gid_compare
-     apr_parse_addr_port -> apr_port_addr_parse
-     apr_shutdown -> apr_socket_shutdown
-     apr_bind -> apr_socket_bind
-     apr_listen -> apr_socket_listen
-     apr_accept -> apr_socket_accept
-     apr_connect -> apr_socket_connect
-     apr_send -> apr_socket_send
-     apr_sendv -> apr_socket_sendv
-     apr_sendto -> apr_socket_sendto
-     apr_implode_gmt -> apr_time_exp_gmt_get
-     apr_get_home_directory -> apr_uid_homepath_get
-     apr_get_userid -> apr_uid_get
-     apr_current_userid -> apr_uid_current
-     apr_compare_users -> apr_uid_compare
-     apr_get_username -> apr_uid_name_get
-     apr_recvfrom -> apr_socket_recvfrom
-     apr_sendfile -> apr_socket_sendfile
-     apr_recv -> apr_socket_recv 
-     [Thom May]
-
-  *) Add APR_IPV6_V6ONLY socket option.  [Jeff Trawick]
-
-  *) Update timeout algorithm in free_proc_chain. If a subprocess
-     did not exit immediately, the thread would sleep for 3 seconds
-     before checking the subprocess exit status again. In a very
-     common case when the subprocess was an HTTP server CGI script,
-     the CGI script actually exited a fraction of a second into the 3
-     second sleep, which effectively limited the server to serving one 
-     CGI request every 3 seconds across a persistent connection.
-     [Bill Stoddard, Kai.Risku@arrak.fi]
-
-  *) Update doxygen tags.  [Justin Erenkrantz]
-
-  *) NetWare: implemented a file IO path context scheme to directly
-     reference directory paths and files in the file system rather
-     than having to traverse the file system on every stat() or
-     open() call. (Performance enhancement) [Brad Nicholes]
-     
-  *) ReliantUnix: recognize that dlsym() is in libdl and dlopen() is in
-     libc.  The check is generic so maybe this fixes some other system.
-     PR 14189  [Jeff Trawick]
-
-  *) Win32: Fix APR_APPEND file i/o. [Bill Stoddard]
-
-  *) Fix a problem retrieving the remote socket address for sockets
-     created via apr_os_sock_put() or apr_os_sock_make().  [Jeff Trawick]
-
-  *) Add recognition of and socket API support for the SCTP protocol.
-     [Randall Stewart <randall@stewart.chicago.il.us>]
-
-  *) Win32: apr_shutdown was not honoring apr_shutdown_how_e and
-     always shutting down the socket for read. This could result
-     in Apache HTTPD 2.0 clients getting early connection closures
-     because lingering_close() was broken. [Bill Stoddard, Allan Edwards]
-
-  *) Add apr_atomic_casptr() to support atomic compare-and-swap
-     of pointers  [Brian Pane]
-
-  *) Add apr_socket_create_ex() to allow protocol to be specified for the
-     socket.  With APR 1.0, this function will be removed and apr_socket_create()
-     will have the additional parameter.
-     [Randall Stewart <randall@stewart.chicago.il.us>]
-
-  *) Fix the detection of INT64_C() when defined in <stdint.h>.
-     [Joe Orton <joe@manyfish.co.uk>]
-
-  *) Don't use whitespace before preprocessor directives in the configure
-     logic.  Such whitespace breaks with some older preprocessors; a 
-     particularly nasty break occurs on Tru64 4.0f where APR_CHECK_DEFINE 
-     will always succeed.  [Joe Orton <joe@manyfish.co.uk>]
-
-  *) Add APR_IPV4_ADDR_OK flag to apr_sockaddr_info_get() to allow
-     apps to avoid lookup of IPv6 address if IPv4 address is sufficient.
-     (New APR_IPV6_ADDR_OK flag is similar.)  [Jeff Trawick]
-
-  *) Disable IPv6 support on Darwin.  The current IPv6 support has a
-     problem in getnameinfo() which breaks certain applications.
-     [Sander Temme <sctemme@covalent.net>, Jeff Trawick]
-
-  *) Support for SCO OpenServer Release 5 [Kean Johnston <jkj@caldera.com>]
-
-  *) Faster (inline and mutex-free) implementations of all apr_atomic
-     operations for Linux/x86 (requires a 486 or later; to enable,
-     configure APR with --enable-nonportable-atomics=yes )   [Brian Pane]
-
-  *) Add --bindir option to apr-config.  [Justin Erenkrantz]
-
-  *) Begin to rehash the test suite.  There is now a new test program called
-     testall.  This program currently runs testtime and teststr with the
-     CuTest framework.  The stand-alone programs for testtime and teststr
-     can be built, but only if a special flag is specified when building.
-     [Ryan Bloom]
-
-  *) Fix a broken check for a failure to read from the random device file.
-     PR 12615  [tenthumbs@cybernex.net]
-
-  *) Print informative link errors on Darwin.  [Justin Erenkrantz]
-
-Changes with APR 0.9.1
-
-  *) Fixed usage of alloca in apr_poll() on Tru64
-     [Dave Hill <ddhill@zk3.dec.com>]
-
-  *) Running "make check" in the toplevel directory or the test/ directory
-     will build and run all test programs.  [Aaron Bannert]
-
-  *) Add apr_array_pop().  [Justin Erenkrantz]
-
-  *) Fixed the native SPARC v8plus version of apr_atomic_dec
-     to match the semantics of the default C version [Brian Pane]
-
-Changes with APR 0.9.0
-
-  *) If the length argument to apr_snprintf is 0, then we should return the
-     length that the string would be if we actually were going to fill it out.
-     However, if the length argument is 0, we can also accept a NULL string.
-     Also, added a test case for this.  [Ryan Bloom]
-
-  *) Printing a string with apr_snprintf can seg fault, if a precision is
-     specified for the string, and the string being printed doesn't have a
-     trailing '\0'.  Fix that seg fault by not calling strlen if a precision
-     is specified when printing a string.  Also add a test to the test suite
-     for this case.
-     [R Samuel Klatchko <rsk@brightmail.com>]
-
-  *) handle leak related to threads on Windows2000/XP 
-     [INOUE Seiichiro <inoue@ariel-networks.com>]
-
-  *) Includes moved to INCLUDEDIR/apr-{major} (e.g. /usr/include/apr-0)
-     [Greg Stein]
-
-  *) libtool versioning is used to give the library sonames a real
-     value. The libraries will be libapr-{major}.so.0.{minor}.{patch}
-     [Greg Stein]
-
-  *) Fix apr_tokenize_to_argv() to remove the escape character
-     (backslash) from the argument tokens. PR 11793 [Paul J. Reder]
-
-  *) Add APR_PARSE_ARGUMENTS and APR_LAYOUT macros for better layout
-     support. [Thom May]
-
-  *) Add parallel-apr layout which utilizes the major version number in
-     directories and library names.  [Justin Erenkrantz]
-
-  *) Add a version number to the library name (e.g. libapr-1.so) so
-     that apps can do things like: -lapr-1 or -lapr-2, depending on
-     which version they want to use and link against. [Greg Stein]
-
-  *) Add --version to apr-config so that apps can retrieve the version
-     information of the (installed) APR. [Greg Stein]
-
-  *) Remove the APRVARS system; apps should use apr-config. [Greg Stein]
-
-  *) EBCDIC: fix compile failure in strings/apr_strings.c in
-     httpd-2.0.40 with the following error message:
-     CANNOT COMPILE apr_strtoi64(), only ASCII and EBCDIC supported
-     
-  *) In apr_signal_thread() remove synchronous signals from the mask
-     passed to sigwait().  It is never valid for them to be there.
-     Some platforms silently ignore them, some return EINVAL, some
-     don't process it as desired.  [Jeff Trawick]
-
-  *) Change config.nice generation to always expand variables.
-     [Justin Erenkrantz]
-
-  *) Renamed apr_strtoll()/apr_atoll() to follow int64 convention,
-     so these new helpers are apr_strtoi64/apr_atoi64(), since
-     'll' (long long) is a nonportable and aspecific construct.
-     Used ac/m4 tests to choose the appropriate fn behind strtoi64.
-     [William Rowe]
-
-  *) don't perform a strlen on that name value without checking for NULL 
-     first (in getopt)
-     [David Waite <mass@akuma.org>, Ian Holsman]
-
-  *) Added apr_strtoll() and apr_atoll() to strings lib.
-     [Shantonu Sen <ssen@apple.com>, Wilfredo Sanchez]
-
-  *) Added a lightweight internal index to apr_table_t to speed up
-     table lookup operations  [Brian Pane]
-
-  *) initalize handle members to invalid before calling createprocess
-     on win32 [Rob Saccoccio <robs@fastcgi.com>]
-
-  *) Removed apr/i18n to apr-util/xlate for inclusion of apr-iconv
-     as required by missing libiconv.  [William Rowe]
-
-  *) Removed apr/md5 and apr/uuid into apr-util/crypto.  [William Rowe]
-
-  *) Add APR_BUFFERED support to apr_os_file_put().  [Justin Erenkrantz]
-
-  *) Fix misinterpretation of timeout for select() on Win32/Netware.
-     Identified by [TANAKA Koichi <tanaka@ariel-networks.com>]
-
-  *) Re-write apr_poll() on Unix.  This improves the performance by
-     giving the user back control over the memory in the pollset.
-     [Ryan Bloom]
-
-  *) Added APR_LIMIT_NOFILE option to apr_procattr_limit_set() to
-     control the file descriptor limit on platforms that support
-     RLIMIT_NOFILE.  [Brian Pane]
-
-  *) FreeBSD: change apr_sendfile to accomodate a 4.6 kernel patch.
-     [Greg Ames]
-
-  *) Faster code for the apr_table get/set functions  [Brian Pane]
-
-  *) Fix the userid functions on Irix to handle the way that Irix 
-     reports a failure from getpwnam_r().  PR 10095.
-     [Robert I. Cowles <ric@cs.uregina.ca>, Jeff Trawick]
-
-  *) apr_table_do() and apr_table_vdo() now return an int rather than
-     void to indicate whether or not any of its iterations returned 0.
-     [Cliff Woolley]
-
-  *) Fix the definition of union semun so that it is valid on systems
-     where sizeof(long) != sizeof(int).  This resolves a hang on
-     HP-UX/Itanium.  
-     [Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>]
-
-  *) Correct shared library support on Darwin to not fatally error out
-     when a shared library does not exist.  [Justin Erenkrantz]
-
-  *) Added optimized atomic CAS support for Linux/x86 (available only
-     when APR is configured with --enable-nonportable-atomics=yes)
-     [Brian Pane]
-
-  *) Fix a compile error in the EGD support in rand.c on older Solaris
-     versions.  PR 9976  [Jim Morris <jmorris@sunflower.com>]
-
-  *) Fixed apr_file_seek() to unset the eof_hit flag.  [Stas Bekman]
-
-  *) Removed --disable-atomics flag and added --enable-nonportable-atomics,
-     thereby defaulting to portable binaries on those systems that could
-     be optimized at the expense of portability. PR: 9507  [Aaron Bannert]
-
-  *) Added 2 additional lock functions: apr_proc_mutex_name and
-     apr_proc_mutex_defname which returns the type name of the mutex
-     (eg: "sysvsem") as well as the default mutex type (APR_LOCK_DEFAULT).
-     Mostly useful under Unix were the locktypes are selectable.
-     [Jim Jagielski]
-
-  *) Fixed apr_generate_random_bytes() for Win32 on Win NT or 9x by
-     dropping the 0x40 bit (CRYPT_SILENT) for earlier OS'es.
-     PR 9286  [William Rowe]
-
-  *) Added --with-devrandom=[DEV] configure flag which allows a particular
-     "/dev/random"-compatible device to be specified, overriding the
-     default search path (/dev/random then /dev/arandom then /dev/urandom).
-     Also, if --with-egd=<path> is specified, it now implies
-     --without-devrandom.  [Cliff Woolley]
-
-  *) Darwin/Mac OS X: Don't leave zombie processes when the app calls
-     apr_signal(SIGCHLD, SIG_IGN).  This fixes a problem with Apache's
-     mod_cgid.  PR 9168.  [Jeff Trawick]
-
-  *) Win32: Fix bug where apr_sendfile() was incorrectly returning
-     APR_SUCCESS on a TransmitFile call that was interrupted by
-     the client closing its end of the connection. Always call 
-     GetOverlappedResults() to get results of async TransmitFile()
-     completion notification. [Bill Stoddard] 
-
-  *) Renamed APR_XtOffset -> APR_OFFSET and APR_XtOffsetOf -> APR_OFFSETOF.
-     [Cliff Woolley]
-
-  *) Cygwin: the unix version of apr_file_open() must respect the
-     APR_BINARY flag if the underlying platform requires it (in
-     which case we assume O_BINARY is defined).  PR 9185.
-     [Cliff Woolley]
-
-  *) Linux, AIX: Use crypt_r() instead of crypt() because the native
-     crypt() is not thread-safe.  The misuse of crypt() led to   
-     intermittent failures with Apache basic authentication when crypt 
-     passwords were being used.  [Jeff Trawick]
-
-  *) AIX: Global mutexes don't need an intraprocess mutex when SysV
-     sems are used for the crossprocess mutex.
-     Darwin: The same optimization was applied for Posix sems.
-     [Jeff Trawick]
-
-  *) Fix a problem with global mutexes on OS/390 when something other
-     than the default mechanism (SysV sem) was used.  The mutexes didn't
-     necessarily block out other threads in the same process.
-     [Jeff Trawick]
-
-  *) Fixed apr_strfsize formatting of values over 1 gig
-     [Matsuzaki Yoshinobu <maz@iij.ad.jp>]
-
-  *) Renamed --disable-atomics as --disable-optimized-atomics,
-     since it doesn't really disable the atomics.  [Aaron Bannert]
-
-  *) Converted apr_pcalloc to a macro  [Brian Pane]
-
-  *) Fixed APR_STATUS_IS_ETIMEDOUT macro.
-     [Dagfinn Aarvaag <dagfinn.aarvaag@beepscience.com>]
-
-  *) Add --disable-atomics switch to override our handcoded assembly
-     optimizations.  Note that this has no effect if your operating
-     system has a userspace atomic interface.  [Justin Erenkrantz]
-
-  *) Remove Linux atomic support since it does not have a usable
-     userspace atomic interface.  [Justin Erenkrantz]
-
-  *) Don't require that the DNS can map 127.0.0.1 when checking for
-     the presence/usability of getnameinfo().  PR 7642.  [Jeff Trawick]
-
-  *) Remove APR_WANT_SIGNAL from apr_want.h because code must include
-     apr_signal.h in order to get consistent definitions. [Roy Fielding]
-
-  *) Don't try to use /dev/zero and mmap on platforms that don't
-     support that (such as HP-UX).  PR 8537.  [Justin Erenkrantz]
-
-  *) Reduce the number of apr_sendfile calls on AIX and OS/390 by
-     remembering when the kernel tells us the next one will block.
-     [Jeff Trawick]
-
-  *) Reduce the number of apr_sendfile calls on FreeBSD by remembering
-     when the kernel tells us the next one will block.  [Greg Ames]
-
-  *) To support modules like PHP, which implement their own
-     loaded extensions, Darwin needs to place their public
-     symbols in the global table. [Marko Karppinen <markonen@php.net>,
-     Jim Jagielski]
-
-  *) Rename apr_get_groupname to apr_group_name_get.
-     [Thom May <thom@planetarytramp.net>]
-     
-  *) Allow VPATH builds to properly build dependencies and switch to
-     a .deps dependency model to mimic httpd-2.0.  [Justin Erenkrantz]
-
-  *) Tru64: Stop leaving zombies in APR apps like mod_cgid which
-     tell APR to ignore SIGCHLD.  
-     [Dave Hill <David.D.Hill@Compaq.com>]
-
-  *) Ensure that the ATOMIC_HASH can not be negative.
-     [Joe Orton <jorton@redhat.com>]
-
-  *) Fix a problem with eof reporting with Unix file I/O on 
-     unbuffered files.  [Stas Bekman <stas@stason.org>]
-
-  *) Rename apr_explode_time to apr_time_exp_tz.
-     [Thom May <thom@planetarytramp.net>]
-
-  *) Rename apr_explode_localtime to apr_time_exp_lt.
-     [Thom May <thom@planetarytramp.net>]
-
-  *) Set precompiler for Solaris atomics when using GNU binutils.
-     PR 7876.  [solomon@conceptshopping.com (Marvin Solomon)]
-
-  *) AIX: Fix breakage with 64-bit builds on versions of AIX prior
-     to 5L.  PR 7957  [Jeff Trawick]
-
-  *) On socket write functions (apr_sendfile, apr_send, apr_sendv),
-     added a select to wait for writability on the socket if the
-     previous write was incomplete.  [Jeff Trawick, Brian Pane]
-
-  *) Deprecated the apr_lock.h API. Please see the following files
-     for the improved thread and process locking and signaling:
-     apr_proc_mutex.h, apr_thread_mutex.h, apr_thread_rwlock.h,
-     apr_thread_cond.h, and apr_global_mutex.h.  [Aaron Bannert]
-
-  *) Fix some daylight savings time breakage on (at least) AIX, 
-     Solaris, and HP-UX.  [Jeff Trawick]
-
-  *) Added support for Posix semaphores (sem_open, et.al.) for mutex
-     locking. We use named semaphores in this implementation. The
-     default priority is between pthread and sysvsem.
-     [Jim Jagielski]
-
-  *) Get flock-based mutexes to work in apps like Apache.  Use the
-     same permissions on flock- and fcntl-based mutexes as Apache
-     1.3.  [Jeff Trawick]
-
-  *) Fix apr-config so that it will not attempt to cd to a non-existent
-     directory.  [Justin Erenkrantz]
-
-  *) Change the ordering of the apr_lock implementation method to
-     better match what's done in Apache 1.3. The ordering is
-     now (highest to lowest): pthread -> sysvsem -> fcntl -> flock.
-     [Jim Jagielski]
-
-  *) Improve detection of the INT64_C macro to prevent problems
-     with HP-UX's ANSI C compiler.  PR 8932.  [Justin Erenkrantz]
-
-  *) Make sure gethostbyname() can handle 255.255.255.255 if we
-     are to trust it to handle numeric address strings in
-     apr_sockaddr_info_get().  This fixes a problem on HP-UX
-     which led to an assertion failure at Apache startup when
-     using vhosts.  [Jeff Trawick]
-
-  *) Don't mask SIGUSR2 [Jin Hong <jinh@cnet.com>]  
-
-  *) Load libraries if they not MH_BUNDLE, but if they are not, it 
-     just attempts to link them as shared libs.
-     [Pier Fumagalli <pier@betaversion.org>]
-
-  *) apr_atomic_dec now returns a zero value if the value of 
-     the atomic is zero, non-zero otherwise [Ian Holsman]
-
-  *) When opening a file, only create an internal thread mutex
-     if APR_XTHREAD is set.  [Brian Pane]
-
-  *) Move the kill_conditions enum in apr_thread_proc.h into the
-     APR namespace. kill_after_timeout et al have been renamed
-     appropriately (e.g., APR_KILL_AFTER_TIMEOUT).  [Jeff Trawick]
-
-  *) Fix a segfault in apr_thread_rwlock_destroy() on Win32.
-     [INOUE Seiichiro <inoue@ariel-networks.com>]
-  
-  *) configure now checks to see if we can change DNS timeout values
-     [Ian Holsman]
-
-  *) Fix a bug in apr_file_seek() on Unix when using buffered
-     files.  PR 10003 [Jeff Trawick]
-
-  *) Small table performance optimization: eliminate the
-     zero-fill of newly allocated elements when expanding
-     a table's size. [Brian Pane]
-
-  *) Allow APR to install its generated libtool(s) via the 
-     --with-installbuilddir option (defaults to ${datadir}/build).
-     [Justin Erenkrantz]
-
-  *) renames: apr_ansi_time_to_apr_time becomes apr_time_ansi_put
-     ap_exploded_time_t becomes apr_time_exp_t
-     [Thom May <thom@planetarytramp.net>]
-
-  *) Add the APR_FILE_NOCLEANUP flag to apr_file_open().
-     Adding the flag will prevent the file from being closed 
-     when the pool passed in on apr_file_open() is destroyed.
-     This feature is useful when using apr_os_file_get|put()
-     to manage the apr_os_file_t in apr_file_t (ie, file handle
-     caching in the HTTP server) [Bill Stoddard]
-
-  *) Win32: Fix APR_XTHREAD problems in apr_file_read()
-     and apr_file_write(). Multiple threads were using the
-     same overlapped structure and io event handle created
-     in the open call, which could cause unpredictable
-     file i/o results. [Bill Stoddard]
-
-  *) Win32: apr_proc_mutex_trylock and apr_proc_mutex_lock were 
-     incorrectly returning APR_BUSY if the lock was previously
-     held by a thread that exited before releasing the lock 
-     (ie, if the process holding the lock segfaults). The MSDN
-     doc says when WaitForSingleObject returns WAIT_ABANDONED,
-     the calling thread takes ownership of the mutex, so these
-     two routines should return APR_SUCCESS in this case, not
-     APR_BUSY. [Bill Stoddard]
-
-  *) Added a new m4 function APR_EXPAND_VAR that will iteratively
-     interpolate the contents of a variable, such as $sysconfdir,
-     for use in a borne script.  [Aaron Bannert]
-
-  *) apr-atomic support for old-sparc's and gas on solaris
-     [Dale Ghent <daleg@elemental.org>,  jean-frederic clere, Ian Holsman]
-
-  *) Change apr_proc_detach to take a parameter that can enable/disable
-     automatic forking (aka, to "daemonize").
-     [Jos Backus <josb@cncdsl.com>, Aaron Bannert]
-
-  *) Implement apr_global_lock_foo() on Win32
-     [Bill Stoddard]
-
-  *) Fix select() argument call when waiting for IO.  PR 9674.
-     [David MacKenzie <djm@pix.net>]
-
-  *) Add a new lock API (apr_global_mutex_t) to provide guaranteed
-     cross-process AND cross-thread mutual exclusion.  [Aaron Bannert]
-
-  *) Note: We are in the process of deprecating the apr_lock.h API.
-     The new and improved lock/synchronization APIs now reside
-     in apr_thread_mutex.h, apr_proc_mutex.h, apr_thread_rwlock.h,
-     and apr_thread_cond.h.  [Aaron Bannert]
-
-  *) Enable autoconf 2.52{f,g} build support.
-     [Blair Zajac <blair@orcaware.com>]
-
-  *) Added new functions for atomic operations. These are experimental
-     at the moment, so use in apps is discouraged [Ian Holsman]
-
-  *) Correct serious problems with the Win32 apr_file_dup2 
-     and apr_file_open_stdxxx() fns.  [William Rowe]
-
-  *) Begin implementation of the WinCE port.
-     [Mladen Turk <mturk@mappingsoft.com>]
-
-  *) Disable SHMEM_MMAP_ZERO on HPUX 11.x where it is not supported.
-     Use SHMEM_SHMGET_ANON instead.  [Aaron Bannert]
-
-  *) Fix a few attempts to add to a void * ptr in the Unix shared
-     memory support code.  PR #9710  Per Ekman [pek@pdc.kth.se]
-
-  *) In the Linux apr_sendfile(), fix the types of some parameters 
-     to apr_send() and apr_recv().  Breakage was seen in 64-bit mode
-     on s/390.  PR #9712  [Neale.Ferguson@SoftwareAG-usa.coom]
-
-  *) added APR_PROGRAM_ENV and APR_PROGRAM_PATH options for starting
-     processes via apr_proc_create() [Greg Stein]
-
-  *) Deprecated apr_pool_free_blocks_num_bytes() [Sander Striker]
-
-  *) Add --enable-pool-debug to make it easier for people to
-     enable pool debug mode.  Removed the APR_POOL_DEBUG_VERBOSE
-     define that was previously being used. [Sander Striker]
-     
-  *) Changed the apr_file_dup2() function prototype. It can only
-     take and reuse an apr_file_t*, and will no longer create one
-     if *new_file == NULL (use apr_file_dup() for that).  [Aaron Bannert]
-
-  *) Implemented name-based shared memory on Unix.  [Aaron Bannert]
-
-  *) Fix spelling mistakes in APRDesign.  
-     [Blair Zajac <blair@orcaware.com>]
-
-  *) Ensure that apr_file_mktemp creates the temp file if it isn't there.
-     [John Sterling <sterling@covalent.net>]
-
-  *) Make sure to pre-mark anon SysV shared memory segments as
-     removed. [Jim Jagielski]
-
-  *) Add --with-efence to allow usage of Electric Fence.
-     [Justin Erenkrantz]
-
-  *) Updated the pools debug code.  Check if a pool is still
-     valid on the most common apr_pool_xxx functions.
-     Fix the way APR_POOL_DEBUG_VERBOSE was using stderr.
-     Make the output somewhat nicer in this debug mode. [Sander Striker]
-
-  *) Add new define APR_POOL_DEBUG_VERBOSE which spits out info
-     about pool creation/destruction [Ian Holsman]
-
-  *) Fix GMT offset adjustments for platforms that do not have native
-     GMT offset adjustments.  [Jon Travis <jtravis@covalent.net>]
-
-  *) Add new apr_shm_t API and remove old apr_shmem_t API. The new
-     API handles both anonymous and name-based shared memory. Anonymous
-     shared memory segments are only usable on systems with process
-     inheritance, and so the new API with name-based segments is
-     usable on platforms like Win32.  [Aaron Bannert and William Rowe
-     with much help from Justin Erenkrantz and Sander Striker]
-
-  *) Add --with-egd to support EGD-compatible entropy gatherers for 
-     those platforms without native support.  [Justin Erenkrantz]
-
-  *) apr_lock_create() and apr_proc_mutex_create() now have an
-     additional parameter for specifying the lock mechanism.  
-     apr_lock_create_np() and apr_proc_mutex_create_np() have been
-     removed.  [Jeff Trawick]
-
-  *) Change the prototype of apr_thread_exit() so that the apr_status_t
-     is no longer a pointer. It was difficult and sometimes hazardous
-     to return a apr_status_t* at times, and this allows us to return
-     the APR_* error codes directly.  [Aaron Bannert]
-
-  *) Add apr_sockaddr_equal() for comparing APR sockaddrs.
-     [Jeff Trawick]
-
-  *) Win32: apr_sendfile() should return APR_ENOTIMPL if
-     oslevel < WINNT. [Bill Stoddard]
-
-  *) Put new pools code in place which allows applications to
-     switch off locking on pools operations in case a pool is
-     guaranteed to never being used in more than one thread
-     at the same time.  We've seen a significant performance
-     improvement over the old code. [Sander Striker]
-
-  *) Add apr-config - a shell script to allow third-party programs
-     easy access to APR configuration parameters.  [Justin Erenkrantz]
-
-  *) Add find_apr.m4 to allow third-party programs that use APR to
-     have a standard m4 macro for detection.  [Greg Stein]
-
-  *) SEGV in apr_table_overlap [Brian Pane]
-
-  *) apr_array_copy speedup by removing the zero-fill [Brian Pane]
-
-  *) Fix build breakage on systems with getaddrinfo() but not 
-     gai_strerror() (e.g., RedHat 5.2).  [Jeff Trawick]
-
-  *) Fix a problem in Unix apr_file_dup() which caused 0 to be returned
-     by the first read.  [Stas Bekman <stas@stason.org>]
-
-  *) Fix a buglet that caused APR_FILE_BASED_SHM to be set inadvertently 
-     on some platforms (e.g., Linux, AIX).  [Jeff Trawick]
-
-  *) Speed up apr_table operations by using a cache/checksum and a
-     red-black tree in the overlay.
-     [Brian Pane <bpane@pacbell.net>, Cliff Woolley]
-
-  *) Speed up apr_pool_userdata_set[n] by letting hash_set figure out
-     the strings length.  [Brian Pane <bpane@pacbell.net>]
-
-  *) New function apr_mmap_dup. This is called in the mmap_setaside.
-     [Brian Pane <bpane@pacbell.net>]
-
-  *) Speed up the apr_hash_t implementation's handling of APR_HASH_KEY_STRING.
-     [Brian Pane <bpane@pacbell.net>]
-
-  *) Tweak apr_gethostname() so that it detects truncation of the
-     name and returns an error.  [Jeff Trawick]
-
-  *) Fix bug in Darwin DSO code.  [Sander Temme]
-
-  *) Fix apr_setup_signal_thread() to grab the right error code from
-     a sigprocmask() failure.  This only affects platforms that use
-     sigprocmask() in lieu of pthread_sigmask().  [Jeff Trawick]
-
-  *) Fix the Unix HAVE_POLL flavor of apr_poll_socket_mask() so that
-     it doesn't segfault.  Avoid some wasted storage in a poll-related
-     APR structure.  [INOUE Seiichiro <inoue@ariel-networks.com>]
-
-  *) Fix apr_setup_signal_thread() so that threads don't block
-     synchronous signals (e.g., SIGSEGV).  It is a programming error
-     to do so, and some platforms (e.g., Solaris, AIX) don't call any
-     registered signal handler when such signals are blocked.
-     [Jeff Trawick]
-
-  *) Change the apr_table_elts macro so that it provides access via
-     a const pointer instead of a non-const pointer.
-     [Brian Pane <bpane@pacbell.net>]
-
-  *) Use strerror_r() where available, since strerror() isn't always
-     thread-safe.  Example systems where strerror() isn't thread-safe:
-     Linux+glibc, AIX  [Jeff Trawick]
-
-  *) Fix some file cleanup problems in apr_proc_create() which could
-     result in the pipes for stdin/stdout/stderr being closed
-     immediately.  [Jeff Trawick]
-
-  *) New functions apr_hash_[merge|copy], change to overlay fn
-     so that it calls merge, which does a inline iteration instead
-     of calling the iterator function. [Brian Pane <bpane@pacbell.net>]
-
-  *) Introduce the apr_pool_userdata_setn() variant that doesn't 
-     strdup the key.  Allows both the _setn() and _set() variant to 
-     accept NULL for the cleanup.  [Brian Pane <bpane@pacbell.net>]
-
-  *) Re-vamp the apr_proc_wait and apr_proc_wait_all functions.  We
-     now return the exit code from the program and a reason that the
-     program died, either normal exit or signalled.
-     [Jeff Trawick and Ryan Bloom]
-
-  *) Implement portable accessors for proc mutex. These are equivalent
-     to apr_os_lock_get/set, but they work for apr_proc_mutex_t types
-     instead.   [Aaron Bannert]
-
-  *) Added a new parameter to apr_thread_mutex_init(). Now, by default,
-     thread mutexes are not nested (sometimes called "recursive"). To
-     enable nested mutexes, a flag must be passed to the init script.
-     Non-nested mutexes are much faster than nested ones.
-     [Aaron Bannert]
-
-  *) read_with_timeout in apr/file_io/win32/readwrite.c incorrectly 
-     returned APR_SUCCESS instead of APR_EOF when PeekNamedPipe failed
-     and the result from GetLastError() was ERROR_BROKEN_PIPE. Because 
-     of this, the pipe wasn't closed as soon as it could be.
-     [Tim Costello <tim.costello@zcmgroup.com.au>]
-
-  *) Fix a problem in the Win32 pipe creation code called by 
-     apr_proc_create():  It didn't register cleanups for either the 
-     read or the write ends of the pipe, so file handles (and event 
-     handles for pipes with asynchronous I/O mode set) are never 
-     closed.  [Tim Costello <tim.costello@zcmgroup.com.au>]
-
-  *) Add support for QNX 6.  [J.T. Conklin <jtc@acorntoolworks.com>]
-
-  *) We now create exports.c and export_vars.h, which in turn create
-     exports.c.  From this we generate two more files with different
-     purposes: apr.exp - list of exported symbols; and exports.lo
-     (exports.o) - an object file that can be linked with an executable
-     to force resolution of all apr symbols.   [Aaron Bannert]
-
-  *) Add the apr_thread_cond_timedwait function to the condition
-     variable API.   [Aaron Bannert]
-
-  *) Fixed apr_file_mktemp on systems without mkstemp (Win32, etc).
-     [Mladen Turk, Cliff Woolley]
-
-  *) Fix a segfault in apr_poll_clear on Unix.   Also fix the logic 
-     for the case where there are multiple events ORed together in 
-     the events list.   [Jamshid Mahdavi <mahdavi@volera.com>]
-
-  *) Files opened on Unix with the flag APR_DELONCLOSE are now
-     not unlinked until they are actually closed, rather than as
-     soon as they're opened.  The old approach worked but made
-     handling temp files harder.  [Cliff Woolley]
-
-  *) Fix potential segfault when closing a file on Unix.  If
-     apr_file_close() was called and it failed, it would not
-     deregister the file cleanup.  Therefore the cleanup would
-     be run again later on a now-invalid descriptor.  [Cliff Woolley]
-
-  *) Introduce apr_pool_lock for debugging, in combination with
-     ALLOC_USE_MALLOC + DEBUG_WITH_MPROTECT.  Only implemented
-     on Win32 today, very effective for debugging pool constness.
-     [William Rowe]
-
-  *) Optimize apr_pstrcat by caching lengths of first 6 strings
-     [Brian Pane <bpane@pacbell.net>]
-
-  *) Add pool accessors to the apr_thread_mutex_t datatype.
-     [Aaron Bannert <aaron@clove.org>]
-
-  *) Add the apr_file_mktemp function.  This creates and opens a 
-     temporary file, for use by the program.  This file is created
-     delete_on_close.  The initial implementation only works on
-     Unix, but Windows is coming soon.  [Ryan Bloom]
-
-  *) Make the unix version of apr_proc_wait_all_procs a simple wrapper 
-     around apr_proc_wait, and which extracts the exit code from the 
-     status returned by waitpid.  
-     [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
-
-  *) Add process locking API to APR. [Aaron Bannert <aaron@clove.org>]
-
-  *) Add condition variables for Windows.  [Ryan Bloom]
-
-  *) Add condition variables to the APR set of locking functions.
-     This does Unix, and provides stubs for all other platforms.
-     [Aaron Bannert <aaron@clove.org>]
-
-  *) Don't search for IPv6 names in apr_sockaddr_info_get() if the 
-     application doesn't specify the family (i.e., the application
-     passes in AF_UNSPEC) and APR isn't built with IPv6 support.  
-     [Jeff Trawick]
-
-  *) Fix the API for the apr_proc_create() call on Win32.  Several
-     bad assumptions are gone, including a mismatch between unix and
-     win32, where win32 was defaulting to create detached.  Also fixes
-     the apr_proc_t's pid member to a real pid (identity that works
-     across processes) instead of the handle (which is a new hproc
-     member value.)  [William Rowe]
-
-  *) Modify the external apr_filepath_get() fn to take a flags arg,
-     currently only for APR_FILEPATH_NATIVE.  This returns c:\foo
-     format on Win32, and should do the same on OS2, or sys\vol:\foo
-     on Netware.  Primarily for internals, but possibly useful to
-     others (and it mirrors some of the other apr_filepath_*() calls.)
-     [William Rowe]
-
-  *) Add the new thread read/write lock API to APR.
-     [Aaron Bannert <aaron@clove.org>]
-
-  *) Add the new thread mutex lock API to APR.
-     [Aaron Bannert <aaron@clove.org>]
-  
-  *) Cache GMT offset on platforms that don't store it in the tm struct.
-     This offset is normalized to be independent of daylight savings
-     time.  [Brian Pane <bpane@pacbell.net>]
-
-  *) Initial support for cygwin.  [Stipe Tolj <tolj@wapme-systems.de>]
-
-  *) Fix a problem with buffered files on Unix.  [Brian Havard]
-
-  *) Fix the bungling of getaddrinfo() error codes.  [Jeff Trawick]
-
-  *) Add an apr_thread_once function to APR.  This allows a
-     program to ensure that a function is only called once.
-     [Ryan Bloom]
-
-  *) APR Documentation is now in Doxygen format.
-     [Ian Holsman]
-
-  *) Get apr_ungetc() to work with buffered files on Unix.
-     [Jeff Trawick]
-
-  *) Fixed apr_filepath_root on Unix [William Rowe, Cliff Woolley].
-
-  *) Rename XtOffset to APR_XtOffset.  This namespace protection
-     is important to keep from conflicting with other packages.
-     [Perl]
-
-  *) Introduce a new --disable-ipv6 option to disable IPv6 support.
-     [Sterling Hughes <sterling@designmultimedia.com>, Jeff
-     Trawick]
-
-  *) Fix the new shared memory code.  We need to pass a pointer to
-     an apr_file_t to apr_file_open.  Also, apr_os_file_get returns
-     a status value, not the OS file descriptor.  [Ryan Bloom]
-
-  *) Fix the new shared memory configure script.  The APR_DECIDE
-     macros go in order, so the last set of dependancies that are
-     met are the ones used.  That means that when using those macros,
-     options should be listed with the least desirable option first,
-     and the most desirable last.  The new shared memory routines did
-     the opposite, so we chose the wrong shared memory option on Linux.
-     [Ryan Bloom]
-
-  *) Move the necessary shared memory code from MM into APR and remove
-     our dependency upon MM.  [Justin Erenkrantz]
-
-  *) Get apr_lock_file and apr_unlock_file working on Windows 9x.
-     [Mladen Turk, Bill Stoddard]
-
-  *) Make all APR pools be allocated out of the permanent pool.
-     This brings APR pools back to a tree structure.  There are
-     no longer any way to create a pool that is not a decendant
-     of the permanent_pool.  [Ryan Bloom]
-
-  *) Wrap all functions in APR_DECLARE macro. 
-     [Sterling Hughes <sterling@designmultimedia.com>]
-
-  *) Non-blocking connects shouldn't be calling connect a second
-     time.  According to Single Unix, a non-blocking connect has
-     succeeded when the select pops successfully.  It has failed
-     if the select failed.  The second connect was causing 502's
-     in the httpd-proxy.  [John Barbee barbee@veribox.net]
-
-  *) Fix apr_dir_rewind() for Win32 to avoid returning a bogus error.
-     [Jeff Trawick, William Rowe]
-
-  *) Detect required libraries first.  This minimizes the libraries
-     needed in apr_hints.m4.  [Justin Erenkrantz]
-
-  *) Support the AIX, glibc2, and Solaris variants of gethostby{name|addr}_r.
-     Use gethostbyaddr_r function when available.
-     [Sterling Hughes <sterling@designmultimedia.com>]
-
-  *) Add new socket option, APR_INCOMPLETE_READ, that should be
-     set when you expect the first non-blocking read to fail with
-     EAGAIN. Setting APR_INCOMPLETE_READ prior to calling apr_read
-     will cause select() to be called first to wait for bytes
-     to read. [Brian Pane, Dean Gaudet]
-
-  *) Better installation.  This makes us install the APRVARS file,
-     as well as MM.  [Ryan Bloom]
-
-  *) Provide new number conversion functions apr_itoa, apr_ltoa, and 
-     apr_off_t_toa, and inline code in inet_ntop4, to reduce CPU
-     consumption. [Brian Pane]
-
-  *) Updated APR to pass the thread worker_function prototype 
-     (apr_thread_start_t) two parameters, the apr private data 
-     (apr_thread_t*) and the application private data (void*).  
-     Applications' worker_thread() routines may use apr_thread_pool_get
-     to access the pool (implemented using APR_POOL_*_ACCESSOR() macros.)
-     [Aaron Bannert <aaron@ebuilt.com>]
-
-  *) Add Solaris 8's sendfilev() support.  This requires the following 
-     patches from Sun: 111297 (Sparc), 111298 (x86).  You'll need the
-     other patches listed in the patch description.  [Justin Erenkrantz]
-
-  *) Close file descriptor when we are done with fcntl or flock-based
-     cross-process lock.  Otherwise, we leak descriptors.
-     [Justin Erenkrantz]
- 
-  *) Fix a possible data corruption problem with the use of getpwnam_r() on 
-     all platforms where that function is used.
-     Use getpwnam_r() and getgrgid_r() instead of getpwnam() and getgrgid()
-     with threaded builds on glibc (2.1, at least) to avoid thread safety
-     issues.  [Jeff Trawick]
-
-  *) Added apr_lock_tryacquire.  It will attempt to acquire the lock, but 
-     will not block if it can not acquire the lock.  Returns APR_EBUSY if 
-     acquistion can not happen.  [Justin Erenkrantz]
-
-  *) Added an inherit flag to apr_socket_create and other socket creation
-     functions.  This allows APR programs to specify that a socket should
-     be passed to any child processes that are created.  The inherit flag
-     is only meaningful if programs use apr_process_create().  This
-     also adds a couple of macros that allow APR types to set and unset
-     the inherit flag.  [Ryan Bloom]
-
-  *) apr_connect()on Windows: Handle timeouts and returning the proper
-     status code when a connect is in progress. [Bill Stoddard]
-
-  *) apr_connect() on Unix: Handle EINTR during connect().  Handle timeouts.
-     [Jeff Trawick]
-
-  *) Handle the weird case where getpwnam() returns NULL but errno is zero.
-     [Jeff Trawick]
-
-  *) Add apr_file_flags_get() which returns the flags that were originally
-     passed in to apr_file_open().  [Cliff Woolley]
-
-  *) Added APR_HAS_XTHREAD_FILES macro that indicates whether or not the
-     platform handles files opened in APR_XTHREAD mode natively.  Currently
-     only Win32 has such native support.  [Cliff Woolley]
-
-  *) Fix gmt offset handling on Solaris.  Apache log messages now show
-     local time again. PR #7902 [Taketo Kabe <kabe@sra-tohoku.co.jp>]
-
-  *) apr_pstrcat() optimizations [Doug MacEachern, Jeff Trawick]
-
-  *) Make the apr_pool_is_ancestor logic public.  This is required for 
-     some new logic that is going into HTTPD.  I have left the join logic
-     in that function debug only.  [Ryan Bloom]
-
-  *) Clean up Win32 locks when the pool goes away.
-     [Justin Erenkrantz, Jeff Trawick]
-
-  *) Implement apr_get_home_directory for Win32.  [William Rowe]
-
-  *) Complete the implementation of LARGEFILE support on Win32, although
-     the mmap semantics still need a touch of work.  [William Rowe]
-
-  *) Fix the APR_XTHREAD support, and apr_sendfile mechanics, so we can
-     handle cross-threaded file handles on Win32.  [William Rowe]
-
-  *) Implement APR_READWRITE locks on Unix with POSIX rwlocks.
-     Introduce new apr_lock_acquire_rw() function which takes in 
-     APR_READER or APR_WRITER.  [Justin Erenkrantz]
-
-  *) Add apr_open_stdin.  This mirrors apr_open_stderr, except it works
-     on stdin.  [Aaron Bannert <abannert@ebuilt.com>]
-
-  *) Add apr_strtok(), a thread-safe flavor of strtok() which has the
-     same interface as strtok_r().  [Jeff Trawick]
-     
-  *) Add other child support to Win32 [Bill Stoddard]
-
-  *) Other-child registrations are automatically removed when the
-     associated pool is destroyed.  This avoids garbage in the list
-     of registrations when a pool with a registration is freed.
-     [Jeff Trawick]
-
-  *) Allow LTFLAGS to be overridden by the configure command-line 
-     (default="--silent") and introduce LT_LDFLAGS.  [Roy Fielding]
-
-  *) Add memory code kindly donated to APR by  
-       Elrond  <elrond@samba-tng.org> 
-       Luke Kenneth Casson Leighton <lkcl@samba-tng.org>
-       Sander Striker <striker@samba-tng.org>
-     [David Reid]
-
-  *) Fix a problem with the FreeBSD flavor of apr_sendfile() where we 
-     could return APR_EAGAIN+bytes_sent.  [Jeff Trawick]
-
-  *) Fix a problem on unixware where clearing h_errno wouldn't work.
-     Use set_h_errno() instead.  PR #7651  [Jeff Trawick]
-
-  *) Add the test and build directories (when present) to the recursive
-     make process, being sure that they are run last.  test is only done
-     recursively for make *clean targets.  [Roy Fielding]
-
-  *) Make the apr_mmap_create() function use the native_flags variable.
-     This allows us to actually create WRITEABLE MMAPs.
-     [Ed Korthof <ed@apache.org>]
-
-  *) Completely revamp configure so that it preserves the standard make
-     variables CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS and LIBS by moving
-     the configure additions to EXTRA_* variables.  Also, allow the user
-     to specify NOTEST_* values for all of the above, which eliminates the
-     need for THREAD_CPPFLAGS, THREAD_CFLAGS, and OPTIM.  Fix the setting
-     of INCLUDES and EXTRA_INCLUDES.  Check flags as they are added to
-     avoid pointless duplications.  Fix the order in which flags are given
-     on the compile and link lines.  [Roy Fielding]
- 
-  *) Fix DSO code on HP/UX.  We have to use == not =, and it makes more
-     sense to actually return errno, so that the return code means 
-     something.  [Ryan Bloom]
-
-  *) Clean up conditionals in unix DSO code so that we decide based on
-     the dynamic loading implementation, which we noticed at configure
-     time, instead of by operating system.
-     [Wilfredo Sanchez]
-
-  *) Add DSO support for dyld platforms (Darwin/Mac OS and OpenStep).
-     [Wilfredo Sanchez]
-
-  *) Amend the time code to better deal with time zones.
-     [David Reid]
-
-  *) Carefully select an appropriate native type for apr_int64_t and
-     define its format as APR_INT64_T_FMT and literal using APR_INT64_C().
-     [Justin Erenkrantz, William Rowe]
-
-  *) Make clean, distclean, and extraclean consistently according to the
-     Gnu makefile guidelines.  [Justin Erenkrantz <jerenkrantz@ebuilt.com>]
-
-  *) Initial implementation of of apr_filepath (get/set/parse_root and 
-     merge) for Windows.  [William Rowe]
-
-  *) Cleaned up implementation of of apr_filepath (get/set/parse_root
-     and merge) for Unix.  [Greg Stein, William Rowe]
-
-  *) Fixup the --enable-libtool option.  This allows the test directory
-     to compile again.  The test directory still doesn't work when
-     APR is configured without libtool.  [Ryan Bloom]
-
-  *) If we don't have sigwait() in the system, see if sigsuspend() is
-     available, and use that instead. [Wilfredo Sanchez]
-

[... 355 lines stripped ...]


Mime
View raw message