How to make www/apache22-worker-mpm a dependency?

Olli Hauer ohauer at FreeBSD.org
Sun Apr 10 16:32:11 UTC 2011


On 2011-04-08 15:20, rainer at ultra-secure.de wrote:
> Hi,
> 
> I would like to make www/apache22-worker-mpm the "default" apache, instead
> of 1.3 (or 2.2).
> The reason is that I build my ports in a tinderbox and even if I change
> the USE_APACHE=1.3+ to USE_APACHE=2.2+ in e.g. the mod_fastcgi
> ports-Makefile, it still installs the "normal" prefork-apache22.
> Thus, upon installing the package, I have to de-install the wrong
> apache-package first, then install the worker-mpm-apache and then pkgdb -F
> the pkg-database.
> 
> Anybody have a solution for that?
> 
> 
> Regards,
> Rainer

Hi Rainer,

the only way to build apache22 with mpm-worker in tinderbox is to
set WITH_MPM=worker in  "$tb/scripts/etc/env/build.$buildname"
or in a "/etc/make.conf" of the tinderbox jail which can be injected
with the postBuildExtract hook.


The disadvantage is that the latest link and pkg-desc
does not reflect this setting but you can fix this with this patch

# diff -u apache22/Makefile.modules.orig apache22/Makefile.modules
--- apache22/Makefile.modules.orig      2011-03-31 19:00:36.000000000 +0200
+++ apache22/Makefile.modules   2011-04-10 18:21:23.000000000 +0200
@@ -60,6 +60,8 @@
 .   endif
 .      if ${WITH_MPM:L} == "worker"
 PLIST_SUB+=    PREFORK="@comment " WORKER="" EVENT="@comment "
+LATEST_LINK=   apache22-worker-mpm
+DESCR=         ${.CURDIR}/../apache22-worker-mpm/pkg-descr
 .      elif  ${WITH_MPM:L} == "event"
 PLIST_SUB+=    PREFORK="@comment " WORKER="@comment " EVENT=""
 .      elif  ${WITH_MPM:L} == "itk"


If you want to go the tinderbox hook way ...
Snippet from my tinderbox postBuildExtract hook, place the script into
${TB}/scripts and install with
$> ./tc updateHookCmd -h postBuildExtract -c hook_postBuildExtract

#======================================================================
# hook_postBuildExtract
#
# no make.conf for this build
if [ "${BUILD}" = "7.4-porter" ]; then
    return 0
fi

MAKE_CONF=${PB}/jails/make.conf
[ ${RC} -eq 0 ]  || _diag
[ -z ${BUILD} ]   && echo "not running from tnderbox" && return 1
[ -z ${DESTDIR} ] && echo "not running from tnderbox" && return 1
[ -z ${JAIL} ]    && echo "not running from tnderbox" && return 1
[ -r ${MAKE_CONF} ] && cp -v ${MAKE_CONF} ${DESTDIR}/etc/make.conf
_ret=$?

if [ -z $_ret ]; then
    # make.conf was not found
    return 2
fi

return 0


Save the following lines as ${TB}/jails/make.conf
#======================================================================
.if ${.CURDIR:M*/www/apache22}
#WITH_MPM=prefork
# mpm_worker breaks php5 postgresql module
#WITH_MPM=worker
.endif
#======================================================================


// olli


More information about the freebsd-apache mailing list