You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
4.0 KiB
146 lines
4.0 KiB
# 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}"
|
|
}
|