-*- coding: utf-8 -*-
Changes with Apache 2.4.1
- * Rewrite and proxy now decline what they don't support rather
- than fail the request. [Joe Orton]
+ *) configure: Disable modules at configure time if a prerequisite module
+ is not enabled. PR 52487. [Stefan Fritsch]
+
+ *) Rewrite and proxy now decline what they don't support rather
+ than fail the request. [Joe Orton]
Changes with Apache 2.4.0
* PR 52476: SSL failures on windows with AcceptFilter https none
- * configure does not take module inter-dependencies into account (can cause
- build failure with statically compiled modules).
-
NEW ISSUES THAT WOULD BE NICE TO HAVE DONE IN 2.4 BUT ARE NOT BLOCKERS
* mod_ssl's proxy support only allows one proxy client certificate per
])dnl
dnl
-dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config]]]])
+dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config[, prereq_module]]]]])
dnl
dnl default is one of:
dnl yes -- enabled by default. user must explicitly disable.
dnl explicit yes/no always overrides, except if the user selects
dnl "reallyall".
dnl
+dnl prereq_module is a module (without the "mod_" prefix) that must be enabled
+dnl if the current module is enabled. If the current module is built
+dnl statically, prereq_module must be built statically, too. If these
+dnl conditions are not fulfilled, configure will abort if the current module
+dnl has been enabled explicitly. Otherwise, configure will disable the
+dnl current module.
+dnl prereq_module's APACHE_MODULE() statement must have been processed
+dnl before the current APACHE_MODULE() statement.
+dnl
AC_DEFUN(APACHE_MODULE,[
AC_MSG_CHECKING(whether to enable mod_$1)
define([optname],[--]ifelse($5,yes,disable,enable)[-]translit($1,_,-))dnl
if test "$enable_$1" != "no"; then
dnl If we plan to enable it, allow the module to run some autoconf magic
dnl that may disable it because of missing dependencies.
- ifelse([$6],,:,[AC_MSG_RESULT([checking dependencies])
- $6
- AC_MSG_CHECKING(whether to enable mod_$1)
- if test "$enable_$1" = "no"; then
- if test "$_apmod_required" = "no"; then
- _apmod_extra_msg=" (disabled)"
- else
- AC_MSG_ERROR([mod_$1 has been requested but can not be built due to prerequisite failures])
- fi
- fi])
+ ifelse([$6$7],,:,
+ [AC_MSG_RESULT([checking dependencies])
+ ifelse([$7],,:,[if test "$enable_$7" = "no" ; then
+ enable_$1=no
+ AC_MSG_WARN("mod_$7 is disabled but required for mod_$1")
+ elif test "$enable_$1" = "static" && test "$enable_$7" != "static" ; then
+ enable_$1=no
+ AC_MSG_WARN("cannot build mod_$1 statically if mod_$7 is built shared")
+ else])
+ ifelse([$6],,:,[ $6])
+ ifelse([$7],,:,[fi])
+ AC_MSG_CHECKING(whether to enable mod_$1)
+ if test "$enable_$1" = "no"; then
+ if test "$_apmod_required" = "no"; then
+ _apmod_extra_msg=" (disabled)"
+ else
+ AC_MSG_ERROR([mod_$1 has been requested but can not be built due to prerequisite failures])
+ fi
+ fi])
fi
AC_MSG_RESULT($enable_$1$_apmod_extra_msg)
if test "$enable_$1" != "no"; then
esac
APACHE_MODULE(cache, dynamic file caching. At least one storage management module (e.g. mod_cache_disk) is also necessary., $cache_objs, , most)
-APACHE_MODULE(cache_disk, disk caching module, $cache_disk_objs, , most)
+APACHE_MODULE(cache_disk, disk caching module, $cache_disk_objs, , most, , cache)
dnl
dnl APACHE_CHECK_DISTCACHE
;;
esac
-APACHE_MODULE(heartbeat, Generates Heartbeats, $heartbeat_objects, , )
+APACHE_MODULE(heartbeat, Generates Heartbeats, $heartbeat_objects, , , , watchdog)
APACHE_MODULE(heartmonitor, Collects Heartbeats, , , )
APACHE_MODPATH_FINISH
;;
esac
-APACHE_MODULE(dav_fs, DAV provider for the filesystem. --enable-dav also enables mod_dav_fs., $dav_fs_objects, , $dav_fs_enable)
+APACHE_MODULE(dav_fs, DAV provider for the filesystem. --enable-dav also enables mod_dav_fs., $dav_fs_objects, , $dav_fs_enable,,dav)
APACHE_MODPATH_FINISH
;;
esac
-APACHE_MODULE(dav_lock, DAV provider for generic locking - requires --enable-dav, $dav_lock_objects, , )
+APACHE_MODULE(dav_lock, DAV provider for generic locking, $dav_lock_objects, ,,,dav)
APACHE_MODPATH_FINISH
;;
esac
-APACHE_MODULE(proxy_connect, Apache proxy CONNECT module. Requires and is enabled by --enable-proxy., $proxy_connect_objs, , $proxy_mods_enable)
-APACHE_MODULE(proxy_ftp, Apache proxy FTP module. Requires and is enabled by --enable-proxy., $proxy_ftp_objs, , $proxy_mods_enable)
-APACHE_MODULE(proxy_http, Apache proxy HTTP module. Requires and is enabled by --enable-proxy., $proxy_http_objs, , $proxy_mods_enable)
-APACHE_MODULE(proxy_fcgi, Apache proxy FastCGI module. Requires and is enabled by --enable-proxy., $proxy_fcgi_objs, , $proxy_mods_enable)
-APACHE_MODULE(proxy_scgi, Apache proxy SCGI module. Requires and is enabled by --enable-proxy., $proxy_scgi_objs, , $proxy_mods_enable)
+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_fdpass, Apache proxy to Unix Daemon Socket module. Requires --enable-proxy., $proxy_fdpass_objs, , , [
AC_CHECK_DECL(CMSG_DATA,,, [
#include <sys/types.h>
AC_MSG_WARN([Your system does not support CMSG_DATA.])
enable_proxy_fdpass=no
fi
-])
-APACHE_MODULE(proxy_ajp, Apache proxy AJP module. Requires and is enabled by --enable-proxy., $proxy_ajp_objs, , $proxy_mods_enable)
-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_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_express, mass reverse-proxy module. Requires --enable-proxy., , , $proxy_mods_enable)
+APACHE_MODULE(proxy_express, mass reverse-proxy module. Requires --enable-proxy., , , $proxy_mods_enable,, proxy)
APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
esac
APACHE_MODULE(session, session module, , , most)
-APACHE_MODULE(session_cookie, session cookie module, $session_cookie_objects, , $session_mods_enable)
+APACHE_MODULE(session_cookie, session cookie module, $session_cookie_objects, , $session_mods_enable,,session)
if test "$enable_session_crypto" != ""; then
session_mods_enable_crypto=$enable_session_crypto
if test "$session_mods_enable_crypto" = "no" ; then
enable_session_crypto=no
fi
-])
+],session)
-APACHE_MODULE(session_dbd, session dbd module, $session_dbd_objects, , $session_mods_enable)
+APACHE_MODULE(session_dbd, session dbd module, $session_dbd_objects, , $session_mods_enable,,session)
APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])