From: Philip M. Gollucci Date: Fri, 7 May 2010 20:36:14 +0000 (+0000) Subject: Fix the following: X-Git-Tag: 2.3.6~132 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1f82bc7da10c52139fa159743c95f2e11e207024;p=apache Fix the following: $> grep -e autoindex_ -e cgi_ httpd.conf LoadModule autoindex_module libexec/apache22/mod_autoindex.so LoadModule cgi_module libexec/apache22/mod_cgi.so fire up the following commands $> apxs -e -a -n autoindex mod_autoindex.so [activating module `autoindex' in /usr/local/etc/apache22/httpd.conf] $> apxs -e -a -n cgi mod_cgi.so [activating module `cgi' in /usr/local/etc/apache22/httpd.conf] This will result into the following httpd.conf $> grep -e autoindex_ -e cgi_ httpd.conf LoadModule autoindex_module libexec/apache22/mod_autoindex.so LoadModule cgi_module libexec/apache22/mod_cgi.so LoadModule autoindex_module libexec/apache22/mod_autoindex.so LoadModule cgi_module libexec/apache22/mod_cgi.so As you notice the modules are now loaded twice Now try to deactivate for the loaded ssl module $> grep ssl_ httpd.conf LoadModule ssl_module libexec/apache22/mod_ssl.so $> apxs -e -A -n ssl mod_ssl.so [preparing module `ssl' in /usr/local/etc/apache22/httpd.conf] $> grep ssl_ httpd.conf LoadModule ssl_module libexec/apache22/mod_ssl.so #LoadModule ssl_module libexec/apache22/mod_ssl.so As reported in FreeBSD ports PR: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/133704 Previously discussed with: wrowe@ This b/c '$lmd' expects the amount of space to be a fixed amount. Use \s+ to make any valid httpd.conf syntax work (i.e. at least 1 space) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@942209 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index f6e9cb5393..e7ec7a405a 100644 --- a/CHANGES +++ b/CHANGES @@ -137,6 +137,9 @@ Changes with Apache 2.3.7 by using HTTP CONNECT. PR 19188. [Philippe Dutrueux , Rainer Jung] + *) apxs: Fix -A and -a options to ignore whitespace in httpd.conf + [Philip M. Gollucci] + Changes with Apache 2.3.6 *) worker: Don't report server has reached MaxClients until it has. diff --git a/support/apxs.in b/support/apxs.in index 5ea3e22147..c44875cd20 100644 --- a/support/apxs.in +++ b/support/apxs.in @@ -568,7 +568,10 @@ if ($opt_i or $opt_e) { $c = '#' if ($opt_A); foreach $lmd (@lmd) { my $what = $opt_A ? "preparing" : "activating"; - if ($content !~ m|\n#?\s*$lmd|) { + my $lmd_re = $lmd; + $lmd_re =~ s/\s+/\\s+/g; + + if ($content !~ m|\n#?\s*$lmd_re|) { # check for open , so that the new LoadModule # directive always appears *outside* of an . @@ -631,7 +634,7 @@ if ($opt_i or $opt_e) { } } else { # replace already existing LoadModule line - $content =~ s|^(.*\n)#?\s*$lmd[^\n]*\n|$1$c$lmd\n|s; + $content =~ s|^(.*\n)#?\s*$lmd_re[^\n]*\n|$1$c$lmd\n|s; } $lmd =~ m|LoadModule\s+(.+?)_module.*|; notice("[$what module `$1' in $CFG_SYSCONFDIR/$CFG_TARGET.conf]");