# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=5 CMAKE_MIN_VERSION="2.8.2" inherit cmake-utils eutils systemd user DESCRIPTION="Advanced and secure webserver" HOMEPAGE="http://www.hiawatha-webserver.org" SRC_URI="http://www.hiawatha-webserver.org/files/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="+cache ipv6 monitor +rewrite +rproxy +ssl tomahawk +xslt" RDEPEND=" sys-libs/zlib ssl? ( >=net-libs/mbedtls-2.0[threads] ) xslt? ( dev-libs/libxslt dev-libs/libxml2 )" DEPEND="${RDEPEND}" PDEPEND="monitor? ( www-apps/hiawatha-monitor )" # set these in the environment of your PM if you want to use different values HIAWATHA_CONFIG_DIR="${HIAWATHA_CONFIG_DIR:-/etc/hiawatha}" HIAWATHA_LOG_DIR="${HIAWATHA_LOG_DIR:-/var/log/hiawatha}" HIAWATHA_PID_DIR="${HIAWATHA_PID_DIR:-/var/run}" HIAWATHA_WEBROOT_DIR="${HIAWATHA_WEBROOT_DIR:-/var/www/hiawatha}" HIAWATHA_WORK_DIR="${HIAWATHA_WORK_DIR:-/var/lib/hiawatha}" HIAWATHA_USER="${HIAWATHA_USER:-hiawatha}" HIAWATHA_GROUP="${HIAWATHA_GROUP:-hiawatha}" safe_sed() { local replace_of=$1 local replace_with=$2 local file=$3 # optional local outfile=$4 grep -E "${replace_of}" "${file}" 1>/dev/null \ || die "\"${replace_of}\" not found in ${file}!" if [[ -n ${outfile} ]] ; then einfo "Sedding ${file} into ${outfile}" sed -r \ -e "s|${replace_of}|${replace_with}|" \ "${file}" > ${outfile} || die "sed on ${file} to ${outfile} failed!" else einfo "Sedding ${file} in-place" sed -r -i \ -e "s|${replace_of}|${replace_with}|" \ "${file}" || die "sed on ${file} failed!" fi } pkg_pretend() { einfo einfo "You can change hiawatha user and group, as well as the" einfo "directories the webserver is going to use. For that," einfo "set the following environment variables in your PM:" einfo " HIAWATHA_CONFIG_DIR" einfo " default: /etc/hiawatha" einfo " current: ${HIAWATHA_CONFIG_DIR}" einfo " HIAWATHA_LOG_DIR" einfo " default: /var/log/hiawatha" einfo " current: ${HIAWATHA_LOG_DIR}" einfo " HIAWATHA_PID_DIR" einfo " default: /var/run" einfo " current: ${HIAWATHA_PID_DIR}" einfo " HIAWATHA_WEBROOT_DIR" einfo " default: /var/www/hiawatha" einfo " current: ${HIAWATHA_WEBROOT_DIR}" einfo " HIAWATHA_WORK_DIR" einfo " default: /var/lib/hiawatha" einfo " current: ${HIAWATHA_WORK_DIR}" einfo " HIAWATHA_USER" einfo " default: hiawatha" einfo " current: ${HIAWATHA_USER}" einfo " HIAWATHA_GROUP" einfo " default: hiawatha" einfo " current: ${HIAWATHA_GROUP}" einfo } pkg_setup() { enewgroup ${HIAWATHA_GROUP} enewuser ${HIAWATHA_USER} -1 -1 "${HIAWATHA_WEBROOT_DIR}" ${HIAWATHA_GROUP} } src_prepare() { epatch "${FILESDIR}"/${PN}-9.5-cflags.patch safe_sed "^#ServerId =.*$" "ServerId = ${HIAWATHA_USER}" \ config/hiawatha.conf.in safe_sed "@HIAWATHA_PID_DIR@" "${HIAWATHA_PID_DIR}" \ "${FILESDIR}/hiawatha.initd-r1" \ "${T}/hiawatha.initd-r1" } src_configure() { local mycmakeargs=( -DCONFIG_DIR:STRING="${HIAWATHA_CONFIG_DIR}" -DENABLE_CACHE=$(usex cache) -DENABLE_IPV6=$(usex ipv6) -DENABLE_LOADCHECK=$(usex kernel_linux) -DENABLE_MONITOR=$(usex monitor) -DENABLE_RPROXY=$(usex rproxy) -DENABLE_TLS=$(usex ssl) -DENABLE_TOMAHAWK=$(usex tomahawk) -DENABLE_TOOLKIT=$(usex rewrite) -DENABLE_XSLT=$(usex xslt) -DLOG_DIR:STRING="${HIAWATHA_LOG_DIR}" -DPID_DIR:STRING="${HIAWATHA_PID_DIR}" -DUSE_SYSTEM_MBEDTLS=$(usex ssl) -DWEBROOT_DIR:STRING="${HIAWATHA_WEBROOT_DIR}" -DWORK_DIR:STRING="${HIAWATHA_WORK_DIR}" ) cmake-utils_src_configure } src_install() { cmake-utils_src_install rm -r "${ED%/}${HIAWATHA_WEBROOT_DIR}"/* || die newinitd "${T}"/hiawatha.initd-r1 hiawatha systemd_dounit "${FILESDIR}"/hiawatha.service local i for i in "${HIAWATHA_LOG_DIR}" "${HIAWATHA_WORK_DIR}" ; do keepdir "${i}" fowners ${HIAWATHA_USER}:${HIAWATHA_GROUP} "${i}" fperms 0750 "${i}" done keepdir "${HIAWATHA_WEBROOT_DIR}" fowners ${HIAWATHA_USER}:${HIAWATHA_GROUP} "${HIAWATHA_WEBROOT_DIR}" }