* SECURITY: [CAN-2002-0661] Close a very significant security hole that applies only to the Win32, OS2 and Netware platforms. Unix was not affected, Cygwin may be affected. Certain URIs will bypass security and allow users to invoke or access any file depending on the system configuration. Without upgrading, a single .conf change will close the vulnerability. Add the following directive in the global server httpd.conf context before any other Alias or Redirect directives; RedirectMatch 400 "\\\.\." Reported by Auriemma Luigi <bugtest@sitoverde.com>. [Brad Nicholes] * SECURITY: Close a path-revealing exposure in multiview type map negotiation (such as the default error documents) where the module would report the full path of the typemapped .var file when multiple documents or no documents could be served based on the mime negotiation. Reported by Auriemma Luigi <bugtest@sitoverde.com>. [CAN-2002-0654] [William Rowe] * SECURITY: Close a path-revealing exposure in cgi/cgid when we fail to invoke a script. The modules would report "couldn't create child process /path-to-script/script.pl" revealing the full path of the script. Reported by Jim Race <jrace@qualys.com>. [CAN-2002-0654] [Bill Stoddard] * More bug fixes (see the CHANGES file)
161 lines
5.1 KiB
Makefile
161 lines
5.1 KiB
Makefile
# $NetBSD: Makefile,v 1.12 2002/08/29 14:12:27 martti Exp $
|
|
|
|
DISTNAME= httpd-${APACHE_VERSION}
|
|
PKGNAME= apache-${APACHE_VERSION}
|
|
APACHE_VERSION= 2.0.40
|
|
CATEGORIES= www
|
|
MASTER_SITES= http://httpd.apache.org/dist/httpd/ \
|
|
http://httpd.apache.org/dist/httpd/old/ \
|
|
ftp://ftp.fu-berlin.de/unix/network/www/apache/httpd/ \
|
|
http://www.netbsd.org/images/logos/
|
|
|
|
MAINTAINER= jlam@netbsd.org
|
|
HOMEPAGE= http://httpd.apache.org/
|
|
COMMENT= Apache HTTP (Web) server, version 2
|
|
|
|
CONFLICTS= apache-*ssl-[0-9]* apache-[0-9]* apache6-[0-9]*
|
|
CONFLICTS+= ap-*-[0-9]* # Apache-1.x DSOs
|
|
|
|
BUILD_DEFS+= USE_INET6
|
|
|
|
USE_BUILDLINK2= YES
|
|
USE_GMAKE= YES
|
|
|
|
USE_LIBTOOL= YES
|
|
LIBTOOL_OVERRIDE= ${WRKSRC}/shlibtool
|
|
LIBTOOL_OVERRIDE+= ${WRKSRC}/srclib/apr/libtool
|
|
|
|
GNU_CONFIGURE= YES
|
|
CONFIGURE_ARGS+= --enable-layout=NetBSD
|
|
CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
|
|
CONFIGURE_ARGS+= --with-port=80
|
|
|
|
# Apache Portable Runtime library configure options
|
|
CONFIGURE_ARGS+= --with-mpm=prefork --with-devrandom=/dev/urandom
|
|
|
|
# Apache Portable Runtime Utility library configure options
|
|
CONFIGURE_ARGS+= --with-dbm=sdbm
|
|
CONFIGURE_ARGS+= --with-expat=${BUILDLINK_PREFIX.expat}
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
DFLT_APACHE_MODULES= all
|
|
DFLT_APACHE_MODULES+= proxy proxy_connect proxy_ftp proxy_http
|
|
DFLT_APACHE_MODULES+= ssl
|
|
APACHE_MODULES?= ${DFLT_APACHE_MODULES}
|
|
CONFIGURE_ARGS+= --enable-modules="${APACHE_MODULES}"
|
|
CONFIGURE_ARGS+= --enable-so
|
|
BUILD_DEFS+= APACHE_MODULES
|
|
|
|
APACHE_USER?= www
|
|
APACHE_GROUP?= www
|
|
|
|
SUEXEC_COMMENT?= "@comment "
|
|
.if defined(APACHE_SUEXEC) && ${APACHE_SUEXEC} == YES
|
|
APACHE_SUEXEC_DOCROOT?= ${PREFIX}/share/apache/htdocs
|
|
APACHE_SUEXEC_PATH= /bin:/usr/bin:${PREFIX}/bin:/usr/local/bin
|
|
APACHE_SUEXEC_CONFIGURE_ARGS+= \
|
|
--with-suexec-bin=${PREFIX}/sbin/suexec \
|
|
--with-suexec-caller=${APACHE_SUEXEC_USER} \
|
|
--with-suexec-safepath='${APACHE_SUEXEC_PATH}' \
|
|
--with-suexec-docroot=${APACHE_SUEXEC_DOCROOT}
|
|
APACHE_MODULES+= suexec
|
|
CONFIGURE_ARGS+= ${APACHE_SUEXEC_CONFIGURE_ARGS:M--with-suexec-*}
|
|
BUILD_DEFS+= APACHE_SUEXEC APACHE_SUEXEC_CONFIGURE_ARGS
|
|
SUEXEC_COMMENT= # empty
|
|
|
|
.endif
|
|
|
|
PKG_GROUPS= ${APACHE_GROUP}
|
|
PKG_USERS= ${APACHE_USER}:${APACHE_GROUP}::Apache\\ user
|
|
|
|
PLIST_SUBST+= SUEXEC_COMMENT=${SUEXEC_COMMENT}
|
|
|
|
PKG_SYSCONFVAR= apache
|
|
PKG_SYSCONFSUBDIR?= httpd
|
|
EGDIR= ${PREFIX}/share/examples/httpd
|
|
SBINDIR= ${PREFIX}/sbin
|
|
CONF_FILES= ${EGDIR}/httpd-std.conf ${PKG_SYSCONFDIR}/httpd.conf
|
|
CONF_FILES+= ${EGDIR}/ssl-std.conf ${PKG_SYSCONFDIR}/ssl.conf
|
|
SUPPORT_FILES= ${SBINDIR}/envvars-std ${SBINDIR}/envvars
|
|
SUPPORT_FILES+= ${EGDIR}/magic ${PKG_SYSCONFDIR}/magic
|
|
SUPPORT_FILES+= ${EGDIR}/mime.types ${PKG_SYSCONFDIR}/mime.types
|
|
RCD_SCRIPTS= apache
|
|
|
|
MAKE_DIRS= ${PREFIX}/share/httpd
|
|
MAKE_DIRS+= ${PREFIX}/share/httpd/htdocs
|
|
OWN_DIRS= /var/log/httpd
|
|
OWN_DIRS+= /var/db/httpd
|
|
OWN_DIRS_PERMS+= /var/db/httpd/proxy ${APACHE_USER} ${APACHE_GROUP} 0755
|
|
|
|
# Add dependencies for the modules that will be built. For each module
|
|
# ap_mod listed in ${APACHE_MODULES}, _AP_DEPENDS.ap_mod is a whitespace
|
|
# separated list of dependencies or buildlink2.mk files needed to build
|
|
# ap_mod, and _AP_CFG_ARGS.ap_mod is a whitespace separated list of
|
|
# configure script options for ap_mod.
|
|
#
|
|
_AP_DEPENDS.ssl= ../../security/openssl/buildlink2.mk
|
|
_AP_DEPENDS.deflate= ../../devel/zlib/buildlink2.mk
|
|
|
|
_AP_CFG_ARGS.ssl= --with-ssl=${BUILDLINK_PREFIX.openssl}
|
|
_AP_CFG_ARGS.deflate= --with-z=${BUILDLINK_PREFIX.zlib}
|
|
|
|
.for _ap_mod in ${APACHE_MODULES}
|
|
. if defined(_AP_DEPENDS.${_ap_mod}) && !empty(_AP_DEPENDS.${_ap_mod})
|
|
. for _ap_depend in ${_AP_DEPENDS.${_ap_mod}}
|
|
. if exists(${_ap_depend})
|
|
. include "${_ap_depend}"
|
|
. else
|
|
DEPENDS+= ${_ap_depend}
|
|
. endif
|
|
. endfor
|
|
. endif
|
|
. if defined(_AP_CFG_ARGS.${_ap_mod}) && !empty(_AP_CFG_ARGS.${_ap_mod})
|
|
CONFIGURE_ARGS+= ${_AP_CFG_ARGS.${_ap_mod}}
|
|
. endif
|
|
.endfor
|
|
|
|
post-build:
|
|
@${SED} ${FILES_SUBST_SED} ${FILESDIR}/apache.sh > ${WRKDIR}/apache.sh
|
|
|
|
AP_CONF_FILE_SED= -e "s|${EGDIR}|${PKG_SYSCONFDIR}|g"
|
|
AP_CONF_FILE_SED+= -e "s|${PREFIX}/htdocs|${PREFIX}/share/httpd/htdocs|g"
|
|
AP_CONF_FILE_SED+= -e "s|${PREFIX}/conf|${PKG_SYSCONFDIR}|g"
|
|
AP_CONF_FILE_SED+= -e "s|logs/|/var/log/httpd/|g"
|
|
AP_CONF_FILE_SED+= -e "s|/var/log/httpd/foo\.log|logs/foo.log/|g"
|
|
AP_CONF_FILE_SED+= -e "s|^\(User[ ]\).*|\1${APACHE_USER}|g"
|
|
AP_CONF_FILE_SED+= -e "s|^\(Group[ ]\).*|\1${APACHE_GROUP}|g"
|
|
|
|
post-install:
|
|
@cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} \
|
|
${MAKE_PROGRAM} install-conf sysconfdir="${EGDIR}"
|
|
@cd ${EGDIR}; \
|
|
for file in \
|
|
highperformance-std.conf \
|
|
httpd-std.conf \
|
|
ssl-std.conf; \
|
|
do \
|
|
${CAT} $${file} \
|
|
| ${SED} ${AP_CONF_FILE_SED} \
|
|
| ${AWK} ' \
|
|
/^Listen[ ]*80/ { \
|
|
print; \
|
|
printf "%s", "Listen 0.0.0.0:80\n"; \
|
|
next; \
|
|
} \
|
|
/^Listen[ ]*443/ { \
|
|
print; \
|
|
printf "%s", "Listen 0.0.0.0:443\n"; \
|
|
next; \
|
|
} \
|
|
{ print; } \
|
|
' >> $${file}.new; \
|
|
${MV} -f $${file}.new $${file}; \
|
|
done
|
|
${INSTALL_SCRIPT} ${WRKDIR}/apache.sh ${PREFIX}/etc/rc.d/apache
|
|
|
|
.include "../../lang/perl5/buildlink2.mk"
|
|
.include "../../textproc/expat/buildlink2.mk"
|
|
|
|
.include "../../mk/bsd.pkg.install.mk"
|
|
.include "../../mk/bsd.pkg.mk"
|