Hi, I have prepared an apache2 update for etch r1. It fixes two RC bugs and adds some missing documentation. Here is the changelog: apache2 (2.2.3-4+etch1) stable; urgency=low * Comment out CacheEnable by default, to prevent filling up /var. Document the problem in README.Debian and NEWS.Debian, point to htcacheclean and give a warning when doing a2enmod disk_cache (Closes: #423653). * Re-add README.Debian and describe - how to change "restart" to "reload" in the logrotate script when using SSL keys with passwords - the config dir layout (closes: #419552) - which files are ignored by Include * When doing a restart, wait for the server to die before trying to start it again. Together with the README.Debian, this closes: #298689 and friends. * Ship apache2(8) manpage The diff is attached. Cheers, Stefan
diff -u apache2-2.2.3/debian/apache2.2-common.init.d apache2-2.2.3/debian/apache2.2-common.init.d --- apache2-2.2.3/debian/apache2.2-common.init.d +++ apache2-2.2.3/debian/apache2.2-common.init.d @@ -89,6 +89,34 @@ fi } +apache_sync_stop() { + # running ? + PIDTMP=$(pidof_apache) + if $(kill -0 "${PIDTMP:-}" 2> /dev/null); then + PID=$PIDTMP + fi + + apache_stop + + # wait until really stopped + if [ -n "${PID:-}" ]; then + i=0 + while $(kill -0 "${PID:-}" 2> /dev/null); do + if [[ $i == '30' ]]; then + break; + else + if [[ $i == '0' ]]; then + echo -n " waiting " + else + echo -n "." + fi + i=$(($i+1)) + sleep 2 + fi + done + fi +} + # Stupid hack to keep lintian happy. (Warrk! Stupidhack!). case $1 in start) @@ -129,10 +157,9 @@ ;; restart | force-reload) log_begin_msg "Forcing reload of web server (apache2)..." - if ! apache_stop; then + if ! apache_sync_stop; then log_end_msg 1 fi - sleep 10 if $APACHE2CTL start; then log_end_msg 0 else diff -u apache2-2.2.3/debian/a2-scripts/a2enmod apache2-2.2.3/debian/a2-scripts/a2enmod --- apache2-2.2.3/debian/a2-scripts/a2enmod +++ apache2-2.2.3/debian/a2-scripts/a2enmod @@ -39,7 +39,16 @@ /usr/sbin/a2enmod "$i"; done fi - + +if [ -e $SYSCONFDIR/mods-available/$MODNAME.conf ] ; then + if grep -qE '^# a2enmod-note:.*needs-configuration' \ + $SYSCONFDIR/mods-available/$MODNAME.conf ; then + echo "mod_$MODNAME needs configuration before being able to work." + echo "See the comments in $SYSCONFDIR/mods-available/$MODNAME.conf" + echo "for details." + fi +fi + for i in conf load; do if [ -e $SYSCONFDIR/mods-available/$MODNAME.$i -a ! -e $SYSCONFDIR/mods-enabled/$MODNAME.$i ]; then cd $SYSCONFDIR/mods-enabled; diff -u apache2-2.2.3/debian/apache2.2-common.manpages apache2-2.2.3/debian/apache2.2-common.manpages --- apache2-2.2.3/debian/apache2.2-common.manpages +++ apache2-2.2.3/debian/apache2.2-common.manpages @@ -2,0 +3 @@ +debian/apache2.8 diff -u apache2-2.2.3/debian/rules apache2-2.2.3/debian/rules --- apache2-2.2.3/debian/rules +++ apache2-2.2.3/debian/rules @@ -214,6 +214,7 @@ dh_testroot -i dh_installdirs -i dh_installdocs -i + ln -s ../apache2.2-common/README.Debian debian/apache2/usr/share/doc/apache2/ dh_installchangelogs -i CHANGES -Napache2 dh_installchangelogs -papache2 dh_compress -i diff -u apache2-2.2.3/debian/changelog apache2-2.2.3/debian/changelog --- apache2-2.2.3/debian/changelog +++ apache2-2.2.3/debian/changelog @@ -1,3 +1,21 @@ +apache2 (2.2.3-4+etch1) stable; urgency=low + + * Comment out CacheEnable by default, to prevent filling up /var. + Document the problem in README.Debian and NEWS.Debian, point to + htcacheclean and give a warning when doing a2enmod disk_cache + (Closes: #423653). + * Re-add README.Debian and describe + - how to change "restart" to "reload" in the logrotate script + when using SSL keys with passwords + - the config dir layout (closes: #419552) + - which files are ignored by Include + * When doing a restart, wait for the server to die before trying + to start it again. Together with the README.Debian, this + closes: #298689 and friends. + * Ship apache2(8) manpage + + -- Stefan Fritsch <sf@debian.org> Wed, 13 Jun 2007 18:27:31 +0200 + apache2 (2.2.3-4) unstable; urgency=high * High-urgency upload for RC bugfixes. diff -u apache2-2.2.3/debian/config-dir/mods-available/disk_cache.conf apache2-2.2.3/debian/config-dir/mods-available/disk_cache.conf --- apache2-2.2.3/debian/config-dir/mods-available/disk_cache.conf +++ apache2-2.2.3/debian/config-dir/mods-available/disk_cache.conf @@ -1,6 +1,17 @@ +# a2enmod-note: needs-configuration + <IfModule mod_disk_cache.c> CacheRoot /var/cache/apache2/mod_disk_cache - CacheEnable disk / + +# If you enable disk caching, you need to use htcacheclean from the +# apache2-utils package to ensure that the cache does not grow indefinitely. +# See the htcacheclean man page for details. + +# There is currently no mechanism in the Debian package to start htcacheclean +# automatically, but it is planned to add such a mechanism in the future. + +# CacheEnable disk / + CacheDirLevels 5 CacheDirLength 3 </IfModule> only in patch2: unchanged: --- apache2-2.2.3.orig/debian/NEWS +++ apache2-2.2.3/debian/NEWS @@ -0,0 +1,24 @@ +apache2 (2.2.3-4+etch1) unstable; urgency=low + + Note to + - users of mod_disk_cache, and + - users of mod_proxy who have upgraded from apache2 2.0.x (as in Debian + "sarge" 3.1) to 2.2.3-4 (as in Debian "etch" 4.0r0). If you are directly + upgrading from 2.0.x to 2.2.3-4+etch1 (Debian "etch" 4.0r1), or doing a + new installation, you are not affected. + + If mod_proxy was enabled at the time of the upgrade from 2.0.x to 2.2.3-4, + mod_disk_cache was enabled and disk caching switched on. This could lead to + the /var partition being filled up by the indefinitely growing disk cache. + + From version 2.2.3-4+etch1, disk caching is again switched off in the + default configuration of mod_disk_cache, as it was in 2.0.x. If you had + mod_proxy enabled during the upgrade from 2.0, you should check whether + /var/cache/apache2/mod_disk_cache contains files that you don't want to be + there. + + Users of mod_disk_cache should read the comments in + /etc/apache2/mods-available/disk_cache.conf and check that their + configuration is correct. + + -- Stefan Fritsch <sf@debian.org> Wed, 13 Jun 2007 19:53:03 +0200 only in patch2: unchanged: --- apache2-2.2.3.orig/debian/README.Debian +++ apache2-2.2.3/debian/README.Debian @@ -0,0 +1,121 @@ +Contents +======== + + Apache2 Configuration under Debian GNU/Linux + Files and Directories in /etc/apache2 + Tools + + Using mod_disk_cache + + Using SSL keys with passwords / Restarting Apache during logrotate + + +Apache2 Configuration under Debian GNU/Linux +============================================ + +Debian's default Apache2 installation attempts to make adding and +removing modules, virtual hosts, and extra configuration directives as +flexible is possible, in order to make automating the changes and +administering the server as easy as possible. + +Files and Directories in /etc/apache2: +------------------------------------- + +apache2.conf + + This is the main configuration file. + +conf.d/ + + Files in this directory are included by this line in + apache2.conf: + + # Include generic snippets of statements + Include /etc/apache2/conf.d + + This is a good place to add additional configuration + directives. + +httpd.conf + + Empty file. + +magic + + Empty file. + +mods-available/ + + This directory contains a series of .load and .conf files. + The .load files contain the Apache configuration directive + necessary to load the module in question. The respective + .conf files contain configuration directives necessary to + utilize the module in question. + +mods-enabled/ + + To actually enable a module for Apache2, it is necessary to + create a symlink in this directory to the .load (and .conf, if + it exists) files associated with the module in + mods-available/. For example: + + cgi.load -> /etc/apache2/mods-available/cgi.load + +ports.conf + + Configuration directives for which ports and IP addresses to + listen to. + +sites-available/ + + Like mods-available/, except it contains configuration + directives for different virtual hosts that might be used with + apache2. Note that the hostname doesn't have to correspond + exactly with the filename. 'default' is the default host. + +sites-enabled/ + + Similar in functionality to mods-enabled/, sites-enabled + contains symlinks to sites in sites-available/ that the + admnistrator wishes to enable. + + Example: + dedasys -> /etc/apache2/sites-available/dedasys + +The Include directive ignores files with names that + +- do not begin with a letter or number +- contain a character that is neither letter nor number nor _-. +- contain .dpkg + +Tools +----- + +a2enmod and a2dismod are available for enabling and disabling modules utilizing +the above configuration system. + +a2ensite and a2dissite do essentially the same thing as the above tools, but +for sites rather than modules. + + +Using mod_disk_cache +==================== + +You need to enable caching in /etc/apache2/mods-enabled/disk_cache.conf . To +prevent the disk cache to grow indefinitely, you have to use htcacheclean from +the apache2-utils package. There is currently no mechanism in the Debian +package to start htcacheclean automatically. See the htcacheclean man page for +details. + + +Using SSL keys with passwords / Restarting Apache during logrotate +================================================================== + +Since a graceful reload (/etc/init.d/apache2 reload) does not work reliably in +all situations, we use restart during logrotate. Since 2.2.3-5, we use 2.2's new +graceful-stop feature, so that restart should work even if apache is slow to +stop. + +However, "/etc/init.d/apache2 restart" will not work if you use a SSL key file +with password. In this case you need to change the "restart" in +/etc/logrotate.d/apache2 to "reload".
Attachment:
pgpxRaaZnj91h.pgp
Description: PGP signature