1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit flag-o-matic multilib toolchain-funcs
DESCRIPTION="A small, fast, and scalable web server"
HOMEPAGE="http://www.monkey-project.com/"
MY_P="${PN/d}-${PV}"
if [[ ${PV} == *9999* ]] ; then
EGIT_REPO_URI="https://github.com/monkey/monkey.git"
inherit git-r3
else
SRC_URI="http://monkey-project.com/releases/${PV:0:3}/${MY_P}.tar.gz"
KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~x86"
fi
LICENSE="GPL-2"
SLOT="0"
# jemalloc is also off until we figure out how to work CMakeLists.txt magic.
#IUSE="cgi debug fastcgi jemalloc php static-plugins ${PLUGINS}"
PLUGINS="monkeyd_plugins_auth monkeyd_plugins_cheetah monkeyd_plugins_dirlisting +monkeyd_plugins_liana monkeyd_plugins_logger monkeyd_plugins_mandril monkeyd_plugins_tls"
IUSE="cgi debug fastcgi php static-plugins ${PLUGINS}"
REQUIRED_USE="
monkeyd_plugins_tls? ( !static-plugins )
cgi? ( php )"
#DEPEND="jemalloc? ( >=dev-libs/jemalloc-3.3.1 )"
DEPEND="
dev-util/cmake
monkeyd_plugins_tls? ( net-libs/mbedtls:= )"
RDEPEND="
acct-group/monkeyd
acct-user/monkeyd
php? ( dev-lang/php )
cgi? ( dev-lang/php[cgi] )"
S="${WORKDIR}/${MY_P}"
WEBROOT="/var/www/localhost"
pkg_setup() {
if use debug; then
ewarn
ewarn "\033[1;33m**************************************************\033[00m"
ewarn "Do not use debug in production!"
ewarn "\033[1;33m**************************************************\033[00m"
ewarn
fi
}
src_prepare() {
# Unconditionally get rid of the bundled jemalloc
rm -rf "${S}"/deps
eapply "${FILESDIR}"/${PN}-1.6.9-fix-pidfile.patch
eapply "${FILESDIR}"/${PN}-1.6.8-system-mbedtls.patch
eapply_user
}
src_configure() {
append-cflags -fcommon
local myconf=""
use elibc_musl && myconf+=" --musl-mode"
#use jemalloc || myconf+=" --malloc-libc"
myconf+=" --malloc-libc"
if use debug; then
myconf+=" --debug --trace"
else
myconf+=" --no-backtrace"
fi
local enable_plugins=""
local disable_plugins=""
# We use 'cgi' and 'fastcgi' because they are global flags
# instead of the corresponding monkeyd_plugins_*
use cgi && enable_plugins+="cgi," || disable_plugins+="cgi,"
use fastcgi && enable_plugins+="fastcgi," || disable_plugins+="fastcgi,"
# For the rest, we scan the monkeyd_plugins_* and parse out the plugin name.
local p
for p in ${PLUGINS}; do
pp=${p/+/}
cp=${pp/monkeyd_plugins_/}
use $pp && enable_plugins+="${cp}," || disable_plugins+="${cp},"
done
myconf+=" --enable-plugins=${enable_plugins%,} --disable-plugins=${disable_plugins%,}"
if use static-plugins; then
myconf+=" --static-plugins=${enable_plugins%,}"
fi
# Non-autotools configure
./configure \
--pthread-tls \
--prefix=/usr \
--default-user=monkeyd \
--sbindir=/usr/sbin \
--webroot=${WEBROOT}/htdocs \
--logdir=/var/log/monkeyd \
--mandir=/usr/share/man \
--libdir=/usr/$(get_libdir) \
--sysconfdir=/etc/monkeyd \
${myconf} \
|| die
}
src_compile() {
emake VERBOSE=1
}
src_install() {
default
newinitd "${FILESDIR}"/monkeyd.initd-r1 monkeyd
newconfd "${FILESDIR}"/monkeyd.confd monkeyd
# Move htdocs to docdir, bug #429632
docompress -x /usr/share/doc/"${PF}"/htdocs.dist
mv "${D}"${WEBROOT}/htdocs \
"${D}"/usr/share/doc/"${PF}"/htdocs.dist || die
keepdir /var/log/monkeyd ${WEBROOT}/htdocs
# This needs to be created at runtime
rm -rf "${D}"/run
}
pkg_postinst() {
chown monkeyd:monkeyd /var/log/monkeyd
chmod 770 /var/log/monkeyd
}
|