APACHE PORTABLE RUNTIME (APR) LIBRARY STATUS: -*-text-*- Last modified at [$Date: 2001/02/04 21:37:49 $] Release: 2.0a9 : released December 12, 2000 2.0a8 : released November 20, 2000 2.0a7 : released October 8, 2000 2.0a6 : released August 18, 2000 2.0a5 : released August 4, 2000 2.0a4 : released June 7, 2000 2.0a3 : released April 28, 2000 2.0a2 : released March 31, 2000 2.0a1 : released March 10, 2000 RELEASE SHOWSTOPPERS: * Unix apr_stat/lstat/getfileinfo were very fast hacks, needs review. Will suggests: Unix is looking pretty good. Ignore APR_FINFO_NAME issues for b1, I've noted that issue below. * OS2 apr_stat/lstat/getfileinfo/dir_read were very fast hacks, need cleanup, toggle messy (APR_INCOMPLETE) result when appropriate. RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP: * Solve Win32 APR_CHR, APR_BLK, etc for Win32 apr_stat without GetFileType? How about inode/dev/nlink? Status: Will's WIP * SysV semaphore support isn't usable by Apache when started as root because we don't have a way to allow the semaphore to be used by the configured User and Group. Current work-around: change the initial permissions to 0666. Needed code: See 1.3's http_main.c, SysV sem flavor of accept_mutex_init(). Status: Jim will look into this * Build scripts do not recognise AIX 4.2.1 pthreads * Win32: Implement apr_shm_ functions * FirstBill says we need a new procattr, APR_CREATE_SUSPENDED (or something similar) to direct ap_create_process to create the process suspended. We also need a call to wake up the suspended process This may not be able to be implemented everywhere though. Status: OtherBill asks, why? What is the benefit, how is it portably implemented? Unless this creates some tangible that mirrors another platform, then I'm -1. * Replace tables with a proper opaque ADT that has pluggable implementations (including something like the existing data type, plus hash tables for speed, with options for more later). Status: fanf is working on this. * add a version number to apr_initialize() as an extra failsafe against (APR) library version skew. MsgID: Status: Greg +1 (volunteers), Jeff +1, Ryan +1, Tony -0(?), david +1 * The MM library is built as static and shared library. This should be set up to build only the required version. * add apr_crypt() and APR_HAS_CRYPT for apps to determine whether the crypt() function is available, and a way to call it (whether it is located in libc, libcrypt, or libufc) Status: Greg +1 (volunteers) * apr_create_lock() changes: - It ignores the "type" parameter, so toss it. - The fname param is allowed to be NULL on the Unix platform. Change it to always use the passed value, and check callers. rbb says: The type parameter is supposed to be used to determine if we are working with a read/write lock or a mutex. The fname parameter is essentially required if you want to be portable, but I dislike wasting cycles to outsmart the programmer. Status: david +1 rbb -1 * configure.in does post-processing on the AC_OUTPUT files (for VPATH support). This means that config.status doesn't do the right thing when you re-run it. We ought to revamp the makefiles to do the right AC_SUBST stuff rather than depend upon rewriting. Sascha: As the rewriter is a crude hack, I would not worry too much about it. It is designed to go away once we have a proper build system in place. One of the perceived deficiencies of automake is that it uses AC_SUBST too often, thereby slowing down the task of generating Makefiles significantly, because it applies dozens of substitutions to each Makefile. And why? Make's built-in macro processing is much more powerful, and combined with the include facility, generating Makefiles becomes simpler and faster. * use os_(un)cork in network_io/unix/sendrecv.c for FreeBSD's sendfile implementation. david: The socket options stuff is now in and using it should reduce the number of syscalls that are required for os_cork and uncork, so the code should be reviewed to make use of the new calls. If no-one beats me to it I'll get around to it soonish... * toss the per-Makefile setup of INCLUDES; shift to rules.mk.in * Change the return type of apr_hash_count() to some counter type (like "int") instead of a size type (apr_size_t). Jeff will do this Real Soon Now (so he says on 20010121). * add the rest of the pool accessor declare/impl macros. Status: Greg volunteers * I think apr_open_stderr() and friends dup() the descriptor. That would allow the new/returned file to be closed (via pool cleanup or manually) without accidentally closing stderr/out. Documentation that needs writing: * API documentation Stuff waiting for code thawing after Beta 1: * Implement APR_FINFO_ICASE/APR_FINFO_NAME for stat'ish calls. Can wait till after b1, will be required to eliminate canonical and add that functionallity in-line with directory_walk, which is _not_ planned for 2.0b1, but immediately afterwards. It's required to complete Apache/WinNT's Unicode schema as well. Note: Will doesn't like his original APR_FINFO_ICASE definition. * Identify and implement those protection bits that have general usefulness, perhaps hidden, generic read-only [immutable], effective current user permissions, etc.