From a87a4fb7b9cccf87dc42fb6b284770baa94cb3da Mon Sep 17 00:00:00 2001 From: sheldonh Date: Mon, 28 May 2001 20:52:46 +0000 Subject: On deinstall, deactivate mod_perl in whichever of httpd.conf and httpd.conf.default exist. This is a best attempt at resolving the problem where the system is left changed from before a mod_perl installation after mod_perl is removed. If only apxs had an option to revert module activation. Requested by: asami --- www/mod_perl/Makefile | 3 +++ www/mod_perl/pkg-deinstall | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 www/mod_perl/pkg-deinstall (limited to 'www/mod_perl') diff --git a/www/mod_perl/Makefile b/www/mod_perl/Makefile index 0c495348127a..4575a755a24b 100644 --- a/www/mod_perl/Makefile +++ b/www/mod_perl/Makefile @@ -54,4 +54,7 @@ post-install: ${INSTALL_PROGRAM} ${WRKSRC}/apaci/libperl.so ${PREFIX}/libexec/apache @PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL +post-deinstall: + @PKG_PREFIX=${PREFIX} ${SH} ${PKGDEINSTALL} ${PKGNAME} POST-DEINSTALL + .include diff --git a/www/mod_perl/pkg-deinstall b/www/mod_perl/pkg-deinstall new file mode 100644 index 000000000000..4d70d558c016 --- /dev/null +++ b/www/mod_perl/pkg-deinstall @@ -0,0 +1,57 @@ +#!/bin/sh +# +# Try to de-activate mod_perl in the installed httpd.conf and warn +# if this fails. +# +# $FreeBSD$ +# + +if [ "$2" != "POST-DEINSTALL" ]; then + exit 0 +fi + +TMPDIR=${TMPDIR:=/tmp} +PKG_TMPDIR=${PKG_TMPDIR:=${TMPDIR}} + +apxscmd=${PKG_PREFIX}/sbin/apxs +tmpdir=${PKG_TMPDIR}/deinstmod_perl.$$ + +if [ ! -x ${apxscmd} ]; then + echo Can\'t find the apxs program: ${apxscmd}. + exit 1 +fi + +confdir=`${apxscmd} -q SYSCONFDIR` + +if [ ! -d ${confdir} ]; then + echo Can\'t find Apache conf dir: ${confdir} + exit 1 +fi + +if [ -f ${confdir}/httpd.conf ]; then + conffile=httpd.conf +fi +if [ -f ${confdir}/httpd.conf.default ]; then + conffile="${conffile} httpd.conf.default" +fi +if [ -z "${conffile}" ]; then + echo Can\'t find either of ${confdir}/httpd.conf or + echo ${confdir}/httpd.conf.default. + exit 1 +fi + +if ! mkdir ${tmpdir}; then + echo Can\'t create temporary directory: ${tmpdir} + exit 1 +fi + +for i in ${conffile}; do + awk '{if (!/^LoadModule perl_module/ && !/^AddModule mod_perl.c/) \ + print $0}' < ${confdir}/$i > ${tmpdir}/$i + echo Updating $i in config dir: ${confdir} + cat ${tmpdir}/$i > ${confdir}/$i +done + +rm -rf ${tmpdir} + +exit 0 -- cgit