]> granicus.if.org Git - apache/blob - STATUS
Tell users how to get APR from subversion instead of CVS.
[apache] / STATUS
1 APACHE 2.1 STATUS:                                              -*-text-*-
2 Last modified at [$Date$]
3
4 Release [NOTE that only Alpha/Beta releases occur in 2.1 development]:
5
6     2.1.1   : Proposed roll on 11/14/2004 (around/after Hackathon).
7               Justin volunteers as RM.
8     2.1.0   : in development
9
10 Please consult the following STATUS files for information
11 on related projects:
12
13     * srclib/apr/STATUS
14     * srclib/apr-util/STATUS
15     * docs/STATUS
16
17 Contributors looking for a mission:
18
19     * Just do an egrep on "TODO" or "XXX" in the source.
20
21     * Review the "PatchAvailable" bugs in the bug database.
22       Append a comment saying "Reviewed and tested".
23
24     * Open bugs in the bug database.
25
26 CURRENT RELEASE NOTES:
27
28 RELEASE SHOWSTOPPERS:
29
30     * Handling of non-trailing / config by non-default handler is broken
31       http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105451701628081&w=2
32       jerenkrantz asks: Why should this block a release?
33
34     * the edge connection filter cannot be removed 
35       http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105366252619530&w=2
36       jerenkrantz asks: Why should this block a release?
37
38 CURRENT VOTES:
39
40     * Promote mod_cache from experimental to non-experimental
41       status (keep issues noted below in EXPERIMENTAL MODULES as
42       items to be addressed as a supported module).
43       +1: jerenkrantz, pquerna
44       +0: jim, bnicholes
45       -1: stoddard
46           There are a couple of problems that need to be resolved
47       before this module is moved out of experimental. 
48       1) We need to at least review and comment on the RFC violations
49       2) Resolve issue of how to cache page fragements (or perhaps -if- we
50       want to cache page fragements). Today, mod_cache/mod_mem_cache
51       will cache #include 'virtual' requests (but not #include 'file' 
52       requests). This was accomplished by making CACHE_IN a
53       CONTENT_SET-1 filter to force it to run before the SUBREQ_CORE
54       filter.  But now responses cannot be cached that include the
55       effects of having been run through CONTENT_SET filters
56       (mod_deflate, mod_expires, etc).  We could rerun all the
57       CONTENT_SET filters on the cached response, but this will not
58       work in all cases. For example, mod_expires relies on installing
59       the EXPIRATION filter during fixups. Contents served out of
60       mod_cache (out of the quick_handler) bypass -all- the request
61       line server hooks (Ryan really hated this. It is great for
62       performance, but bad because of the complications listed above).
63
64       jerenkrantz: I think it's time.  We've done a *lot* of work to it, and
65                    we think most of the blatant RFC violations are now gone.
66                    mod_cache just belongs in cache/.  There may still be bugs,
67                    but not likely to be major ones.  Note that I'm not moving
68                    *anything* until we switch to SVN.
69
70     * httpd-std.conf and friends
71
72       a) httpd-std.conf should be tailored by install (from src or
73          binbuild) even if user has existing httpd.conf
74          +1:   trawick, slive, gregames, ianh, Ken, wrowe, jwoolley, jim, nd,
75                erikabele
76            wrowe - prefer httpd.default.conf to avoid ambiguity with cvs
77
78       b) tailored httpd-std.conf should be copied by install to
79          sysconfdir/examples
80          -0:   striker
81
82       c) tailored httpd-std.conf should be installed to
83          sysconfdir/examples or manualdir/exampleconf/
84          +1:   slive, trawick, Ken, nd (prefer the latter), erikabele
85
86       d) Installing a set of default config files when upgrading a server
87          doesn't make ANY sense at all.
88          +1:   ianh - medium/big sites don't use 'standard config' anyway, as it
89                       usually needs major customizations
90          -1:   Ken, wrowe, jwoolley, jim, nd, erikabele
91            wrowe - diff is wonderful when comparing old/new default configs,
92                    even for customized sites that ianh mentions
93            jim - ... assuming that the default configs have been updated
94                      with the required inline docs to explain the
95                      changes
96
97     * If the parent process dies, should the remaining child processes
98       "gracefully" self-terminate. Or maybe we should make it a runtime
99       option, or have a concept of 2 parent processes (one being a 
100       "hot spare").
101       See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
102
103       Self-destruct: Ken, Martin, Lars
104       Not self-destruct: BrianP, Ian, Cliff, BillS
105       Make it runtime configurable: Aaron, jim, Justin, wrowe, rederpj, nd
106
107       /* The below was a concept on *how* to handle the problem */
108       Have 2 parents: +1: jim
109                       -1: Justin, wrowe, rederpj, nd
110                       +0: Lars, Martin (while standing by, could it do
111                                         something useful?)
112
113     * Make the worker MPM the default MPM for threaded Unix boxes.
114       +1:   Justin, Ian, Cliff, BillS, striker, wrowe, nd
115       +0:   BrianP, Aaron (mutex contention is looking better with the
116             latest code, let's continue tuning and testing), rederpj, jim
117       -0:   Lars
118       
119       pquerna: Do we want to change this for 2.2?
120
121 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
122
123     * Patches submitted to the bug database:
124       http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Apache+httpd-2.0&keywords=PatchAvailable
125
126     * Filter stacks and subrequests, redirects and fast redirects.
127       There's at least one PR that suffers from the current unclean behaviour
128       (which lets the server send garbage): PR 17629
129       nd says: Every subrequest should get its own filter stack with the
130                subreq_core filter as bottom-most. That filter does two things:
131                  - swallow EOS buckets
132                  - redirect the data stream to the upper request's (rr->main)
133                    filter chain directly after the subrequest's starting
134                    point.
135                Once we have a clean solution, we can try to optimize
136                it, so that the server won't be slow down too much.
137
138     * RFC 2616 violations.
139       Closed PRs: 15857.
140       Open PRs: 15852, 15859, 15861, 15864, 15865, 15866, 15868, 15869,
141                 15870, 16120, 16125, 16126, 16133, 16135, 16136, 16137,
142                 16138, 16139, 16140, 16142, 16518, 16520, 16521, 
143       jerenkrantz says: need to decide how many we need to backport and/or
144                         if these rise to showstopper status.
145       wrowe suggests: it would be nice to see "MUST" v.s. "SHOULD" v.s. "MAY"
146                       out of this list, without reviewing them individually.
147
148     * There is a bug in how we sort some hooks, at least the pre-config
149       hook.  The first time we call the hooks, they are in the correct 
150       order, but the second time, we don't sort them correctly.  Currently,
151       the modules/http/config.m4 file has been renamed to 
152       modules/http/config2.m4 to work around this problem, it should moved
153       back when this is fixed.
154
155         OtherBill offers that this is a SERIOUS problem.  We do not sort
156         correctly by the ordering arguments passed to the register hook
157         functions.  This was proven when I reordered the open_logs hook
158         to attempt to open the error logs prior to the access logs.  Possibly
159         the entire sorting code needs to be refactored.
160
161     * pipes deadlock on all platforms with limited pipe buffers (e.g. both
162       Linux and Win32, as opposed to only Win32 on 1.3).  The right solution
163       is either GStein's proposal for a "CGI Brigade", or OtherBill's proposal
164       for "Poll Buckets" for "Polling Filter Chains".  Or maybe both :-)
165
166     * All handlers should always send content down even if r->header_only
167       is set.  If not, it means that the HEAD requests don't generate the
168       same headers as a GET which is wrong.
169
170     * HP/UX 10.20: compile breakage in APR.  Looks like it should be easy
171       to fix, probably just some extraneous #include's that are fouling
172       things up.
173       PR: 9457
174       Jeff: See my reply and patch in the PR (and previous commit to
175       stop using "pipe" as a field name).  If patch is committed, we
176       should be okay.  I'll wait to see if the user tests the patch.
177       Update by Jeff 20020722: I got an account on HP 10.20.  It looks
178       like some of the APR thread detection is screwed up.  If we find
179       pthread.h but we can't compile the pthread test program we still
180       think we can use threads.  For that reason, the patch I posted
181       to the PR won't work as-is since a failed compile of the test
182       program means nothing.
183
184     * exec cmd and suexec arg-passing enhancements
185       Status: Patches proposed
186       Message-ID: <20020526041748.A29148@prodigy.Redbrick.DCU.IE>
187       (see the "proc.patch" and "suexec-shell.patch" links in this message)
188
189     * The 2.0.36 worker MPM graceless shutdown changes work but are
190       a bit clunky on some platforms; eg, on Linux, the loop to
191       join each worker thread seems to hang, and the parent ends up
192       killing off the child with SIGKILL.  But at least it shuts down.
193
194     * --enable-mods-shared="foo1 foo2" is busted on Darwin.  Pier
195         posted a patch (Message-ID: <B8DBBE8D.575A%pier@betaversion.org>).
196
197     * We do not properly substitute the prefix-variables in the configuration
198       scripts or generated-configs.  (i.e. if sysconfdir is etc,
199       httpd-std.conf points to conf.)
200
201     * If any request gets through ap_process_request_internal() and is
202       scheduled to be served by the core handler, without a flag that this 
203       r->filename was tested by dir/file_walk, we need to 500 at the very 
204       end of the ap_process_request_internal() processing so sub_req-esters
205       know this request cannot be run.  This provides authors of older 
206       modules better compatibility, while still improving the security and 
207       robustness of 2.0. 
208
209         Status: still need to decide where this goes, OtherBill comments...
210         Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
211         [Deleted comments regarding the ap_run_handler phase, as irrelevant
212             as BillS points out that "common case will be caught in
213             default_handler already (with the r->finfo.filetype == 0 check)"
214             and the issue is detecting this -before- we try to run the req.]
215
216         gregames says: can this happen somehow without a broken module
217             being involved?  If not, why waste cycles trying to defend against
218             potential broken modules?  It seems futile.
219         wrowe counters: no, it shouldn't happen unless the module is broken.
220             But the right answer is to fail the request up-front in dir/file
221             walk if the path was entirely invalid; and we can't do that either
222             UNTIL 2.1 or we break modules that haven't hooked map_to_storage.
223
224     * With AP_MODE_EXHAUSTIVE in the core, it is finally clear to me
225       how the Perchild MPM should be re-written.  It hasn't worked
226       correctly since filters were added because it wasn't possible to
227       get the content that had already been written and the socket at
228       the same time.  This mode lets us do that, so the MPM can be
229       fixed.
230
231     * Can a static httpd be built reliably?
232         Message-ID: <20020207142751.T31582@clove.org>
233
234     * [Ken] Test suite failures:
235       o worker is also failing some of the 'cgi' subtests
236       (see <URL:http://Source-Zone.Org/Apache/regression/>):
237         Justin says: "Worker should be fine and passes httpd-test here.
238                       I think it's a perl or a httpd-test problem."
239
240     * Usage of APR_BRIGADE_NORMALIZE in core_input_filter should be
241       removed if possible.
242         Message-ID: <Pine.LNX.4.33.0201202232430.318-100000@deepthought.cs.virginia.edu>
243         Jeff wonders if we still care about this.  It is no longer an
244         API issue but simply an extra trip through the brigade.
245
246     * The Add...Filter and Set...Filter directives do not allow the
247       administrator to order filters, beyond the order of filename (mime)
248       extensions.  It isn't clear if Set...Filter(s) should be inserted 
249       before or after the Add...Filter(s) which are ordered by sequence of
250       filename extensions.  At minimum, some sort of +-[0-10] syntax seems
251       like a nice solution.  See ROADMAP.
252
253     * Get perchild to work on platforms other than Linux. This
254       will require a portable mechanism to pass data and file/socket
255       descriptors between vhost child groups. An API was proposed
256       on dev@apr:
257         Message-ID: <20020111115006.K1529@clove.org>
258
259     * Try to get libtool inter-library dependency code working on AIX.
260         Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
261
262       Justin says: If we get it working on AIX, we can enable this
263                    on all platforms and clean up our build system
264                    somewhat.
265       Jeff says:   I thought I tested a patch for you sometime in
266                    January that you were going to commit within a few
267                    days.
268
269     * Handling of %2f in URIs.  Currently both 1.3 and 2.0
270       completely disallow %2f in the request URI path (see
271       ap_unescape_url() in util.c).  It's permitted and passed
272       through in the query string, however.  Roy says the
273       original reason for disallowing it, from five years ago,
274       was to protect CGI scripts that applied PATH_INFO to
275       a filesystem location and which might be tricked by
276       ..%2f..%2f(...).  We *should* allow path-info of the
277       form 'http://foo.com/index.cgi/path/to/path%2finfo'.
278       Since we've revamped a lot of our processing of path
279       segments, it would be nice to allow this, or at least
280       allow it conditionally with a directive.
281
282         OtherBill adds that %2f as the SECOND character of a multibyte
283         sequence causes the request to fail!  This happens notably in
284         the ja-jis encoding.
285
286     * FreeBSD, threads, and worker MPM.  All seems to work fine 
287       if you only have one worker process with many threads.  Add 
288       a second worker process and the accept lock seems to be
289       lost.  This might be an APR issue with how it deals with
290       the child_init hook (i.e. the fcntl lock needs to be resynced).
291       More examination and analysis is required.
292         Status: This has also been reported on Cygwin.
293                 FreeBSD 4.7 was reputed to have 'fixed' threads.  Not.
294                 FreeBSD 5.2-RC is a confirmed fix w/either libkse or libthr.
295                 [libc_r, still the default, does not serve any pages w/worker;
296                  so on FreeBSD 5.2, you must use libmap.conf (see man page).]
297                 Work needs to be done to get APR to try to be knowledgable that
298                 libkse/libthr are acceptable.  Still not recommended for the
299                 default since libc_r is still broken.
300         Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus)
301
302     * There is increasing demand from module writers for an API
303       that will allow them to control the server Ã  la apachectl.
304       Reasons include sole-function servers that need to die if
305       an external dependency (e.g., a database) fails, et cetera.
306       Perhaps something in the (ever more abused) scoreboard?
307         
308              On the other hand, we already have a pipe that goes between parent
309              and child for graceful shutdown events, along with an API that
310              can be used to send a message down that pipe.  In threaded MPMs,
311              it is easy enough to make that one pipe be used for graceful
312              and graceless events, and it is also easy to open that pipe
313              to both parent and child for writing.  Then we just need to
314              figure out how to do graceless on non-threaded MPMs.
315
316     * Allow the DocumentRoot directive within <Location > scopes?  This
317       allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
318       by a <Directory /somepath/foo> to become simply 
319       <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
320       and in-your-face.)  DocumentRoot unset would be accepted [and would
321       not permit content to be served, only virtual resources such as
322       server-info or server-status.
323       This proposed change would _not_ depricate Alias.
324         striker: See the thread starting with Message-ID:
325           JLEGKKNELMHCJPNMOKHOGEEJFBAA.striker@apache.org.
326
327     * Win32: Rotatelogs sometimes is not terminated when Apache
328       goes down hard.  FirstBill was looking at possibly tracking the 
329       child's-child processes in the parent process.
330         stoddard: Shared scoreboard might offer a good way for the parent 
331         to keep track of 'other child' processes and whack them if the child 
332         goes down.
333         Other thoughts on walking the process chain using the NT kernel
334         have also been proposed on APR.
335
336     * Eliminate unnecessary creation of pipes in mod_cgid
337
338     * Combine log_child and piped_log_spawn. Clean up http_log.c.
339       Common logging API.
340
341     * Platforms that do not support fork (primarily Win32 and AS/400)
342       Architect start-up code that avoids initializing all the modules 
343       in the parent process on platforms that do not support fork.
344
345     * There are still a number of places in the code where we are
346       losing error status (i.e. throwing away the error returned by a
347       system call and replacing it with a generic error code)
348
349     * Mass vhosting version of suEXEC.
350
351     * All DBMs suffer from confusion in support/dbmmanage (perl script) since 
352       the dbmmanage employs the first-matched dbm format.  This is not
353       necessarily the library that Apache was built with.  Aught to
354       rewrite dbmmanage upon installation to bin/ with the proper library 
355       for predictable mod_auth_dbm administration.
356         Questions; htdbm exists, time to kill dbmmanage, or does it remain
357                    useful as a perl dbm management example?  If we keep it,
358                    do we address the issue above?
359
360     * Integrate mod_dav.
361         Some additional items remaining:
362         - case_preserved_filename stuff
363             (use the new canonical name stuff?)
364         - find a new home for ap_text(_header)
365         - is it possible to remove the DAV: namespace stuff from util_xml?
366
367     * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
368       are a bit wonky.  The function should probably be exposed as a utility 
369       function (such as ap_translate_url2fs() or ap_validate_fs_url() or 
370       something).  Another approach would be a new hook phase after
371       "translate" which would allow the module to munge what the
372       translation has decided to do.
373         Status: Greg +1 (volunteers)
374
375     * Explore use of a post-config hook for the code in http_main.c which
376       calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
377       ap_sort_hooks()  [to reduce the logic in main()]
378
379     * read the config tree just once, and process N times (as necessary)
380
381     * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
382
383     * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
384       into a VirtualHost container) to 2.0.
385
386     * shift stuff to mod_core.h
387
388     * callers of ap_run_create_request() should check the return value
389       for failure (Doug volunteers)
390
391     * Win32: Get Apache working on Windows 95/98. The following work
392         (at least) needs to be done:
393         - Document warning that OSR2 is required (for Crypt functions, in
394         rand.c, at least.)  This could be resolved with an SSL library, or
395         randomization in APR itself.
396         - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
397         actually works) and add in a splash of Win9x service code.
398
399     * Fix the worker MPM to use POD to kill child processes instead
400       of ap_os_killpg, regardless of how they should die.
401
402     * Scoreboard structures could be changed in the future such that
403       proper alignment is not maintained, leading to segfaults on 
404       some systems.  Cliff posted a patch to deal with this issue but
405       later recanted. See this message to dev@apr.apache.org:
406       Message-ID: <Pine.LNX.4.44.0203011354090.16457-200000@deepthought
407                   .cs.virginia.edu>
408
409     * When sufficiently tested, the AllowEncodedSlashes/%2f patch
410       needs to be backported to 2.0 and 1.3.
411
412     * APXS either needs to be fixed completely for use when apr is out of tree,
413       or it should drop query mode altogether, and we just grow an 
414       httpd-config or similar arrangement. 
415       To quote a discussion in STATUS earlier:
416
417           thommay: this doesn't fix all the problems with apxs and out of
418                    tree apr/apr-util, but it's a good start. There's still the 
419                    query cases; but I'm beginning to think that in these cases 
420                    the app should be querying ap{r,u}-config directly
421           gstein: agreed. apxs should deprecate the -q flag
422
423 TODO ISSUES REMAINING IN MOD_SSL:
424
425     * In order to use a DSO version of mod_ssl we have to link with
426       -lssl and -lcrypto. A workaround is in place right now where the
427       entire EXTRA_LIBS macro is being appended to the objects list, but
428       this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
429       autoconf function or come up with some other autoconf checks to
430       search for libssl and libcrypto and properly add them to mod_ssl's
431       link flags.
432
433     * SSL renegotiations in combination with POST request
434
435     * Port or dispose all code inside #if 0...#endif blocks that remain
436       from the porting effort.
437
438     * Do we need SSL_set_read_ahead()?
439
440     * the ssl_expr api is NOT THREAD SAFE.  race conditions exist:
441        -in ssl_expr_comp() if SSLRequire is used in .htaccess
442         (ssl_expr_info is global)
443        -is ssl_expr_eval() if there is an error
444         (ssl_expr_error is global)
445
446     * SSLRequire directive (parsing of) leaks memory
447
448     * Diffie-Hellman-Parameters for temporary keys are hardcoded in
449       ssl_engine_dh.c, while the comment in ssl_engine_kernel.c says:
450       "it is suggested that keys be changed daily or every 500
451       transactions, and more often if possible."
452
453     * ssl_var_lookup could be rewritten to be MUCH faster
454
455     * CRL callback should be pluggable
456
457     * session cache store should be pluggable
458
459     * init functions should return status code rather than ssl_die()
460
461     * ssl_engine_pphrase.c needs to be reworked so it is generic enough
462       to also decrypt proxy keys
463
464     * the shmcb code should just align its memory segment rather than
465       jumping through all the "safe" memcpy and memset hoops
466
467 WISH LIST
468     * mod_proxy performance: when mod_proxy is configured to do proxy
469       gateway (aka reverse proxy), it would be nice to be able to reuse
470       connections to the backend servers. Now, connections to the 
471       backend servers are taken down when the corresponding frontend
472       connection is taken down.
473
474     * mod_proxy: Ability to run SSL over proxy gateway connections,
475       encrypting (or reencrypting) at the proxy.
476
477     * mod_proxy: Add capability of mod_proxy to load balance across
478       a farm of backend servers.
479
480     * mod_cache: Handle ESI tags.
481
482 EXPERIMENTAL MODULES:
483
484     Experimental modules should eventually be be promoted to fully supported
485     status or removed from the repository entirely (ie, the
486     'experiment' failed). This section tracks what needs to happen to 
487     get the modules promoted to fully supported status.
488
489     mod_cache/mod_mem_cache/mod_disk_cache:
490
491     * mod_mem_cache: Consider adding a RevalidateTimeout directive to
492       specify time at which local cached content is to be revalidated
493       (ie, underlying file stat'ed to see if it has changed).
494
495     * mod_cache: CacheEnable/CacheDisable should accept regular expressions.
496       jerenkrantz says: Too slow.  Get regexs away from speedy caches by
497                         default.  Introduce a new CacheEnableRegex if you want.
498
499     * mod_cache: Fix dependency on ATOMIC operators. Need
500       APR_HAS_ATOMIC_* feature macros.
501       jerenkrantz says: APR 1.0+ has some guaranteed form of atomics.
502
503     * mod_mem_cache/mod_disk_cache: Need to be able to query cache
504       status (num of entries, cache object properties, etc.).
505       mod_status could be extended to query optional hooks defined
506       by modules for the purpose of reporting module status.
507       mod_cache (et. al.) could define optional hooks that are called
508       to collect status.  Status should be queryable by
509       HTTP or SNMP?
510       jerenkrantz says: Yawn.  Who cares.
511
512 PRs that have been suspended forever waiting for someone to
513 put them into 'the next release':
514
515     * documentation and Q&A
516
517       PR#2221: Make online documentation search link back to my installation
518         Status: 
519
520       PR#2906: Propose that Apache recommend $UNIQUE_ID for all "session id"
521       algorithms
522         Status: 
523
524       PR#2793: When will Apache support P3P? Any Plans?
525         Status: 
526
527     * build
528
529       PR#2113: HTTP Server Rebuild Line Needs Changing for the better
530         Status: 
531
532       PR#2421: problem specifying ndbm library for build ?with autoconfigure
533         Status: 
534
535     * config
536
537       PR#76: missing call to "setlocale();"
538         Status: 
539
540       PR#628: Request of "Options SymLinksIfGroupMatch"
541         Status: 
542
543       PR#793: RLimitCPU and RLimitMEM don't apply to all children like they should
544         Status: 
545
546       PR#922:  it is useful to allow specifiction that root-owned symlinks
547       should always be followed
548         Status: 
549
550       PR#1028: DoS attacks involving memory consumption
551         Status: 
552
553       PR#1191: setlogin() is not called, causing problems with e.g. identd
554         Status: 
555
556       PR#1204: regerror() exists, use it
557         Status: 
558
559       PR#2284: Can not POST to ErrorDocument - Apache/1.3b6
560         Status: 
561
562       PR#2396: Proposal for TimeZone directive
563         Status: 
564
565       PR#2446: AllowOverride FileInfo is too coarse
566         Status: 
567
568       PR#2760: [PATCH] User/Group for <Directory> and <Location> i.e. not only
569       in global and <Virtual>.
570         Status: 
571
572       PR#2907: suggestion: power up your Include directive :)
573         Status: 
574
575       PR#3018: cannot limit some HTTP methods
576         Status: 
577
578       PR#3677: New ErrorDocumentMatch directive
579         Status: 
580
581       PR#4244: "Files" and "FilesMatch" regexp does not recognize bang as
582       negation operator
583         Status: 
584
585       PR#5993: AllowOverride should have a 'CheckNone' and 'AllowNone' argument
586       instead of only 'None'
587         Status: 
588
589     * mod_access
590
591       PR#537: mod_access syntax allows hosts that should be restricted
592         Status: 
593
594       PR#1287: add allow,deny/deny,allow warning to mod_access
595         Status: 
596
597       PR#2512: <IfDenied> directive wanted
598         Status: 
599
600     * mod_auth-any
601
602       PR#557: ~UserHome directories are not honored in absolute pathname
603       requests (.htaccess)
604         Status: 
605
606       PR#1117: Using NIS passwd.byname dbm files with AuthDBMUserFile
607         Status: 
608
609       PR#1809: Suggestion for improving authentication modules and core source
610       code, problem with 401 and ErrorDocument
611         Status: 
612
613     * mod_autoindex
614
615       PR#1263: Add frame-safe anchor attribute to mod_autoindex links
616         Status: 
617
618     * mod_cgi (and suexec)
619
620       PR#921: suexec Uses cwd before filling it in, doesn't use syslog
621         Status: 
622
623       PR#1176: Apache cannot handle continuation line in headers
624         Status: 
625
626       PR#1120: suexec does not parse arguments to #exec cmd
627         Status: 
628
629       PR#1268: CGI scripts running as Apache user: security (suexec etc.)
630         Status: 
631
632       PR#1285: Error messages could be easier to spot in cgi.log file for suexec.c
633         Status: 
634
635       PR#1905: suexec - Allow modules to set user:group for execution.
636         Status: 
637
638       PR#2360: suexec for general access of user content?
639         Status: 
640
641       PR#2460: TimeOut applies to output of CGI scripts
642         Status: 
643
644       PR#2573: CGI's for general use still have to be run as another user
645       with suExec
646         Status: 
647
648       PR#4241: Need to be able to override shebang line to make CGI scripts
649       more portable.
650         Status: 
651
652       PR#4490: mod_cgi prevents handling of OPTIONS requests
653         Status: 
654
655     * mod_env
656
657       PR#370: Modified PATH environemnt variable is not passed, instead
658       system's is used
659         Status: 
660
661     * mod_headers
662
663       PR#1383: I make mod_headers to modify request headers as well as
664       response ones.
665         Status: 
666
667       PR#1677: mod_headers should allow mod_log_config-style formats in
668       header values
669         Status: 
670
671     * mod_imap
672
673       PR#759: imap should read <MAP><AREA>*</MAP> too!
674         Status: 
675
676     * mod_include
677
678       PR#78: Additional status for XBitHack directive
679         Status: 
680
681       PR#623: A smarter "Last Modified" value for SSI documents (see PR number 600)
682         Status: 
683
684       PR#1145: mod_include
685       Allow for Last-Modified: without resorting to XBitHack
686         Status: 
687
688       PR#1803: patches to mod_include to allow for file tests
689         Status: 
690
691       PR#4459: Suggestion for better handling of Last-modified headers
692         Status: 
693
694     * mod_log-any
695
696       PR#1050: Logging of virtual server to error_log as well
697         Status: 
698
699       PR#1358: Selective url-encode of log fields (or maybe a pseudo
700       log_rewrite module?)
701         Status: 
702
703       PR#2073: pipelined connections are not logged correctly
704         Status: 
705
706       PR#4448: Please allow CGI env variables (QUERY_STRING, ...) to be logged
707       with %{}e
708         Status: 
709
710     * mod_negotiation
711
712       PR#3191: no way to set global quality-of-source (qs) coneg values
713       with multiviews
714         Status: 
715
716     * mod_proxy
717
718       PR#362: Mod_proxy doesn't allow change of error pages
719         Status: 
720
721       PR#440: Proxy doesn't deliver documents if not connected
722         Status: 
723
724       PR#534: proxy converts ~name to %7Ename when name starts with a dot (.)
725         Status: 
726
727       PR#612: Proxy FTP Authentication Fails
728         Status: 
729
730       PR#700: Proxy doesn't do links right for OpenVMS files through ftp:
731         Status: 
732
733       PR#980: Controlling Access to Remote Proxies would be nice...
734         Status: 
735
736       PR#994: Adding authentication "on the fly" through the proxy module
737         Status: 
738
739       PR#1085: ProxyRemote make a dead cycle.
740         Status: 
741
742       PR#1166: ``nph-'' not honored (no buffering) for ProxyRemote mapping
743         Status: 
744
745       PR#1290: Need to know "hit-rate" on proxy cache
746         Status: 
747
748       PR#1532: Proxy transfer logging
749         Status: 
750
751       PR#1547: No HTTP_X_FORWARDED_FOR set...
752         Status: 
753
754       PR#1567: ProxyRemote proxy requests fail authentication by firewall
755         Status: 
756
757       PR#1702: mod_proxy to support persistent conns?
758         Status: 
759
760       PR#1878: listing of proxy cache content
761         Status: 
762
763       PR#2314: patterns in ProxyRemote
764         Status: 
765
766       PR#2648: Cache file names in Proxy module
767         Status: 
768
769       PR#3568: Accessing URL through proxy server corrupts data.
770         Status: 
771
772       PR#3605: Some anonymous FTP URLs ask for authentication
773         Status: 
774
775     * mod_rewrite
776
777       PR#1582: mod_rewrite forms REQUEST_URI different than mod_cgi does
778         Status: 
779
780       PR#2074: mod_rewrite doesn't pass Proxy Throughput on internal subrequests
781         Status: 
782
783     * mod_status
784
785       PR#2138: mod_status always displays 256 possible connection slots
786         Status: 
787
788       PR#2343: Status module averages are for entire uptime
789         Status: 
790
791     * apache-api
792
793       PR#1004: request_config field in request_rec is moderately bogus
794         Status: 
795
796       PR#1158: improvements to child spawning API
797         Status: 
798
799       PR#1233: there is no way to keep per-connection per-module state
800         Status: 
801
802       PR#2024: adding auth_why to conn_rec
803         Status: 
804
805       PR#2873: Feedback/Comment on APACI
806         Status: 
807
808       PR#3143: No module specific data hook for per-connection data
809         Status: 
810
811     * generally odds and ends
812
813       PR#2431: A small addition to rotatelogs.c to improve program functionality.
814         Status: 
815
816       PR#2763: mailto tags and bundling bug report script
817         Status: 
818
819       PR#2785: os-aix Support for System Resource Controller
820         Status: 
821
822       PR#2889: Inclusion of RPM spec file in CVS/distributions
823         Status: 
824
825       PR#5713: os-windows [PATCH] install as win32 service with domain account
826         Status: Cannot accept password-as-arg, we should prompt the
827                 user when -k install/-k config with a user argument.
828
829
830
831 Other bugs that need fixing:
832
833     * ap_discard_request should be converted to use the bucket API
834       directly rather than waste cycles copying buffers with the old API.
835
836     * MaxRequestsPerChild measures connections, not requests.
837         Until someone has a better way, we'll probably just rename it
838         "MaxConnectionsPerChild".
839     
840     * Regex containers don't work in an intutive way
841         Status: No one has come up with an efficient way to fix this
842         behavior. Dean has suggested getting rid of regex containers
843         completely.
844         OtherBill suggests: We at least seem to agree on eliminating
845                             the <Container ~ foo> forms, and using only
846                             <ContainerMatch foo> semantics.
847
848     * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
849       sigwaiting thread. We need to work around this, perhaps unless
850       there is hope soon for a fixed glibc.
851
852     * orig_ct in the byterange/multipart handling may not be
853       needed. Apache 1.3 just never stashed "multipart" into
854       r->content_type. We should probably follow suit since the
855       byterange stuff doesn't want the rest of the code to see the
856       multipart content-type; the other code should still think it is
857       dealing with the <orig_ct> stuff.
858         Status: Greg volunteers to investigate (esp. since he was most 
859                 likely the one to break it :-)
860
861 Binaries (probably not till beta):
862
863  Platform                      Avail.  Volunteer
864  ------------------------------------------------------------------
865  AIX 4.3.3                     no      Bill Stoddard
866  Mandrake 8.1                  no      open
867  FreeBSD 4.1                   no      open
868  hppa2.0w-hp-hpux11.00         no      Cliff Woolley
869  i386-pc-solaris2.8            no      Aaron Bannert
870  i386-unknown-freebsd4.5       no
871  i386-unknown-freebsd4.6       no      Cliff Woolley
872  i686-pc-linux-gnu-slackware81 no      Cliff Woolley
873  i686-pc-linux-gnu-rh70        no      Aaron Bannert
874  i686-pc-linux-gnu-rh73        no      Cliff Woolley
875  ia64-hp-hpux11.20             no
876  powerpc-apple-darwin5.5       no      Aaron Bannert
877  powerpc-unknown-linux-gnu     no      Graham Leggett
878  s390-ibm-linux                no      Greg Ames
879  sparc-sun-solaris2.8          no      Jim Jagielski
880  NetWare                       no      Brad Nicholes
881  OS/2                          no      Brian Havard
882  OS/390                        no      Greg Ames
883  Win32-x86                     no      William Rowe