124 lines
3.6 KiB
Bash
124 lines
3.6 KiB
Bash
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
require cmake [ api=2 ] openrc-service [ openrc_initd_files=[ "${TEMP}/hiawatha" ] ]
|
|
require systemd-service [ systemd_files=[ "${CMAKE_SOURCE}/extra/debian/hiawatha.service" ] ]
|
|
|
|
SUMMARY="Advanced and secure webserver"
|
|
HOMEPAGE="http://www.hiawatha-webserver.org"
|
|
DOWNLOADS="http://www.hiawatha-webserver.org/files/${PNV}.tar.gz"
|
|
|
|
LICENCES="GPL-2"
|
|
SLOT="0"
|
|
PLATFORMS="~amd64 ~x86"
|
|
MYOPTIONS="
|
|
cache [[ description = [ Enable caching of content ] ]]
|
|
ipv6
|
|
monitor [[ description = [ Enabling monitoring support ] ]]
|
|
rewrite [[ description = [ Enable the rewrite toolkit ] ]]
|
|
rproxy [[ description = [ Enable reverse proxy support ] ]]
|
|
ssl [[ description = [ Enable TLS support via mbedtls ] ]]
|
|
tomahawk [[ description = [ Enable Tomahawk control server ] ]]
|
|
v2 [[ description = [ HTTP v2 support ] ]]
|
|
xslt [[ description = [ Enable XSLT support.
|
|
This is also needed for directory listings ] ]]
|
|
"
|
|
|
|
DEPENDENCIES="
|
|
build+run:
|
|
sys-libs/zlib
|
|
ssl? ( dev-libs/mbedtls[threads] )
|
|
xslt? (
|
|
dev-libs/libxslt
|
|
dev-libs/libxml2:2.0
|
|
)
|
|
run:
|
|
group/hiawatha
|
|
user/hiawatha
|
|
monitor? ( www-apps/hiawatha-monitor )
|
|
"
|
|
|
|
HIAWATHA_CONFIG_DIR="/etc/hiawatha"
|
|
HIAWATHA_LOG_DIR="/var/log/hiawatha"
|
|
HIAWATHA_PID_DIR="/run"
|
|
HIAWATHA_WEBROOT_DIR="/var/www/hiawatha"
|
|
HIAWATHA_WORK_DIR="/var/lib/hiawatha"
|
|
HIAWATHA_USER="hiawatha"
|
|
HIAWATHA_GROUP="hiawatha"
|
|
|
|
DEFAULT_SRC_PREPARE_PATCHES=( "${FILES}"/${PNV}-cflags.patch )
|
|
|
|
CMAKE_SRC_CONFIGURE_PARAMS=(
|
|
-DCONFIG_DIR:STRING="${HIAWATHA_CONFIG_DIR}"
|
|
-DLOG_DIR:STRING="${HIAWATHA_LOG_DIR}"
|
|
-DPID_DIR:STRING="${HIAWATHA_PID_DIR}"
|
|
-DWEBROOT_DIR:STRING="${HIAWATHA_WEBROOT_DIR}"
|
|
-DWORK_DIR:STRING="${HIAWATHA_WORK_DIR}"
|
|
-DENABLE_LOADCHECK=YES
|
|
-DCMAKE_INSTALL_SBINDIR="/usr/$(exhost --target)/bin"
|
|
)
|
|
|
|
CMAKE_SRC_CONFIGURE_TESTS=(
|
|
'cache ENABLE_CACHE'
|
|
'ipv6 ENABLE_IPV6'
|
|
'monitor ENABLE_MONITOR'
|
|
'rprocy ENABLE_RPROXY'
|
|
'ssl ENABLE_TLS'
|
|
'tomahawk ENABLE_TOMAHAWK'
|
|
'rewrite ENABLE_TOOLKIT'
|
|
'xslt ENABLE_XSLT'
|
|
'ssl USE_SYSTEM_MBEDTLS'
|
|
)
|
|
|
|
hiawatha_option() {
|
|
local hoption=$2
|
|
|
|
if optionq "${1}" ; then
|
|
edo sed -i \
|
|
-e "/#define ${hoption}/s|/\* \(.*\) \*/|\1|" \
|
|
"${CMAKE_SOURCE}"/config.h.in
|
|
else
|
|
edo sed -i \
|
|
-e "/#define ${hoption}/d" \
|
|
"${CMAKE_SOURCE}"/config.h.in
|
|
fi
|
|
}
|
|
|
|
src_prepare() {
|
|
hiawatha_option v2 ENABLE_HTTP2
|
|
|
|
cmake_src_prepare
|
|
|
|
edo grep -E "^#ServerId =.*$" "config/hiawatha.conf.in" 1>/dev/null
|
|
edo sed -r -i -e "s|^#ServerId =.*$|ServerId = hiawatha|" \
|
|
config/hiawatha.conf.in
|
|
|
|
edo grep -E "@HIAWATHA_PID_DIR@" "${FILES}/hiawatha.initd" 1>/dev/null
|
|
edo sed -r -e "s|@HIAWATHA_PID_DIR@|${HIAWATHA_PID_DIR}|" \
|
|
"${FILES}/hiawatha.initd" > "${TEMP}/hiawatha"
|
|
}
|
|
|
|
src_install() {
|
|
cmake_src_install
|
|
|
|
edo rm -r "${IMAGE%/}${HIAWATHA_WEBROOT_DIR}"/*
|
|
|
|
install_systemd_files
|
|
install_openrc_files
|
|
|
|
local i
|
|
for i in "${HIAWATHA_LOG_DIR}" "${HIAWATHA_WORK_DIR}" ; do
|
|
keepdir "${i}"
|
|
edo chown ${HIAWATHA_USER}:${HIAWATHA_GROUP} "${IMAGE%/}${i}"
|
|
edo chmod 0750 "${IMAGE%/}${i}"
|
|
done
|
|
|
|
# hiawatha creates empty /run dir
|
|
edo rm -r "${IMAGE%/}/run"
|
|
|
|
keepdir "${HIAWATHA_WEBROOT_DIR}"
|
|
edo chown ${HIAWATHA_USER}:${HIAWATHA_GROUP} \
|
|
"${IMAGE%/}${HIAWATHA_WEBROOT_DIR}"
|
|
}
|
|
|