2 Apache 2.0alpha7 Released
3 -------------------------
5 The Apache Group is pleased to announce the release of the seventh public
6 alpha release of Apache 2.0.
8 Apache 2.0 offers numerous enhancements, improvements and performance
9 boosts over the 1.3 codebase. The most visible and noteworthy addition
10 is the ability to run Apache in a hybrid thread/process mode on any
11 platform that supports both threads and processes. This has shown to
12 improve the scalability of the Apache HTTPD server significantly in
13 our early testing, on some versions of Unix. This release also
14 greatly improves the performance and robustness of Apache on the
15 Microsoft Windows Operating Systems. Lastly we are proud to announce
16 support for BeOS in this version of the server.
18 The newest development in Apache 2.0 is the addition of input filtering.
19 This allows modules to filter data before the core server receives it from
20 the network. The sixth alpha had support for output filtering only, this
21 alpha adds input filtering as well. This feature is still in its infancy,
22 and it is likely to change and evolve in the next few weeks.
24 Apache 2.0a7 under UNIX has undergone some testing, but there are some
25 known issues in the current release (hey, it is an "alpha" for a
26 reason!). It is intended for developers and experienced Apache HTTPD
27 administrators to play around with and work on. It is not a production
28 release. If you do not feel comfortable compiling and working with
29 code, the Apache Group strongly recommends that you wait for a more
30 stable beta release before you try this version.
32 Apache 2.0a7 under Windows has undergone some testing as well. There
33 are known issues in the current release with regards to Apache on windows
34 95 and 98. We are working through those problems, and hope to have them
35 fixed for future releases of the 2.0 alpha.
37 There are new snapshots of the Apache httpd source available every 6
38 hours from http://dev.apache.org/from-cvs/apache-2.0/ - please
39 download and test if you feel brave. We don't guarantee anything
40 except that it will take up disk space, but if you have the time and
41 skills, please give it a spin on your platforms.
43 Apache has been the most popular web server on the Internet since
44 April of 1996. The May 2000 WWW server site survey by Netcraft (see:
45 http://www.netcraft.co.uk/Survey/) found that more web servers were
46 using Apache than any other software running on more than 60% of the
49 For more information, please check out http://www.apache.org/httpd.html
51 Changes with Apache 2.0a7
52 *) Fix mod_log_config so that it compiles cleanly with BUFFERED_LOGS
53 [Mike Abbott <mja@sgi.com>]
55 *) Remove ap_send_fb. This is no longer used in Apache, and it doesn't
56 make much sense, because Apache uses buckets instead of BUFFs now.
59 *) send_the_file now falls back to a read/write loop on platforms that
61 [Ryan Bloom and Brian Havard]
63 *) Install apachectl correctly, and substitute the proper values so
64 that it works again. [Ryan Bloom]
66 *) Better(??) handle platforms that lack sendfile().
69 *) APR now has UUID generation/formatting/parsing support.
72 *) Begin the http_filter. This is an input filter that understands
73 the absolute basic amount required to parse an HTTP Request. The
74 goal is to be able to split headers from request body before passing
75 the data back to the other filters.
78 *) Bring forward from 1.3.13 the config directory implementation
81 *) install apxs if it is created
84 *) Added APR_IS_STATUS_condition test macros to eliminate canonical error
85 conversions. [William Rowe]
87 *) Now that we have ap_add_input_filter(), rename ap_add_filter() to
88 ap_add_output_filter(). [Jeff Trawick]
90 *) Multiple build and configuration fixes
93 -add datadir and localstatedir substitutions
95 -fix logfilename misspelling
96 -fix evaluation of installation dir variables and
97 -replace $foobar by $(foobar) to be usefull in the makefile
101 -add rules for cross-compiling in rules.mk. Okay, rule to check for
102 $CC_FOR_BUILD is still missing
103 -use CHECK_TOOL instead of CHECK_PROG for ranlib
104 -add missing "AR=@AR@" to severaly Makefile.in's
105 -cache result for "struct rlimit"
106 -compile all helper programs with native and cross compiler
107 and use the native version to generate header file
108 ["RĂ¼diger" Kuhlmann <Tadu@gmx.de>]
110 *) Prepare our autoconf setup for autoconf 2.14a and for cross-
112 ["RĂ¼diger" Kuhlmann <Tadu@gmx.de>]
114 *) Fix a bug where a client which only sends \n to delimit header
115 lines (netcat) gets a strange looking HTTP_NOT_IMPLEMENTED
116 message. Start working on ebcdic co-existance with input
118 [William Rowe, Greg Ames]
120 *) If mod_so is enabled in the server always create libexec, even
121 if there are no modules installed in this directory. This is a
122 requirement for APXS to work correctly.
125 *) Connection oriented output filters are now stored in the
126 conn_rec instead of the request_rec. This allows us to add the
127 output filter in the pre-connection phase instead of the
128 post_read_request phase, which keeps us from trying to write an
129 error page before we have a filter to write to the network.
130 [Ryan Bloom, Jeff Trawick, and Greg Ames]
132 *) Cleaning up an mmap bucket no longer deletes the mmap. An
133 mmap can be used across multiple buckets (default_handler with
134 byte ranges, mod_file_cache, mod_mmap_static), so cleanup of
135 the mmap itself can't be associated with the bucket.
138 *) Add .dll caching directive ISAPICacheFile to mod_isapi.
141 *) Radical surgery to improve mod_isapi support under Win32.
142 Includes a number of newer ServerSupportFunction calls, support
143 for ReadClient (in order to retrieve POSTs greater than 48KB),
144 and general bug fixes to more reliably load ISAPI .dll's and
145 prevent leaking handle resources. Note: There are still
146 discrepancies between IIS's and Apache's ServerVariables, and
147 async calls are still not supported. Additional warnings are
148 logged to facilitate debugging of unsupported ISAPI calls.
151 *) Add input filtering to Apache. The basic idea for the input
152 filters is the same as the ideas for output filters. The biggest
153 difference is that instead of calling ap_pass_brigade, ap_get_brigade
154 should be called, and the order of execution for the filter itself is
155 different. When writing an output filter, a brigade is passed in,
156 and filters operate directly on that brigade, when done, they call
157 ap_pass_brigade. Input filters are the exact opposite. Because input
158 is not a push operation, filters first call ap_get_brigade. When this
159 function returns, the input filter will be left with a valid brigade.
160 The input filter should then operate on the brigade, and return.
163 *) Fix building on BSD/OS using its native make. The build system
164 falls back to the BSD .include directive on that host platform.
167 *) Expand dbmmanage to allow -d -m -s -p options for Crypt, MD5,
168 SHA1 and plaintext password encodings. Make feature tests a
169 bit more flexible. [William Rowe]
171 *) Charset translation: mod_charset_lite handles output content
172 translation in a filter. mod_charset_lite no longer ignores
173 subrequests. A bunch of cruft related to BUFF's support for
174 translating response bodies was removed. [Jeff Trawick]
176 *) Move the addition of the CORE filter to the post_read_request
177 hook in http_core.c. This removes the need to add the filter in
178 multiple places and allows for an SSL module to be added much
179 simpler. [Ryan Bloom]
181 *) Fix a security problem that affects certain configurations of
182 mod_rewrite. If the result of a RewriteRule is a filename that
183 contains expansion specifiers, especially regexp backreferences
184 $0..$9 and %0..%9, then it may be possible for an attacker to
185 access any file on the web server. [Tony Finch]
187 *) Fix a bug where errors that are detected during early request parsing
188 don't produce visible HTTP error messages at the browser, because
189 the core_filter wasn't present. [Greg Ames]
191 *) Provide apr_socklen_t as a portability aid.
192 [Victor J. Orlikowski]
194 *) Overhaul of dbmmanage to allow a groups arg (as in Apache 1.2)
195 as well as a comment arg to the add, adduser and update cmds.
196 update allows the user to clear or preserve pw/groups/comment.
197 Fixed a bug in dbmmanage that prevented the check option from
198 parsing a password followed by :group... text. Corrected the
199 seed calcualation for Win32 systems, and added -lsdbm support.
202 *) Configured mod_auth_dbm to compile with sdbmlib under Win32.
205 *) Avoid a segfault when parsing .htaccess files. An
206 uninitialized tree pointer was passed to ap_build_config().
209 *) Change the way that inet_addr & inet_network are checked for
210 in APR's configure process to allow BeOS BONE to correctly
211 find them. With this change BeOS BONE now builds from source
212 with no problems. [David Reid]
214 *) Fix a bug in apr_create_process() for Unix. The NULL signifying
215 the end of the parameters to execve() was stored in the wrong
216 location, overlaying the storage beyond the newargs[] array and
217 also passing uninitialized storage to execve(), which would
218 sometimes fail with EFAULT. [Jeff Trawick]
220 *) Fix a bug parsing configuration file containers. With a sequence
221 like this in the config file
223 <IfModule mod_kilroy.c>
226 <IfModule mod_lovejoy.c>
231 the second container would be terminated at the blank line due to
232 sediment in the buffer from reading the prior </IfModule> and an
233 error message would be generated for the real </IfModule> for the
234 second container. Also due to this problem, any two characters
235 could be used for "</" in the close of a container.
238 *) ap_add_filter prototype changed to remove the ctx pointer. The
239 pointer still remains in the filter structure, but it can not be
240 a part of the ap_add_filter prototype. The reason is that when
241 the core uses AddFilter to add a filter to the stack it doesn't
242 know how to allocate the ctx pointer, or even how much memory should
243 be allocated. The filters will have to be responsible for allocating
244 the ctx memory when they need it.
247 *) Add an AddFilter directive. This directive takes a list of filters
248 that should be activated for the requested resource.
251 *) apr_snprintf(): Get quad format strings working on OS/390 (and perhaps
252 some other platforms). [Jeff Trawick]
254 *) Modify mod_include to be a filter. Currently, it has only been tested
255 on actual files, but it should work for CGI scripts too.
258 *) apr_putc(), apr_puts() for Unix: handle buffered files and interrupted
259 writes. apr_flush() for Unix: handle interrupted writes.
262 *) NameVirtualHost can now take "*" as an argument instead of
263 an IP address. This allows you to create a purely name-based
264 virtual hosting server that does not have any IP addresses in
265 the configuration file and which ignores the local address
266 of any connections. PR #5595, PR #4455 [Tony Finch]
268 *) Fix some compile warnings in mod_mmap_static.c
269 [Mike Abbott <mja@sgi.com>]
271 *) Fix chunking problem with CGI scripts. The general problem was that
272 the CGI modules were adding an EOS bucket and then the core added an
273 EOS bucket. The chunking filter finalizes the chunked response when it
274 encounters an EOS bucket. Because two EOS buckets were sent, we
275 finalized the response twice. The fix is to make sure we only send one
276 EOS, by utilizing a flag in the request_rec.
279 *) apr_put_os_file() now sets up the unget byte appropriately on Unix
280 and Win32. Previously, the first read from an apr_file_t set up via
281 apr_put_os_file() would return a '\0'. [Jeff Trawick]
283 *) Mod_cgid now creates a single element bucket brigade, with a pipe
284 bucket, instead of using BUFF's and ap_r*.
287 *) APRVARS.in no longer overwrites the EXTRA_LIBS variable.
288 [Mike Abbott <mja@sgi.com>]
290 *) Remove ap_bopenf from buff code. This required modifying the file_cache
291 code to use APR file's directly instead of going through BUFFs.
294 *) Fix compile break on some platforms for mod_mime_magic.c
295 [John K. Sterling <sterling@covalent.net>]
297 *) Fix merging of AddDefaultCharset directive.
298 PR #5872 (1.3) [Jun Kuriyama <kuriyama@imgsrc.co.jp>]
300 *) Minor revamp of the rlimit sections of code. We now test
301 explicitly for setrlimit and getrlimit. Also, unixd_set_rlimit()
302 is now "available" even if the platform doesn't support
303 the rlimit family (it's just a noop though). [Jim Jagielski]
305 *) Migrate the pre-selection of which MPM to use for specific
306 platforms to hints.m4, which contains (or should contain)
307 all platform specific "hints". [Jim Jagielski]
309 *) Remove IOLs from Apache. With filtering, IOLs are no longer necessary
312 *) Add tables with non-string/binary values to APR.
315 *) Fix some bad calls to ap_log_rerror() in mod_rewrite.
318 *) Update PCRE to version 3.2. [Ryan Bloom]
320 *) Change the way buckets' destroy functions are called so that
321 they can be more directly used when changing the type of a
322 bucket in place. [Tony Finch]
324 *) Add generic support for reference-counting the resources used by
325 buckets, and alter the HEAP and MMAP buckets to use it. Change
326 the way buckets are initialised to support changing the type of
327 buckets in place, and use it when setting aside TRANSIENT buckets.
328 Change the implementation of TRANSIENT buckets so that it can be
329 mostly shared with IMMORTAL buckets, which are now implemented.