Once we are happy shipping httpd-2.4.23, I'm planning to change the behavior of trunk by eliminating this whole mess... e.g...
--- modules/proxy/config.m4 (revision 1750043) +++ modules/proxy/config.m4 (working copy) @@ -5,20 +5,6 @@ proxy_objs="mod_proxy.lo proxy_util.lo" APACHE_MODULE(proxy, Apache proxy module, $proxy_objs, , most) -dnl set aside module selections and default, and set the module default to the -dnl same scope (shared|static) as selected for mod proxy, along with setting -dnl the default selection to "most" for remaining proxy modules, mirroring the -dnl behavior of 2.4.1 and later, but failing ./configure only if an explicitly -dnl enabled module is missing its prereqs -save_module_selection=$module_selection -save_module_default=$module_default -if test "x$enable_proxy" != "xno"; then - module_selection=most - if test "$enable_proxy" = "shared" -o "$enable_proxy" = "static"; then - module_default=$enable_proxy - fi -fi - proxy_connect_objs="mod_proxy_connect.lo" proxy_ftp_objs="mod_proxy_ftp.lo" proxy_http_objs="mod_proxy_http.lo" @@ -78,8 +64,5 @@ APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current]) -module_selection=$save_module_selection -module_default=$save_module_default - APACHE_MODPATH_FINISH This will get us to the point that --enable-modules=most will just work, while a user can be specific and clever if that is what they want to do... --enable-modules=few --enable-proxy=static --enable-proxy-http=yes --enable-proxy-http2=yes --enable-proxy-balancer=yes aught to give us only a compiled-in proxy core, and restrict the list to only loadable http, http2 and balancer modules. But that is such a change to ./configure that we can't consider it for backport to 2.4. If we want a new --enable-all-proxy or similar switch, I'd be happy to support such a patch (following some sort of pattern similar to the above)... but we must quit overloading a single module's enable or disable state with all other modules in that family. It's as horrid as Tomcat connector's choice to overload --with-maintainer-mode! (which is an automake switch, and it is an automake project.) On Fri, Jun 24, 2016 at 12:31 AM, <wr...@apache.org> wrote: > Author: wrowe > Date: Fri Jun 24 05:31:13 2016 > New Revision: 1750043 > > URL: http://svn.apache.org/viewvc?rev=1750043&view=rev > Log: > Replace the proxy_mods_enable logic, with its hazardous 'yes' value that > aborts the build on missing dependencies, with a local override of the > module_selection as 'most', and module_default of the same shared|static > model that was requested through --enable-proxy. > > [For trunk, we need to reevaluate the 'most' condition of some of the more > esoteric modules, and simply drop the module_default override; where a user > wants to enable -only- mod_proxy, plus one proxy mechanism, the legacy > 2.4.x > behavior retained by this patch is nuts. For one example, > --enable-modules=few --enable-proxy-yes --enable-proxy_http > is a completely specific and legitimate syntax --- adding 10 other proxy > providers in response to this syntax is absurd.] > > > Modified: > httpd/httpd/trunk/modules/proxy/config.m4 > > Modified: httpd/httpd/trunk/modules/proxy/config.m4 > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/config.m4?rev=1750043&r1=1750042&r2=1750043&view=diff > > ============================================================================== > --- httpd/httpd/trunk/modules/proxy/config.m4 (original) > +++ httpd/httpd/trunk/modules/proxy/config.m4 Fri Jun 24 05:31:13 2016 > @@ -2,16 +2,22 @@ dnl modules enabled in this directory by > > APACHE_MODPATH_INIT(proxy) > > -if test "$enable_proxy" = "shared"; then > - proxy_mods_enable=shared > -elif test "$enable_proxy" = "yes"; then > - proxy_mods_enable=yes > -else > - proxy_mods_enable=most > -fi > - > proxy_objs="mod_proxy.lo proxy_util.lo" > -APACHE_MODULE(proxy, Apache proxy module, $proxy_objs, , > $proxy_mods_enable) > +APACHE_MODULE(proxy, Apache proxy module, $proxy_objs, , most) > + > +dnl set aside module selections and default, and set the module default > to the > +dnl same scope (shared|static) as selected for mod proxy, along with > setting > +dnl the default selection to "most" for remaining proxy modules, > mirroring the > +dnl behavior of 2.4.1 and later, but failing ./configure only if an > explicitly > +dnl enabled module is missing its prereqs > +save_module_selection=$module_selection > +save_module_default=$module_default > +if test "x$enable_proxy" != "xno"; then > + module_selection=most > + if test "$enable_proxy" = "shared" -o "$enable_proxy" = "static"; then > + module_default=$enable_proxy > + fi > +fi > > proxy_connect_objs="mod_proxy_connect.lo" > proxy_ftp_objs="mod_proxy_ftp.lo" > @@ -39,11 +45,11 @@ case "$host" in > ;; > esac > > -APACHE_MODULE(proxy_connect, Apache proxy CONNECT module. Requires and > is enabled by --enable-proxy., $proxy_connect_objs, , $proxy_mods_enable,, > proxy) > -APACHE_MODULE(proxy_ftp, Apache proxy FTP module. Requires and is > enabled by --enable-proxy., $proxy_ftp_objs, , $proxy_mods_enable,, proxy) > -APACHE_MODULE(proxy_http, Apache proxy HTTP module. Requires and is > enabled by --enable-proxy., $proxy_http_objs, , $proxy_mods_enable,, proxy) > -APACHE_MODULE(proxy_fcgi, Apache proxy FastCGI module. Requires and is > enabled by --enable-proxy., $proxy_fcgi_objs, , $proxy_mods_enable,, proxy) > -APACHE_MODULE(proxy_scgi, Apache proxy SCGI module. Requires and is > enabled by --enable-proxy., $proxy_scgi_objs, , $proxy_mods_enable,, proxy) > +APACHE_MODULE(proxy_connect, Apache proxy CONNECT module. Requires > --enable-proxy., $proxy_connect_objs, , most, , proxy) > +APACHE_MODULE(proxy_ftp, Apache proxy FTP module. Requires > --enable-proxy., $proxy_ftp_objs, , most, , proxy) > +APACHE_MODULE(proxy_http, Apache proxy HTTP module. Requires > --enable-proxy., $proxy_http_objs, , most, , proxy) > +APACHE_MODULE(proxy_fcgi, Apache proxy FastCGI module. Requires > --enable-proxy., $proxy_fcgi_objs, , most, , proxy) > +APACHE_MODULE(proxy_scgi, Apache proxy SCGI module. Requires > --enable-proxy., $proxy_scgi_objs, , most, , proxy) > APACHE_MODULE(proxy_fdpass, Apache proxy to Unix Daemon Socket module. > Requires --enable-proxy., $proxy_fdpass_objs, , , [ > AC_CHECK_DECL(CMSG_DATA,,, [ > #include <sys/types.h> > @@ -54,9 +60,9 @@ APACHE_MODULE(proxy_fdpass, Apache proxy > enable_proxy_fdpass=no > fi > ],proxy) > -APACHE_MODULE(proxy_wstunnel, Apache proxy Websocket Tunnel module. > Requires and is enabled by --enable-proxy., $proxy_wstunnel_objs, , > $proxy_mods_enable,, proxy) > -APACHE_MODULE(proxy_ajp, Apache proxy AJP module. Requires and is > enabled by --enable-proxy., $proxy_ajp_objs, , $proxy_mods_enable,, proxy) > -APACHE_MODULE(proxy_balancer, Apache proxy BALANCER module. Requires and > is enabled by --enable-proxy., $proxy_balancer_objs, , $proxy_mods_enable,, > proxy) > +APACHE_MODULE(proxy_wstunnel, Apache proxy Websocket Tunnel module. > Requires --enable-proxy., $proxy_wstunnel_objs, , most, , proxy) > +APACHE_MODULE(proxy_ajp, Apache proxy AJP module. Requires > --enable-proxy., $proxy_ajp_objs, , most, , proxy) > +APACHE_MODULE(proxy_balancer, Apache proxy BALANCER module. Requires > --enable-proxy., $proxy_balancer_objs, , most, , proxy) > > APACHE_MODULE(serf, [Reverse proxy module using Serf], , , no, [ > APACHE_CHECK_SERF > @@ -67,10 +73,13 @@ APACHE_MODULE(serf, [Reverse proxy modul > fi > ]) > > -APACHE_MODULE(proxy_express, mass reverse-proxy module. Requires > --enable-proxy., , , $proxy_mods_enable,, proxy) > -APACHE_MODULE(proxy_hcheck, [reverse-proxy health-check module. Requires > --enable-proxy and --enable-watchdog.], , , $proxy_mods_enable,, > [proxy,watchdog]) > +APACHE_MODULE(proxy_express, mass reverse-proxy module. Requires > --enable-proxy., , , most, , proxy) > +APACHE_MODULE(proxy_hcheck, [reverse-proxy health-check module. Requires > --enable-proxy and --enable-watchdog.], , , most, , [proxy,watchdog]) > > APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current]) > > +module_selection=$save_module_selection > +module_default=$save_module_default > + > APACHE_MODPATH_FINISH > > > >