# Copyright 2016 Julian Ospald # 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}" }