pkgsrc/www/apache/Makefile
wiz 1404131327 Update to 1.3.36:
Changes with Apache 1.3.36

  *) Reverted SVN rev #396294 due to unwanted regression.
     The new feature introduced in 1.3.35 (Allow usage of the
     "Include" configuration directive within previously "Include"d
     files) has been removed in the meantime.
     (http://svn.apache.org/viewcvs?rev=396294&view=rev)

Changes with Apache 1.3.35

  *) SECURITY: CVE-2005-3352 (cve.mitre.org)
     mod_imap: Escape untrusted referer header before outputting in HTML
     to avoid potential cross-site scripting.  Change also made to
     ap_escape_html so we escape quotes.  Reported by JPCERT.
     [Mark Cox]

  *) core: Allow usage of the "Include" configuration directive within
     previously "Include"d files. [Colm MacCarthaigh]

  *) HTML-escape the Expect error message.  Not classed as security as
     an attacker has no way to influence the Expect header a victim will
     send to a target site.  Reported by Thiago Zaninotti [Mark Cox]

  *) mod_cgi: Remove block on OPTIONS method so that scripts can
     respond to OPTIONS directly rather than via server default.
     [Roy Fielding] PR 15242
2006-07-19 22:45:14 +00:00

222 lines
7.3 KiB
Makefile

# $NetBSD: Makefile,v 1.187 2006/07/19 22:45:14 wiz Exp $
#
# This pkg does not compile in mod_ssl, only the `mod_ssl EAPI' (a set of
# code hooks that allow mod_ssl to be compiled separately later, if desired).
DISTNAME= apache_1.3.36
PKGNAME= ${DISTNAME:S/_/-/}
CATEGORIES= www
MASTER_SITES= ${MASTER_SITE_APACHE:=httpd/} \
${MASTER_SITE_APACHE:=httpd/old/}
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${NETBSD_LOGO} ${MODSSL_DIST}
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://httpd.apache.org/
COMMENT= Apache HTTP (Web) server
NETBSD_LOGO= sitedrivenby.gif
SITES.${NETBSD_LOGO}= http://www.NetBSD.org/images/logos/
MODSSL_VERSION= 2.8.27
MODSSL_DISTNAME= mod_ssl-${MODSSL_VERSION}-1.3.36
MODSSL_DIST= ${MODSSL_DISTNAME}.tar.gz
MODSSL_SRC= ${WRKDIR}/${MODSSL_DISTNAME}
SITES.${MODSSL_DIST}= http://www.modssl.org/source/ \
ftp://ftp.pca.dfn.de/pub/tools/net/mod_ssl/source/ \
ftp://ftp.funet.fi/pub/crypt/cryptography/libs/modssl/source/
CONFLICTS= apache-*ssl-[0-9]* apache6-[0-9]*
EXTRACT_ONLY= ${DISTFILES:N*.gif}
# Actually, apache is only written in C, but we need this so that
# a dlopen()ed apache module that's written in C++ will have static
# objects constructed properly.
USE_LANGUAGES= c c++
HAS_CONFIGURE= YES
CONFIGURE_ARGS+= --with-layout="${WRKSRC}/config.layout:pkgsrc"
CONFIGURE_ARGS+= --enable-module=most \
--enable-module=auth_db \
--disable-module=auth_dbm
CONFIGURE_ARGS+= --enable-rule=EAPI \
--disable-module=ssl
CONFIGURE_ARGS+= --without-confadjust
CONFIGURE_ARGS+= --with-perl=${PERL5:Q}
CONFIGURE_ARGS+= --with-port=80
CONFIGURE_ENV+= OPTIM=${APACHE_CUSTOM_CFLAGS:Q}
CONFIGURE_ENV+= EAPI_MM="${BUILDLINK_PREFIX.libmm}"
CONFIGURE_ENV+= BINOWN=${BINOWN:Q} BINGRP=${BINGRP:Q}
.include "../../mk/bsd.prefs.mk"
.if empty(STRIPFLAG)
CONFIGURE_ARGS+= --without-execstrip
.endif
PKG_SYSCONFSUBDIR?= httpd
USE_TOOLS+= perl
APACHE_USER?= www
APACHE_GROUP?= www
BUILD_DEFS+= APACHE_USER APACHE_GROUP
CONFIGURE_ARGS+= --server-uid=${APACHE_USER:Q}
CONFIGURE_ARGS+= --server-gid=${APACHE_GROUP:Q}
PKG_OPTIONS_VAR= PKG_OPTIONS.apache
PKG_SUPPORTED_OPTIONS= perf-tuning suexec
.include "../../mk/bsd.options.mk"
.if !empty(PKG_OPTIONS:Msuexec)
APACHE_SUEXEC_DOCROOT?= ${PREFIX}/share/httpd/htdocs
APACHE_SUEXEC_PATH= /bin:/usr/bin:${PREFIX}/bin:/usr/local/bin
APACHE_SUEXEC_CONFIGURE_ARGS+= \
--suexec-caller=${APACHE_USER} \
--suexec-safepath=${APACHE_SUEXEC_PATH:Q} \
--suexec-docroot=${APACHE_SUEXEC_DOCROOT}
CONFIGURE_ARGS+= --enable-suexec \
${APACHE_SUEXEC_CONFIGURE_ARGS:M--suexec-*}
PLIST_SRC= ${PKGDIR}/PLIST.suexec
BUILD_DEFS+= APACHE_SUEXEC_CONFIGURE_ARGS
.endif
# Note that there is NO static compile module hook here. This is intentional.
# Under Apache 1.3, modules can be compiled to link dynamically to the server
# using the "apxs" program. See apxs(8).
#
.if !defined(NOPIC)
CONFIGURE_ARGS+= --enable-module=so # requires dlopen()
_ENABLE_MOD= --enable-shared
PLIST_SRC+= ${PKGDIR}/PLIST.shared
.else
_ENABLE_MOD= --enable-module
.endif
PLIST_SRC+= ${PKGDIR}/PLIST
CONFIGURE_ARGS+= ${_ENABLE_MOD}=proxy
CONFIGURE_ARGS+= ${_ENABLE_MOD}=define # from mod_ssl pkg.addon
APACHE_CUSTOM_CFLAGS?= # empty
.if !empty(PKG_OPTIONS:Mperf-tuning)
APACHE_CUSTOM_CFLAGS+= -DBUFFERED_LOGS
APACHE_CUSTOM_CFLAGS+= ${COMPILER_PERFTUNE_FLAGS}
LDFLAGS+= ${COMPILER_PERFTUNE_FLAGS}
.endif
# Explicitly turn on large file support
APACHE_CUSTOM_CFLAGS+= -D_LARGEFILE_SOURCE
APACHE_CUSTOM_CFLAGS+= -D_FILE_OFFSET_BITS=64
.include "../../mk/compiler.mk"
# On NetBSD ELF platforms, we need to link libgcc.a whole-archive so that
# certain symbols from the C++ implementation (__get_eh_context, etc.)
# referenced by DSOs written in C++ will resolve correctly.
#
.if ${OPSYS} == "NetBSD"
. if ${OBJECT_FMT} == "ELF"
LINK_LIBGCC_LDFLAGS= ${LINK_ALL_LIBGCC_HACK}
MAKE_ENV+= LINK_LIBGCC_LDFLAGS=${LINK_LIBGCC_LDFLAGS:Q}
#
# If we are using gcc3, we need to link against libgcc_s, too. This
# ensures modules can resolve symbols they require from gcc.
#
. if !empty(CC_VERSION:Mgcc-3*)
LINK_LIBGCC_LDFLAGS+= -lgcc_s
. endif
. endif
.endif
BUILD_DEFS+= APACHE_CUSTOM_CFLAGS
EGDIR= ${PREFIX}/share/examples/httpd
CONF_FILES= ${EGDIR}/httpd.conf.default ${PKG_SYSCONFDIR}/httpd.conf
CONF_FILES+= ${EGDIR}/magic.default ${PKG_SYSCONFDIR}/magic
CONF_FILES+= ${EGDIR}/mime.types.default ${PKG_SYSCONFDIR}/mime.types
RCD_SCRIPTS= apache
REQD_DIRS= ${PREFIX}/share/httpd
REQD_DIRS+= ${PREFIX}/share/httpd/htdocs
REQD_DIRS+= ${PREFIX}/lib/httpd
OWN_DIRS+= ${VARBASE}/httpd
OWN_DIRS+= ${VARBASE}/log/httpd
OWN_DIRS_PERMS+= ${VARBASE}/httpd/proxy ${APACHE_USER} ${APACHE_GROUP} 0755
#
# Fix paths in the apache manpages.
#
SUBST_CLASSES+= man
SUBST_STAGE.man= post-patch
SUBST_FILES.man= src/support/*.1 src/support/*.8
SUBST_SED.man= -e 's,/usr/local/apache/conf,${PKG_SYSCONFDIR},'
SUBST_SED.man+= -e 's,/usr/local/etc/apache,${PKG_SYSCONFDIR},'
SUBST_SED.man+= -e 's,/path/to/apache/etc,${PKG_SYSCONFDIR},'
SUBST_SED.man+= -e 's,/usr/local/apache/logs,${VARBASE}/log/httpd,'
SUBST_SED.man+= -e 's,/usr/local/apache,${PREFIX}/share/httpd/htdocs,'
SUBST_SED.man+= -e 's,/usr/web,${PREFIX}/share/httpd/htdocs,'
SUBST_CLASSES+= paths
SUBST_FILES.paths= config.layout
SUBST_SED.paths+= -e 's,@PREFIX@,${PREFIX},g'
SUBST_SED.paths+= -e 's,@PKG_SYSCONFDIR@,${PKG_SYSCONFDIR},g'
SUBST_SED.paths+= -e 's,@VARBASE@,${VARBASE},g'
SUBST_STAGE.paths= post-patch
PKG_GROUPS= ${APACHE_GROUP}
PKG_USERS= ${APACHE_USER}:${APACHE_GROUP}
MAKE_ENV+= CHMOD=${CHMOD:Q} CHOWN=${CHOWN:Q} XARGS=${XARGS:Q}
MAKE_ENV+= FIND=${FIND:Q} CHGRP=${CHGRP:Q}
.include "../../devel/libmm/buildlink3.mk"
.include "../../textproc/expat/buildlink3.mk"
.include "../../mk/bdb.buildlink3.mk"
.include "../../mk/dlopen.buildlink3.mk"
post-extract:
${CP} ${FILESDIR}/ap_include_extern.h ${WRKSRC}/src/include
${CP} ${MODSSL_SRC}/pkg.addon/*.c ${WRKSRC}/src/modules/extra
${CP} ${MODSSL_SRC}/pkg.addon/*.html ${WRKSRC}/htdocs/manual/mod
${CP} ${MODSSL_SRC}/pkg.eapi/*.c ${WRKSRC}/src/ap
${CP} ${MODSSL_SRC}/pkg.eapi/*.h ${WRKSRC}/src/include
${CP} ${FILESDIR}/config.layout ${WRKSRC}
pre-patch:
cd ${WRKSRC} && ${CAT} \
${MODSSL_SRC}/pkg.addon/addon.patch \
${MODSSL_SRC}/pkg.eapi/eapi.patch \
${MODSSL_SRC}/pkg.sslcfg/sslcfg.patch \
${MODSSL_SRC}/pkg.sslmod/sslmod.patch \
${MODSSL_SRC}/pkg.sslsup/sslsup.patch \
| ${PATCH} ${PATCH_ARGS}
cd ${WRKSRC} && ${TAIL} +160 \
${MODSSL_SRC}/pkg.ssldoc/ssldoc.patch \
| ${PATCH} ${PATCH_ARGS}
${FIND} ${WRKSRC} -name '*.orig' -print | ${XARGS} ${RM} -f
post-patch:
cd ${WRKSRC}/src/support; \
${SED} -e "s|@INSTALL@|"`${TYPE} ${INSTALL} | ${AWK} '{ print $$NF }'`" -c -o ${LIBOWN} -g ${LIBGRP}|" \
apxs.pl > apxs.pl.sed; \
${MV} apxs.pl.sed apxs.pl
pre-install:
${FIND} ${WRKSRC}/htdocs -name '*.orig' -print | ${XARGS} ${RM} -f
post-install:
.if !defined(NOPIC)
cd ${PREFIX}/lib/httpd; ${MV} libproxy.so mod_proxy.so
.endif
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/httpd
for file in httpd.conf magic mime.types; do \
${INSTALL_DATA} ${PKG_SYSCONFDIR}/$${file}.default \
${PREFIX}/share/examples/httpd; \
${RM} -f ${PKG_SYSCONFDIR}/$${file}.default; \
done
${INSTALL_DATA} ${DISTDIR}/sitedrivenby.gif ${PREFIX}/share/httpd/htdocs
${CHMOD} ${NONBINMODE} ${PREFIX}/libexec/cgi-bin/printenv \
${PREFIX}/libexec/cgi-bin/test-cgi
.include "../../mk/bsd.pkg.mk"