]> granicus.if.org Git - apache/blob - STATUS
re-read this, and withdrew my vote. I thought we were talking binbuild,
[apache] / STATUS
1 APACHE 2.0 STATUS:                                              -*-text-*-
2 Last modified at [$Date: 2002/02/06 15:56:07 $]
3
4 Release:
5
6     2.0.32  : in development
7     2.0.31  : rolled Feburary 1, 2002.
8     2.0.30  : tagged January 8, 2002.  not rolled.
9     2.0.29  : tagged November 27, 2001.  not rolled.
10     2.0.28  : released November 13, 2001
11     2.0.27  : rolled November 6, 2001
12     2.0.26  : tagged October 16, 2001.  not rolled.
13     2.0.25  : rolled August 29, 2001
14     2.0.24  : rolled August 18, 2001
15     2.0.23  : rolled August 9, 2001
16     2.0.22  : rolled July 29, 2001
17     2.0.21  : rolled July 20, 2001
18     2.0.20  : rolled July 8, 2001
19     2.0.19  : rolled June 27, 2001
20     2.0.18  : rolled May 18, 2001
21     2.0.17  : rolled April 17, 2001
22     2.0.16  : rolled April 4, 2001
23     2.0.15  : rolled March 21, 2001
24     2.0.14  : rolled March 7, 2001
25     2.0a9   : released December 12, 2000
26     2.0a8   : released November 20, 2000
27     2.0a7   : released October 8, 2000
28     2.0a6   : released August 18, 2000
29     2.0a5   : released August 4, 2000
30     2.0a4   : released June 7, 2000
31     2.0a3   : released April 28, 2000
32     2.0a2   : released March 31, 2000
33     2.0a1   : released March 10, 2000
34
35 Please consult the following STATUS files for information
36 on related projects:
37
38     * srclib/apr/STATUS
39     * srclib/apr-util/STATUS
40     * docs/STATUS
41
42
43 RELEASE SHOWSTOPPERS:
44     * 31 BETA STATUS:
45         running on Daedalus since  02-Feb-2002 7:58 PST (need 3 days)
46         Compiles on : AIX 4.3, Solaris, FreeBSD 3.4 & 4.5, Win32, 
47                       Linux 2.2 & 2.4, HPUX
48         Broken on: Win32 [no error logging within service, other bugs]
49         for beta
50             +1 : Aaron, Jim
51             +0 : Lars, Justin, trawick
52             -0 : OtherBill
53             -1 : BillS, Ian, gregames, BrianP
54         bumps since original tag:
55             * mod-dir patch
56             * scoreboard x2 : 1 to fix gracefull restarts
57                               1 to fix netware
58             * win32/locks.c : to fix mod_rewrite on win32
59
60         problems with v31:
61             * libtool/binbuild on AIX -- possible addition of patched 
62                     binbuild.sh to 31-beta roll
63                 +1: Ian, Justin
64                 +0:
65                 -1:
66                 Jeff says: We can't do anything about libtool since AIX
67                            needs a version that won't work on some
68                            platforms.  Handle this in the README.
69                            The binbuild issue isn't AIX.  It is
70                            something that could happen anywhere that
71                            the binbuild-er has their own expat.
72                            Handle this by patching binbuild.sh for a
73                            beta roll or putting a patch in the README for
74                            use by people who want to do binbuild but
75                            have expat installed locally.
76                 gregames:  why can't we roll a second tarball with the
77                            appropriate libtool version?  doesn't
78                            Darwin need it as well as AIX? 
79
80             * erroneous check in an AP_DEBUG_ASSERT() call.  Only happens
81               in maintainer mode.  Fixed in modules/http/http_protocol.c
82               revision 1.391.  Add item in release notes:
83                 +1: Justin, Cliff, Aaron, BillS, Jim, trawick
84                 +0:
85                 -1:
86
87             * seg faults in core_input_filter when the client goes away
88               before any POST body bytes are received.
89                 Jeff committed a fix with server/core.c revision 1.144.
90                 Justin committed a fix with server/protocol.c revision 1.78
91                 (server/protocol.c revision 1.79 demotes a potentially
92                  annoying error message)
93
94             * FirstBill reports problem [re]starting as-a-service, shared
95               score is suspect.  OtherBill is investigating... has found
96                  . created restart and shutdown events, only restart
97                    survived initialization on XP, although breaking into 
98                    the debugger interferes with reproducing the bug.  
99                    Perhaps in FirstBill's example _restart didn't survive.
100                  . Scoreboard appears irrelevant to the problem.
101                  . This looks like handle corruption in NT/XP
102                  . Args are not initialized correctly when the -k install
103                    is given.
104               OtherBill will not create Win32 binaries due to this bug.
105
106             * mod_auth_dbm can't open a Berkeley DB password file on Unix
107                 Justin postulates that this might be related to the fact
108                 that mod_auth_dbm wasn't using apr-util.  See
109                 modules/aaa/mod_auth_dbm.c revision 1.42 and
110                 module/aaa/config.m4 revision 1.54.  Also, FreeBSD's DB
111                 variant was not properly detected.  See
112                 apr-util/build/apu-conf.m4 revision 1.31 and
113                 apr-util/dbm/apr_dbm_berkeleydb.c revision 1.17.
114             
115             * Madhu reports that the worker MPM doesn't shutdown nicely
116               after a stress test.
117
118             * mod_autoindex displays the wrong icon for subdirectories
119               on Unix
120
121             * anon shared memory not allocating enough 
122                 (fix is apr/shm/unix/shm.c 1.14)
123
124     * other BETA possibilities
125       31 + fixes for all non-cosmetic problems seen on daedalus
126         +1: trawick, Justin
127         +0:
128         -1:
129
130     * ap_directory_walk skips some per-dir config merge functions
131       if there is no "<Directory />" block in the configuration
132         Message-ID: <m3itbdiijq.fsf@rdu163-40-092.nc.rr.com>
133         * That is very unlikely, merges are additive.  Much more likely,
134           the default SetOutputFilter default or merge is borked.
135           Unless it's the code that permits 'null' merges, per module.
136           Still, it's probably in SetOutputFilter's behavior.
137         * BrianP notes: directory_walk's handling of trailing slashes
138           appears to be the cause: http://www.apachelabs.org/apache-mbox/200112.mbox/%3c3C1CF721.1090300@pacbell.net%3e
139
140     * Test suite failures:
141       o worker is also failing some of the 'cgi' subtests
142       (see <URL:http://Source-Zone.Org/Apache/regression/>):
143         Justin says: "Worker should be fine and passes httpd-test here.
144                       If you can provide evidence that it can be reproduced
145                       outside of httpd-test, then it's a showstopper.  I
146                       think it's a perl or a httpd-test problem."
147         Not a showstopper: Justin
148
149     * If any request gets to the core handler, without a flag that this 
150       r->filename was tested by dir/file_walk, we need to 500 at the very 
151       end of the ap_process_request_internal() processing.  This provides
152       authors of older modules better compatibility, while still improving
153       the security and robustness of 2.0. 
154         Status: still need to decide where this goes, OtherBill comments...
155         Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
156         we need to look at halting this in the 'default handler' case,
157         and that implies pushing the 'handler election' into the request
158         internal processing phase from the run request phase.
159
160     * There is a bug in how we sort some hooks, at least the pre-config
161       hook.  The first time we call the hooks, they are in the correct 
162       order, but the second time, we don't sort them correctly.  Currently,
163       the modules/http/config.m4 file has been renamed to 
164       modules/http/config2.m4 to work around this problem, it should moved
165       back when this is fixed.    rbb
166         Justin says: "Is this really a showstopper?  This has been here
167                       forever.  What's wrong?  Does this have to do with
168                       autoconf or m4?"
169         Not a showstopper: Justin, BrianP, trawick, gregames
170
171     * Convert all instances of the old apr_lock_t type to the new
172       types (once they are fully supported in APR).
173         Status: Aaron is working on converting INTRAPROCESS
174                 to apr_thread_mutex_t types. Full replacements for
175                 LOCKALL and CROSS_PROCESS are not yet complete on all
176                 platforms, and should only be used in MPMs like worker
177                 with limited OS exposure.
178         BrianP asks: "Is this really a showstopper?"
179         IanH says: "If we don't do it before we go live we will have 2
180                     different API's to support in APR"
181
182     * A binbuild installation picks up the right libraries when
183       running apachectl because we set the appropriate environment
184       variable, but ab, htpasswd, etc. don't know how to pick up apr,
185       apr-util, etc.
186         Message-ID: <20020116000226.GA15991@ebuilt.com>
187         Justin says: "You could always build all of the binaries
188                       statically if you don't want to let libtool
189                       handle it.  At most, I don't consider this a
190                       a release showstopper as it is a packaging issue."
191         Ken sez: "Showstopper because, until it's the default, it
192                  violates the P of LA.  Binaries will give strange
193                  errors and not run if moved."
194         Status: Aaron volunteers: I'll commit a patch to allow all
195                 the support binaries to be built statically against
196                 libapr/libaprutil/etc and then enable it in binbuild.
197         gregames says: what about httpd?  yeah, it works at the moment
198                        if you use apachectl.  But I've already heard
199                        complaints about not being able to execute 
200                        httpd directly.
201
202 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
203
204     * The Add...Filter and Set...Filter directives do not allow the
205       administrator to order filters, beyond the order of filename (mime)
206       extensions.  It isn't clear if Set...Filter(s) should be inserted 
207       before or after the Add...Filter(s) which are ordered by sequence of
208       filename extensions.  At minimum, some sort of +-[0-10] syntax seems
209       like the quickest fix for a 2.0 gold release.
210         Justin says: "Could we delay this for a point release or 2.1?"
211         Not a showstopper: justin, wrowe, trawick, stoddard, Jim, Ian, Aaron,
212                            gregames
213
214     * Should we always build binaries statically unless otherwise
215       indicated?
216         Message-ID: <20020129210006.B23512@Lithium.MeepZor.Com>
217
218       +1:  
219       -1:  Justin, Ian
220         
221     * If the parent process dies, should the remaining child processes
222       "gracefully" self-terminate. Or maybe we should make it a runtime
223       option, or have a concept of 2 parent processes (one being a 
224       "hot spare").
225       See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
226
227       Self-destruct: Ken, Martin
228       Not self-destruct: BrianP, Ian, Cliff, BillS
229       Make it runtime configurable: Aaron, Jim, Justin
230       Have 2 parents: +1: Jim
231                       -1: Justin
232                       +0: Martin (while standing by, could it do
233                                   something useful?)
234       look at accept() error handling first: gregames
235
236     * Make some modifications to the scoreboard creation routines,
237       prefer anonymous shared memory, and allow a configuration
238       directive to override the defaults.
239         Message-ID: <20020130080804.C16977@clove.org>
240       Status: Aaron volunteers
241
242     * Get perchild to work on platforms other than Linux. This
243       will require a portable mechanism to pass data and file/socket
244       descriptors between vhost child groups. An API was proposed
245       on dev@apr:
246         Message-ID: <20020111115006.K1529@clove.org>
247        Vote: Is a non-portable perchild going to hold up a GA release?
248         Yes: Ken
249          No: Aaron, Justin, trawick, stoddard, Jim, Ian, BrianP, gregames
250
251     * Recent changes to ap_rgetline may have broken EBCDIC boxes.
252         Message-ID: <20020122072605.GF28051@ebuilt.com>
253         Justin says: "I don't have an EBCDIC box to test on.  A potential
254                       solution is to split out ap_rgetline into two
255                       functions as described in this message."
256         gregames says: I see the breakage now, and volunteer to fix it
257                        when things calm down a little.  It looks OK when 
258                        there are complete lines and no mime continuations.
259
260     * Modify the worker MPM so that it doesn't need to create and
261       destroy a pool for each request--possibly by adopting a
262       leader/follower model in which each worker owns a persistent
263       ptrans pool (like the prefork MPM) and the workers take
264       turns acting as listeners...this approach might also help
265       reduce context-switching
266
267     * CGI single-byte reads
268       BrianP suggests that this is caused by the ap_scan_script_header_err()
269       routine, which will do single-byte reads until it finds the end
270       of the header, at which point it constructs a pipe-bucket (buffered)
271       to read from.
272
273       Proposed solution in:
274         Message-ID: <3C36ADAF.60601@cnet.com>
275
276     * Try to get libtool inter-library dependency code working on AIX.
277
278         Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
279
280       Justin says: If we get it working on AIX, we can enable this
281                    on all platforms and clean up our build system
282                    somewhat.
283       Jeff says:   I thought I tested a patch for you sometime in
284                    January that you were going to commit within a few
285                    days.
286
287     * Handling of %2f in URIs.  Currently both 1.3 and 2.0
288       completely disallow %2f in the request URI path (see
289       ap_unescape_url() in util.c).  It's permitted and passed
290       through in the query string, however.  Roy says the
291       original reason for disallowing it, from five years ago,
292       was to protect CGI scripts that applied PATH_INFO to
293       a filesystem location and which might be tricked by
294       ..%2f..%2f(...).  We *should* allow path-info of the
295       form 'http://foo.com/index.cgi/path/to/path%2finfo'.
296       Since we've revamped a lot of our processing of path
297       segments, it would be nice to allow this, or at least
298       allow it conditionally with a directive.
299
300     * FreeBSD, threads, and worker MPM.  All seems to work fine 
301       if you only have one worker process with many threads.  Add 
302       a second worker process and the accept lock seems to be
303       lost.  This might be an APR issue with how it deals with
304       the child_init hook (i.e. the fcntl lock needs to be resynced).
305       More examination and analysis is required.
306       Status: This has also been reported on Cygwin.  
307
308       Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus)
309
310       Justin says: So, FreeBSD-CURRENT and Cywin have the same 
311                    problem.  Yum.  If another platform has this
312                    with worker, this becomes a showstopper.
313       Aaron says: I spent some time disecting this and have come to
314               the conclusion that it is not a problem in the worker MPM
315               (or at least, it is not isolated to a problem in worker).
316               I'll list some of the problems I'm seeing in case someone
317               else wants to pick up where I've left off:
318                - Delivery of just about any signal to one of the child
319                  processes will send it into an infinite loop as well.
320                - Even though the parent is spinning out of control,
321                  at first the child or children will appear to work
322                  properly. At times it is possible to get it into a state,
323                  however, where a request will hang until another concurrent
324                  request "kicks" the first, at which point the second will
325                  hang. My theory is that this has to do with the
326                  pthread_cond_*() implementation in FreeBSD, but it's still
327                  possible that it is in APR.
328       
329       Justin adds: Oh, FreeBSD threads are implemented entirely with 
330                    select()/poll()/longjmp().  Welcome to the nightmare.
331                    So, that means a ktrace output also has the thread 
332                    scheduling internals in it (since it is all the same to 
333                    the kernel).  Which makes it hard to distinguish between 
334                    our select() calls and their select() calls.  
335                    *bangs head on wall repeatedly*  But, some of the libc_r 
336                    files have a DBG_MSG #define.  This is moderately helpful
337                    when used with -DNO_DETACH.  The kernel scheduler isn't 
338                    waking up the threads on a select().  Yum.  And, I bet 
339                    those decrementing select calls have to do with the 
340                    scheduler.  Time to brush up on our OS fundamentals.
341
342     * There is increasing demand from module writers for an API
343       that will allow them to control the server Ã  la apachectl.
344       Reasons include sole-function servers that need to die if
345       an external dependency (e.g., a database) fails, et cetera.
346       Perhaps something in the (ever more abused) scoreboard?
347         rbb:  I don't believe the scoreboard is the correct mechanism
348         for this.  We already have a pipe that goes between parent
349         and child for graceful shutdown events, along with an API that
350         can be used to send a message down that pipe.  In threaded MPMs,
351         it is easy enough to make that one pipe be used for graceful
352         and graceless events, and it is also easy to open that pipe
353         to both parent and child for writing.  Then we just need to figure
354         out how to do graceless on non-threaded MPMs.
355
356     * revamp the input filter behavior, per discussions since
357       February (and especially at the hackathon last
358       April). Specifically, ap_get_brigade will return a brigade with
359       *up to* a specific number of bytes, or a "line" of data. The
360       read may be blocking or nonblocking. ap_getline() will be
361       refactored into apr_brigade_getline(), and then DECHUNK can use
362       f->next (ap_getline will always read "top of input stack"). Also 
363       fix the bug where request body content will end up closing the
364       connection (buggering up persistent conns).
365       Status: Justin is working on this as fast as he can.
366               The core input filters, HTTP-related filters, mod_ssl,
367               mod_proxy, and ap_[r]getline are switched to the new logic.  
368
369       - socket bucket and core input filter changes. see end of
370         message ID (Feb 27): <20010227075326.S2297@lyra.org>
371
372       - fix up ap_get_brigade() semantics, fix bug in DECHUNK /
373         ap_getline. many messages (plus their threads) (Apr/May):
374           Message-ID: <20010402101207.J27539@lyra.org>
375           Message-ID: <3AF7F921.D2EEC41A@algroup.co.uk>
376           Message-ID: <20010508190029.E18404@lyra.org>
377
378       - further work with combining/tweaking the builtin filters:
379           Message-ID: <20010509115445.D1374@lyra.org>
380
381       - thoughts on filter modes:
382           Message-ID: <021b01c14dee$09782af0$93c0b0d0@roweclan.net>
383
384       - proposal for getline rewrite:
385           Message-ID: <20011231104019.GD3904@ebuilt.com>
386
387       - patch for getline rewrite:
388           Message-ID: <20020122072605.GF28051@ebuilt.com>
389
390       - Change ap_get_brigade prototype:
391           Message-ID: <20020120115136.GI17601@ebuilt.com>
392
393     * Allow the DocumentRoot directive within <Location > scopes?  This
394       allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
395       by a <Directory /somepath/foo> to become simply 
396       <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
397       and in-your-face.)  DocumentRoot unset would be accepted [and would
398       not permit content to be served, only virtual resources such as
399       server-info or server-status.
400         This proposed change would _not_ depricate Alias.
401
402     * Win32: Rotatelogs sometimes is not terminated when Apache
403       goes down hard.  FirstBill was looking at possibly tracking the 
404       child's-child processes in the parent process.
405         OtherBill asks, wasn't this fixed? 
406         stoddard: Not fixed. Shared scoreboard might offer a good
407         way for the parent to keep track of 'other child' processes
408         and whack them if the child goes down.
409
410     * Win32: Add a simple hold console open patch (wait for close or
411         the ESC key, with a nice message) if the server died a bad 
412         death (non-zero exit code) in console mode.
413         Resolution: bring forward same ugly hacks from 1.3.13-.20
414
415     * Port of mod_ssl to Apache 2.0:
416
417       The current porting state is summarized in modules/ssl/README. The
418       remaining work includes:
419       (1) stablizing/optimizing the SSL filter logic
420       (2) Enabling the various SSL caching mechanisms (shmcb, shmht)
421       (3) Enabling SSL extentions
422       (4) Trying to seperate the https filter logic from mod_ssl -
423           This is to facilitate other modules that wish to use the https
424           filter or the mod_ssl logic or both as required.
425         Justin: mod_ssl filter logic is redone, so that should be fine.
426                 Madhu has submitted a patch for SSL caching - however, I
427                 am -0 on that patch as I *think* we could implement the
428                 shared memory another way that is much cleaner (i.e.
429                 treat shmem directly as a dbm via APR routines).  Justin 
430                 also thinks that the https filter logic may be sufficiently
431                 decoupled now, but isn't really sure.
432
433     * Performance & Debug: Eliminate most (and perhaps all) of the 
434       malloc/free calls in the bucket brigade code.  Need some 
435       light weight memory management functions that allow freeing 
436       memory (putting it back into a memory pool) when it is no 
437       longer needed. Enabling simple debugging features like guard
438       bands, double free detection, etc. would be cool but certainly
439       not a hard requirement.
440
441           Status: Cliff started to implement this using SMS as has
442                   been discussed at length for months, but since
443                   SMS is not being used anywhere else in the server,
444                   several people expressed the opinion that we should
445                   get rid of it entirely, meaning that the buckets
446                   need their own memory management (free list) functions.
447                   Cliff will implement that this weekend so we at least
448                   have something to look at/compare with.
449
450     * Eliminate unnecessary creation of pipes in mod_cgid
451
452     * the autoconf setup should be fixed to default to using the 
453       "Apache" layout from config.layout, and each variable settable
454       in a layout should be overridable on the command line.  Plus,
455       what we do right now just doesn't seem to fully fit into how autoconf
456       works, eg. AC_PREFIX_DEFAULT issues.
457         Message-ID: <Pine.BSF.4.20.0104031557420.20876-100000@alive.znep.com>
458
459     * Combine log_child and piped_log_spawn. Clean up http_log.c.
460       Common logging API.
461
462     * Document mod_file_cache.
463
464     * Platforms that do not support fork (primarily Win32 and AS/400)
465       Architect start-up code that avoids initializing all the modules 
466       in the parent process on platforms that do not support fork.
467
468     * Win32: Migrate the MPM over to use APR thread/process calls. This
469       would eliminate some code in the Win32 branch that essentially
470       duplicates what is in APR.
471
472     * There are still a number of places in the code where we are
473       losing error status (i.e. throwing away the error returned by a
474       system call and replacing it with a generic error code)
475
476     * Mass vhosting version of suEXEC.
477
478     * All DBMs suffer from confusion in support/dbmmanage (perl script) since 
479         the dbmmanage employs the first-matched dbm format.  This is not
480         necessarily the library that Apache was built with.  Aught to
481         rewrite dbmmanage upon installation to bin/ with the proper library 
482         for predictable mod_auth_dbm administration.
483         Questions; htdbm exists, time to kill dbmmanage, or does it remain
484                    useful as a perl dbm management example?  If we keep it,
485                    do we address the issue above?
486
487     * use apu_dbm in mod_auth_dbm
488         Status: Greg +1 (low-priority volunteer)
489         Justin says: "Seems like this is already there, so should we just 
490                       remove the other DBM code in that file?  If you want 
491                       to use gdbm, or dbm, etc, you should tell apr-util."
492         Will says: "bs - I may choose the fastest - most efficient native
493                     dbm implementation, for shared proc caches, ssl session
494                     caching, etc, but that has nothing to do with maintaining
495                     a userlist via dbm, which has to remain readable between
496                     builds/machines, etc.  The use-multiple database schema
497                     for apr-util would let us do this with just apr, though."
498                 Ian says:  "multi-dbm is in, but it still has ndbm support hardcoded
499                             is this still required? isn't ndbm supported via gdbm?"
500
501
502     * Integrate mod_dav.
503         Some additional items remaining:
504         - case_preserved_filename stuff
505             (use the new canonical name stuff?)
506         - find a new home for ap_text(_header)
507         - is it possible to remove the DAV: namespace stuff from util_xml?
508
509     * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
510       are a bit wonky.  The function should probably be exposed as a utility 
511       function (such as ap_translate_url2fs() or ap_validate_fs_url() or 
512       something).  Another approach would be a new hook phase after
513       "translate" which would allow the module to munge what the
514       translation has decided to do.
515         Status: Greg +1 (volunteers), Ryan +1
516
517     * Explore use of a post-config hook for the code in http_main.c which
518       calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
519       ap_sort_hooks()  [to reduce the logic in main()]
520
521     * read the config tree just once, and process N times (as necessary)
522
523     * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
524
525     * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
526       into a VirtualHost container) to 2.0.
527
528     * shift stuff to mod_core.h
529
530     * callers of ap_run_create_request() should check the return value
531       for failure (Doug volunteers)
532
533     * Win32: Get Apache working on Windows 95/98. The following work
534         (at least) needs to be done:
535         - winnt MPM: Fix 95/98 code paths in the winnt MPM. There is some NT
536         specific code that is still not in NT only code paths
537         - IOL binds to APR sendfile, implemented with TransmitFile, which 
538         is not available on 95/98.
539         - Document warning that OSR2 is required (for Crypt functions, in
540         rand.c, at least.)  This could be resolved with an SSL library, or
541         randomization in APR itself.
542         - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
543         actually works) and add in a splash of Win9x service code.
544
545     * In order to use a DSO version of mod_ssl we have to link with
546       -lssl and -lcrypto. A workaround is in place right now where the
547       entire EXTRA_LIBS macro is being appended to the objects list, but
548       this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
549       autoconf function or come up with some other autoconf checks to
550       search for libssl and libcrypto and properly add them to mod_ssl's
551       link flags.
552
553     * Make the worker MPM the default MPM for threaded Unix boxes.
554       +1:   Justin, Jeff, Ian
555       -0:   Aaron (premature decision, needs more discussion), Lars
556       -0:   Cliff (I think the default config should be the safest possible)
557
558     * Fix the worker MPM to use POD to kill child processes instead
559       of ap_os_killpg, regardless of how they should die. (Ryan Bloom)
560
561 PRs that have been suspended forever waiting for someone to
562 put them into 'the next release':
563
564     * PR#76: general
565       missing call to "setlocale();"
566         Status: 
567
568     * PR#78: mod_include
569       Additional status for XBitHack directive
570         Status: 
571
572     * PR#362: mod_proxy
573       Mod_proxy doesn't allow change of error pages
574         Status: 
575
576     * PR#370: mod_env
577       Modified PATH environemnt variable is not passed, instead
578       system's is used
579         Status: 
580
581     * PR#440: mod_proxy
582       Proxy doesn't deliver documents if not connected
583         Status: 
584
585     * PR#534: mod_proxy
586       proxy converts ~name to %7Ename when name starts with a dot (.)
587         Status: 
588
589     * PR#537: mod_access
590       mod_access syntax allows hosts that should be restricted
591         Status: 
592
593     * PR#557: mod_auth-any
594       ~UserHome directories are not honored in absolute pathname
595       requests (.htaccess)
596         Status: 
597
598     * PR#612: mod_proxy
599       Proxy FTP Authentication Fails
600         Status: 
601
602     * PR#623: mod_include
603       A smarter "Last Modified" value for SSI documents (see PR number 600)
604         Status: 
605
606     * PR#628: config
607       Request of "Options SymLinksIfGroupMatch"
608         Status: 
609
610     * PR#700: mod_proxy
611       Proxy doesn't do links right for OpenVMS files through ftp:
612         Status: 
613
614     * PR#759: mod_imap
615       imap should read <MAP><AREA>*</MAP> too!
616         Status: 
617
618     * PR#793: general
619       RLimitCPU and RLimitMEM don't apply to all children like they should
620         Status: 
621
622     * PR#921: suexec
623       Uses cwd before filling it in, doesn't use syslog
624         Status: 
625
626     * PR#922: config
627       it is useful to allow specifiction that root-owned symlinks
628       should always be followed
629         Status: 
630
631     * PR#980: mod_proxy
632       Controlling Access to Remote Proxies would be nice...
633         Status: 
634
635     * PR#994: mod_proxy
636       Adding authentication "on the fly" through the proxy module
637         Status: 
638
639     * PR#1004: apache-api
640       request_config field in request_rec is moderately bogus
641         Status: 
642
643     * PR#1028: other
644       DoS attacks involving memory consumption
645         Status: 
646
647     * PR#1050: mod_log-any
648       Logging of virtual server to error_log as well
649         Status: 
650
651     * PR#1085: mod_proxy
652       ProxyRemote make a dead cycle.
653         Status: 
654
655     * PR#1117: mod_auth-any
656       Using NIS passwd.byname dbm files with AuthDBMUserFile
657         Status: 
658
659     * PR#1120: suexec
660       suexec does not parse arguments to #exec cmd
661         Status: 
662
663     * PR#1145: mod_include
664       Allow for Last-Modified: without resorting to XBitHack
665         Status: 
666
667     * PR#1158: apache-api
668       improvements to child spawning API
669         Status: 
670
671     * PR#1166: mod_proxy
672       ``nph-'' not honored (no buffering) for ProxyRemote mapping
673         Status: 
674
675     * PR#1176: mod_cgi
676       Apache cannot handle continuation line in headers
677         Status: 
678
679     * PR#1191: general
680       setlogin() is not called, causing problems with e.g. identd
681         Status: 
682
683     * PR#1204: general
684       regerror() exists, use it
685         Status: 
686
687     * PR#1233: apache-api
688       there is no way to keep per-connection per-module state
689         Status: 
690
691     * PR#1263: mod_autoexec
692       Add frame-safe anchor attribute to mod_autoindex links
693         Status: 
694
695     * PR#1268: suexec
696       CGI scripts running as Apache user: security (suexec etc.)
697         Status: 
698
699     * PR#1285: suexec
700       Error messages could be easier to spot in cgi.log file for suexec.c
701         Status: 
702
703     * PR#1287: mod_access
704       add allow,deny/deny,allow warning to mod_access
705         Status: 
706
707     * PR#1290: mod_proxy
708       Need to know "hit-rate" on proxy cache
709         Status: 
710
711     * PR#1358: mod_log-any
712       Selective url-encode of log fields (or maybe a pseudo
713       log_rewrite module?)
714         Status: 
715
716     * PR#1383: mod_headers
717       I make mod_headers to modify request headers as well as
718       response ones.
719         Status: 
720
721     * PR#1532: mod_proxy
722       Proxy transfer logging
723         Status: 
724
725     * PR#1547: mod_proxy
726       No HTTP_X_FORWARDED_FOR set...
727         Status: 
728
729     * PR#1567: mod_proxy
730       ProxyRemote proxy requests fail authentication by firewall
731         Status: 
732
733     * PR#1582: mod_rewrite
734       mod_rewrite forms REQUEST_URI different than mod_cgi does
735         Status: 
736
737     * PR#1677: mod_headers
738       mod_headers should allow mod_log_config-style formats in
739       header values
740         Status: 
741
742     * PR#1702: mod_proxy
743       mod_proxy to support persistent conns?
744         Status: 
745
746     * PR#1803: mod_include
747       patches to mod_include to allow for file tests
748         Status: 
749
750     * PR#1809: mod_auth-any
751       Suggestion for improving authentication modules and core source
752       code, problem with 401 and ErrorDocument
753         Status: 
754
755     * PR#1878: mod_proxy
756       listing of proxy cache content
757         Status: 
758
759     * PR#1905: suexec
760       Allow modules to set user:group for execution.
761         Status: 
762
763     * PR#2024: apache-api
764       adding auth_why to conn_rec
765         Status: 
766
767     * PR#2073: mod_log-any
768       pipelined connections are not logged correctly
769         Status: 
770
771     * PR#2074: mod_rewrite
772       mod_rewrite doesn't pass Proxy Throughput on internal subrequests
773         Status: 
774
775     * PR#2113: config
776       HTTP Server Rebuild Line Needs Changing for the better
777         Status: 
778
779     * PR#2138: mod_status
780       mod_status always displays 256 possible connection slots
781         Status: 
782
783     * PR#2221: documentation
784       Make online documentation search link back to my installation
785         Status: 
786
787     * PR#2284: general
788       Can not POST to ErrorDocument - Apache/1.3b6
789         Status: 
790
791     * PR#2314: mod_proxy
792       patterns in ProxyRemote
793         Status: 
794
795     * PR#2343: mod_status
796       Status module averages are for entire uptime
797         Status: 
798
799     * PR#2360: suexec
800       suexec for general access of user content?
801         Status: 
802
803     * PR#2396: general
804       Proposal for TimeZone directive
805         Status: 
806
807     * PR#2415: mod_info
808       /server-info doesn't check for the virtual host to list the info
809         Status: 
810
811     * PR#2421: config
812       problem specifying ndbm library for build ?with autoconfigure
813         Status: 
814
815     * PR#2431: general
816       A small addition to rotatelogs.c to improve program functionality.
817         Status: 
818
819     * PR#2446: config
820       AllowOverride FileInfo is too coarse
821         Status: 
822
823     * PR#2460: mod_cgi
824       TimeOut applies to output of CGI scripts
825         Status: 
826
827     * PR#2512: mod_access
828       &lt;IfDenied&gt; directive wanted
829         Status: 
830
831     * PR#2573: suexec
832       CGI's for general use still have to be run as another user
833       with suExec
834         Status: 
835
836     * PR#2648: general
837       Cache file names in Proxy module
838         Status: 
839
840     * PR#2760: config
841       [PATCH] User/Group for <Directory> and <Location> i.e. not only
842       in global and <Virtual>.
843         Status: 
844
845     * PR#2763: general
846       mailto tags and bundling bug report script
847         Status: 
848
849     * PR#2785: os-aix
850       Support for System Resource Controller
851         Status: 
852
853     * PR#2793: protocol
854       When will Apache support P3P? Any Plans?
855         Status: 
856
857     * PR#2873: config
858       Feedback/Comment on APACI
859         Status: 
860
861     * PR#2889: general
862       Inclusion of RPM spec file in CVS/distributions
863         Status: 
864
865     * PR#2906: general
866       Propose that Apache recommend $UNIQUE_ID for all "session id"
867       algorithms
868         Status: 
869
870     * PR#2907: config
871       suggestion: power up your Include directive :)
872         Status: 
873
874     * PR#3018: general
875       cannot limit some HTTP methods
876         Status: 
877
878     * PR#3143: apache-api
879       No module specific data hook for per-connection data
880         Status: 
881
882     * PR#3191: mod_negotiation
883       no way to set global quality-of-source (qs) coneg values
884       with multiviews
885         Status: 
886
887     * PR#3568: mod_proxy
888       Accessing URL through proxy server corrupts data.
889         Status: 
890
891     * PR#3605: mod_proxy
892       Some anonymous FTP URLs ask for authentication
893         Status: 
894
895     * PR#3677: general
896       New ErrorDocumentMatch directive
897         Status: 
898
899     * PR#4241: config
900       Need to be able to override shebang line to make CGI scripts
901       more portable.
902         Status: 
903
904     * PR#4244: config
905       "Files" and "FilesMatch" regexp does not recognize bang as
906       negation operator
907         Status: 
908
909     * PR#4448: mod_log-any
910       Please allow CGI env variables (QUERY_STRING, ...) to be logged
911       with %{}e
912         Status: 
913
914     * PR#4459: mod_include
915       Suggestion for better handling of Last-modified headers
916         Status: 
917
918     * PR#4490: mod_cgi
919       mod_cgi prevents handling of OPTIONS requests
920         Status: 
921
922     * PR#5713: os-windows
923       [PATCH] install as win32 service with domain account
924         Status: Cannot accept password-as-arg, we should prompt the
925                 user when -k install/-k config with a user argument.
926
927     * PR#5993: general
928       AllowOverride should have a 'CheckNone' and 'AllowNone' argument
929       instead of only 'None'
930         Status: 
931
932 Other bugs that need fixing:
933
934     * MaxRequestsPerChild measures connections, not requests.
935         Until someone has a better way, we'll probably just rename it
936         "MaxConnectionsPerChild".
937     
938     * Regex containers don't work in an intutive way
939         Status: No one has come up with an efficient way to fix this
940         behavior. Dean has suggested getting rid of regex containers
941         completely.
942         OtherBill suggests: We at least seem to agree on eliminating
943                             the <Container ~ foo> forms, and using only
944                             <ContainerMatch foo> semantics.
945
946     * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
947       sigwaiting thread. We need to work around this, perhaps unless
948       there is hope soon for a fixed glibc.
949
950     * orig_ct in the byterange/multipart handling may not be
951       needed. Apache 1.3 just never stashed "multipart" into
952       r->content_type. We should probably follow suit since the
953       byterange stuff doesn't want the rest of the code to see the
954       multipart content-type; the other code should still think it is
955       dealing with the <orig_ct> stuff.
956         Status: Greg volunteers to investigate (esp. since he was most 
957                 likely the one to break it :-)
958
959 Other features that need writing:
960
961     * Finish infrastructure in core for async MPMs
962         Status: post 2.0
963
964     * TODO in source -- just do an egrep on "TODO" and see what's there
965
966 Available Patches:
967
968    * Jon Travis's <jtravis@covalent.net> patch to deal with thread-safe
969      issues with inet_ntoa.  See message <20001201163220.A12827@covalent.net>
970         Status:  This is being set aside until the IPv6 work is finished
971                  so that we know exactly what is required.
972
973    * Martin Sojka <msojka@gmx.de>'s patch to add error reporting for failed 
974      htpasswd actions due to a full /tmp volume (other programs may have
975      similar problems?)
976         PR: 6475
977         Status:
978
979    * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
980      performance
981        Status: These were written for 1.3, and are awaiting a port to
982        2.0
983  
984    * Jim Winstead's <jimw@trainedmonkey.com> patch to add CookieDomain and 
985      other small mod_usertrack features
986
987    * Dan Rench's <drench@xnet.com> patch to add allow the errmsg and timefmt 
988      of SSI's to be modified in the config file.  Patch is available in 
989      PR6193
990
991 Open issues:
992
993    * Which MPMs will be included with Apache 2.0?
994