Re: undesired modules loading

2012-08-19 Thread Rainer Jung

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


Re: undesired modules loading

2012-08-19 Thread Stefan Fritsch
On Sunday 19 August 2012, Roy T. Fielding wrote:
  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?

One reason was to make it easier for httpd developers to run the perl 
test suite. Otherwise they would always have to enable all modules 
after a new make install (or not forget some additional configure 
option).


undesired modules loading

2012-08-18 Thread Roy T. Fielding
I built 2.4.3 with the options

./configure \
--prefix=$tdir \
--with-apr=$adir \
--with-apr-util=$adir \
--without-ssl \
--without-crypto \
--disable-cache \
--without-distcache \
--enable-maintainer-mode

but then noticed in the error_log some garbage about

[Sat Aug 18 12:26:23.182875 2012] [ssl:warn] [pid 82399:tid 140735220779360] 
AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[Sat Aug 18 12:26:23.183039 2012] [lbmethod_heartbeat:notice] [pid 82399:tid 
140735220779360] AH02282: No slotmem from mod_heartmonitor

which is undoubtedly because several modules are being built and loaded
that depend on certain options but do not get disabled by the lack
of those options in configure.

IMO, none of the following modules should be configured by default:

LoadModule file_cache_module modules/mod_file_cache.so
LoadModule dumpio_module modules/mod_dumpio.so
LoadModule firehose_module modules/mod_firehose.so
LoadModule buffer_module modules/mod_buffer.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule remoteip_module modules/mod_remoteip.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule session_module modules/mod_session.so
LoadModule session_cookie_module modules/mod_session_cookie.so
LoadModule session_dbd_module modules/mod_session_dbd.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule dav_fs_module modules/mod_dav_fs.so

The vast majority of installations do not want a f*(^ing proxy.
Building them is fine -- these should be commented out in the
installed httpd.conf unless --with-proxy is enabled.

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.

Roy



Re: undesired modules loading

2012-08-18 Thread Rainer Jung

Hi Roy,

On 18.08.2012 22:07, Roy T. Fielding wrote:

I built 2.4.3 with the options

./configure \
 --prefix=$tdir \
 --with-apr=$adir \
 --with-apr-util=$adir \
 --without-ssl \
 --without-crypto \
 --disable-cache \
 --without-distcache \
 --enable-maintainer-mode

   

see below


but then noticed in the error_log some garbage about

[Sat Aug 18 12:26:23.182875 2012] [ssl:warn] [pid 82399:tid 140735220779360] 
AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[Sat Aug 18 12:26:23.183039 2012] [lbmethod_heartbeat:notice] [pid 82399:tid 
140735220779360] AH02282: No slotmem from mod_heartmonitor

which is undoubtedly because several modules are being built and loaded
that depend on certain options but do not get disabled by the lack
of those options in configure.

IMO, none of the following modules should be configured by default:

LoadModule file_cache_module modules/mod_file_cache.so

...

LoadModule dav_fs_module modules/mod_dav_fs.so

The vast majority of installations do not want a f*(^ing proxy.
Building them is fine -- these should be commented out in the
installed httpd.conf unless --with-proxy is enabled.


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.



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

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.


Regards,

Rainer


Re: undesired modules loading

2012-08-18 Thread Jim Jagielski
It's '--enable-maintainer-mode' which introduces this behavior. When
being built for mere mortals, we are much nicer as far as which
modules are built and loaded by default 

Maybe --enable-maintainer-mode should be renamed --enable-developer-mode

On Aug 18, 2012, at 4:07 PM, Roy T. Fielding field...@gbiv.com wrote:

 I built 2.4.3 with the options
 
 ./configure \
--prefix=$tdir \
--with-apr=$adir \
--with-apr-util=$adir \
--without-ssl \
--without-crypto \
--disable-cache \
--without-distcache \
--enable-maintainer-mode
 
 but then noticed in the error_log some garbage about
 
 [Sat Aug 18 12:26:23.182875 2012] [ssl:warn] [pid 82399:tid 140735220779360] 
 AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
 [Sat Aug 18 12:26:23.183039 2012] [lbmethod_heartbeat:notice] [pid 82399:tid 
 140735220779360] AH02282: No slotmem from mod_heartmonitor
 
 which is undoubtedly because several modules are being built and loaded
 that depend on certain options but do not get disabled by the lack
 of those options in configure.
 
 IMO, none of the following modules should be configured by default:
 
 LoadModule file_cache_module modules/mod_file_cache.so
 LoadModule dumpio_module modules/mod_dumpio.so
 LoadModule firehose_module modules/mod_firehose.so
 LoadModule buffer_module modules/mod_buffer.so
 LoadModule unique_id_module modules/mod_unique_id.so
 LoadModule remoteip_module modules/mod_remoteip.so
 LoadModule proxy_module modules/mod_proxy.so
 LoadModule proxy_connect_module modules/mod_proxy_connect.so
 LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
 LoadModule proxy_http_module modules/mod_proxy_http.so
 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
 LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
 LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
 LoadModule proxy_express_module modules/mod_proxy_express.so
 LoadModule session_module modules/mod_session.so
 LoadModule session_cookie_module modules/mod_session_cookie.so
 LoadModule session_dbd_module modules/mod_session_dbd.so
 LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
 LoadModule ssl_module modules/mod_ssl.so
 LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
 LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
 LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
 LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
 LoadModule dav_fs_module modules/mod_dav_fs.so
 
 The vast majority of installations do not want a f*(^ing proxy.
 Building them is fine -- these should be commented out in the
 installed httpd.conf unless --with-proxy is enabled.
 
 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.
 
 Roy
 



Re: undesired modules loading

2012-08-18 Thread Roy T. Fielding
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.

  --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.

Roy