apache24 regression between svn r465240:465461

olli hauer ohauer at gmx.de
Fri Mar 30 15:02:41 UTC 2018


Seems there is a regression in the apache24 port between svn r465240:465461

With the change in Makfile.options from ALL_MODULES_CATEGORIES to ALL_MODULES
it is no longer possible to build static modules since the code in Mk/Uses/apache.mk
is no longer honored.

That's the part in apache.mk

 .for category in ${ALL_MODULES_CATEGORIES}
 AVAILABLE_MODULES+=     ${${category}_MODULES}
 .endfor
...
 .for module in ${AVAILABLE_MODULES}
 .       if !empty(WITH_STATIC_MODULES:M${module})
 CONFIGURE_ARGS+=        --enable-${module:tl}=static
 PLIST_SUB+=     MOD_${module}="@comment "
 .       elif !empty(APACHE_MODULES:M${module})
 CONFIGURE_ARGS+=        --enable-${module:tl}=shared
 PLIST_SUB+=     MOD_${module}=""
 .       else
 CONFIGURE_ARGS+=        --disable-${module:tl}
 PLIST_SUB+=     MOD_${module}="@comment "
 .       endif
 .endfor


that was replaced with this simpler part in the ports Makefile

 .for module in ${ALL_MODULES}
 .if ${PORT_OPTIONS:M${module}}
 CONFIGURE_ARGS+=       --enable-${module:S/_/-/g:tl}
 .else
 CONFIGURE_ARGS+=       --disable-${module:S/_/-/g:tl}
 .endif
 .endfor


That's OK, after the removal of apache22 large (server) parts of apache.mk
can be removed if we do not support static modules any longer.

But there is another regression that will be noticed only with the original
apache24 httpd.conf the first time apache24 starts.

 httpd: Syntax error on line 143 of /usr/local/etc/apache24/httpd.conf:
 Cannot load libexec/apache24/mod_session_cookie.so into server:
 /usr/local/libexec/apache24/mod_session_cookie.so: Undefined symbol "ap_hook_session_save"


This error message has is the result of three modules (session_cookie_module,
session_crypto_module and session_dbd_module) that are enabled in httpd.conf
without enabling session_module.


One easy fix (dynamic modules only) could be:

Index: apache24/Makefile
===================================================================
--- apache24/Makefile   (revision 465976)
+++ apache24/Makefile   (working copy)
@@ -132,7 +132,7 @@

 .for module in ${ALL_MODULES}
 .if ${PORT_OPTIONS:M${module}}
-CONFIGURE_ARGS+=       --enable-${module:S/_/-/g:tl}
+CONFIGURE_ARGS+=       --enable-${module:S/_/-/g:tl}=shared
 .else
 CONFIGURE_ARGS+=       --disable-${module:S/_/-/g:tl}
 .endif


The difference can be shown without installing apache by comparing httpd.conf.sample in the stage dir with and without the small patch.

I know ./configure ---help does not show the usage of --enable-$module=(shared|static|yes), but this hint can be found in acinclude.m4 and as I remember in older apache versions


-- 
olli


More information about the freebsd-apache mailing list