Apache Week
   
   Issue 68, 6th June 1997:  

Copyright 1996-2005
Red Hat, Inc.

In this issue


Apache 1.2 Released

Apache version 1.2 is now available. This is the final, stable version of Apache 1.2, following a long period of beta testing which ironed out dozens of bugs and boosted performance compared to early betas. Anyone running a beta version of 1.2 should upgrade immediately, and people running 1.1.3 or earlier should also upgrade since there will be no more updates to earlier versions.

All About 1.2

Apache 1.2 has many new features compared with 1.1.3 and earlier. The Apache Week Guide to 1.2 explains everything that is new, including new modules and directives. It also summarises the changed directives and changes in the distributed sample configuration files. You should read this page before upgrading from 1.1.3 or earlier.

If you have written a module for 1.1.3 or earlier, there are some significant changes to the module API which may well mean your module will not work with 1.2. For the details of these changes, see our API 1.2 Guide.

Upgrading to 1.2

Apache 1.2 can be downloaded as source for all supported systems, or binaries for a selection of systems. Select a download site near your network location for fastest download. You can choose whether to download using the Web (HTTP) or FTP. If you select a HTTP mirror site, select "Download!" to go to the download area. The FTP links take you straight to the download area.

If you download the source distribution you will have to compile the httpd server using the instructions given in the README files. Once you have compiled it, or after downloading the binary version, you are ready to try the server.

When upgrading you should read through the new sample configuration files (access.conf and other files in conf directory). There have been some changes in these files to support new features in the code. For example, there is a new BrowserMatch line in httpd.conf-distmime.types.

The 1.2 Betas

Development on what was to become 1.2 started immediately after version 1.1.1 was released. That was nearly a year ago, around the 10th July 1996.

The first beta of 1.2 was released on 1st December 1996. By co-incidence this is exactly a year to the day since Apache 1.0 was released as the first non-beta release of Apache. A total of eight more betas have been released between 1st December 1996 and today. While the last beta was numbered 11, two versions were never released because of bugs found just before the release. In these cases the bug was fixed and the next beta number used. The dates of each beta are listed below, together with a very brief summary of the main change in that beta.

Version Release Date Summary of Main Changes Over Previous Beta
1.2b1 1st December 1996
1.2b2 9th December 1996 Minor bug fixes, support more operating systems
1.2b3 24th December 1996 Bug fixes
1.2b4 31st December 1996 Bug fixes
1.2b5 Never released
1.2b6 26th January 1997 Improved network reliability (fixed FIN_WAIT_2)
1.2b7 22nd February Performance enhancements, better network efficiency
1.2b8 8th April 1997 Some important bug fixes, better internal error handling
1.2b9 Never released
1.2b10 30th April 1997 More robustness in the face of timeouts, signals and network errors. Graceful restarts fixed.
1.2b11 30th May 1997 Bug fixes

A more detailed history of the early days of Apache (up to 1st December 1995 when 1.0 was released) is now available as part of the distribution. See the file ABOUT_APACHE in the top level directory of the Apache distribution. This file also lists the major Apache developers, past and present. Other people who have contributed to Apache are listed in the src/CHANGES file, along with their contribution. But note that this file does not list changes made between 1.1.1 and 1.2b10, which includes many major new features by lots of different people.

Bugs

While Apache 1.2 is a full stable release, there are a number of outstanding issues which will be resolved in a future release. Most of these are very minor bugs, or issues which only affect a few systems in particular configurations.

  • Content negotiation may not pick the smallest of otherwise equal variants, prefering to pick the last variant encountered instead.
  • If %2f is used in the PATH_INFO part of a request, the request will be refused.
  • If mod_status is used in inetd mode it can core dump (mod_status has no use in inetd mode).
  • Solaris 2 has problems using more that 256 file descriptors (this is a Solaris problem, but there is a work-around).
  • Compile sometimes fail with "unknown symbol __inet_notoa" or similar. This is not an Apache bug. It is caused by changed libraries if you install bind version 8. To make Apache compile, add -lbind to EXTRA_LIBS in the Configuration file.
  • There are a few reports of problems with FREEBSD 2.2 systems which use a lot of virtual hosts, probably related to use of file descriptors.

There are also a number of new features which have been proposed during the beta testing phases. These were put on hold until 1.2 was out, and will now be evaluated and possibly added


Apache Status

Release: 1.2 (Released 5th June 1997)
Beta: None

Bugs in 1.2:

(See above)

Patches to any Apache 1.2 bugs may be available in the 1.2 patches directory on the Apache site. At time of writing there are no patches and this directory does not exist.

For details of all previously reported bugs, see the Apache bug database. Many common configuration questions are answered in the Apache FAQ.


Apache Sources to be PGP Signed

The Apache 1.2 distribution includes a PGP "key ring" file containing the PGP keys of most of the active Apache developers. You can use this file to authenticate future releases of Apache that have been PGP signed. Mail from Apache developers (such as announcements or security advisories) could also be signed with PGP.

The Apache group PGP signatures are in the file KEYS in the top level distribution of Apache. If you trust the site where you obtained your distribution you can add these keys to your own keyring. Under Unix you can usually do this by running pgp with the -ka argument, i.e.

  pgp -ka KEYS

Some of the distributions are accompanied by a file containing a PGP signature for that distribution. These signatures are stored in files with a ".asc" extension (for example, the signature for apache_1.2.0.tar.gz is stored in apache_1.2.0.tar.gz.asc). These can be used to check the validity of the distribution if you have added the KEYS file contents to your keyring.


If you are interested in how the core Apache code is developed, these slides may be of interest. They are Roy Fielding's interpretation of how the Apache development is an example of Internet collaboration and a virtual community. They also give an insight into the development processes used, such as how the developers work without ever meeting and how changes are "voted" into place.

Now that Apache 1.2 is out of the door, Apache can start being developed again. Some of the major new features planned are Windows NT support, ability to send output of one module to another (e.g. parse output of a CGI for SSI commands), and extra performance through multithreading. There are also a lot of minor new features, many proposed by Apache users, which have been waiting for the end of the 1.2 beta period being being applied. The next release will probably be version 1.3 release with some of the smaller features, and then there will be a longer period of development leading to a largely re-written version 2.0. There is also likely to be a Windows NT version of 1.2 at some point.


Comments or criticisms? Please email us at editors@apacheweek.com