]> granicus.if.org Git - apache/blob - STATUS
These are not showstoppers. Let's get a release out the door that includes
[apache] / STATUS
1 APACHE 2.0 STATUS:                                              -*-text-*-
2 Last modified at [$Date: 2002/06/13 18:07:58 $]
3
4 Release:
5
6     2.0.38  : in development.
7     2.0.37  : tagged June 11, 2002.
8     2.0.36  : released May 6, 2002 as GA.
9     2.0.35  : released April 5, 2002 as GA.
10     2.0.34  : tagged March 26, 2002.
11     2.0.33  : tagged March 6, 2002.  not released.
12     2.0.32  : released Feburary 16, 2002 as beta.
13     2.0.31  : rolled Feburary 1, 2002.  not released.
14     2.0.30  : tagged January 8, 2002.  not rolled.
15     2.0.29  : tagged November 27, 2001.  not rolled.
16     2.0.28  : released November 13, 2001 as beta.
17     2.0.27  : rolled November 6, 2001
18     2.0.26  : tagged October 16, 2001.  not rolled.
19     2.0.25  : rolled August 29, 2001
20     2.0.24  : rolled August 18, 2001
21     2.0.23  : rolled August 9, 2001
22     2.0.22  : rolled July 29, 2001
23     2.0.21  : rolled July 20, 2001
24     2.0.20  : rolled July 8, 2001
25     2.0.19  : rolled June 27, 2001
26     2.0.18  : rolled May 18, 2001
27     2.0.17  : rolled April 17, 2001
28     2.0.16  : rolled April 4, 2001
29     2.0.15  : rolled March 21, 2001
30     2.0.14  : rolled March 7, 2001
31     2.0a9   : released December 12, 2000
32     2.0a8   : released November 20, 2000
33     2.0a7   : released October 8, 2000
34     2.0a6   : released August 18, 2000
35     2.0a5   : released August 4, 2000
36     2.0a4   : released June 7, 2000
37     2.0a3   : released April 28, 2000
38     2.0a2   : released March 31, 2000
39     2.0a1   : released March 10, 2000
40
41 Please consult the following STATUS files for information
42 on related projects:
43
44     * srclib/apr/STATUS
45     * srclib/apr-util/STATUS
46     * docs/STATUS
47
48
49 CURRENT RELEASE NOTES:
50
51     2.0.38: Cliff plans on tagging TONIGHT (6/13/02).  Let's get this thing
52             wrapped up (again).  Just a few last-minute tussles over the
53             500 vs. 501 thing and whether we're REALLY done with the
54             if (!r->header_only) thing (Cliff thinks we're not), and that
55             should be it.
56
57 RELEASE SHOWSTOPPERS:
58
59
60 CURRENT VOTES:
61
62     * apachectl should revert to just being an init script and
63       httpd.sh should be the wrapper for httpd which sources envvars
64       and allows any options to be passed through
65
66       +1:  trawick
67
68     * Should we always build [support*] binaries statically unless otherwise
69       indicated?
70         Message-ID: <20020129210006.B23512@Lithium.MeepZor.Com>
71
72       +1:  Ken, *wrowe [they are PITAs on OSX]
73       -1:  Justin, Ian
74         
75     * If the parent process dies, should the remaining child processes
76       "gracefully" self-terminate. Or maybe we should make it a runtime
77       option, or have a concept of 2 parent processes (one being a 
78       "hot spare").
79       See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
80
81       Self-destruct: Ken, Martin
82       Not self-destruct: BrianP, Ian, Cliff, BillS
83       Make it runtime configurable: Aaron, Jim, Justin
84       Have 2 parents: +1: Jim
85                       -1: Justin, wrowe [for 2.0]
86                       +0: Martin (while standing by, could it do
87                                   something useful?)
88
89     * Make the worker MPM the default MPM for threaded Unix boxes.
90       +1:   Justin, Ian, Cliff, BillS
91       +0:   BrianP, Aaron (mutex contention is looking better with the
92             latest code, let's continue tuning and testing)
93       -0:   Lars
94
95 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
96
97     * 500 returned instead of 501 if a handler other than default_handler
98       is invoked on a method with M_INVALID.
99       Message-ID: <20020613001913.J22524@apache.org>
100       Is this a showstopper?
101         +1: Justin
102         -1: Cliff, Aaron
103
104     * Returning invalid 304 errors when filters are present.  [PR 9673]
105       Message-ID: <Pine.GSO.4.44.0206061713320.3848-100000@lab26.lacfas.hec.ca>
106                   <20020607135121.G19485@apache.org>
107                   <20020610204425.B19018@lyra.org>
108       Proposed patch: <20020607214725.K19485@apache.org>
109       Status: We should set r->no_local_copy, but where can we set it?
110               We must set it before the handlers are run so that the
111               appropriate handler can call ap_meets_conditions() before
112               generating the data.  Greg has reservations about Justin's
113               proposed patch.  Consensus needed.
114       Is this a showstopper?
115         +1: Justin
116         -1: Cliff, Aaron
117
118     * server pushed CGI's not working.  (Is this a showstopper??)
119       PR: 8482
120       Message-ID: <3CE15B85.2FF45121@apache.org>
121
122     * HP/UX 10.20: compile breakage in APR.  Looks like it should be easy
123       to fix, probably just some extraneous #include's that are fouling
124       things up.
125       PR: 9457
126       Jeff: See my reply and patch in the PR (and previous commit to
127       stop using "pipe" as a field name).  If patch is committed, we
128       should be okay.  I'll wait to see if the user tests the patch.
129
130     * exec cmd and suexec arg-passing enhancements
131       Status: Patches proposed
132       Message-ID: <20020526041748.A29148@prodigy.Redbrick.DCU.IE>
133       (see the "proc.patch" and "suexec-shell.patch" links in this message)
134
135     * Get mod_cache/mod_mem_cache out of experimental (still some
136       work items left to complete)
137
138     * The 2.0.36 worker MPM graceless shutdown changes work but are
139       a bit clunky on some platforms; eg, on Linux, the loop to
140       join each worker thread seems to hang, and the parent ends up
141       killing off the child with SIGKILL.  But at least it shuts down.
142
143     * --enable-mods-shared="foo1 foo2" is busted on Darwin.  Pier
144         posted a patch (Message-ID: <B8DBBE8D.575A%pier@betaversion.org>).
145
146     * We do not properly substitute the prefix-variables in the configuration
147       scripts or generated-configs.  (i.e. if sysconfdir is etc,
148       httpd-std.conf points to conf.)
149
150     * If any request gets through ap_process_request_internal() and is
151       scheduled to be served by the core handler, without a flag that this 
152       r->filename was tested by dir/file_walk, we need to 500 at the very 
153       end of the ap_process_request_internal() processing so sub_req-esters
154       know this request cannot be run.  This provides authors of older 
155       modules better compatibility, while still improving the security and 
156       robustness of 2.0. 
157
158         Status: still need to decide where this goes, OtherBill comments...
159         Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
160         [Deleted comments regarding the ap_run_handler phase, as irrelevant
161             as BillS points out that "common case will be caught in
162             default_handler already (with the r->finfo.filetype == 0 check)"
163             and the issue is detecting this -before- we try to run the req.]
164
165         gregames says: can this happen somehow without a broken module
166             being involved?  If not, why waste cycles trying to defend against
167             potential broken modules?  It seems futile.
168         wrowe counters: no, it shouldn't happen unless the module is broken.
169             But the right answer is to fail the request up-front in dir/file
170             walk if the path was entirely invalid; and we can't do that either
171             or we break modules that are unwilling to hook map_to_storage.
172
173     * Rewrite core_output_filter. It is nearly impossible to support
174       it with predictable results as it is implemented now.
175
176     * With AP_MODE_EXHAUSTIVE in the core, it is finally clear to me
177       how the Perchild MPM should be re-written.  It hasn't worked
178       correctly since filters were added because it wasn't possible to
179       get the content that had already been written and the socket at
180       the same time.  This mode lets us do that, so the MPM can be
181       fixed.
182
183     * htpasswd blindly processes the file you give it, and does no
184       sanity checking before totally corrupting whatever file it was
185       you thought you had. It should check the input file and bail
186       if it finds non-comment lines that do not contain exactly 1
187       ':' character.
188         Message-ID: <20020217150457.A31632@clove.org>
189
190     * Can a static httpd be built reliably?
191         Message-ID: <20020207142751.T31582@clove.org>
192
193     * [Ken] Test suite failures:
194       o worker is also failing some of the 'cgi' subtests
195       (see <URL:http://Source-Zone.Org/Apache/regression/>):
196         Justin says: "Worker should be fine and passes httpd-test here.
197                       If you can provide evidence that it can be reproduced
198                       outside of httpd-test, then it's a showstopper.  I
199                       think it's a perl or a httpd-test problem."
200         Not a showstopper: Justin
201
202     * Usage of APR_BRIGADE_NORMALIZE in core_input_filter should be
203       removed if possible.
204         Message-ID: <Pine.LNX.4.33.0201202232430.318-100000@deepthought.cs.virginia.edu>
205         
206     * There is a bug in how we sort some hooks, at least the pre-config
207       hook.  The first time we call the hooks, they are in the correct 
208       order, but the second time, we don't sort them correctly.  Currently,
209       the modules/http/config.m4 file has been renamed to 
210       modules/http/config2.m4 to work around this problem, it should moved
211       back when this is fixed.    rbb
212         Justin says: "Is this really a showstopper?  This has been here
213                       forever.  What's wrong?  Does this have to do with
214                       autoconf or m4?"
215         Not a showstopper: Justin, BrianP, trawick, gregames
216
217     * The Add...Filter and Set...Filter directives do not allow the
218       administrator to order filters, beyond the order of filename (mime)
219       extensions.  It isn't clear if Set...Filter(s) should be inserted 
220       before or after the Add...Filter(s) which are ordered by sequence of
221       filename extensions.  At minimum, some sort of +-[0-10] syntax seems
222       like the quickest fix for a 2.0 gold release.
223         Justin says: "Could we delay this for a point release or 2.1?"
224         Not a showstopper: justin, wrowe, trawick, stoddard, Jim, Ian, Aaron,
225                            gregames
226
227     * Get perchild to work on platforms other than Linux. This
228       will require a portable mechanism to pass data and file/socket
229       descriptors between vhost child groups. An API was proposed
230       on dev@apr:
231         Message-ID: <20020111115006.K1529@clove.org>
232
233     * Try to get libtool inter-library dependency code working on AIX.
234         Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
235
236       Justin says: If we get it working on AIX, we can enable this
237                    on all platforms and clean up our build system
238                    somewhat.
239       Jeff says:   I thought I tested a patch for you sometime in
240                    January that you were going to commit within a few
241                    days.
242
243     * Handling of %2f in URIs.  Currently both 1.3 and 2.0
244       completely disallow %2f in the request URI path (see
245       ap_unescape_url() in util.c).  It's permitted and passed
246       through in the query string, however.  Roy says the
247       original reason for disallowing it, from five years ago,
248       was to protect CGI scripts that applied PATH_INFO to
249       a filesystem location and which might be tricked by
250       ..%2f..%2f(...).  We *should* allow path-info of the
251       form 'http://foo.com/index.cgi/path/to/path%2finfo'.
252       Since we've revamped a lot of our processing of path
253       segments, it would be nice to allow this, or at least
254       allow it conditionally with a directive.
255
256     * FreeBSD, threads, and worker MPM.  All seems to work fine 
257       if you only have one worker process with many threads.  Add 
258       a second worker process and the accept lock seems to be
259       lost.  This might be an APR issue with how it deals with
260       the child_init hook (i.e. the fcntl lock needs to be resynced).
261       More examination and analysis is required.
262         Status: This has also been reported on Cygwin.  
263         Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus)
264
265       Justin says: So, FreeBSD-CURRENT and Cywin have the same 
266                    problem.  Yum.  If another platform has this
267                    with worker, this becomes a showstopper.
268       Aaron says: I spent some time disecting this and have come to
269               the conclusion that it is not a problem in the worker MPM
270               (or at least, it is not isolated to a problem in worker).
271               I'll list some of the problems I'm seeing in case someone
272               else wants to pick up where I've left off:
273                - Delivery of just about any signal to one of the child
274                  processes will send it into an infinite loop as well.
275                - Even though the parent is spinning out of control,
276                  at first the child or children will appear to work
277                  properly. At times it is possible to get it into a state,
278                  however, where a request will hang until another concurrent
279                  request "kicks" the first, at which point the second will
280                  hang. My theory is that this has to do with the
281                  pthread_cond_*() implementation in FreeBSD, but it's still
282                  possible that it is in APR.
283       
284       Justin adds: Oh, FreeBSD threads are implemented entirely with 
285                    select()/poll()/longjmp().  Welcome to the nightmare.
286                    So, that means a ktrace output also has the thread 
287                    scheduling internals in it (since it is all the same to 
288                    the kernel).  Which makes it hard to distinguish between 
289                    our select() calls and their select() calls.  
290                    *bangs head on wall repeatedly*  But, some of the libc_r 
291                    files have a DBG_MSG #define.  This is moderately helpful
292                    when used with -DNO_DETACH.  The kernel scheduler isn't 
293                    waking up the threads on a select().  Yum.  And, I bet 
294                    those decrementing select calls have to do with the 
295                    scheduler.  Time to brush up on our OS fundamentals.
296
297     * There is increasing demand from module writers for an API
298       that will allow them to control the server Ã  la apachectl.
299       Reasons include sole-function servers that need to die if
300       an external dependency (e.g., a database) fails, et cetera.
301       Perhaps something in the (ever more abused) scoreboard?
302         rbb: I don't believe the scoreboard is the correct mechanism
303              for this.  We already have a pipe that goes between parent
304              and child for graceful shutdown events, along with an API that
305              can be used to send a message down that pipe.  In threaded MPMs,
306              it is easy enough to make that one pipe be used for graceful
307              and graceless events, and it is also easy to open that pipe
308              to both parent and child for writing.  Then we just need to
309              figure out how to do graceless on non-threaded MPMs.
310
311     * Allow the DocumentRoot directive within <Location > scopes?  This
312       allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
313       by a <Directory /somepath/foo> to become simply 
314       <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
315       and in-your-face.)  DocumentRoot unset would be accepted [and would
316       not permit content to be served, only virtual resources such as
317       server-info or server-status.
318         This proposed change would _not_ depricate Alias.
319
320     * Win32: Rotatelogs sometimes is not terminated when Apache
321       goes down hard.  FirstBill was looking at possibly tracking the 
322       child's-child processes in the parent process.
323         OtherBill asks, wasn't this fixed? 
324         stoddard: Not fixed. Shared scoreboard might offer a good
325         way for the parent to keep track of 'other child' processes
326         and whack them if the child goes down.
327         Other thoughts on walking the process chain using the NT kernel
328         have also been proposed on APR.
329
330     * Win32: Add a simple hold console open patch (wait for close or
331         the ESC key, with a nice message) if the server died a bad 
332         death (non-zero exit code) in console mode.
333         Resolution: bring forward same ugly hacks from 1.3.13-.20
334         This is not so simple.  Any exit() from APR or other libraries
335         can't be caught unless we add some sort of apr_exit(rv) with
336         registered apr_atexit() fn's that have the return code as an
337         argument to the registered fn.
338
339     * Eliminate unnecessary creation of pipes in mod_cgid
340
341     * Combine log_child and piped_log_spawn. Clean up http_log.c.
342       Common logging API.
343
344     * Document mod_file_cache.
345
346     * Platforms that do not support fork (primarily Win32 and AS/400)
347       Architect start-up code that avoids initializing all the modules 
348       in the parent process on platforms that do not support fork.
349
350     * Win32: Migrate the MPM over to use APR thread/process calls. This
351       would eliminate some code in the Win32 branch that essentially
352       duplicates what is in APR.
353
354     * There are still a number of places in the code where we are
355       losing error status (i.e. throwing away the error returned by a
356       system call and replacing it with a generic error code)
357
358     * Mass vhosting version of suEXEC.
359
360     * All DBMs suffer from confusion in support/dbmmanage (perl script) since 
361       the dbmmanage employs the first-matched dbm format.  This is not
362       necessarily the library that Apache was built with.  Aught to
363       rewrite dbmmanage upon installation to bin/ with the proper library 
364       for predictable mod_auth_dbm administration.
365         Questions; htdbm exists, time to kill dbmmanage, or does it remain
366                    useful as a perl dbm management example?  If we keep it,
367                    do we address the issue above?
368
369     * Integrate mod_dav.
370         Some additional items remaining:
371         - case_preserved_filename stuff
372             (use the new canonical name stuff?)
373         - find a new home for ap_text(_header)
374         - is it possible to remove the DAV: namespace stuff from util_xml?
375
376     * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
377       are a bit wonky.  The function should probably be exposed as a utility 
378       function (such as ap_translate_url2fs() or ap_validate_fs_url() or 
379       something).  Another approach would be a new hook phase after
380       "translate" which would allow the module to munge what the
381       translation has decided to do.
382         Status: Greg +1 (volunteers), Ryan +1
383
384     * Explore use of a post-config hook for the code in http_main.c which
385       calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
386       ap_sort_hooks()  [to reduce the logic in main()]
387
388     * read the config tree just once, and process N times (as necessary)
389
390     * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
391
392     * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
393       into a VirtualHost container) to 2.0.
394
395     * shift stuff to mod_core.h
396
397     * callers of ap_run_create_request() should check the return value
398       for failure (Doug volunteers)
399
400     * Win32: Get Apache working on Windows 95/98. The following work
401         (at least) needs to be done:
402         - Document warning that OSR2 is required (for Crypt functions, in
403         rand.c, at least.)  This could be resolved with an SSL library, or
404         randomization in APR itself.
405         - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
406         actually works) and add in a splash of Win9x service code.
407
408     * Fix the worker MPM to use POD to kill child processes instead
409       of ap_os_killpg, regardless of how they should die. (Ryan Bloom)
410
411     * Scoreboard structures could be changed in the future such that
412       proper alignment is not maintained, leading to segfaults on 
413       some systems.  Cliff posted a patch to deal with this issue but
414       later recanted. See this message to dev@apr.apache.org:
415       Message-ID: <Pine.LNX.4.44.0203011354090.16457-200000@deepthought
416                   .cs.virginia.edu>
417
418 TODO ISSUES REMAINING IN MOD_SSL:
419
420     * In order to use a DSO version of mod_ssl we have to link with
421       -lssl and -lcrypto. A workaround is in place right now where the
422       entire EXTRA_LIBS macro is being appended to the objects list, but
423       this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
424       autoconf function or come up with some other autoconf checks to
425       search for libssl and libcrypto and properly add them to mod_ssl's
426       link flags.
427
428     * SSL renegotiations in combination with POST request
429
430     * Port or dispose all code inside #if 0...#endif blocks that remain
431       from the porting effort.
432
433     * Do we need SSL_set_read_ahead()?
434
435     * the ssl_expr api is NOT THREAD SAFE.  race conditions exist:
436        -in ssl_expr_comp() if SSLRequire is used in .htaccess
437         (ssl_expr_info is global)
438        -is ssl_expr_eval() if there is an error
439         (ssl_expr_error is global)
440
441     * SSLRequire directive (parsing of) leaks memory
442
443     * Diffie-Hellman-Parameters for temporary keys are hardcoded in
444       ssl_engine_dh.c, while the comment in ssl_engine_kernel.c says:
445       "it is suggested that keys be changed daily or every 500
446       transactions, and more often if possible."
447
448     * ssl_var_lookup could be rewritten to be MUCH faster
449
450
451     * CRL callback should be pluggable
452
453     * session cache store should be pluggable
454
455     * init functions should return status code rather than ssl_die()
456
457     * ssl_engine_pphrase.c needs to be reworked so it is generic enough
458       to also decrypt proxy keys
459
460     * the shmcb code should just align its memory segment rather than
461       jumping through all the "safe" memcpy and memset hoops
462
463
464 EXPERIMENTAL MODULES:
465     Experimental modules should eventually be be promoted to fully supported
466     status or removed from the repository entirely (ie, the
467     'experiment' failed). This section tracks what needs to happen to 
468     get the modules promoted to fully supported status.
469
470     mod_cache/mod_mem_cache/mod_disk_cache:
471     * mod_cache: handle cache_control: no_cache "field_name" to enable 
472       cacheing the response w/o header "field_name"
473       See RFC2616 section 14.9.1
474
475     * mod_cache: CacheEnable/CacheDisable should accept regular expressions.
476
477     * mod_cache: Fix dependency on ATOMIC operators. Need
478       APR_HAS_ATOMIC_* feature macros.
479
480     * mod_disk_cache: Implement garbage collection
481
482     * mod_mem_cache/mod_disk_cache: Need to be able to query cache
483       status (num of entries, cache object properties, etc.).
484       mod_status could be extended to query optional hooks defined
485       by modules for the purpose of reporting module status.
486       mod_cache (et. al.) could define optional hooks that are called
487       to collect status.  Status should be queryable by
488       HTTP or SNMP?
489
490     * mod_mem_cache: garbage collection. One strategy is to simply
491       remove stale entries as we attempt to serve them. Another
492       strategy is to kick off a GC thread that traverses the cache
493       and preemptively remove stale entries.  How to manage a 
494       cache that is full? Do LRU GC? Other? Bueller?
495
496     * mod_mem_cache/mod_disk_cache: Complete implementing config
497       directives. 
498
499     * Sample config for mod_cache/mod_mem_cache/mod_disk_cache for
500       inclusion into httpd.conf.
501
502     * mod_cache/mod_mem_cache/mod_disk_cache: Documentation.
503
504 PRs that have been suspended forever waiting for someone to
505 put them into 'the next release':
506
507     * documentation and Q&A
508
509       PR#2221: Make online documentation search link back to my installation
510         Status: 
511
512       PR#2906: Propose that Apache recommend $UNIQUE_ID for all "session id"
513       algorithms
514         Status: 
515
516       PR#2793: When will Apache support P3P? Any Plans?
517         Status: 
518
519     * build
520
521       PR#2113: HTTP Server Rebuild Line Needs Changing for the better
522         Status: 
523
524       PR#2421: problem specifying ndbm library for build ?with autoconfigure
525         Status: 
526
527     * config
528
529       PR#76: missing call to "setlocale();"
530         Status: 
531
532       PR#628: Request of "Options SymLinksIfGroupMatch"
533         Status: 
534
535       PR#793: RLimitCPU and RLimitMEM don't apply to all children like they should
536         Status: 
537
538       PR#922:  it is useful to allow specifiction that root-owned symlinks
539       should always be followed
540         Status: 
541
542       PR#1028: DoS attacks involving memory consumption
543         Status: 
544
545       PR#1191: setlogin() is not called, causing problems with e.g. identd
546         Status: 
547
548       PR#1204: regerror() exists, use it
549         Status: 
550
551       PR#2284: Can not POST to ErrorDocument - Apache/1.3b6
552         Status: 
553
554       PR#2396: Proposal for TimeZone directive
555         Status: 
556
557       PR#2446: AllowOverride FileInfo is too coarse
558         Status: 
559
560       PR#2760: [PATCH] User/Group for <Directory> and <Location> i.e. not only
561       in global and <Virtual>.
562         Status: 
563
564       PR#2907: suggestion: power up your Include directive :)
565         Status: 
566
567       PR#3018: cannot limit some HTTP methods
568         Status: 
569
570       PR#3677: New ErrorDocumentMatch directive
571         Status: 
572
573       PR#4244: "Files" and "FilesMatch" regexp does not recognize bang as
574       negation operator
575         Status: 
576
577       PR#5993: AllowOverride should have a 'CheckNone' and 'AllowNone' argument
578       instead of only 'None'
579         Status: 
580
581     * mod_access
582
583       PR#537: mod_access syntax allows hosts that should be restricted
584         Status: 
585
586       PR#1287: add allow,deny/deny,allow warning to mod_access
587         Status: 
588
589       PR#2512: <IfDenied> directive wanted
590         Status: 
591
592     * mod_auth-any
593
594       PR#557: ~UserHome directories are not honored in absolute pathname
595       requests (.htaccess)
596         Status: 
597
598       PR#1117: Using NIS passwd.byname dbm files with AuthDBMUserFile
599         Status: 
600
601       PR#1809: Suggestion for improving authentication modules and core source
602       code, problem with 401 and ErrorDocument
603         Status: 
604
605     * mod_autoindex
606
607       PR#1263: Add frame-safe anchor attribute to mod_autoindex links
608         Status: 
609
610     * mod_cgi (and suexec)
611
612       PR#921: suexec Uses cwd before filling it in, doesn't use syslog
613         Status: 
614
615       PR#1176: Apache cannot handle continuation line in headers
616         Status: 
617
618       PR#1120: suexec does not parse arguments to #exec cmd
619         Status: 
620
621       PR#1268: CGI scripts running as Apache user: security (suexec etc.)
622         Status: 
623
624       PR#1285: Error messages could be easier to spot in cgi.log file for suexec.c
625         Status: 
626
627       PR#1905: suexec - Allow modules to set user:group for execution.
628         Status: 
629
630       PR#2360: suexec for general access of user content?
631         Status: 
632
633       PR#2460: TimeOut applies to output of CGI scripts
634         Status: 
635
636       PR#2573: CGI's for general use still have to be run as another user
637       with suExec
638         Status: 
639
640       PR#4241: Need to be able to override shebang line to make CGI scripts
641       more portable.
642         Status: 
643
644       PR#4490: mod_cgi prevents handling of OPTIONS requests
645         Status: 
646
647     * mod_env
648
649       PR#370: Modified PATH environemnt variable is not passed, instead
650       system's is used
651         Status: 
652
653     * mod_headers
654
655       PR#1383: I make mod_headers to modify request headers as well as
656       response ones.
657         Status: 
658
659       PR#1677: mod_headers should allow mod_log_config-style formats in
660       header values
661         Status: 
662
663     * mod_imap
664
665       PR#759: imap should read <MAP><AREA>*</MAP> too!
666         Status: 
667
668     * mod_include
669
670       PR#78: Additional status for XBitHack directive
671         Status: 
672
673       PR#623: A smarter "Last Modified" value for SSI documents (see PR number 600)
674         Status: 
675
676       PR#1145: mod_include
677       Allow for Last-Modified: without resorting to XBitHack
678         Status: 
679
680       PR#1803: patches to mod_include to allow for file tests
681         Status: 
682
683       PR#4459: Suggestion for better handling of Last-modified headers
684         Status: 
685
686     * mod_info
687
688       PR#2415: /server-info doesn't check for the virtual host to list the info
689         Status: 
690
691     * mod_log-any
692
693       PR#1050: Logging of virtual server to error_log as well
694         Status: 
695
696       PR#1358: Selective url-encode of log fields (or maybe a pseudo
697       log_rewrite module?)
698         Status: 
699
700       PR#2073: pipelined connections are not logged correctly
701         Status: 
702
703       PR#4448: Please allow CGI env variables (QUERY_STRING, ...) to be logged
704       with %{}e
705         Status: 
706
707     * mod_negotiation
708
709       PR#3191: no way to set global quality-of-source (qs) coneg values
710       with multiviews
711         Status: 
712
713     * mod_proxy
714
715       PR#362: Mod_proxy doesn't allow change of error pages
716         Status: 
717
718       PR#440: Proxy doesn't deliver documents if not connected
719         Status: 
720
721       PR#534: proxy converts ~name to %7Ename when name starts with a dot (.)
722         Status: 
723
724       PR#612: Proxy FTP Authentication Fails
725         Status: 
726
727       PR#700: Proxy doesn't do links right for OpenVMS files through ftp:
728         Status: 
729
730       PR#980: Controlling Access to Remote Proxies would be nice...
731         Status: 
732
733       PR#994: Adding authentication "on the fly" through the proxy module
734         Status: 
735
736       PR#1085: ProxyRemote make a dead cycle.
737         Status: 
738
739       PR#1166: ``nph-'' not honored (no buffering) for ProxyRemote mapping
740         Status: 
741
742       PR#1290: Need to know "hit-rate" on proxy cache
743         Status: 
744
745       PR#1532: Proxy transfer logging
746         Status: 
747
748       PR#1547: No HTTP_X_FORWARDED_FOR set...
749         Status: 
750
751       PR#1567: ProxyRemote proxy requests fail authentication by firewall
752         Status: 
753
754       PR#1702: mod_proxy to support persistent conns?
755         Status: 
756
757       PR#1878: listing of proxy cache content
758         Status: 
759
760       PR#2314: patterns in ProxyRemote
761         Status: 
762
763       PR#2648: Cache file names in Proxy module
764         Status: 
765
766       PR#3568: Accessing URL through proxy server corrupts data.
767         Status: 
768
769       PR#3605: Some anonymous FTP URLs ask for authentication
770         Status: 
771
772     * mod_rewrite
773
774       PR#1582: mod_rewrite forms REQUEST_URI different than mod_cgi does
775         Status: 
776
777       PR#2074: mod_rewrite doesn't pass Proxy Throughput on internal subrequests
778         Status: 
779
780     * mod_status
781
782       PR#2138: mod_status always displays 256 possible connection slots
783         Status: 
784
785       PR#2343: Status module averages are for entire uptime
786         Status: 
787
788     * apache-api
789
790       PR#1004: request_config field in request_rec is moderately bogus
791         Status: 
792
793       PR#1158: improvements to child spawning API
794         Status: 
795
796       PR#1233: there is no way to keep per-connection per-module state
797         Status: 
798
799       PR#2024: adding auth_why to conn_rec
800         Status: 
801
802       PR#2873: Feedback/Comment on APACI
803         Status: 
804
805       PR#3143: No module specific data hook for per-connection data
806         Status: 
807
808     * generally odds and ends
809
810       PR#2431: A small addition to rotatelogs.c to improve program functionality.
811         Status: 
812
813       PR#2763: mailto tags and bundling bug report script
814         Status: 
815
816       PR#2785: os-aix Support for System Resource Controller
817         Status: 
818
819       PR#2889: Inclusion of RPM spec file in CVS/distributions
820         Status: 
821
822       PR#5713: os-windows [PATCH] install as win32 service with domain account
823         Status: Cannot accept password-as-arg, we should prompt the
824                 user when -k install/-k config with a user argument.
825
826
827
828 Other bugs that need fixing:
829
830     * ap_discard_request should be converted to use the bucket API
831       directly rather than waste cycles copying buffers with the old API.
832
833     * MaxRequestsPerChild measures connections, not requests.
834         Until someone has a better way, we'll probably just rename it
835         "MaxConnectionsPerChild".
836     
837     * Regex containers don't work in an intutive way
838         Status: No one has come up with an efficient way to fix this
839         behavior. Dean has suggested getting rid of regex containers
840         completely.
841         OtherBill suggests: We at least seem to agree on eliminating
842                             the <Container ~ foo> forms, and using only
843                             <ContainerMatch foo> semantics.
844
845     * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
846       sigwaiting thread. We need to work around this, perhaps unless
847       there is hope soon for a fixed glibc.
848
849     * orig_ct in the byterange/multipart handling may not be
850       needed. Apache 1.3 just never stashed "multipart" into
851       r->content_type. We should probably follow suit since the
852       byterange stuff doesn't want the rest of the code to see the
853       multipart content-type; the other code should still think it is
854       dealing with the <orig_ct> stuff.
855         Status: Greg volunteers to investigate (esp. since he was most 
856                 likely the one to break it :-)
857
858 Binaries (2.0.35):
859
860  Platform                      Avail.  Volunteer
861  ------------------------------------------------------------------
862  AIX 4.3.3                             Bill Stoddard
863  Mandrake 8.1                  no      Ryan Bloom
864  FreeBSD 4.1                   yes     Ryan Bloom
865  i386-unknown-freebsd4.5       yes     Aaron Bannert
866  OS X 10.1.3/Darwin 5.3        yes     Jim Jagielski
867  Solaris 8.x/sparc             yes     Jim Jagielski
868  i686-pc-linux-gnu-rh70        yes     Aaron Bannert
869  i686-pc-linux-gnu-rh72        yes     Aaron Bannert
870  i386-pc-solaris2.8            yes     Aaron Bannert
871  powerpc-unknown-linux-gnu     yes     Graham Leggett
872  NetWare                       yes     Brad Nicholes
873  Win32-x86                     yes     William Rowe
874
875 Other features that need writing:
876
877     * Finish infrastructure in core for async MPMs
878         Status: post 2.0
879
880     * TODO in source -- just do an egrep on "TODO" and see what's there
881
882 Available Patches:
883
884    * Martin Sojka <msojka@gmx.de>'s patch to add error reporting for failed 
885      htpasswd actions due to a full /tmp volume (other programs may have
886      similar problems?)
887         PR: 6475
888         Status:
889
890    * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
891      performance
892        Status: These were written for 1.3, and are awaiting a port to
893        2.0
894  
895    * Jim Winstead's <jimw@trainedmonkey.com> patch to add CookieDomain and 
896      other small mod_usertrack features
897
898    * Dan Rench's <drench@xnet.com> patch to add allow the errmsg and timefmt 
899      of SSI's to be modified in the config file.  Patch is available in 
900      PR6193