STATUS revision b187d568e1507d75139ebc13ca945b38fc05d55c
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncApache 2.0 STATUS:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncLast modified at [$Date: 2000/07/12 22:04:42 $]
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncRelease:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync 2.0a5 : ???
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync 2.0a4 : released June 7, 2000
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync 2.0a3 : released April 28, 2000
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync 2.0a2 : released March 31, 2000
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync 2.0a1 : released March 10, 2000
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncRELEASE SHOWSTOPPERS:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * apachectl not being built or installed
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Get mod_auth_digest working under win32
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync - APR_HAS_RANDOM should be defined on windows and there is a
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync lib/apr/misc/win32/rand.c which is basically a copy of what
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync mod_auth_digest used to use.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * suEXEC doesn't work
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Status: Manoj has posted an patch to fix this.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync <19991103003605.A20612@samosa.mindspring.com>
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Enable the Windows MPM to honor max_requests_per_child
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Status: Bill will fix this.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Get Apache working on Windows 95/98. The following work
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync (at least) needs to be done:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync - winnt MPM: Fix 95/98 code paths in the winnt MPM. There is some NT
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync specific code that is still not in NT only code paths
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync - IOL binds to APR sendfile, implemented with TransmitFile, which
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync is not available on 95/98.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Test access logging with multiple threads. Will the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync native file I/O calls serialize automagically like the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync CRT calls or do we need to add region locking each time
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync we access the logs?
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Status:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Complete the revamp the service environment and relocation
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync into the WinNT MPM. Changes ServerRoot service registry
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync parameter into ConfigArgs for multiple service startup parameters.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Problems to fix in the revamp: -k shutdown/restart are broken,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync signals are not being acknowledged. Close window and shutdown
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync also seem out of sorts.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync OtherBill is working on this
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: fix build/run time environment to remove ApacheCore.dll
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync linkage from ab.exe and htdigest.exe.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * We need a thread-safe resolver, at least on Unix.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Status: The best known candidate would be something from
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync BIND v9.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Status: Greg asks, "why? doesn't gethostbyname_r() handle this?"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Modify mod_cgi and mod_cgid to deal with directories. This allows
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync a lot of directives to be removed from the core.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Combine log_child and piped_log_spawn. Clean up http_log.c.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Common logging API.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Create unified scoreboard API and implementation shared across
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync the MPMs
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Document mod_file_cache.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * OS/2: Get loadable modules working again. Requires shared core support
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync which doesn't appear to be catered for in the current build system.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * OS/2: Make mod_status work for spmt_os2 MPM.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Build scripts do not recognise AIX 4.2.1 pthreads, so the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pthread MPMs will not build.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Enable the winnt MPM to use the new scoreboard API
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Implement ap_shm_ functions in APR.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Win9x console window still won't play nice with the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync close window, logoff and shutdown scenarios.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Add a simple hold console open patch (wait for close or
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync the ESC key, with a nice message) if the server died a bad
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync death (non-zero exit code) in console mode.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Platforms that do not support fork (primarily Win32 and AS/400)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Consider introducing HAVE_FORK feature macro. Architect start-up code
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync that avoids initializing all the modules in the parent process on
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync platforms that do not support fork.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Clean the code. There are a lot of places we used APR but didn't
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync remove the hacks that were required for the cross-platform code in
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync 1.3. We need to make the code look like APR was supposed to be there.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Go throught the 1.3 Bug DB and research the bugs marked "suspended".
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync People were told these would be considered for inclusion in Apache 2.0,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync it would be nice to actually do so.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Migrate the MPM over to use APR thread/process calls. This
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync would eliminate some code in the Win32 branch that essentially
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync duplicates what is in APR.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Bill says we need a new procattr, APR_CREATE_SUSPENDED (or
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync something similar) to direct ap_create_process to create the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync process suspended. We also need a call to wake up the suspended
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync process This may not be able to be implemented everywhere though.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * There are still a number of places in the code where we are
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync loosing error status (i.e. throwing away the error returned by a
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync system call and replacing it with a generic error code)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Win32: Implement reliable piped logs on Windows
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Use APR to get rid of more platform dependancies.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Status: Ryan Bloom <rbb@covalenet.net> is working on this.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * The connection status table is not very efficient. Also, very few stats
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync are exported to the connection status table (easy to fix), and mod_status
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync is ugly.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Mass vhosting version of suEXEC.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Replace tables with a proper opaque ADT that has pluggable
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync implementations (including something like the existing data type,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync plus hash tables for speed, with options for more later).
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Status: fanf is working on this.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * configuration option to use *DBM
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Status: Greg +1 (volunteers)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * add SDBM into src/lib/sdbm/ as a default/fallback DBM implementation.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync SDBM is used by Perl, mod_dav, mod_sssl, others for basic DBM support.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Status: Greg +1 (volunteers)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Integrate mod_dav.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Message-id: <20000625173247.M29590@lyra.org>
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Status: works. passes initial regression testing. Joe Orton
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync reports success with his "cadaver" tool.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync Some additional items remaining:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync - case_preserved_filename stuff
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync - fix and re-enable sdbm_lock.c
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync - find a new home for ap_text(_header)
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync - is it possible to remove the DAV: namespace stuff from util_xml?
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync * ap_core_translate() and its use by mod_mmap_static are a bit wonky.
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync The function should probably be exposed as a utility function (such
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync as ap_translate_url2fs() or ap_validate_fs_url() or something).
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync Another approach would be a new hook phase after "translate" which
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync would allow mod_mmap_static to munge what the translation has
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync decided to do.
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync Status: Greg +1 (volunteers), Ryan +1
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync * Go through ap_config.h and namespace-protect the symbols (e.g. USE_*).
8a5e0b7c43d7ee861689984edc2abd86b9ed4456vboxsync Some symbols can/should move to mpm_common.h where possible.
a4ae8b6f30e62ce1edef9e5edf7c215b1f69915cvboxsync
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync * Explore use of a post-config hook for the code in http_main.c which
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync ap_sort_hooks() [to reduce the logic in main()]
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync * read the config tree just once, and process N times (as necessary)
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync * add a version number to ap_initialize() as an extra failsafe against
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync (APR) library version skew.
7e032664d31552364e83b411950d6e7c96b0b880vboxsync MsgID: <Pine.LNX.4.10.10005231712380.31927-100000@nebula.lyra.org>
7e032664d31552364e83b411950d6e7c96b0b880vboxsync Status: Greg +1 (volunteers), Jeff +1, Ryan +1, Tony -0(?)
* mod_info to use the configuration tree
* add output filtering
Greg's patch:
MsgID: <20000701162857.D29590@lyra.org> (patch)
MsgID: <20000704025038.V29590@lyra.org> (demo)
Status: Greg +1, Jim +1(?), Dirk -0, Ryan -0
Ryan's patch:
MsgID: <Pine.LNX.4.21.0007072059120.18877-100000@koj.rkbloom.net>
Status: Dirk +1, Ryan +1, Greg -1
Ryan's alternate patch:
MsgID: <Pine.LNX.4.21.0007091940440.16496-100000@koj.rkbloom.net>
Status: Ryan -0, Greg -1
Other bugs that need fixing:
* MaxRequestsPerChild measures connections, not requests.
Until someone has a better way, we'll probably just rename it
"MaxConnectionsPerChild".
* Regex containers don't work in an intutive way
Status: No one has come up with an efficient way to fix this
behavior. Dean has suggested getting rid of regex containers
completely.
* SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
sigwaiting thread. We need to work around this, perhaps unless
there is hope soon for a fixed glibc.
* The mod_cgid daemon process isn't always cleaned up when httpd
gets SIGTERM. Jeff thinks it may be as simple as registering
the daemon process for cleanup with the proper pool, but he hasn't
looked at it in enough detail.
* The MM library is built as static and shared library. This should
be set up to build only the required version.
Other features that need writing:
* Finish infrastructure in core for async MPMs
Status: post 2.0
* TODO in source -- just do an egrep on "TODO" and see what's there
Documentation that needs writing:
* Mod_status docs are needed.
* The concept of MPMs, especially if we ship more than one MPM for a
given platform
* New directives in the various MPMs and appropriate links from
obsolete directives in core.html to the MPM documentation.
* Revise manual/stopping.html and the last part of
manual/misc/perf-tuning.html to take account of the MPMs.
* API documentation
Status: Ben Laurie has written some hooks documentation
(apache-2.0/htdocs/hooks.html)
* Changes since 1.3.9 can be more easily seen in the commitlog file
dev.apache.org:/home/cvs/CVSROOT/commitlogs/apache-2.0
which includes some of Roy's comments when the changes were
committed in rough change-sets by purpose. Note that the commitlog
does not show the contents of new files until later.
Available Patches:
* Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
performance
Status: These were written for 1.3, and are awaiting a port to
2.0
* Jim Winstead's <jimw@trainedmonkey.com> patch to add CookieDomain and
other small mod_usertrack features
Open issues:
* What do we do about mod_proxy?
* Which MPMs will be included with Apache 2.0?
* Is conf/highperformance.conf-dist obsolete? It looks obsolete.