www-servers/monkeyd: add 9999 version for testing
authorAnthony G. Basile <blueness@gentoo.org>
Thu, 20 Aug 2015 13:46:06 +0000 (09:46 -0400)
committerAnthony G. Basile <blueness@gentoo.org>
Thu, 20 Aug 2015 13:46:06 +0000 (09:46 -0400)
Package-Manager: portage-2.2.20.1

www-servers/monkeyd/monkeyd-9999.ebuild [new file with mode: 0644]

diff --git a/www-servers/monkeyd/monkeyd-9999.ebuild b/www-servers/monkeyd/monkeyd-9999.ebuild
new file mode 100644 (file)
index 0000000..e0f0159
--- /dev/null
@@ -0,0 +1,139 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit flag-o-matic toolchain-funcs multilib
+
+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-2
+       KEYWORDS=""
+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"
+
+# Currently monkeyd_plugins_tls is off.  It provides mbed TLS (formerly PolarSSL).
+# jemalloc is also off until we figure out how to work CMakeLists.txt magic.
+#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 jemalloc php static-plugins ${PLUGINS}"
+
+PLUGINS="monkeyd_plugins_auth monkeyd_plugins_cheetah monkeyd_plugins_dirlisting +monkeyd_plugins_liana monkeyd_plugins_logger monkeyd_plugins_mandril"
+IUSE="cgi -debug fastcgi php static-plugins ${PLUGINS}"
+
+# uclibc is often compiled without backtrace info so we should
+# force this off.  If someone complains, consider relaxing it.
+REQUIRED_USE="
+       elibc_uclibc? ( !debug )
+       cgi? ( php )"
+
+#DEPEND="jemalloc? ( >=dev-libs/jemalloc-3.3.1 )"
+DEPEND="dev-util/cmake"
+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 and mbedTLS
+       rm -rf "${S}"/deps
+}
+
+src_configure() {
+       local myconf=""
+
+       use elibc_uclibc && myconf+=" --uclib-mode"
+       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.
+       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
+
+       # For O_CLOEXEC which is guarded by _GNU_SOURCE in uClibc,
+       # but shouldn't because it is POSIX.  This needs to be fixed
+       # in uClibc.  Also, we really should us append-cppflags but
+       # monkey's build system doesn't respect CPPFLAGS.  This needs
+       # to be fixed in monkey.
+       use elibc_uclibc && append-cflags -D_GNU_SOURCE
+
+       # Non-autotools configure
+       ./configure \
+               --pthread-tls \
+               --prefix=/usr \
+               --sbindir=/usr/sbin \
+               --webroot=${WEBROOT}/htdocs \
+               --logdir=/var/log/${PN} \
+               --mandir=/usr/share/man \
+               --libdir=/usr/$(get_libdir) \
+               --pidfile=/run/monkey.pid \
+               --sysconfdir=/etc/${PN} \
+               ${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
+       mkdir "${D}"${WEBROOT}/htdocs
+
+       keepdir \
+               /var/log/monkeyd \
+               ${WEBROOT}/htdocs
+
+       # This needs to be created at runtime
+       rm -rf "${D}"/run
+}