# New ports collection makefile for:	Apache + mod_ssl + mod_frontpage
# Version required:	1.3.9 + 2.4.2 + 3.0.4
# Date created:		Sat Aug 21 15:00:00 CDT 1999
# Whom:			hetzels@westbend.net
#
# $Id:$
#

DISTNAME=	apache_${VERSION_APACHE}
PKGNAME=	apache_fp+mod_ssl-${VERSION_APACHE}+${VERSION_MODSSL}
CATEGORIES=	www security
MASTER_SITES=	http://www.apache.org/dist/ \
		http://www.modssl.org/source/ \
		ftp://ftp.microsoft.com/products/frontpage/ \
                http://www.freebsd.org/gifs/ \
                http://officeupdate.microsoft.com/frontpage/wpp/serk/ \
		ftp://ftp.modssl.org/source/ \
		ftp://sunsite.doc.ic.ac.uk/Mirrors/ftp.microsoft.com/Products/frontpage/ \
		ftp://ftp.pca.dfn.de/pub/tools/net/mod_ssl/ \
		ftp://ftp.ccs.neu.edu/net/mirrors/ftp.apache.org/apache/dist/ \
		ftp://ftp.rge.com/pub/infosystems/apache/dist/ \
		ftp://ftp.ecrc.net/pub/security/mod_ssl/ \
		ftp://ftp.nvg.ntnu.no/pub/unix/mod_ssl/ \
		ftp://apache.compuex.com/pub/apache/dist/ \
		ftp://apache.arctic.org/pub/apache/dist/ \
		ftp://ftp.ulpgc.es/pub/mod_ssl/ \
		ftp://glock.missouri.edu/pub/mod_ssl/ \
		ftp://ftp.epix.net/pub/apache/dist/ \
		ftp://ftp.ameth.org/pub/mirrors/ftp.apache.org/apache/dist/ \
		ftp://ftp.infoscience.co.jp/pub/Crypto/SSL/mod_ssl/ \
		ftp://ftp.uni-trier.de/pub/unix/security/mod_ssl/ \
		ftp://ftp.connectnet.com/pub/www/apache/ \
		ftp://apache.technomancer.com/mirrors/apache/dist/ \
		ftp://ftp.blatzheim.com/pub/mod_ssl/ \
		ftp://ftp.fu-berlin.de/unix/security/mod_ssl/ \
		ftp://ftp.raver.net/pub/ftp.apache.org/ \
		ftp://www3.service.digital.com/apache/dist/ \
		ftp://ftp.ntrl.net/pub/mirror/ralfsw/mod_ssl/ \
		ftp://galileo.galilei.com/pub/apache/ \
		ftp://ftp.mtnranch.net/pub/apache/dist/ \
		ftp://ftp.iodynamics.com/pub/mirror/apache/dist/ \
		ftp://apache.nextpath.com/pub/apache/dist/
DISTFILES=	${EXTRACT_ONLY} ${FRONTPAGE} powerlogo.gif fplogo.gif

EXTRACT_ONLY=   ${APACHE} ${MOD_SSL}

MAINTAINER=	hetzels@westbend.net

BUILD_DEPENDS=	openssl:${PORTSDIR}/security/openssl \
		mm-config:${PORTSDIR}/devel/mm \
		${PREFIX}/lib/libssl.a:${PORTSDIR}/security/openssl \
		${PREFIX}/lib/libcrypto.a:${PORTSDIR}/security/openssl \
		${PREFIX}/lib/libmm.a:${PORTSDIR}/devel/mm
RUN_DEPENDS=	openssl:${PORTSDIR}/security/openssl

VERSION_APACHE=	1.3.9
VERSION_MODSSL=	2.4.8
APACHE=		${DISTNAME}${EXTRACT_SUFX}
MOD_SSL=	mod_ssl-${VERSION_MODSSL}-${VERSION_APACHE}${EXTRACT_SUFX}
FRONTPAGE=	fp40.bsdi.tar.Z

Y2K=		http://www.modssl.org/docs/2.3/ssl_faq.html#y2k
Y2K+=		http://www.apache.org/foundation/Y2K.html
Y2K+=		http://computingcentral.msn.com/guide/year2000/msy2k/product/frontpage.asp

PLIST=  ${WRKDIR}/PLIST
PLIST_SUB=      FP_REV=version4.0

RESTRICTED=	"Contains cryptography"

.if defined(PATCH_DEBUG)
PATCH_DIST_ARGS=	-d ${WRKSRC}/src -E ${PATCH_DIST_STRIP}
.else
PATCH_DIST_ARGS=	-d ${WRKSRC}/src --forward --quiet -E ${PATCH_DIST_STRIP}
.endif

IS_INTERACTIVE=	YES
NO_PACKAGE=     \
   "The FrontPage Installer needs to create FrontPage Admin user and password"

FPINSTALL=      frontpage/version4.0/fp_install.sh
CHANGESERVER=   frontpage/version4.0/change_server.sh
README=         frontpage/version4.0/readme.htm
SERK=           frontpage/version4.0/serk
MOD_FPDOCDIR=   share/doc/apache/manual/mod/mod_frontpage
MOD_FP=         ${FILESDIR}/mod_frontpage.c
IMAGES_DIR=	share/doc/apache/manual/images
IMAGES_VTI=	${PREFIX}/www/data/images/_vti_cnf

INSTALL_FILE=	${INSTALL} -c -m 755 -o bin -g bin

USE_PERL5=	yes
HAS_CONFIGURE=	yes
CONFIGURE_ARGS=	--prefix=${PREFIX} \
		--with-layout=GNU \
		--with-perl=${PERL} \
		--bindir=${PREFIX}/bin \
		--sbindir=${PREFIX}/sbin \
		--libexecdir=${PREFIX}/libexec/apache \
		--mandir=${PREFIX}/man \
		--sysconfdir=${PREFIX}/etc/apache \
		--datadir=${PREFIX}/www \
		--includedir=${PREFIX}/include/apache \
		--localstatedir=/var \
		--runtimedir=/var/run \
		--logfiledir=/var/log \
		--proxycachedir=/var/spool/apache \
		--without-confadjust \
		--enable-module=most \
		--enable-module=auth_db \
		--disable-module=auth_dbm \
		--add-module=${MOD_FP} \
		--enable-shared=frontpage \
		--enable-module=ssl \
		--enable-module=define \
		--enable-shared=max

OPTIM=		-DHARD_SERVER_LIMIT=512 \
		-DDOCUMENT_LOCATION=\\"${PREFIX}/www/data/\\" \
		-DDEFAULT_PATH=\\"/bin:/usr/bin:${PREFIX}/bin\\"

.if defined(APACHE_PERF_TUNING)
OPTIM+=		-DBUFFERED_LOGS -DFD_SETSIZE=1024
CFLAGS+=	-O6 -funroll-loops -fstrength-reduce -fomit-frame-pointer \
		-fexpensive-optimizations -ffast-math
.endif

CONFIGURE_ENV=	CFLAGS='${CFLAGS}' \
		OPTIM='${OPTIM}' \
		SSL_BASE='SYSTEM' \
		EAPI_MM='SYSTEM' \
		PATH="${PREFIX}/bin:${PATH}"

INSTALL_TARGET=	install-quiet

MAN1=	dbmmanage.1 htdigest.1 htpasswd.1
MAN8=	ab.8 apachectl.8 apxs.8 httpd.8 logresolve.8 rotatelogs.8

.if defined(SUEXEC)
HTTPD_USER?=	 www
USER_DIR?=	 public_html
CONFIGURE_ARGS+= --enable-suexec \
		 --suexec-caller=${HTTPD_USER} \
		 --suexec-docroot=${PREFIX}/www/data \
		 --suexec-logfile=/var/log/httpd-suexec.log \
		 --suexec-userdir=${USER_DIR} \
		 --suexec-safepath='/bin:/usr/bin:${PREFIX}/bin'
MAN8+=		 suexec.8
.endif

TYPE=	test
CRT=
KEY=

pre-extract:
	@if ! ${LDCONFIG} -r | ${GREP} -q -e "-ldescrypt"; then \
		${ECHO} ; \
		${ECHO} "WARNING: MS FrontPage Extentions require the DES Library"; \
		${ECHO} "WARNING: Install the DES Library, then build apache-fp-mod_ssl"; \
		${ECHO} ; \
		${FALSE} ; \
	fi

post-extract:
	@${ECHO} "===>  Extracting FrontPage install scripts"
	@cd ${WRKSRC} && \
	${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${DISTDIR}/${FRONTPAGE} \
		${EXTRACT_AFTER_ARGS} ${FPINSTALL} ${CHANGESERVER} \
		${README}

pre-patch:
	@cd ${WRKDIR}/mod_ssl-${VERSION_MODSSL}-${VERSION_APACHE} \
	&& ${ECHO_MSG} "===>  Applying mod_ssl-${VERSION_MODSSL} extension" \
	&& ./configure --with-apache=../${DISTNAME} --expert

.if !defined(PATCH_DEBUG)
post-patch:
	@cd ${WRKSRC} \
	&& find . -type f -name "*.orig" -print | xargs ${RM} -f
.endif

post-configure:
.if defined(SUEXEC)
	${CP} ${PKGDIR}/PLIST ${PLIST}
.else
	${CAT} ${PKGDIR}/PLIST | grep -v sbin/suexec >${PLIST}
.endif

post-build:
	@cd ${WRKSRC} \
	&& ${ECHO_MSG} "===>  Creating Dummy Certificate for Server (SnakeOil)" \
	&& ${ECHO_MSG} "      [use 'make certificate' to create a real one]" \
	&& ${MAKE} certificate TYPE=dummy >/dev/null 2>&1

certificate:
	@cd ${WRKSRC} \
	&& ${ECHO_MSG} "===>  Creating Test Certificate for Server" \
	&& ${MAKE} certificate TYPE=${TYPE} CRT=${CRT} KEY=${KEY}

IMAGES=         apache_pb.gif fplogo.gif mod_ssl_sb.gif openssl_ics.gif powerlogo.gif feather.jpg

post-install:
	@if [ ! -f ${PREFIX}/etc/rc.d/apache.sh ]; then \
		${ECHO} "Installing ${PREFIX}/etc/rc.d/apache.sh file."; \
		${CAT} ${FILESDIR}/apache.sh.tmpl | \
			${SED}  -e 's;PREFIX;${PREFIX};' \
				-e 's;PERL5;${PERL};' \
				> ${PREFIX}/etc/rc.d/apache.sh ;\
		chmod 751 ${PREFIX}/etc/rc.d/apache.sh; \
	fi
	@${INSTALL} -c -m 644 ${DISTDIR}/powerlogo.gif ${PREFIX}/${IMAGES_DIR}
	@${INSTALL} -c -m 644 ${DISTDIR}/fplogo.gif ${PREFIX}/${IMAGES_DIR}
	@mkdir -p ${PREFIX}/www/data/images
	@( cd ${PREFIX}/share/doc/apache ; if [ -h images ] ; then rm -f images ; fi ; ln -fs manual/images images)
.for file in ${IMAGES}
	@if [ ! -f ${PREFIX}/www/data/images/${file} ]; then \
		cp -rp ${PREFIX}/${IMAGES_DIR}/${file} ${PREFIX}/www/data/images ; \
	fi
.endfor
	@${CAT} ${WRKSRC}/${FPINSTALL} | \
		${SED}	-e 's;PREFIX;${PREFIX};' \
			-e 's;MOD_FPDOCDIR;${PREFIX}/${MOD_FPDOCDIR};' \
			> ${WRKDIR}/tmp.fpinstall
	@${SH} ${WRKDIR}/tmp.fpinstall
#	Add the appropriate comment to the images/_vti_cnf file.
	@if [ -d ${IMAGES_VTI} ]; then \
		if [ ! "`grep description ${IMAGES_VTI}/apache_pb.gif`" ] ; then \
			echo "vti_description:SW|Apache Webserver" >> ${IMAGES_VTI}/apache_pb.gif ;\
		fi ; \
		if [ ! "`grep description ${IMAGES_VTI}/fplogo.gif`" ] ; then \
			echo "vti_description:SW|Created with Microsoft FrontPage 2000" >> ${IMAGES_VTI}/fplogo.gif ; \
		fi ; \
		if [ ! "`grep description ${IMAGES_VTI}/powerlogo.gif`" ] ; then \
			echo "vti_description:SW|Powered by FreeBSD" >> ${IMAGES_VTI}/powerlogo.gif ; \
		fi ; \
		if [ ! "`grep description ${IMAGES_VTI}/mod_ssl_sb.gif`" ] ; then \
			echo "vti_description:SW|mod_ssl Interface" >> ${IMAGES_VTI}/mod_ssl_sb.gif ; \
		fi ; \
		if [ ! "`grep description ${IMAGES_VTI}/openssl_ics.gif`" ] ; then \
			echo "vti_description:SW|OpenSSL Toolkit" >> ${IMAGES_VTI}/openssl_ics.gif ; \
		fi ; \
	fi
	@${INSTALL_FILE} ${WRKDIR}/tmp.fpinstall ${PREFIX}/${FPINSTALL}
	@${CAT} ${WRKSRC}/${CHANGESERVER} | \
		${SED} -e 's;PREFIX;${PREFIX};' > ${WRKDIR}/tmp.changeserver
	@${INSTALL_FILE} ${WRKDIR}/tmp.changeserver ${PREFIX}/${CHANGESERVER}
	@${MKDIR} -p ${PREFIX}/${MOD_FPDOCDIR}
	@${CP} ${PREFIX}/${README} ${PREFIX}/${MOD_FPDOCDIR}/index.html
	@${LN} -s ${PREFIX}/${SERK} ${PREFIX}/${MOD_FPDOCDIR}/serk

.include <bsd.port.mk>
