apache24 regression between svn r465240:465461

Philip M. Gollucci pgollucci at p6m7g8.com
Fri Mar 30 21:08:18 UTC 2018


While I’m sure someone will want it, shared is the way to go.

Maybe modulariZe static support to its own .mk to keep things clean

On Fri, Mar 30, 2018 at 11:56 AM Spil Oss <spil.oss at gmail.com> wrote:

> 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 at 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 at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-apache
> > To unsubscribe, send any mail to "freebsd-apache-unsubscribe at freebsd.org
> "
> _______________________________________________
> freebsd-apache at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-apache
> To unsubscribe, send any mail to "freebsd-apache-unsubscribe at freebsd.org"
>
-- 
---------------------------------------------------------------------------------
4096R/D21D2752
<http://pgp.mit.edu/pks/lookup?op=get&search=0xF699A450D21D2752> ECDF B597
B54B 7F92 753E  E0EA F699 A450 D21D 2752
Philip M. Gollucci (pgollucci at p6m7g8.com) c: 703.336.9354
Member,                           Apache Software Foundation
Committer,                        FreeBSD Foundation
Consultant,                       P6M7G8 Inc.
Director Cloud Technology,        Capital One

What doesn't kill us can only make us stronger;
Except it almost kills you.


More information about the freebsd-apache mailing list