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
137
138
139
140
141
142
143
144
145
146
147
|
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
inherit toolchain-funcs depend.php multilib
MY_P="${PN/d}-${PV}"
DESCRIPTION="A small, fast, and scalable web server"
HOMEPAGE="http://www.monkey-project.com/"
SRC_URI="http://monkey-project.com/releases/${PV:0:3}/${MY_P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 arm ~mips ppc ppc64 x86"
# ssl is broken, so we turn it off until fixed
IUSE="-debug jemalloc php minimal elibc_musl elibc_uclibc monkeyd_plugins_auth monkeyd_plugins_cheetah cgi monkeyd_plugins_dirlisting fastcgi +monkeyd_plugins_liana monkeyd_plugins_logger monkeyd_plugins_mandril"
# uclibc is often compiled without backtrace info so we should
# force this off. If someone complains, consider relaxing it.
# ssl is borken, so we remove "ssl? ( monkeyd_plugins_polarssl )"
REQUIRED_USE="
elibc_uclibc? ( !debug )
cgi? ( php )"
DEPEND="jemalloc? ( >=dev-libs/jemalloc-3.3.1 )"
RDEPEND="
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
epatch "${FILESDIR}"/${PN}-1.5.2-use-system-jemalloc.patch
epatch "${FILESDIR}"/${PN}-1.5.0-fix-CPPFLAGS.patch
# Don't install the banana script, we use ${FILESDIR}/monkeyd.initd instead
sed -i '/Creating bin\/banana/d' configure || die "No configure file"
sed -i '/create_banana_script bindir/d' configure || die "No configure file"
# Don't explicitly strip files
sed -i -e '/$STRIP /d' -e 's/install -s -m 644/install -m 755/' configure || die "No configure file"
# We don't need the includes, sym link to libmonkey.so, or monkey.cp when not installing the .so
use minimal && {
sed -i '/install -d \\$(INCDIR)/d' configure || die "No configure file"
sed -i '/install -m 644 src\/include\/\*.h \\$(INCDIR)/d' configure || die "No configure file"
sed -i '/ln -sf/d' configure || die "No configure file"
sed -i '/install -d \\$(LIBDIR)\/pkgconfig/d' configure || die "No configure file"
sed -i '/install -m 644 monkey.pc \\$(LIBDIR)\/pkgconfig/d' configure || die "No configure file"
}
# Unquiet build
sed -i '/^CC\s/d' configure || die "No configure file"
sed -i 's/^\(CC_QUIET=\).*/\1 \\\$(CC)/' configure || die "No configure file"
sed -i 's/^\(.*MAKE.*\)-s\(.*\)$/\1\2/' configure || die "No configure file"
makes=$(find . -iname Makefile.in)
for f in ${makes}; do
sed -i '/^CC\s/d' $f || die "No file "$f
sed -i 's/^\(CC_QUIET=\).*/\1 \$(CC)/' $f || die "No file "$f
done
}
src_configure() {
local myconf=""
use elibc_uclibc && myconf+=" --uclib-mode"
use elibc_musl && myconf+=" --musl-mode"
use minimal || myconf+=" --enable-shared"
use jemalloc || myconf+=" --malloc-libc"
if use debug; then
myconf+=" --debug --trace"
else
myconf+=" --no-backtrace"
fi
local enable_plugins=""
local disable_plugins=""
for p in ${PLUGINS}; do
cp=${p/monkeyd_plugins_/}
use $p && enable_plugins+="${cp}," || disable_plugins+="${cp},"
done
myconf+=" --enable-plugins=${enable_plugins%,} --disable-plugins=${disable_plugins%,}"
# Non-autotools configure
./configure \
--prefix=/usr \
--bindir=/usr/bin \
--datadir=${WEBROOT}/htdocs \
--logdir=/var/log/${PN} \
--mandir=/usr/share/man \
--libdir=/usr/$(get_libdir) \
--pidfile=/run/monkey.pid \
--plugdir=/usr/$(get_libdir)/monkeyd/plugins \
--sysconfdir=/etc/${PN} \
--platform="generic" \
${myconf} \
|| die
}
src_compile() {
emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
# Don't install the banana script man page
rm "${S}"/man/banana.1
}
src_install() {
default
if use php ; then
sed -i -e '/^#AddScript application\/x-httpd-php/s:^#::' "${D}"/etc/monkeyd/monkey.conf || die
sed -i -e 's:/home/my_home/php/bin/php:/usr/bin/php-cgi:' "${D}"/etc/monkeyd/monkey.conf || die
fi
sed -i -e "s:/var/log/monkeyd/monkey.pid:/var/run/monkey.pid:" "${D}"/etc/monkeyd/monkey.conf || die
newinitd "${FILESDIR}"/monkeyd.initd 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
mkdir "${D}"${WEBROOT}/htdocs
keepdir \
/var/log/monkeyd \
${WEBROOT}/htdocs
}
|