-*- coding: utf-8 -*- Changes for APR 1.3.13 Changes for APR 1.3.12 *) Fix detection of some Linux variants when configure is built with recent GNU tools. [Eric Covener] Changes for APR 1.3.11 *) Fix bad autoconf version number in messages from buildcheck.sh (called from buildconf). [Jeff Trawick] Changes for APR 1.3.10 *) Avoid a redundant fcntl() call in apr_file_open() where O_CLOEXEC is supported. PR 46297. [Joe Orton] *) Solaris 10 and later: Change the default cross-mutex mechanism from fcntl to pthread to resolve EDEADLK failures with some multi-threaded, multi-process applications (e.g., httpd's worker MPM with certain plug-in modules). [Jeff Trawick] *) Solaris pollcb support: Fix a hang in apr_pollcb_poll(). [Jeff Trawick] *) Solaris pollset support: Fix a 1.3.9 regression in apr_pollset_poll() which could result in a crash when the call was interrupted by a signal. PR 48030. [Jeff Trawick] *) Solaris pollset support: Fix a 1.3.9 regression in apr_pollset_poll() which resulted in invalid return codes from the APR function. A work- around was needed for bad return codes from 32-bit port_getn() on Solaris 10 x86. PR 48029. [Jeff Trawick] 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 ] 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 , 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 , Bojan Smojver] Changes for APR 1.3.6 *) On Linux/hppa flock() returns EAGAIN instead of EWOULDBLOCK. This causes proc mutex failures. [Stefan Fritsch ] *) 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 , Arkadiusz Miskiewicz ] 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 ] *) 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 ] *) 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 ] *) Add AC_MSG_RESULT after AC_MSG_CHECKING. PR 46427 [Rainer Jung ] *) 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 ] 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 ] 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 ] *) apr_getservbyname(): Use proper method for converting port to host byte order. PR 44903. [Chris Taylor ] *) 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 ] *) 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 ] *) 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 ] *) 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 , 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 ] *) 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 ] *) apr_file_write() on Windows: Fix return code when writing to a non- blocking pipe would have blocked. PR 43563. [Eric Covener ] *) 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 ] *) Register a cleanup only if APR_FILE_NOCLEANUP was not flagged in apr_file_mktemp. [Brian J. France ] *) Numerous build fixes for non-GCC builds and GCC builds on Win32, as well as WinCE builds. [Davi Arnaut , Curt Arnold , John Mark Vandenberg, Kouhei Sutou , William Rowe] *) Discard file buffers when running cleanups for exec. PR 41119. [Davi Arnaut , Bojan Smojver] *) Improve thread safety of assorted file_io functions. PR 42400. [Davi Arnaut ] *) 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 ] *) 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 ] *) Portably check for EEXIST in mktemp code. PR 40818 [Kenneth Golomb ] *) 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 ] *) Add some documentation on the format matched by apr_fnmatch. [David Glasser ] *) Add apr_hash_clear. [Daniel L. Rall ] *) Don't try to build apr_app.c on MinGW. [Matthias Miller ] *) Fix the timeout converstion in apr_pollset with the KQueue backend. [Marco Molteni ] *) Support MinGW. [John Vandenberg, Justin Erenkrantz] *) Implement apr_thread_yield on Unix in terms of pthread_yield or sched_yield. [Keisuke Nishida ] *) 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 ] *) NetBSD: Avoid leaving zombie process when using apr_signal() to ignore SIGCHLD. PR 36750. [Todd Vierling ] *) Implement support for apr_proc_mutex_trylock() on Unix platforms. PR 38785. [Chris Darroch ] *) 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 ] *) 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.x and later: *) http://svn.apache.org/viewvc/apr/apr/branches/1.2.x/CHANGES?view=markup Changes for APR 1.1.x and later: *) http://svn.apache.org/viewvc/apr/apr/branches/1.1.x/CHANGES?view=markup Changes for APR 1.0.x and later: *) http://svn.apache.org/viewvc/apr/apr/branches/1.0.x/CHANGES?view=markup Changes for APR 0.9.x and later/earlier: *) http://svn.apache.org/viewvc/apr/apr/branches/0.9.x/CHANGES?view=markup