You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2003/04/04 21:37:03 UTC
DO NOT REPLY [Bug 18721] New: -
apxs handles internal module names incorrectly
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18721>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18721
apxs handles internal module names incorrectly
Summary: apxs handles internal module names incorrectly
Product: Apache httpd-1.3
Version: 1.3.27
Platform: All
OS/Version: All
Status: NEW
Severity: Blocker
Priority: Other
Component: Other
AssignedTo: bugs@httpd.apache.org
ReportedBy: pilot@nv.com.ua
apxs writes wrong LoadModule into httpd.conf, if module name is something
different from mod_WORD-WITHOUT-UNDERLINES.
How to reproduce: take mod_auth.c alone from source tree (note: internal module
name is auth_module) and run:
# apxs -c mod_auth.c
# apxs -e -a -n auth mod_auth.so
You will get in httpd.conf:
LoadModule auth_module modules/mod_auth.so
AddModule mod_auth.c
Everything is fine.
Now take mod_log_agent.c (note: internal module name is agent_log_module):
# apxs -c mod_log_agent.c
# apxs -e -a -n log_agent mod_log_agent.so
You will get:
LoadModule log_agent_module modules/mod_log_agent.so
AddModule mod_log_agent.c
But module name is agent_log_module !
If you try
# apxs -e -a -n agent_log mod_log_agent.so
, you will get correct LoadModule:
LoadModule agent_log_module modules/mod_log_agent.so
, but incorrect AddModule:
AddModule mod_agent_log.c
mod_agent_log.c doesn't exist
, and apxs will try to handle mod_agent_log.conf instead of mod_log_agent.conf
in case of add-on modules configuration files.
This happens because internal module name is usually constructed of file name,
but the words (if there are more than 1 word after mod_ and before _module) go
in reverse order. apxs does not handle this.
This bug is not seen when building standard apache modules, because apxs -e -a
is not run for them, but shipped httpd.conf is used, which contains right
Load/AddModule lines. The bug arises when trying to build RPM for 3rd party
modules, which are called something like mod_log_sql, mod_auth_mysql and so on.
The bug makes impossible to automate (de)activation of modules in RPM scripts,
although it works fine for mod_throttle and other one-word named modules.
I suggest fixing the bug via using join("_", reverse (split ("_", $something))
when building LoadModule line. I don't use/know perl, so can't fix the code myself.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org