httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject cvs commit: httpd-site Announcement
Date Mon, 05 Feb 2001 03:16:51 GMT
rbb         01/02/04 19:16:51

  Added:       .        Announcement
  Move the Announcement file from the build tree (httpd-2.0) to the httpd
  web site.  This is in preparation for the first tag with the new tag and
  release strategy.  This may not be the correct location for this file, but
  it is the best I could come up with.
  Revision  Changes    Path
  1.1                  httpd-site/Announcement
  Index: Announcement
  Apache 2.0beta1 Released
  After two long years of development he Apache Group is pleased to announce 
  the release of the first public beta release of Apache 2.0.
  Apache 2.0 offers numerous enhancements, improvements and performance
  boosts over the 1.3 codebase. The most visible and noteworthy addition
  is the ability to run Apache in a hybrid thread/process mode on any
  platform that supports both threads and processes.  This has shown to
  improve the scalability of the Apache HTTPD server significantly in
  our early testing, on some versions of Unix.  With this version of Apache,
  we have also added support for filtered I/O.  This allows modules to modify
  the output of other modules before it is sent to the client.  This release also
  greatly improves the performance and robustness of Apache on the
  Microsoft Windows Operating Systems.  This beta includes support for IPv6
  on all platforms that support IPv6.
  This version of Apache is known to work on many versions of Unix, BeOS,
  OS/2, and Windows.  Because of many of the advancements in Apache 2.0,
  the initial release of Apache is expected to perform equally well on all 
  supported platforms.
  There are new snapshots of the Apache httpd source available every 6
  hours from - please
  download and test if you feel brave. We don't guarantee anything
  except that it will take up disk space, but if you have the time and
  skills, please give it a spin on your platforms.
  Apache has been the most popular web server on the Internet since
  April of 1996. The May 2000 WWW server site survey by Netcraft (see: found that more web servers were
  using Apache than any other software running on more than 60% of the
  Internet web servers.
  For more information, please check out
  Known problems with Apache 2.0b1
    *) WARNING: Apache 2.0b1 is not expected to run on Windows 95, 98 or ME.
       The intitial production release of Apache 2.0 is expected to run on
       these consumer operating systems, but they cannot be recommended as
       production environments due to the lack of integrated security and
    *) The canonical paths are being overhauled.  This affects especially
       Win32 users with this release.  Due to this transitional state,
       file with names containing non-ASCII characters may refuse serve.
       This is in preparation for the next release, users will be able to 
       serve any Unicode named files with Apache/Win32 on Windows NT/2000.
    *) Win32 users will see no message when Apache 2.0b1 is started as a
       console.  While normal for unix, this differs from the behavior in
       Apache 1.3 on Windows.
  Changes with Apache 2.0b1
    *) Move the Apache version information out of httpd.h and into release.h.
       This is in preparation for the first tag with the new tag and release           system.
 [Ryan Bloom]
    *) Begin restructuring scoreboard code to enable adding back in
       the ability to use IPC other than shared memory.
       Get mod_status working on Windows again. [Bill Stoddard]
    *) Make mod_status work with 2.0.  This will work for prefork,
       mpmt_pthread, and dexter.  [Ryan Bloom]
    *) Correct a typo in httpd.conf.
       [Kunihiro Tanaka <>] PR#7154
    *) Really fix mod_rewrite map lookups this time. [Tony Finch]
    *) Get the correct IP address if ServerName isn't set and we can't
       find a fully-qualified domain name at startup.
       PR#7170 [Danek Duvall <>]
    *) Make mod_cgid work with SuExec.  [Ryan Bloom]
    *) Adopt apr user/group name features for mod_rewrite.  Eliminates some            'extra'
stat's for user/group since they should never occur, and now
       resolves the SCRIPT_USER and SCRIPT_GROUP, including on WinNT NTFS
       volumes.  [William Rowe]
    *) Adopt apr features to simplify mod_includes.  This changes the
       behavior of the USER_NAME variable, unknown uid's are now reported
       as USER_NAME="<unknown>" rather than the old user#000 result.
       WinNT now resolves USER_NAME on NTFS volumes.  [William Rowe]
    *) Adopt apr features for simplifing mod_userdir, and accept the new
       Win32/OS2 exceptions without hiccuping.  [William Rowe]
    *) Replace configure --with-optim option by using and saving the
       environment variable OPTIM instead.  This is needed because configure
       options do not support multiple flags separated by spaces.
       [Roy Fielding]
    *) Fix some byterange handling.  If we get a byte range that looks like
       "-999999" where that is past the end of the file, we should return
       a PARTIAL CONTENT status code, and return the whole file as one big
       byterange.  This matches the 1.3 handling now.  [Ryan Bloom]
    *) Make the error bucket a real meta-data bucket.  This means that the
       bucket length is 0, and a read returns NULL data.  If one of these
       buckets is passed down after the headers are sent, this data will
       just be ignored.  [Greg Stein]
    *) The prefork MPM wasn't killing child processes correctly if a restart
       signal was received while the process was serving a request.  The child
       process would become the equivalent of a second parent process.  If
       we break out of the accept loop, then we need to do die after cleaning
       up after ourselves.  [Ryan Bloom]
    *) Change the Prefork MPM to use SIGWINCH instead of SIGUSR1 for graceful
       restarts.  [Ryan Bloom]
    *) Modify the apr_stat/lstat/getfileinfo calls within apache to use
       the most optimal APR_FINFO_wanted bits.  This spares Win32 from
       performing very expensive owner, group and permission lookups
       and allows the server to function until these apr_finfo_t fields
       are implemented under Win32.  [William Rowe]
    *) Support for typedsafe optional functions - that is functions exported by
       optional modules, which, therefore, may or may not be present, depending
       on configuration. See the experimental modules mod_optional_fn_{ex,im}port
       for sample code. [Ben Laurie]
    *) filters can now report an HTTP error to the server.  This is done
       by sending a brigade where the first bucket is an error_bucket.
       This bucket is a simple bucket that stores an HTTP error and
       a string.  Currently the string is not used, but it may be needed
       to output an error log.  The http_header_filter will find this
       bucket, and output the error text, and then return
       AP_FILTER_ERROR, which informs the server that the error web page
       has already been sent.  [Ryan Bloom]
    *) If we get an error, then we should remove all filters except for
       those critical to serving a web page.  This fixes a bug, where
       error pages were going through the byterange filter, even though
       that made no sense.  [Ryan Bloom]
    *) Relax the syntax checking of Host: headers in order to support
       iDNS. PR#6635 [Tony Finch]
    *) Cleanup the byterange filter to use the apr_brigade_partition
       and apr_bucket_copy functions.  This removes a lot of very messy
       code, and hopefully makes this filter more stable.
       [Ryan Bloom]
    *) Remove AddModule and ClearModuleList directives.  Both of these
       directives were used to ensure that modules could be enabled
       in the correct order.  That requirement is now gone, because
       we use hooks to ensure that modules are in the correct order.
       [Ryan Bloom]
    *) When SuExec is specified, we need to add it to the list of
       targets to be built.  If we don't, then any changes to the
       configuration won't affect SuExec, unless 'make suexec' is
       specifically run.  [Ryan Bloom]
    *) Cleaned out open_file from mod_file_cache, as apr now accepts
       the APR_XTHREAD argument to open a file for consumption by
       parallel threads on win32.  [William Rowe]
    *) Correct a bug in determining when we follow symlinks.  The code
       expected a stat -1 result, not an apr_status_t positive error.
       Also check if the APR_FINFO_USER fields are valid before we
       follow the link.  [William Rowe]
    *) Move initgroupgs, ap_uname2id and ap_gname2id from util.c to
       mpm_common.c.  These functions are only valid on some platforms,
       so they should not be in the main-line code. [Ryan Bloom]
    *) Remove ap_chdir_file().  This function is not thread-safe,
       and nobody is currently using it.  [Ryan Bloom]
    *) Do not try to run make depend if there are no .c files in the
       current directory, doing so makes `make depend` fail.
       [Ryan Bloom]
     *) Update highperformance.conf to work with either prefork or
        pthreads mpms.  [Greg Ames]
    *) Stop checking to see if this is a pipelined request if we know
       for a fact that it isn't.  Basically, if r->connection->keepalive == 0.
       This keeps us from making an extra read call when serving a 1.0
       request.  [Ryan Bloom and Greg Stein]
    *) Fix the handling of variable expansion look-ahead in mod_rewrite,
       i.e. syntax like %{LA-U:REMOTE_USER}, and also fix the parsing of
       more complicated nested RewriteMap lookups. PR#7087 [Tony Finch]
    *) Fix the RFC number mentioned when complaining about a missing
       Host: header. PR#7079 [Alexey Toptygin <>]
    *) Fix an endless loop in ab which occurred when ab was posting
       and the server dropped the connection unexpectedly.
       [Jeff Trawick]
    *) Fix a segfault while handling request bodies in ap_http_filter().
       This problem has been seen with mod_dav usage as well as with
       requests where the body was just being discarded.  [Jeff Trawick]
    *) Some adjustment on the handling and automatic setting (via
       hints.m4) of various compilation flags (eg: CFLAGS). Also,
       add the capability to specify flags (NOTEST_CFLAGS and
       NOTEST_LDFLAGS) which are used to compile Apache, but
       not used during the configuration process. Useful for
       flags like "-Werror". [Jim Jagielski]
    *) Stop using environment variables to force debug mode or
       no detach.  We now use the -D command line argument to
       specify the correct mode.  -DONE_PROCESS and -DNO_DETACH.
       [Greg Stein, Ryan Bloom]
    *) Change handlers to use hooks. [Ben Laurie]
    *) Stop returning copies of filenames from both apr_file_t and
       apr_dir_t.  We pstrdup the filenames that we store in the
       actual structures, so we don't need to pstrdup the strings again.
       [Ryan Bloom]
    *) mod_cgi: Fix some problems where the wrong error value was being
       traced.  [Jeff Trawick]
    *) EBCDIC: Fix some missing ASCII conversion on some protocol data.
       [Jeff Trawick]
    *) Add generic hooks. [Ben Laurie]
    *) Use a real pool to dup the error log descriptor.  [Ryan Bloom]
    *) Fix a segfault caused by mod_ext_filter when the external filter
       program does not exist. [Jeff Trawick]
    *) Fix an output truncation error when on an HTTP >= 1.0 request an
       object of size between DEFAULT_BUCKET_SIZE and AP_MIN_BYTES_TO_WRITE
       was served through mod_charset_lite (or anything else that would
       create a transient bucket in this size range).  ap_bucket_make_heap()
       silently failed (fixed), transient_setaside() discovered it, but
       ap_save_brigade() ignored it (fixed). [Jeff Trawick]
    *) Ignore \r\n or \n when using PEEK mode for input filters.  The problem
       is that some browsers send extra lines at the end of POST requests, and
       we don't want to delay sending data back to the user just because the
       browser isn't well behaved. [Ryan Bloom]
    *) Get SuEXEC working again.  We can't send absolute paths to suExec
       because it refuses to execute those programs.  SuEXEC also wasn't
       always recognizing configuration changes made using the autoconf
       setup.  [Ryan Bloom]
    *) Allow the buildconf process to find the config.m4 files in the correct
       order.  Basically, we can now name config.m4 files as config\d\d.m4,
       and we will sort them correctly when inserting them into the build
       process.  [Ryan Bloom]
    *) Get mod_cgid to use apr calls for creating the actual CGI process.
       This also allows mod_cgid to use ap_os_create_priviledged_process,
       thus allowing for SuExec execution from mod_cgid.  Currently, we do
       not support everything that standard SuExec supports, but at least
       it works minimally now. [Ryan Bloom]
    *) Allow SuExec to be configured from the ./configure command line.
       [Ryan Bloom]
    *) Update some of the docs in README and INSTALL to reflect some of
       the changes in Apache 2.0 [Cliff Woolley <>]
    *) If we get EAGAIN returned from the call to apr_sendfile, then we
       need to call sendfile again.  This gets us serving large files
       such as apache_2.0a9.tar.gz on FreeBSD again. [Ryan Bloom]
    *) Get the support programs building cleanly again.
       [Cliff Woolley <>]
    *) The Apache/Win32 Apache.exe and dll's now live in bin.  The
       current directory logic now backs up over bin/ to determine the
       server root from the Apache.exe path.
    *) Apache/Win32 now follows the standard conventions of
       loadable modules, dynamic libs are all named libfoo.dll, and the populates the include, lib and libexec directories.
    *) Apache is now IPv6-capable.  On systems where APR supports IPv6,
       Apache gets IPv6 listening sockets by default.  Additionally, the
       Listen, NameVirtualHost, and <VirtualHost> directives support IPv6
       numeric address strings (e.g., "Listen [fe80::1]:8080").
       [Jeff Trawick]
    *) Modify the install directory layout.  Modules are now installed in
       modules/.  Shared libraries should be installed in libraries/, but
       we don't have any of those on Unix yet.  All install directories
       are modifyable at configure time. [Ryan Bloom]
    *) Install all header files in the same directory on Unix. [Ryan Bloom]
    *) Get the functions in server/linked into the server, regardless of
       which modules linked into the server.  This uses the same hack
       for Apache that we use for APR and apr-util to ensure all of the
       necessary functions are linked.  As a part of thise, the CHARSET_EBCDIC
       was renamed to AP_CHARSET_EBCDIC for namespace protection, and to make
       the scripts a bit easier.
       [Ryan Bloom]
    *) Rework the RFC1413 handling to make it thread-safe, use a timeout
       on the query, and remove IPv4 dependencies.  [Jeff Trawick]
    *) Get all of the auth modules to the point that they will install and
       be loadable into the server.  Our new build/install mechanism expects
       that all modules will have a common name format.  The auth modules
       didn't use that format, so we didn't install them properly.
       [Ryan Bloom]
    *) API routines ap_pgethostbyname() and ap_pduphostent() are no longer
       available.  Use apr_getaddrinfo() instead.  [Jeff Trawick]
    *) Get "NameVirtualHost *" working in 2.0.  [Ryan Bloom]
    *) Return HTTP_RANGE_NOT_SATISFIABLE if the every range requested starts
       after the end of the response. [Ryan Bloom]
    *) Get byterange requests working with responses that do not have a
       content-length.  Because of the way byterange requests work, we have to
       have all of the data before we can actually do the byterange, so we
       can compute the content-length in the byterange filter.
       [Ryan Bloom]
    *) Get exe CGI's working again on Windows.
       [Allan Edwards]
    *) Get mod_cgid and mod_rewrite to work as DSOs by changing the way
       they keep track of whether or not their  post config hook has been
       called before.  Instead of a static variable (which is replaced when
       the DSO is loaded a second time), use userdata in the process pool.
       [Jeff Trawick]

View raw message