httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Jung <rainer.j...@kippdata.de>
Subject Re: undesired modules loading
Date Sun, 19 Aug 2012 07:58:11 GMT
On 19.08.2012 00:20, Roy T. Fielding wrote:
> On Aug 18, 2012, at 1:45 PM, Rainer Jung wrote:
>
>> Yes, before 2.4.0 we introduced exactly this difference. All modules that were build
get a LoadModule line in the installed config, but most are commented out. I don't have the
list of modles active by default at hand though.
>
> Ah, okay.
>
>>> At the very least, modules dependent on SSL must not be loaded if
>>> --without-ssl is the configure option.
>>>
>>> I don't consider this a showstopper for 2.4.3, but I do think they
>>> are bugs in trunk and 2.4.x.
>>
>> Partial answer: the current semantics of maintainer-mode is (per configure help):
>>
>> "Turn on debugging and compile time warnings and load all compiled modules"
>
> Umm, WTF?  Why?
>
>> In fact configure should output
>>
>> "Maintainer mode setting "LOAD_ALL_MODULES" to yes"
>>
>> It seems you can switch of this side effect of maintainer mode by explicitly adding
"--enable-load-all-modules=no" to your configure flags. This is the default except for when
building in maintainer mode.
>
> So, basically what you are saying is that an incompatible change
> was made to the existing configuration flags so that my build
> scripts are now broken for no good reason.

The enable-load-all-modules behavior was what the build always did 
before 2.4. That was a big annoyance and it was decided to no longer 
load all build modules by default starting with 2.4. So the maintainer 
mode behaves as for versions before 2.4 w.r.t. loading modules but no 
longer behaves like the normal mode for 2.4.

>    --enable-load-all-modules
>                            Load all modules
>    --enable-maintainer-mode
>                            Turn on debugging and compile time warnings and load
>                            all compiled modules
>    --enable-debugger-mode  Turn on debugging and compile time warnings and turn
>                            off optimization
>    --enable-modules=MODULE-LIST
>                            Space-separated list of modules to enable | "all" |
>                            "most" | "few" | "none" | "reallyall"
>
> Many of our modules are not cross-platform, yet we expect all of
> our developers to test with --enable-maintainer-mode.  That smells
> like a brain fart to me.

Modules not working on a platform should not get build, this would be a 
bug but has not been observed yet. The enable-load-all-modules only 
means *if* a modules is build, then activate the LoadModule directive in 
the config.

Whether a module is build or not is decided based on the m4 macros that 
test its dependencies etc. I'd say concerning your original mail, the 
possible bug is in ssl, i.e. should --without-ssl imply --disable-ssl.

I ran three builds on my (Solaris) system with configure flags close to 
yours, one without maintainer mode, one with it and one with it but 
--disable-load-all-modules. In all three cases 78 modules get build 
(including mod_ssl). Without maintainer mode or with maintainer mode but 
--disable-load-all-modules of these 78 only 21 get loaded by default (no 
proxy, no ssl):

authn_file_module
authn_core_module
authz_host_module
authz_groupfile_module
authz_user_module
authz_core_module
access_compat_module
auth_basic_module
reqtimeout_module
filter_module
mime_module
log_config_module
env_module
headers_module
setenvif_module
version_module
unixd_module
status_module
autoindex_module
dir_module
alias_module

Regards,

Rainer

Mime
View raw message