summaryrefslogtreecommitdiff
path: root/www-servers/uwsgi
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-02-16 12:59:29 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-02-16 12:59:29 +0000
commit79599515788b85b18aa655e7b7f8cc05c1bbddd8 (patch)
treeade7cb031f363fad64c77139dea7aa3d81908537 /www-servers/uwsgi
parent6bc2e4d7c5906e46a8f275a876ead6ec41aca5bb (diff)
gentoo resync : 16.02.1018
Diffstat (limited to 'www-servers/uwsgi')
-rw-r--r--www-servers/uwsgi/Manifest8
-rw-r--r--www-servers/uwsgi/uwsgi-2.0.17.1-r1.ebuild4
-rw-r--r--www-servers/uwsgi/uwsgi-2.0.17.1.ebuild6
-rw-r--r--www-servers/uwsgi/uwsgi-2.0.17.ebuild6
-rw-r--r--www-servers/uwsgi/uwsgi-2.0.18.ebuild400
5 files changed, 413 insertions, 11 deletions
diff --git a/www-servers/uwsgi/Manifest b/www-servers/uwsgi/Manifest
index 7813aebfde39..cd60f31cbdf2 100644
--- a/www-servers/uwsgi/Manifest
+++ b/www-servers/uwsgi/Manifest
@@ -5,7 +5,9 @@ AUX uwsgi.confd-r4 1849 BLAKE2B 80afdf7a5ebc520d887061aba9f7cd64b1bca06d3da478d8
AUX uwsgi.initd-r7 3746 BLAKE2B a56c5f4e32ccb415fab10f357e2a7404179285e656d9f886809da281b214e2110c76e2cf8826d8fd90aba01262a5edc7a941522ff59348972c5a4325c784b9b9 SHA512 81ed974fb2957e05c890cab29f5b5a75845e6b7de899d2695fb2fa5f49b4545daa437c81c8dc5c735b24a45655cf6320c9256bc8faa7e32ffd7a2d981922def5
DIST uwsgi-2.0.17.1.tar.gz 800156 BLAKE2B a8697263e6e7689c0062a06a9fdb1101a2df72e0ac9122b5f8a0acc78bbdbdeaa96faa1c8870b9c3a43e2e1fb5fc835e708e1bc3d0171ae746467b4734dc299d SHA512 10d357961fde3a3f5f8e77986cc647313f95a33243e24c2afc482fce21df68a8ae48f90e7b5b76d7edc3cf8fd474d99823d6d60ef7477349abc65a319222f11b
DIST uwsgi-2.0.17.tar.gz 798642 BLAKE2B 86efb2103efaeedb37ebb00de4c01477162d119ae3dea0dc0696385216e30ff2c74eb48576f86eb181b8ada4b9eaa63b0aa761e966e3301597633d33b81142e1 SHA512 639427fbb89a1c2610c1cafb6ff009398a3c0a8e27c3de3f00829428271ba97b64b1253368dd6150912cf44441052be2a63cbe81613bbe964be27ee2e570d2b2
-EBUILD uwsgi-2.0.17.1-r1.ebuild 12295 BLAKE2B b0161a92002e10b0ff52b6b8ba176c5cdd14123361db1dc70a29699cdaf4b857d3e2f6a77194ce65444cf0812d7a2e9309fcac053240eb65ac54b0036e7ac438 SHA512 224895ed2051b67a7f41c9d268cb7afdf2d6167a7a1e2bc0d61d6ba012eb44a4be95a1d33e04cb50e4f6bda934de4ea2864fd72326049434f3c443412c5f1f53
-EBUILD uwsgi-2.0.17.1.ebuild 12776 BLAKE2B b64029a6b42b9ce2143940a8fd6dd4b485608d387710b911f25b026752fea585f7058e3ac125ce08560bfca08c8bed41a9abc80b348ee11b2cf8abd788521d38 SHA512 02233ce930b73f7b605cb96a1f8f5fda4a78f100a4d89d3ab8afeaccccb600ab97b800d0c0033b61d1e4d868bb3b3d69304b9698f91f3d8929d85c6936662513
-EBUILD uwsgi-2.0.17.ebuild 12836 BLAKE2B fd66096fef520da676395ffb80e7f2d6893459a653d7ba1fb19922488ab2734ac267edf1ad1fe9624f3367a8fc709546ece2398b87625059cc9d4a7042a7fe3c SHA512 3712520d98bc55fd60a4417a5d616b6955b2ce04b935e23218ac718cc6d6447fe0bb81cc1545a674d18983c8d21470979feac61c2ba2d978adebb39aea68ea11
+DIST uwsgi-2.0.18.tar.gz 801555 BLAKE2B d8008e751fd699474a1b7d6276c10b3d2f1ebd0ca325e45bfb3b13f81e88de20e4e7389cd6aa9c8b3daa964d9b11524ee71e93717ed9762bf021471f6a2c09fa SHA512 6561703279bcc4a81311d033810ac066d0f113bab13b0942f3eef86cac29c584a6641b52476840d6895151aee5ed064ae2d03b18932cf7f47e62f4eeed76da61
+EBUILD uwsgi-2.0.17.1-r1.ebuild 12295 BLAKE2B 5b616f71d40cb6f395cc0c8a3403e01e486ef3e8b981627dbb9fd3aee709bbb82a23f70ab676804d3ec1a954cd0575a74bae9241603591a056feb0aa546c3965 SHA512 c378f545b9b63499f14962f28a117f3349c9bb3d5dc57a83e68195212eff224f2a2511bdd70b88de5e6c67ad17f4721b00a83292071c5ebd1c17fa9ec0a88c1f
+EBUILD uwsgi-2.0.17.1.ebuild 12776 BLAKE2B 168f3a2d7554d8f61455cfd6a1845dab38a70a8c0a42730621c3d5f3b12c45d14f24c732d6eac9304c82d67a80735368d241ec7b6e80bcbba66c71d9fdde16e8 SHA512 b6682d0330c944abc4fa523a683023d017737a5ce06acfc68a89d694e03918d90ab5b603b0c03b78ae3f359b88aac17701f9edd3ea85cd57c2df3bd78a6d28c7
+EBUILD uwsgi-2.0.17.ebuild 12836 BLAKE2B d6139be1455da0bde6958613016c77e36b93542e99d7225f4550cdaf8fbc30b7902e9d113e73d942f42bd9f1efeaa4e1bc5eec4697399bd56e42843ebdd2f8dc SHA512 91b1a45a90a039876c32ff0bbcd985d5bfe91087a03d020d5101e1b42d3e1a17dd722c3c593d6a2f94f1f7d775639e13fc303e0e7f7e8660a5d8e6eb885d33ac
+EBUILD uwsgi-2.0.18.ebuild 12295 BLAKE2B 5b616f71d40cb6f395cc0c8a3403e01e486ef3e8b981627dbb9fd3aee709bbb82a23f70ab676804d3ec1a954cd0575a74bae9241603591a056feb0aa546c3965 SHA512 c378f545b9b63499f14962f28a117f3349c9bb3d5dc57a83e68195212eff224f2a2511bdd70b88de5e6c67ad17f4721b00a83292071c5ebd1c17fa9ec0a88c1f
MISC metadata.xml 1508 BLAKE2B 22125c58eed49b27100421613726f650e78bba0fb712eea2a3e122862101f34803636c12fa98cdb7483dbfad00e51cba6419ee4a93d43e5116530cb43e6778b2 SHA512 4a925a03e1ff9fedf6d7d4ad9673fdf12caaf6d9b2c4ce5cce01b964ae50294451b6d2f820121dfbe8a9288d0ae62180acc243a07ab1b365e10fef65adff2a02
diff --git a/www-servers/uwsgi/uwsgi-2.0.17.1-r1.ebuild b/www-servers/uwsgi/uwsgi-2.0.17.1-r1.ebuild
index 4baa3deaef85..08f75a25f172 100644
--- a/www-servers/uwsgi/uwsgi-2.0.17.1-r1.ebuild
+++ b/www-servers/uwsgi/uwsgi-2.0.17.1-r1.ebuild
@@ -12,7 +12,7 @@ USE_RUBY="ruby23 ruby24 ruby25"
PHP_EXT_INI="no"
PHP_EXT_NAME="dummy"
PHP_EXT_OPTIONAL_USE="php"
-USE_PHP="php5-6 php7-0 php7-1 php7-2" # deps must be registered separately below
+USE_PHP="php5-6 php7-1 php7-2 php7-3" # deps must be registered separately below
MY_P="${P/_/-}"
@@ -117,9 +117,9 @@ CDEPEND="
perl? ( dev-lang/perl:= )
php? (
php_targets_php5-6? ( dev-lang/php:5.6[embed] )
- php_targets_php7-0? ( dev-lang/php:7.0[embed] )
php_targets_php7-1? ( dev-lang/php:7.1[embed] )
php_targets_php7-2? ( dev-lang/php:7.2[embed] )
+ php_targets_php7-3? ( dev-lang/php:7.3[embed] )
)
pypy? ( virtual/pypy )
python? ( ${PYTHON_DEPS} )
diff --git a/www-servers/uwsgi/uwsgi-2.0.17.1.ebuild b/www-servers/uwsgi/uwsgi-2.0.17.1.ebuild
index 54a77a5c73b5..953baaab672c 100644
--- a/www-servers/uwsgi/uwsgi-2.0.17.1.ebuild
+++ b/www-servers/uwsgi/uwsgi-2.0.17.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -12,7 +12,7 @@ USE_RUBY="ruby23 ruby24"
PHP_EXT_INI="no"
PHP_EXT_NAME="dummy"
PHP_EXT_OPTIONAL_USE="php"
-USE_PHP="php5-6 php7-0 php7-1 php7-2" # deps must be registered separately below
+USE_PHP="php5-6 php7-1 php7-2 php7-3" # deps must be registered separately below
MY_P="${P/_/-}"
@@ -112,9 +112,9 @@ CDEPEND="sys-libs/zlib
perl? ( dev-lang/perl:= )
php? (
php_targets_php5-6? ( dev-lang/php:5.6[embed] )
- php_targets_php7-0? ( dev-lang/php:7.0[embed] )
php_targets_php7-1? ( dev-lang/php:7.1[embed] )
php_targets_php7-2? ( dev-lang/php:7.2[embed] )
+ php_targets_php7-3? ( dev-lang/php:7.3[embed] )
)
pypy? ( virtual/pypy )
python? ( ${PYTHON_DEPS} )
diff --git a/www-servers/uwsgi/uwsgi-2.0.17.ebuild b/www-servers/uwsgi/uwsgi-2.0.17.ebuild
index 799cf972f8b2..9b2f7f849142 100644
--- a/www-servers/uwsgi/uwsgi-2.0.17.ebuild
+++ b/www-servers/uwsgi/uwsgi-2.0.17.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -12,7 +12,7 @@ USE_RUBY="ruby23 ruby24"
PHP_EXT_INI="no"
PHP_EXT_NAME="dummy"
PHP_EXT_OPTIONAL_USE="php"
-USE_PHP="php5-6 php7-0 php7-1 php7-2" # deps must be registered separately below
+USE_PHP="php5-6 php7-1 php7-2 php7-3" # deps must be registered separately below
MY_P="${P/_/-}"
@@ -112,9 +112,9 @@ CDEPEND="sys-libs/zlib
perl? ( dev-lang/perl:= )
php? (
php_targets_php5-6? ( dev-lang/php:5.6[embed] )
- php_targets_php7-0? ( dev-lang/php:7.0[embed] )
php_targets_php7-1? ( dev-lang/php:7.1[embed] )
php_targets_php7-2? ( dev-lang/php:7.2[embed] )
+ php_targets_php7-3? ( dev-lang/php:7.3[embed] )
)
pypy? ( virtual/pypy )
python? ( ${PYTHON_DEPS} )
diff --git a/www-servers/uwsgi/uwsgi-2.0.18.ebuild b/www-servers/uwsgi/uwsgi-2.0.18.ebuild
new file mode 100644
index 000000000000..08f75a25f172
--- /dev/null
+++ b/www-servers/uwsgi/uwsgi-2.0.18.ebuild
@@ -0,0 +1,400 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{4,5,6,7} pypy )
+PYTHON_REQ_USE="threads(+)"
+
+RUBY_OPTIONAL="yes"
+USE_RUBY="ruby23 ruby24 ruby25"
+
+PHP_EXT_INI="no"
+PHP_EXT_NAME="dummy"
+PHP_EXT_OPTIONAL_USE="php"
+USE_PHP="php5-6 php7-1 php7-2 php7-3" # deps must be registered separately below
+
+MY_P="${P/_/-}"
+
+inherit eapi7-ver eutils flag-o-matic multilib pax-utils php-ext-source-r3 python-r1 ruby-ng
+
+DESCRIPTION="uWSGI server for Python web applications"
+HOMEPAGE="http://projects.unbit.it/uwsgi/"
+SRC_URI="https://github.com/unbit/uwsgi/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux"
+
+UWSGI_PLUGINS_STD=( ping cache carbon nagios rpc rrdtool
+ http ugreen signal syslog rsyslog
+ router_{uwsgi,redirect,basicauth,rewrite,http,cache,static,memcached,redis,hash,expires,metrics}
+ {core,fast,raw,ssl}router
+ redislog mongodblog log{file,socket}
+ spooler cheaper_busyness symcall
+ transformation_{chunked,gzip,offload,tofile}
+ zergpool )
+UWSGI_PLUGINS_OPT=( alarm_{curl,xmpp} clock_{monotonic,realtime} curl_cron
+ dumbloop echo emperor_{amqp,pg,zeromq} forkptyrouter
+ geoip graylog2 legion_cache_fetch ldap log{crypto,pipe} notfound pam
+ rados router_{access,radius,spnego,xmldir}
+ sqlite ssi stats_pusher_statsd
+ systemd_logger transformation_toupper tuntap webdav xattr xslt zabbix )
+
+LANG_SUPPORT_SIMPLE=( cgi mono perl ) # plugins which can be built in the main build process
+LANG_SUPPORT_EXTENDED=( go lua php pypy python python_asyncio python_gevent ruby )
+
+# plugins to be ignored (for now):
+# cheaper_backlog2: example plugin
+# coroae: TODO
+# cplusplus: partially example code, needs explicit class
+# dummy: no idea
+# example: example plugin
+# exception_log: example plugin
+# *java*: TODO
+# v8: TODO
+# matheval: TODO
+IUSE="apache2 +caps debug +embedded expat jemalloc json libressl +pcre +routing selinux +ssl +xml yajl yaml zeromq"
+
+for plugin in ${UWSGI_PLUGINS_STD[@]}; do IUSE="${IUSE} +uwsgi_plugins_${plugin}"; done
+for plugin in ${UWSGI_PLUGINS_OPT[@]}; do IUSE="${IUSE} uwsgi_plugins_${plugin}"; done
+IUSE="${IUSE} ${LANG_SUPPORT_SIMPLE[@]} ${LANG_SUPPORT_EXTENDED[@]}"
+
+REQUIRED_USE="|| ( ${LANG_SUPPORT_SIMPLE[@]} ${LANG_SUPPORT_EXTENDED[@]} )
+ uwsgi_plugins_logcrypto? ( ssl )
+ uwsgi_plugins_sslrouter? ( ssl )
+ routing? ( pcre )
+ uwsgi_plugins_emperor_zeromq? ( zeromq )
+ uwsgi_plugins_forkptyrouter? ( uwsgi_plugins_corerouter )
+ uwsgi_plugins_router_xmldir? ( xml !expat )
+ pypy? ( python_targets_python2_7 )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ python_asyncio? ( || ( python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 python_targets_python3_7 ) )
+ python_gevent? ( python )
+ expat? ( xml )"
+
+# util-linux is required for libuuid when requesting zeromq support
+# Order:
+# 1. Unconditional
+# 2. General features
+# 3. Plugins
+# 4. Language/app support
+CDEPEND="
+ sys-libs/zlib
+ caps? ( sys-libs/libcap )
+ json? (
+ !yajl? ( dev-libs/jansson )
+ yajl? ( dev-libs/yajl )
+ )
+ pcre? ( dev-libs/libpcre:3 )
+ ssl? (
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl )
+ )
+ xml? (
+ !expat? ( dev-libs/libxml2 )
+ expat? ( dev-libs/expat )
+ )
+ yaml? ( dev-libs/libyaml )
+ zeromq? ( net-libs/zeromq sys-apps/util-linux )
+ uwsgi_plugins_alarm_curl? ( net-misc/curl )
+ uwsgi_plugins_alarm_xmpp? ( net-libs/gloox )
+ uwsgi_plugins_curl_cron? ( net-misc/curl )
+ uwsgi_plugins_emperor_pg? ( dev-db/postgresql:= )
+ uwsgi_plugins_geoip? ( dev-libs/geoip )
+ uwsgi_plugins_ldap? ( net-nds/openldap )
+ uwsgi_plugins_pam? ( virtual/pam )
+ uwsgi_plugins_sqlite? ( dev-db/sqlite:3 )
+ uwsgi_plugins_rados? ( sys-cluster/ceph )
+ uwsgi_plugins_router_access? ( sys-apps/tcp-wrappers )
+ uwsgi_plugins_router_spnego? ( virtual/krb5 )
+ uwsgi_plugins_systemd_logger? ( sys-apps/systemd )
+ uwsgi_plugins_webdav? ( dev-libs/libxml2 )
+ uwsgi_plugins_xslt? ( dev-libs/libxslt )
+ go? ( dev-lang/go:=[gccgo] )
+ lua? ( dev-lang/lua:= )
+ mono? ( dev-lang/mono:= )
+ perl? ( dev-lang/perl:= )
+ php? (
+ php_targets_php5-6? ( dev-lang/php:5.6[embed] )
+ php_targets_php7-1? ( dev-lang/php:7.1[embed] )
+ php_targets_php7-2? ( dev-lang/php:7.2[embed] )
+ php_targets_php7-3? ( dev-lang/php:7.3[embed] )
+ )
+ pypy? ( virtual/pypy )
+ python? ( ${PYTHON_DEPS} )
+ python_asyncio? ( virtual/python-greenlet[${PYTHON_USEDEP}] )
+ python_gevent? ( >=dev-python/gevent-1.3.5[${PYTHON_USEDEP}] )
+ ruby? ( $(ruby_implementations_depend) )"
+DEPEND="${CDEPEND}
+ virtual/pkgconfig"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-uwsgi )
+ uwsgi_plugins_rrdtool? ( net-analyzer/rrdtool )"
+
+S="${WORKDIR}/${MY_P}"
+
+src_unpack() {
+ echo ${PYTHON_USEDEP}
+ default
+}
+
+pkg_setup() {
+ python_setup
+ use ruby && ruby-ng_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "s|'-O2', ||" \
+ -e "s|'-Werror', ||" \
+ -e "s|uc.get('plugin_dir')|uc.get('plugin_build_dir')|" \
+ uwsgiconfig.py || die "sed failed"
+
+ sed -i \
+ -e "s|/lib|/$(get_libdir)|" \
+ plugins/php/uwsgiplugin.py || die "sed failed"
+}
+
+src_configure() {
+ local embedded_plugins=()
+ local plugins=()
+ local malloc_impl="libc"
+ local json="false"
+ local xml="false"
+
+ for p in ${UWSGI_PLUGINS_STD[@]} ${UWSGI_PLUGINS_OPT[@]} ; do
+ use uwsgi_plugins_${p} && embedded_plugins+=("${p}")
+ done
+ for p in ${LANG_SUPPORT_SIMPLE[@]} ; do
+ use ${p} && plugins+=("${p}")
+ done
+
+ # do not embed any plugins
+ if ! use embedded; then
+ plugins=( ${plugins[@]} ${embedded_plugins[@]} )
+ embedded_plugins=()
+ fi
+
+ # flatten the arrays
+ plugins=${plugins[@]}
+ embedded_plugins=${embedded_plugins[@]}
+
+ # rename some of the use flags, language plugins are always real plugins
+ plugins="${plugins/perl/psgi}"
+ plugins="${plugins/sqlite/sqlite3}"
+ embedded_plugins="${embedded_plugins/sqlite/sqlite3}"
+
+ # override defaults as requested by the user
+ if use xml; then
+ use expat && xml="expat" || xml="libxml2"
+ fi
+ if use json; then
+ use yajl && json="yajl" || json="jansson"
+ fi
+ use jemalloc && malloc_impl="jemalloc"
+
+ # prepare the buildconf for gentoo
+ cp "${FILESDIR}"/gentoo.buildconf buildconf/gentoo.ini || die
+ sed -i \
+ -e "s|VAR_XML|${xml}|" \
+ -e "s|VAR_YAML|$(usex yaml libyaml true)|" \
+ -e "s|VAR_JSON|${json}|" \
+ -e "s|VAR_SSL|$(usex ssl true false)|" \
+ -e "s|VAR_PCRE|$(usex pcre true false)|" \
+ -e "s|VAR_ZMQ|$(usex zeromq true false)|" \
+ -e "s|VAR_ROUTING|$(usex routing true false)|" \
+ -e "s|VAR_DEBUG|$(usex debug true false)|" \
+ -e "s|VAR_MALLOC|${malloc_impl}|" \
+ -e "s|VAR_PLUGINS|${plugins// /, }|" \
+ -e "s|VAR_PLUGIN_DIR|${EPREFIX}/usr/$(get_libdir)/uwsgi|" \
+ -e "s|VAR_BUILD_DIR|${T}/plugins|" \
+ -e "s|VAR_EMBEDDED|${embedded_plugins// /, }|" \
+ buildconf/gentoo.ini || die "sed failed"
+
+ if ! use caps; then
+ sed -i -e 's|sys/capability.h|DISABLED|' uwsgiconfig.py || die "sed failed"
+ fi
+
+ if ! use zeromq; then
+ sed -i -e 's|uuid/uuid.h|DISABLED|' uwsgiconfig.py || die "sed failed"
+ fi
+
+ if use uwsgi_plugins_emperor_pg ; then
+ PGPV="$(best_version dev-db/postgresql)"
+ PGSLOT="$(ver_cut 1-2 ${PGPV##dev-db/postgresql-})"
+ sed -i \
+ -e "s|pg_config|pg_config${PGSLOT/.}|" \
+ plugins/emperor_pg/uwsgiplugin.py || die "sed failed"
+ fi
+}
+
+each_ruby_compile() {
+ cd "${WORKDIR}/${MY_P}" || die "sed failed"
+
+ UWSGICONFIG_RUBYPATH="${RUBY}" python uwsgiconfig.py --plugin plugins/rack gentoo rack_${RUBY##*/} || die "building plugin for ${RUBY} failed"
+ UWSGICONFIG_RUBYPATH="${RUBY}" python uwsgiconfig.py --plugin plugins/fiber gentoo fiber_${RUBY##*/}|| die "building fiber plugin for ${RUBY} failed"
+ UWSGICONFIG_RUBYPATH="${RUBY}" python uwsgiconfig.py --plugin plugins/rbthreads gentoo rbthreads_${RUBY##*/}|| die "building rbthreads plugin for ${RUBY} failed"
+}
+
+python_compile_plugins() {
+ local EPYV
+ local PYV
+ EPYV=${EPYTHON/.}
+ PYV=${EPYV/python}
+
+ if [[ ${EPYTHON} == pypy* ]]; then
+ einfo "skipping because pypy is not meant to build plugins on its own"
+ return
+ fi
+
+ ${PYTHON} uwsgiconfig.py --plugin plugins/python gentoo ${EPYV} || die "building plugin for ${EPYTHON} failed"
+
+ if use python_asyncio ; then
+ if [[ "${PYV}" != "27" ]] ; then
+ ${PYTHON} uwsgiconfig.py --plugin plugins/asyncio gentoo asyncio${PYV} || die "building plugin for asyncio-support in ${EPYTHON} failed"
+ fi
+ fi
+
+ if use python_gevent ; then
+ ${PYTHON} uwsgiconfig.py --plugin plugins/gevent gentoo gevent${PYV} || die "building plugin for gevent-support in ${EPYTHON} failed"
+ fi
+
+ if use python_gevent || use python_asyncio; then
+ ${PYTHON} uwsgiconfig.py --plugin plugins/greenlet gentoo greenlet${PYV} || die "building plugin for greenlet-support in ${EPYTHON} failed"
+ fi
+
+ if use pypy ; then
+ if [[ "${PYV}" == "27" ]] ; then
+ # TODO: do some proper patching ? The wiki didn't help... I gave up for now.
+ # QA: RWX --- --- usr/lib64/uwsgi/pypy_plugin.so
+ append-ldflags -Wl,-z,noexecstack
+ ${PYTHON} uwsgiconfig.py --plugin plugins/pypy gentoo pypy || die "building plugin for pypy-support in ${EPYTHON} failed"
+ fi
+ fi
+}
+
+python_install_symlinks() {
+ dosym uwsgi /usr/bin/uwsgi_${EPYTHON/.}
+}
+
+src_compile() {
+ mkdir -p "${T}/plugins" || die
+
+ python uwsgiconfig.py --build gentoo || die "building uwsgi failed"
+
+ if use go ; then
+ python uwsgiconfig.py --plugin plugins/gccgo gentoo || die "building plugin for go failed"
+ fi
+
+ if use lua ; then
+ # setting the name for the pkg-config file to lua, since we don't have
+ # slotted lua
+ UWSGICONFIG_LUAPC="lua" python uwsgiconfig.py --plugin plugins/lua gentoo || die "building plugin for lua failed"
+ fi
+
+ if use php ; then
+ for s in $(php_get_slots); do
+ UWSGICONFIG_PHPDIR="/usr/$(get_libdir)/${s}" python uwsgiconfig.py --plugin plugins/php gentoo ${s/.} || die "building plugin for ${s} failed"
+ done
+ fi
+
+ if use python ; then
+ python_foreach_impl python_compile_plugins
+ fi
+
+ if use ruby ; then
+ ruby-ng_src_compile
+ fi
+}
+
+src_install() {
+ dobin uwsgi
+ pax-mark m "${D}"/usr/bin/uwsgi
+
+ insinto /usr/$(get_libdir)/uwsgi
+ doins "${T}/plugins"/*.so
+
+ use cgi && dosym uwsgi /usr/bin/uwsgi_cgi
+ use go && dosym uwsgi /usr/bin/uwsgi_go
+ use lua && dosym uwsgi /usr/bin/uwsgi_lua
+ use mono && dosym uwsgi /usr/bin/uwsgi_mono
+ use perl && dosym uwsgi /usr/bin/uwsgi_psgi
+
+ if use php ; then
+ for s in $(php_get_slots); do
+ dosym uwsgi /usr/bin/uwsgi_${s/.}
+ done
+ fi
+
+ if use python ; then
+ python_foreach_impl python_install_symlinks
+ python_foreach_impl python_domodule uwsgidecorators.py
+ fi
+
+ newinitd "${FILESDIR}"/uwsgi.initd-r7 uwsgi
+ newconfd "${FILESDIR}"/uwsgi.confd-r4 uwsgi
+ keepdir /etc/"${PN}".d
+ use uwsgi_plugins_spooler && keepdir /var/spool/"${PN}"
+}
+
+pkg_postinst() {
+ if use apache2 ; then
+ ewarn "As reported on bug #650776 [1], Apache module mod_proxy_uwsgi"
+ ewarn "is being transferred to upstream Apache since 2.4.30, see [2]."
+ ewarn "We therefore do not build them any more."
+ ewarn " [1] https://bugs.gentoo.org/650776"
+ ewarn " [2] https://github.com/unbit/uwsgi/issues/1636"
+ fi
+
+ elog "Append the following options to the uwsgi call to load the respective language plugin:"
+ use cgi && elog " '--plugins cgi' for cgi"
+ use lua && elog " '--plugins lua' for lua"
+ use mono && elog " '--plugins mono' for mono"
+ use perl && elog " '--plugins psgi' for perl"
+
+ if use php ; then
+ for s in $(php_get_slots); do
+ elog " '--plugins ${s/.}' for ${s}"
+ done
+ fi
+
+ python_pkg_postinst() {
+ local EPYV
+ local PYV
+ EPYV=${EPYTHON/.}
+ PYV=${EPYV/python}
+
+ if [[ ${EPYTHON} == pypy* ]] ; then
+ elog " '--plugins pypy' for pypy"
+ return
+ fi
+
+ elog " "
+ elog " '--plugins ${EPYV}' for ${EPYTHON}"
+ if use python_asyncio ; then
+ if [[ ${EPYV} == python34 ]] ; then
+ elog " '--plugins ${EPYV},asyncio${PYV}' for asyncio support in ${EPYTHON}"
+ else
+ elog " (asyncio is only supported in python3.4)"
+ fi
+ fi
+ if use python_gevent ; then
+ elog " '--plugins ${EPYV},gevent${PYV}' for gevent support in ${EPYTHON}"
+ fi
+ }
+
+ use python && python_foreach_impl python_pkg_postinst
+
+ if use ruby ; then
+ for ruby in $USE_RUBY; do
+ if use ruby_targets_${ruby} ; then
+ elog " '--plugins rack_${ruby/.}' for ${ruby}"
+ elog " '--plugins fiber_${ruby/.}' for ${ruby} fibers"
+ elog " '--plugins rbthreads_${ruby/.}' for ${ruby} rbthreads"
+ fi
+ done
+ fi
+}