]> granicus.if.org Git - apache/blob - Announcement
Cleaning up a _Security_ concern - Please Review Carefully
[apache] / Announcement
1
2 Apache 2.0alpha7 Released
3 -------------------------
4
5 The Apache Group is pleased to announce the release of the seventh public
6 alpha release of Apache 2.0.  
7
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.
17
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.
23
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.
31
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.
36
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.
42
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
47 Internet web servers.
48
49 For more information, please check out http://www.apache.org/httpd.html
50
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>]
54
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.
57      [Ryan Bloom]
58
59   *) send_the_file now falls back to a read/write loop on platforms that
60      do not have sendfile.
61      [Ryan Bloom and Brian Havard]
62
63   *) Install apachectl correctly, and substitute the proper values so
64      that it works again.  [Ryan Bloom]
65
66   *) Better(??) handle platforms that lack sendfile().
67      [Jim Jagielski]
68
69   *) APR now has UUID generation/formatting/parsing support.
70      [Greg Stein]
71
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.
76      [Ryan Bloom]
77
78   *) Bring forward from 1.3.13 the config directory implementation
79      [Jim Jagielski]
80
81   *) install apxs if it is created
82      [Ryan Bloom]
83
84   *) Added APR_IS_STATUS_condition test macros to eliminate canonical error
85      conversions.  [William Rowe]
86
87   *) Now that we have ap_add_input_filter(), rename ap_add_filter() to 
88      ap_add_output_filter().  [Jeff Trawick]
89
90   *) Multiple build and configuration fixes
91     Build process:
92
93       -add datadir and localstatedir substitutions
94       -fix layout name
95       -fix logfilename misspelling
96       -fix evaluation of installation dir variables and
97       -replace $foobar by $(foobar) to be usefull in the makefile
98     
99     Cross compile:
100     
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>]
109
110   *) Prepare our autoconf setup for autoconf 2.14a and for cross-
111      compiling.
112      ["RĂ¼diger" Kuhlmann <Tadu@gmx.de>]
113
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 
117      filtering.
118      [William Rowe, Greg Ames]
119
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.
123      [Ryan Bloom]
124
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]
131
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.
136      [Jeff Trawick]
137
138   *) Add .dll caching directive ISAPICacheFile to mod_isapi.
139      [William Rowe]
140
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.
149      [William Rowe]
150
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.
161      [Ryan Bloom]
162
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.
165      [Sascha Schumann]
166
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]
170
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]
175
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]
180
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]
186
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]
190
191   *) Provide apr_socklen_t as a portability aid. 
192      [Victor  J. Orlikowski]
193
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.
200      [William Rowe]
201
202   *) Configured mod_auth_dbm to compile with sdbmlib under Win32.
203      [William Rowe]
204
205   *) Avoid a segfault when parsing .htaccess files.  An 
206      uninitialized tree pointer was passed to ap_build_config().
207      [Jeff Trawick]
208
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]
213
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]
219
220   *) Fix a bug parsing configuration file containers.  With a sequence
221      like this in the config file
222
223        <IfModule mod_kilroy.c>
224        any stuff
225        </IfModule>
226        <IfModule mod_lovejoy.c>
227        (blank line)
228        any stuff
229        </IfModule>
230
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.  
236      [Jeff Trawick]
237
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.
245      [Ryan Bloom]
246
247   *) Add an AddFilter directive.  This directive takes a list of filters
248      that should be activated for the requested resource.
249      [Ryan Bloom]
250
251   *) apr_snprintf(): Get quad format strings working on OS/390 (and perhaps
252      some other platforms).  [Jeff Trawick]
253
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.
256      [Ryan Bloom]
257
258   *) apr_putc(), apr_puts() for Unix: handle buffered files and interrupted
259      writes.  apr_flush() for Unix: handle interrupted writes.
260      [Jeff Trawick]
261
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]
267
268   *) Fix some compile warnings in mod_mmap_static.c
269      [Mike Abbott <mja@sgi.com>]
270
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.
277      [Ryan Bloom]
278
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]
282
283   *) Mod_cgid now creates a single element bucket brigade, with a pipe
284      bucket, instead of using BUFF's and ap_r*.
285      [Ryan Bloom]
286
287   *) APRVARS.in no longer overwrites the EXTRA_LIBS variable.
288      [Mike Abbott <mja@sgi.com>]
289
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.
292      [Ryan Bloom]
293
294   *) Fix compile break on some platforms for mod_mime_magic.c
295      [John K. Sterling <sterling@covalent.net>]
296
297   *) Fix merging of AddDefaultCharset directive.
298      PR #5872 (1.3) [Jun Kuriyama <kuriyama@imgsrc.co.jp>]
299
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]
304
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]
308
309   *) Remove IOLs from Apache.  With filtering, IOLs are no longer necessary
310      [Ryan Bloom]
311
312   *) Add tables with non-string/binary values to APR.
313      [Ken Coar]
314
315   *) Fix some bad calls to ap_log_rerror() in mod_rewrite. 
316      [Jeff Trawick]
317
318   *) Update PCRE to version 3.2.  [Ryan Bloom]
319
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]
323
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.
330      [Tony Finch]