void-packages/srcpkgs/apache/template

159 lines
5.7 KiB
Bash

# Template file for 'apache'
pkgname=apache
version=2.4.54
revision=1
wrksrc="httpd-${version}"
build_style=gnu-configure
configure_args="--prefix= --sbindir=/usr/bin --enable-pie --enable-modules=all
--enable-mods-shared=all --enable-authn-dbm --enable-authn-anon
--enable-authn-dbd --enable-authn-alias --enable-authz-dbm --enable-http2
--enable-authz-owner --enable-authnz-ldap --enable-auth-digest -enable-isapi
--enable-file-cache --enable-cache --enable-disk-cache --enable-mem-cache
--enable-dbd --enable-bucketeer --enable-dumpio --enable-echo --enable-reqtimeout
--enable-ext-filter --enable-substitute --enable-deflate --enable-charset-lite
--enable-ldap --enable-log-forensic --enable-logio --enable-mime-magic
--enable-cern-meta --enable-expires --enable-headers --enable-ident
--enable-usertrack --enable-unique-id --enable-proxy --enable-proxy-connect
--enable-proxy-ftp --enable-proxy-http --enable-proxy-scgi --enable-proxy-ajp
--enable-proxy-balancer --enable-ssl --enable-http --enable-speling
--enable-dav --enable-info --enable-cgi --enable-cgid --enable-dav-fs
--enable-dav-lock --enable-vhost-alias --enable-imagemap --enable-so
--enable-rewrite --enable-layout=XBPS --sysconfdir=/etc/${pkgname}
--enable-mpms-shared=all --with-z=${XBPS_CROSS_BASE}/usr"
conf_files="
/etc/${pkgname}/extra/*.conf
/etc/${pkgname}/httpd.conf
/etc/${pkgname}/magic
/etc/${pkgname}/mime.types"
hostmakedepends="pkg-config perl apr-util-devel"
makedepends="zlib-devel libuuid-devel pcre2-devel nghttp2-devel
openssl-devel db-devel gdbm-devel expat-devel libldap-devel apr-util-devel"
depends="apache-htpasswd"
short_desc="Apache http server"
maintainer="ologantr <mrphyber@protonmail.com>"
license="Apache-2.0"
homepage="https://httpd.apache.org/"
changelog="https://www.apache.org/dist/httpd/CHANGES_2.4"
distfiles="https://dlcdn.apache.org/httpd/httpd-${version}.tar.bz2"
checksum=eb397feeefccaf254f8d45de3768d9d68e8e73851c49afd5b7176d1ecf80c340
system_accounts="_apache"
_apache_homedir="/srv/www/$pkgname"
make_dirs="
/srv/www/apache 0755 _apache _apache
/var/log/httpd 0755 _apache _apache"
# Do not redefine struct iovec in include/apr_want.h
CFLAGS="-DAPR_IOVEC_DEFINED=1 -I${XBPS_CROSS_BASE}/usr/include/apr-1"
if [ "$CROSS_BUILD" ]; then
# FIXME: is sizeof(void*) ever less than sizeof(long)?
export ap_cv_void_ptr_lt_long=no
# This is missing in cross compiled apr-1-config (?)
LDFLAGS="-pthread"
fi
pre_configure() {
# set default user
sed -e 's#User daemon#User _apache#' \
-e 's#Group daemon#Group _apache#' \
-i docs/conf/httpd.conf.in
cat ${FILESDIR}/xbps.layout >> config.layout
if [ "$CROSS_BUILD" ]; then
# pcre{,2}-config detection doesn't work on cross
# since httpd-2.4.53, manually export PCRE_CONFIG
# to let configure know where it is
export PCRE_CONFIG="${XBPS_CROSS_BASE}/usr/bin/pcre2-config"
configure_args+=" --with-apr=$XBPS_WRAPPERDIR/apr-1-config
--with-apr-util=$XBPS_WRAPPERDIR/apu-1-config"
else
configure_args+=" --with-apr=/usr/bin/apr-1-config
--with-apr-util=/usr/bin/apu-1-config"
fi
}
post_configure() {
if [ "$CROSS_BUILD" ]; then
# Build gen_test_char using $BUILD_CC
sed -i server/Makefile \
-e "s;\$(LINK) \$(EXTRA_LDFLAGS) \$(\(gen_test_char\).*;${BUILD_CC} -o \1 \1.c -I${XBPS_CROSS_BASE}/usr/include/apr-1;"
# More hacks to make cross compiling work
sed -i build/*.mk Makefile */Makefile \
-e "s;--mode=compile;& --tag=CC;" \
-e "s;--mode=link;& --tag=CC;" \
-e "s;-\(L|R\)/usr/lib;-\1${XBPS_CROSS_BASE}/usr/lib;" \
-e "s;^\(LIBTOOL =\) /usr/share/apr-1/build/libtool;\1 ${XBPS_CROSS_BASE}/usr/bin/libtool;"
fi
}
post_install() {
# Set a working ServerRoot
#
# Load modules:
# * mod_include.so
# * mod_slotmem_shm.so
# * mod_negotiation.so
# * mod_userdir.so
#
# Avoid loading modules:
# * mod_unique_id.so
#
# Set and enable ServerName to 127.0.0.1.
#
# include extras:
# * httpd-multilang-errordoc.conf
# * httpd-autoindex.conf
# * httpd-languages.conf
# * httpd-userdir.conf
# * httpd-default.conf
#
sed \
-e 's|ServerRoot ""|ServerRoot "/srv/www/apache"|' \
-e 's|#\(LoadModule include_module /usr/libexec/httpd/mod_include.so\)|\1|' \
-e 's|\(LoadModule unique_id_module /usr/libexec/httpd/mod_unique_id.so\)|#\1|' \
-e 's|#\(LoadModule slotmem_shm_module /usr/libexec/httpd/mod_slotmem_shm.so\)|\1|' \
-e 's|#\(LoadModule negotiation_module /usr/libexec/httpd/mod_negotiation.so\)|\1|' \
-e 's|#\(LoadModule userdir_module /usr/libexec/httpd/mod_userdir.so\)|\1|' \
-e 's|#ServerName www.example.com:80|ServerName 127.0.0.1:80|' \
-e 's|#\(Include /etc/apache/extra/httpd-multilang-errordoc.conf\)|\1|' \
-e 's|#\(Include /etc/apache/extra/httpd-autoindex.conf\)|\1|' \
-e 's|#\(Include /etc/apache/extra/httpd-languages.conf\)|\1|' \
-e 's|#\(Include /etc/apache/extra/httpd-userdir.conf\)|\1|' \
-e 's|#\(Include /etc/apache/extra/httpd-default.conf\)|\1|' \
-i "${DESTDIR}/etc/apache/httpd.conf"
# Remove references to hardening -specs.
sed -e "s|\(-specs=.*hardened-ld\)||g" -e "s|\(-specs=.*hardened-cc1\)||g" -i \
${DESTDIR}/usr/share/apache/webroot/build/config{.nice,_vars.mk}
# Remove unused stuff.
vmkdir usr/share/apache/webroot
mv ${DESTDIR}/srv/www/$pkgname/cgi-bin ${DESTDIR}/usr/share/apache/webroot
rm -rf ${DESTDIR}/srv
rm -rf ${DESTDIR}/etc/$pkgname/original
vinstall ${FILESDIR}/apache.logrotate 644 etc/logrotate.d apache
vsv apache
}
apache-htpasswd_package() {
short_desc+=" - htpasswd"
pkg_install() {
vmove usr/bin/htpasswd
vmove usr/share/man/man1/htpasswd.1
}
}
apache-devel_package() {
depends="apr-devel apr-util-devel perl"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
vmove usr/share/apache/webroot/build
vmove usr/bin/apxs
vmove "usr/share/man/man1/apxs*"
}
}