Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Mar 2018 17:56:19 +0200
From:      Spil Oss <spil.oss@gmail.com>
To:        olli hauer <ohauer@gmx.de>
Cc:        "apache@FreeBSD.org" <apache@freebsd.org>
Subject:   Re: apache24 regression between svn r465240:465461
Message-ID:  <CAEJyAvNnA2D8ANQCxEoxg7jKTnHMQHimOiQX0mGVVEOQDr=cGQ@mail.gmail.com>
In-Reply-To: <1659d22a-0e5e-1dbf-5cd0-ec39d7bb3e55@gmx.de>
References:  <1659d22a-0e5e-1dbf-5cd0-ec39d7bb3e55@gmx.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Olli,

Good find!

I'm trying to figure out the mechanics of the `session' problem. In
line  we force the session module to be enabled when one of the
`session_*` modules is enabled. How does it still not have that module
when building?

In my local tree I've added the =shared as this is a regression
between existing and new building methods. As far as I know, static
binaries are not preferred on FreeBSD. I've yet to see reports of
people wanting it back, but that can still come.
The =shared does appear in the install.html file.

There's already 2 PR's for the _MODULES error we trigger from apache.mk...

So we've actually duplicated the enabling of modules between apache.mk
and the 2.4 port. Not pretty. As you've probably seen the 2.2 port is
up for removal shortly. After we finish that I'll clean up the
apache.mk file.

Anyone have thoughts on having server build framework bits in
Mk/Uses/apache.mk? With OptionsNG I believe the regular way of porting
using Makefile moving parts to apache.mk doesn't reduce the Makefile
significantly. There's an apache25-devel port in preparation, which is
very similar to the 2.4 one.

Cheers, Bernard.



2018-03-30 17:04 GMT+02:00 olli hauer <ohauer@gmx.de>:
> 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
> _______________________________________________
> freebsd-apache@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-apache
> To unsubscribe, send any mail to "freebsd-apache-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAEJyAvNnA2D8ANQCxEoxg7jKTnHMQHimOiQX0mGVVEOQDr=cGQ>