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-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/www-servers/monkeyd/monkeyd-1.2.0.ebuild,v 1.1 2013/05/28 12:55:02 blueness Exp $
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"
PLUGINS="monkeyd_plugins_auth monkeyd_plugins_cheetah cgi monkeyd_plugins_dirlisting fastcgi
monkeyd_plugins_liana monkeyd_plugins_logger monkeyd_plugins_mandril monkeyd_plugins_polarssl"
IUSE="-debug php shared-lib uclibc ${PLUGINS}"
# uclibc is often compiled without backtrace info so we should
# force this off. If someone complains, consider relaxing it.
REQUIRED_USE="uclibc? ( !debug )"
RDEPEND="php? ( dev-lang/php )"
S="${WORKDIR}/${MY_P}"
WEBROOT="/var/www/localhost"
pkg_setup() {
use php && require_php_cgi
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() {
# 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 shared-lib || {
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 uclibc && myconf+=" --uclib-mode"
if use debug; then
myconf+=" --debug --trace"
else
myconf+=" --no-backtrace"
fi
use shared-lib && myconf+=" --enable-shared"
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) \
--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
}
|