There is a miss behavior in the apxs script from apache22 (other versions not tested) If you install a apache22 the LoadModule lines look like the following LoadModule *whitespace* ${modulename}_module *whitespace* libexec/apache22/mod_${modulename}.so If you try now to activate/deactivate a module with apxs the result will differ from what you expect How-To-Repeat: For the following test I will pick a long and two short module name (ssl autoindex cgi) $> 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 Instead to deactivate the module a new line will be insert
Responsible Changed From-To: freebsd-ports-bugs->apache Fix synopsis and assign.
Responsible Changed From-To: apache->pgollucci started this one
I take that, its a bug in apache22 and apache20 apparently. I'll fix this upstream and then pull the svn rev back in as a patch. /me is dumb founded that this can be possible.
Responsible Changed From-To: pgollucci->apache Over to maintainer.
State Changed From-To: open->analyzed fix in upstream svn trunk: 2.3.x/2.4.x: http://svn.apache.org/viewvc?rev=942209&view=rev 2.2.x: http://svn.apache.org/viewvc?rev=942210&view=rev 2.0.x: http://svn.apache.org/viewvc?rev=942211&view=rev no future 1.3.x releases, no futher backports This bug is almost as old has apxs and Apache httpd itself.
pgollucci 2010-05-07 20:53:45 UTC FreeBSD ports repository Modified files: www/apache22 Makefile www/apache22/files patch-support__apxs.in Log: - Fix -A and -a options for apxs to correctly ignore whitespace. This will fix about 100 pkg-plist left overs for httpd.conf - Bump PORTREVISION - This will be in 2.2.16. PR: ports/133704 Obtained from: http://svn.apache.org/viewvc?rev=942210&view=rev Reported by: olli hauer <ohauer@gmx.de> (and very good pr!) With Hat: apache@ Revision Changes Path 1.265 +1 -1 ports/www/apache22/Makefile 1.2 +22 -1 ports/www/apache22/files/patch-support__apxs.in _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
pgollucci 2010-05-07 21:46:21 UTC FreeBSD ports repository Modified files: www/apache22 Makefile pkg-plist www/apache22/files patch-support__apxs.in Log: - Continuation of ports/133704 apxs -A comments out the LoadModule line This adds custom FreeBSD mod to 'DELETE' the line so that it works with our pkg-plists in packages. - Remove -s form the cmp httpd.conf in pkg-plist to be blatant about why it didn't get removed - Tested with lang/php5 - Bump PORTREVISION PR: ports/133704 With Hat: apache@ Revision Changes Path 1.266 +1 -1 ports/www/apache22/Makefile 1.3 +9 -3 ports/www/apache22/files/patch-support__apxs.in 1.97 +2 -2 ports/www/apache22/pkg-plist _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
State Changed From-To: analyzed->closed done and done!
pgollucci 2010-05-07 21:48:58 UTC FreeBSD ports repository Modified files: www/apache20 Makefile pkg-plist www/apache20/files patch-support__apxs.in Log: - Fix -A and -a options for apxs to correctly ignore whitespace. This will fix about 100 pkg-plist left overs for httpd.conf apxs -A comments out the LoadModule line This adds custom FreeBSD mod to 'DELETE' the line so that it works with our pkg-plists in packages. - Remove -s form the cmp httpd.conf in pkg-plist to be blatant about why it didn't get removed - Bump PORTREVISION - This will be in 2.0.64 PR: ports/133704 Obtained from: http://svn.apache.org/viewvc?rev=942211&view=rev Reported by: olli hauer <ohauer@gmx.de> (and very good pr!) With Hat: apache@ Revision Changes Path 1.276 +1 -1 ports/www/apache20/Makefile 1.2 +22 -1 ports/www/apache20/files/patch-support__apxs.in 1.88 +2 -2 ports/www/apache20/pkg-plist _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
pgollucci@FreeBSD.org wrote: > Synopsis: www/apache22 apxs does not work as expected > > State-Changed-From-To: analyzed->closed > State-Changed-By: pgollucci > State-Changed-When: Fri May 7 21:49:05 UTC 2010 > State-Changed-Why: > done and done! > > http://www.freebsd.org/cgi/query-pr.cgi?pr=133704 > Hi, thanks for fixing this bug;) Btw. since you are a member off apache.org, maybe you want to close the following bugzilla issue. https://issues.apache.org/bugzilla/show_bug.cgi?id=47397 One note: The FreeBSD hack removes the line complete so it is possible to breaks apache if someone use apxs to control modules not installed by a port since it removes the line completely. What do you think about this hack (add an addition parameter [-r] to remove the line) --- patch_apxs.txt begins here --- --- /usr/local/sbin/apxs 2010-05-08 11:38:09.000000000 +0200 +++ apxs 2010-05-08 13:55:32.000000000 +0200 @@ -72,6 +72,7 @@ my $opt_i = 0; my $opt_a = 0; my $opt_A = 0; +my $opt_r = 0; my $opt_q = 0; my $opt_h = 0; my $opt_p = 0; @@ -148,12 +149,14 @@ print STDERR " [-Wl,<flags>] [-p] <files> ...\n"; print STDERR " apxs -i [-S <var>=<val>] [-a] [-A] [-n <modname>] <dsofile> ...\n"; print STDERR " apxs -e [-S <var>=<val>] [-a] [-A] [-n <modname>] <dsofile> ...\n"; + # FreeBSD hack, remove the line instead commenting out + print STDERR " apxs -e [-r] [-A] [-n <modname>] <dsofile> ...\n"; exit(1); } # option handling my $rc; -($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+S+eiaAp", @ARGV); +($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+S+eiaApr", @ARGV); &usage if ($rc == 0); &usage if ($#ARGV == -1 and not $opt_g); &usage if (not $opt_q and not ($opt_g and $opt_n) and not $opt_i and not $opt_c and not $opt_e); @@ -614,7 +617,7 @@ } else { # replace already existing LoadModule line # Custom FreeBSD mod - if ($opt_A) { + if ($opt_A and $opt_r) { $content =~ s|^(.*\n)#?\s*$lmd_re[^\n]*\n|$1|s; } else { --- patch_apxs.txt ends here ---