From 6d691ad5b6239929063441bbd14c489e92e7396e Mon Sep 17 00:00:00 2001
From: V3n3RiX <venerix@redcorelinux.org>
Date: Fri, 5 Mar 2021 09:25:57 +0000
Subject: gentoo resync : 05.03.2021

---
 www-servers/Manifest.gz                      | Bin 5040 -> 5044 bytes
 www-servers/puma/Manifest                    |   8 +-
 www-servers/puma/puma-4.3.4-r1.ebuild        |  75 ------
 www-servers/puma/puma-4.3.7.ebuild           |  75 ------
 www-servers/puma/puma-5.0.4.ebuild           |  65 -----
 www-servers/puma/puma-5.2.2.ebuild           |  59 +++++
 www-servers/uwsgi/Manifest                   |   4 +-
 www-servers/uwsgi/uwsgi-2.0.19.1-r100.ebuild |   3 +-
 www-servers/uwsgi/uwsgi-2.0.19.1-r101.ebuild | 379 +++++++++++++++++++++++++++
 www-servers/uwsgi/uwsgi-2.0.19.1.ebuild      | 377 --------------------------
 10 files changed, 443 insertions(+), 602 deletions(-)
 delete mode 100644 www-servers/puma/puma-4.3.4-r1.ebuild
 delete mode 100644 www-servers/puma/puma-4.3.7.ebuild
 delete mode 100644 www-servers/puma/puma-5.0.4.ebuild
 create mode 100644 www-servers/puma/puma-5.2.2.ebuild
 create mode 100644 www-servers/uwsgi/uwsgi-2.0.19.1-r101.ebuild
 delete mode 100644 www-servers/uwsgi/uwsgi-2.0.19.1.ebuild

(limited to 'www-servers')

diff --git a/www-servers/Manifest.gz b/www-servers/Manifest.gz
index b409f42d7f74..2764631945b8 100644
Binary files a/www-servers/Manifest.gz and b/www-servers/Manifest.gz differ
diff --git a/www-servers/puma/Manifest b/www-servers/puma/Manifest
index 26b0ae00f1b4..93ecb5f7f652 100644
--- a/www-servers/puma/Manifest
+++ b/www-servers/puma/Manifest
@@ -2,18 +2,14 @@ AUX puma-3.12.1-ruby26-waitpid.patch 1722 BLAKE2B cee9b9e89cf098a387481d754732f5
 AUX puma-3.12.5-cve-2020-11077.patch 3490 BLAKE2B 08f103ed5a5cf9878404f04c139476c730f7a663681aa6cc0107c033317826ed803b72b384034b08b361ed7c99683fe3d90d51c5f97708647750db9edf59e15c SHA512 25f26889e74c98e5ee45dbdb2dad356099d15c70027f32fa2500e0f5b40d742d376b7f29560dde985c3652064f6bdec8dd411154301f6c89b1ef356632570c29
 AUX puma-4.3.4-cve-2020-11077.patch 3578 BLAKE2B 34ed185950223fe952f29c98aa80211f8b066ec9d89a04ce4900b6fa654521ac4abb3ae4fd6ae9f56c3143649b0d07bb1a1b66691522c1a9d0ee4d574fe9c58b SHA512 1df326102f6efd0b0aec4918ddda8beba467a76fb863cb0f117d9f073cd6adfdc4dbcb5b698cff8a43404794aa0171e5c124bdf9e0b8ab4161475c6ab3bbd95e
 DIST puma-3.12.5.tar.gz 219175 BLAKE2B 55e80fba8fd84004090cb8d30b6fd01652f1beb1d1216c5d41ce46c616677504fa867f9701ed2631f4edc956c9377d72c6fd4a1b61e99fdbb50ea371b170a0c0 SHA512 1e6721844cbabab0cfb8b1707625723061821dae3ee06a3330075f787ae580e6836d9cbe436e63dc4602253ad1da3b56135316c923c03bbbae454d9457a44aec
-DIST puma-4.3.4.tar.gz 241806 BLAKE2B 5450f14112ad45c48794186c7e9f078feed28a4194a917c949f4058b9d3a115273df6d93260de330047fa59730cb3ad45f31eb05e5880569e95a0b2c9de99a42 SHA512 619bf44c17622233b673dbf6c8f34b0463cd32684df81c20f31045d3106a86e110753b4da80e7b51b46fe18d90ee107d9a84a975dc3116840d9a9b5962178873
-DIST puma-4.3.7.tar.gz 242780 BLAKE2B 22a81839bde50c61147712b85fceb90af8f46ada0b60d1901d0918d75cd7a006a3c71a2c525b83846b3719b44419725fcc38ec7bd32c8bb6acc916ec95ca7aae SHA512 90262ddbb4c9ceceb023538f8f3e4542de6d02763e2dd60dc24fb1bbde45817bb5a6472469da8d384ec25d97f9501c8afbe2c8da3fb690965a38da4d342a8f1c
-DIST puma-5.0.4.tar.gz 275942 BLAKE2B 1e607d7ff44ae9b677f6fb41355fe3b660bd880a642e5d3859e177c9327b68c0db729621ef0b3d7a5bb08917249fb7eac688027ceb62f072dabe7ba30086bf79 SHA512 6804ef3bfd4fa3a6695c213e3550244adace91121cb2c45f06fa4c68fb502787c5fdebba41b4754216eab880ca8738ab6f83d0ec9456a86fc6db99a4d4405bd8
 DIST puma-5.1.1.tar.gz 284807 BLAKE2B 59ba17129e55e79aa2f8092d60a5643840bd996b7832d421cb72538fc48b0fb302353bedef56cc9b115bdfb15b33b0f453bfbf759b2e9552a9490a8b0cef3090 SHA512 8653c622c21dca2116219702e801d7aa3272f0771fd5c2d5149927edbd504a9838fb0d442bfc5dc523035a94dad25946738a5dda954fdaa74a9a00c85ed9f86e
 DIST puma-5.2.0.tar.gz 292173 BLAKE2B e09e524ef651a674373e0c5281832fef2e016f58e9623968e11c47135f7bcddb72c6458e74e85f4264c40f49222161d9749c3c29295d5470e47e7b0382e96bab SHA512 3e97f17be3926ff23b03def55dd1c9f015750a5aec74f0fa1551d20c9f386e0ec1a9e676dc0df49ae12129be6768a7d2f7df7a944dd2ec3d44f8243098dc7950
 DIST puma-5.2.1.tar.gz 292945 BLAKE2B 1590dd256953578330ffcb4b2e8745c20ea893f62f251813da5b2473694312a9daeccd7cd5f453dbad441619594210fbdac431a6459deea24e1656c4da0ba01c SHA512 8ec1a351badd68ce6559eb99592e3f4d836ca49406749a6c2cd9162c443eadf3b4cf24ceb6c92e0e27057217f6487ff9923888ff4a1590f8cf9061d06ec16e52
+DIST puma-5.2.2.tar.gz 293551 BLAKE2B ba7ba9d8a2dcf9ea9716624f712d6b569472e8bfd8d7501a5807007ccdc6b6b36a8fc6f65f47f5898907adb3d3b85e2630194d5527c96ed655ce6a52192ec36a SHA512 b2d4f711cd1ad4f4557991ba26d7b940573b413e6a4c589d8447e78135d8d47e7222de4c865919981b677891cb2b57e3a3cf015d1f9a637b671f4f221c7ea77f
 EBUILD puma-3.12.5-r1.ebuild 2159 BLAKE2B 9890e397dd8966c4f1480cc435cca1235a87d317d37fd7879a32b03a8ad8b1ec1a6898f7cf5731c8f80a0014ad8dc7b01bc3c10a46f817269101f641101d12a3 SHA512 f922181874ab1c8cd685f1837d3631682aaacc2c316bffe8918fd35f1c8a2f879d5b199a3a4bb9346017bb5e5faec51135ec47a0f502c300413d6a5c9389631a
-EBUILD puma-4.3.4-r1.ebuild 2176 BLAKE2B 433e221931b2716fdf1bbddf2aa7c2e08c759a63681bb21b34c3a5b8db3618203c4024473fbe98ba88dc7c4f0b63e96444f5305ace3338b14d1dd62140fbbed3 SHA512 91dde6a7c485b46f158f35432e136bb40b5115dace83e9f4446b4cf1c8e24660467b23f5f147bb6c26e699c13405e36205db4871e4afa6a1b1cc1c9180998b9c
-EBUILD puma-4.3.7.ebuild 2177 BLAKE2B 07142bc2d99d35b096b7478fd185eebb3d51cd126ee363a7ce52c1d29a8b372e8702e45728849a9ea47c5d42a74cd3820c338b1b0d8a902a49962847999999fb SHA512 6015493546b3f66692f86ad1767033c3375b5267bc3e3a2be50e0cc355af35090390139d62cc224777d00ac938de54bef39faeee0f6945ab488414173ae4b7e4
-EBUILD puma-5.0.4.ebuild 1904 BLAKE2B 4041272a4dc73f59b34d6d95c2819d70e9c548c2534dbe58cd71c477524f77655a34025cb3d4c3a4b9100fdd6663ec077e382f651d28bb30cd06e184e0c4ab17 SHA512 8868450157cbeaaac662db7949df14735f43deaa1dece0481743240603b4aa6f8393f00d004754abea2c8a8c06c9b15cf9f5f00b25688b06ea8bddcf834416fa
 EBUILD puma-5.1.1.ebuild 1939 BLAKE2B cd4fa1f381dff7fe659e1371ecdbab746c8ba8ed46aaa07c269e0f41fdb9ee7e1aef7bcf339cc1b0ea2682ad9ac968312b20228e509aa972a200705d3d60f26c SHA512 1da86cd7e917532ca9456a13f10d321c56cac38a0132d76a611fc64997ec5e90c614c5f924e6fd507a01eb9963686974cf69669b1e071823da811b4e45ade5dd
 EBUILD puma-5.2.0.ebuild 1941 BLAKE2B 36f49f2b32efd47d43287752f1f99166e5428671dcae15c1ccf74c5a53049e520aa2769d5678850c3ded225abb60daab3686bcc3c6acd8270098fa9efdf5ccba SHA512 452352fa6d419962ee8c07c909d7826325c86cc1427e1393617805e8d81e7eb911d090bcd99f32fa85dd5d3790dc0e357f3c21ebf70c7f82396f2a78c9a85f42
 EBUILD puma-5.2.1-r1.ebuild 1845 BLAKE2B 451cb646c9c831294c1c2c51378453b4bc7f5676d4da82741afb246379d9b6f3aa0205bdace9e0443ff686267af7f997fc2e3a8e32e5cf30df143b8d1d6f12ea SHA512 4a066b6071666275ab712c51ebf3b92318eb99738f03d008faad53cbec42c69ac26b8acee9e699bd70c7dc4d798455b6f49b4a8d31305e93e7eaade374cca82f
 EBUILD puma-5.2.1.ebuild 1941 BLAKE2B 36f49f2b32efd47d43287752f1f99166e5428671dcae15c1ccf74c5a53049e520aa2769d5678850c3ded225abb60daab3686bcc3c6acd8270098fa9efdf5ccba SHA512 452352fa6d419962ee8c07c909d7826325c86cc1427e1393617805e8d81e7eb911d090bcd99f32fa85dd5d3790dc0e357f3c21ebf70c7f82396f2a78c9a85f42
+EBUILD puma-5.2.2.ebuild 1845 BLAKE2B 451cb646c9c831294c1c2c51378453b4bc7f5676d4da82741afb246379d9b6f3aa0205bdace9e0443ff686267af7f997fc2e3a8e32e5cf30df143b8d1d6f12ea SHA512 4a066b6071666275ab712c51ebf3b92318eb99738f03d008faad53cbec42c69ac26b8acee9e699bd70c7dc4d798455b6f49b4a8d31305e93e7eaade374cca82f
 MISC metadata.xml 709 BLAKE2B f0a69d0e7f4c5e593ff5648b51de393610f579fd9fff372749fca4491e8dd57b7e853f87104e8b86f8e90013fe54f8c3141e28ae87d17432e60f329f51a67db6 SHA512 dd872907d8e164d0b63f1b4db076d9407c33581ae80ecafb119904ceebe4c05eb74d01d51c3217cf475faf02d3732e9854553fc980c1b054c42b95af58ee1c0e
diff --git a/www-servers/puma/puma-4.3.4-r1.ebuild b/www-servers/puma/puma-4.3.4-r1.ebuild
deleted file mode 100644
index ec3645ec7477..000000000000
--- a/www-servers/puma/puma-4.3.4-r1.ebuild
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-USE_RUBY="ruby25 ruby26 ruby27"
-
-RUBY_FAKEGEM_GEMSPEC="puma.gemspec"
-
-inherit multilib ruby-fakegem
-
-DESCRIPTION="a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack"
-HOMEPAGE="https://puma.io/"
-SRC_URI="https://github.com/puma/puma/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="3"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
-IUSE=""
-
-DEPEND+=" dev-libs/openssl:0 test? ( net-misc/curl )"
-RDEPEND+=" dev-libs/openssl:0"
-
-ruby_add_bdepend "virtual/ruby-ssl
-	test? ( dev-ruby/rack >=dev-ruby/minitest-5.9:5 >=dev-ruby/test-unit-3.0:2 )"
-
-ruby_add_rdepend "dev-ruby/nio4r:2"
-
-all_ruby_prepare() {
-	eapply "${FILESDIR}/${P}-cve-2020-11077.patch"
-
-	sed -e '/bundler/ s:^:#:' \
-		-e '/prove/ s:^:#:' \
-		-i test/helper.rb || die
-
-	# Avoid tests failing inconsistently
-	sed -i -e '/phased_restart_via_pumactl/,/^  end/ s:^:#:' test/test_integration_pumactl.rb || die
-	sed -i -e '/test_bad_client/askip "inconsistent results"' test/test_web_server.rb || die
-
-	# Loosen timing on flakey test
-	#sed -i -e '390 s/sleep 2/sleep 4/' test/test_integration.rb || die
-
-	# Use correct ruby version
-	sed -i -e 's/ruby -rrubygems/#{Gem.ruby} -rrubygems/' test/shell/t{1,3}.rb || die
-
-	# Avoid launcher tests since they make assumptions about bundler use
-	rm -f test/test_launcher.rb || die
-
-	sed -i -e 's/git ls-files --/find/' ${RUBY_FAKEGEM_GEMSPEC} || die
-}
-
-each_ruby_prepare() {
-	sed -i -e 's:ruby -rubygems:'${RUBY}' -rubygems:' \
-		-e 's/localhost/127.0.0.1/' test/shell/* || die
-	sed -i -e '1ilog_requests' test/shell/t{1,2}_conf.rb || die
-}
-
-each_ruby_configure() {
-	${RUBY} -Cext/puma_http11 extconf.rb || die
-}
-
-each_ruby_compile() {
-	emake V=1 -Cext/puma_http11
-	cp ext/puma_http11/puma_http11$(get_modname) lib/puma/ || die
-}
-
-each_ruby_test() {
-	einfo "Running test suite"
-	${RUBY} -Ilib:.:test -e "gem 'minitest', '~>5.9'; gem 'test-unit', '~>3.0'; require 'minitest/autorun'; Dir['test/**/*test_*.rb'].each{|f| require f}" || die
-
-	einfo "Running integration tests"
-	pushd test/shell
-	#sh run.sh || die
-	popd
-}
diff --git a/www-servers/puma/puma-4.3.7.ebuild b/www-servers/puma/puma-4.3.7.ebuild
deleted file mode 100644
index 0f9bdaf48757..000000000000
--- a/www-servers/puma/puma-4.3.7.ebuild
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-USE_RUBY="ruby25 ruby26 ruby27"
-
-RUBY_FAKEGEM_GEMSPEC="puma.gemspec"
-
-inherit multilib ruby-fakegem
-
-DESCRIPTION="a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack"
-HOMEPAGE="https://puma.io/"
-SRC_URI="https://github.com/puma/puma/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="3"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
-IUSE=""
-
-DEPEND+=" dev-libs/openssl:0 test? ( net-misc/curl )"
-RDEPEND+=" dev-libs/openssl:0"
-
-ruby_add_bdepend "virtual/ruby-ssl
-	test? ( dev-ruby/rack >=dev-ruby/minitest-5.9:5 >=dev-ruby/test-unit-3.0:2 )"
-
-ruby_add_rdepend "dev-ruby/nio4r:2"
-
-all_ruby_prepare() {
-#	eapply "${FILESDIR}/${P}-cve-2020-11077.patch"
-
-	sed -e '/bundler/ s:^:#:' \
-		-e '/prove/ s:^:#:' \
-		-i test/helper.rb || die
-
-	# Avoid tests failing inconsistently
-	sed -i -e '/phased_restart_via_pumactl/,/^  end/ s:^:#:' test/test_integration_pumactl.rb || die
-	sed -i -e '/test_bad_client/askip "inconsistent results"' test/test_web_server.rb || die
-
-	# Loosen timing on flakey test
-	#sed -i -e '390 s/sleep 2/sleep 4/' test/test_integration.rb || die
-
-	# Use correct ruby version
-	sed -i -e 's/ruby -rrubygems/#{Gem.ruby} -rrubygems/' test/shell/t{1,3}.rb || die
-
-	# Avoid launcher tests since they make assumptions about bundler use
-	rm -f test/test_launcher.rb || die
-
-	sed -i -e 's/git ls-files --/find/' ${RUBY_FAKEGEM_GEMSPEC} || die
-}
-
-each_ruby_prepare() {
-	sed -i -e 's:ruby -rubygems:'${RUBY}' -rubygems:' \
-		-e 's/localhost/127.0.0.1/' test/shell/* || die
-	sed -i -e '1ilog_requests' test/shell/t{1,2}_conf.rb || die
-}
-
-each_ruby_configure() {
-	${RUBY} -Cext/puma_http11 extconf.rb || die
-}
-
-each_ruby_compile() {
-	emake V=1 -Cext/puma_http11
-	cp ext/puma_http11/puma_http11$(get_modname) lib/puma/ || die
-}
-
-each_ruby_test() {
-	einfo "Running test suite"
-	${RUBY} -Ilib:.:test -e "gem 'minitest', '~>5.9'; gem 'test-unit', '~>3.0'; require 'minitest/autorun'; Dir['test/**/*test_*.rb'].each{|f| require f}" || die
-
-	einfo "Running integration tests"
-	pushd test/shell
-	#sh run.sh || die
-	popd
-}
diff --git a/www-servers/puma/puma-5.0.4.ebuild b/www-servers/puma/puma-5.0.4.ebuild
deleted file mode 100644
index 4ae517dd9959..000000000000
--- a/www-servers/puma/puma-5.0.4.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-USE_RUBY="ruby25 ruby26 ruby27"
-
-RUBY_FAKEGEM_GEMSPEC="puma.gemspec"
-
-inherit multilib ruby-fakegem
-
-DESCRIPTION="a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack"
-HOMEPAGE="https://puma.io/"
-SRC_URI="https://github.com/puma/puma/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="3"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
-IUSE=""
-
-DEPEND+=" dev-libs/openssl:0 test? ( net-misc/curl )"
-RDEPEND+=" dev-libs/openssl:0"
-
-ruby_add_bdepend "virtual/ruby-ssl
-	test? ( dev-ruby/rack >=dev-ruby/minitest-5.9:5 >=dev-ruby/test-unit-3.0:2 )"
-
-ruby_add_rdepend "dev-ruby/nio4r:2"
-
-all_ruby_prepare() {
-	sed -e '/bundler/ s:^:#:' \
-		-e '/prove/ s:^:#:' \
-		-e '/stub_const/ s:^:#:' \
-		-i test/helper.rb || die
-
-	# Avoid tests failing inconsistently
-	sed -i -e '/test_bad_client/askip "inconsistent results"' test/test_web_server.rb || die
-
-	# Avoid launcher tests since they make assumptions about bundler use
-	rm -f test/test_launcher.rb || die
-
-	# Skip integration tests since they make a lot of assumptions about
-	# the environment
-	rm -f test/test_integration_* test/test_preserve_bundler_env.rb|| die
-
-	# Avoid test that uses unpackaged stub_const
-	sed -i -e '/test_shutdown_with_grace/,/^  end/ s:^:#:' test/test_thread_pool.rb || die
-
-	sed -e 's/git ls-files --/find/' \
-		-e 's:_relative ": "./:' \
-		-i ${RUBY_FAKEGEM_GEMSPEC} || die
-}
-
-each_ruby_configure() {
-	${RUBY} -Cext/puma_http11 extconf.rb || die
-}
-
-each_ruby_compile() {
-	emake V=1 -Cext/puma_http11
-	cp ext/puma_http11/puma_http11$(get_modname) lib/puma/ || die
-}
-
-each_ruby_test() {
-	einfo "Running test suite"
-	${RUBY} -Ilib:.:test -e "gem 'minitest', '~>5.9'; gem 'test-unit', '~>3.0'; require 'minitest/autorun'; Dir['test/**/*test_*.rb'].each{|f| require f}" || die
-}
diff --git a/www-servers/puma/puma-5.2.2.ebuild b/www-servers/puma/puma-5.2.2.ebuild
new file mode 100644
index 000000000000..5d0f1ef44559
--- /dev/null
+++ b/www-servers/puma/puma-5.2.2.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+USE_RUBY="ruby25 ruby26 ruby27"
+
+RUBY_FAKEGEM_GEMSPEC="puma.gemspec"
+
+RUBY_FAKEGEM_EXTENSIONS=(ext/puma_http11/extconf.rb)
+RUBY_FAKEGEM_EXTENSION_LIBDIR=lib/puma
+
+inherit multilib ruby-fakegem
+
+DESCRIPTION="a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack"
+HOMEPAGE="https://puma.io/"
+SRC_URI="https://github.com/puma/puma/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="3"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND+=" dev-libs/openssl:0 test? ( net-misc/curl )"
+RDEPEND+=" dev-libs/openssl:0"
+
+ruby_add_bdepend "virtual/ruby-ssl
+	test? ( dev-ruby/rack >=dev-ruby/minitest-5.9:5 >=dev-ruby/test-unit-3.0:2 )"
+
+ruby_add_rdepend "dev-ruby/nio4r:2"
+
+all_ruby_prepare() {
+	sed -e '/bundler/ s:^:#:' \
+		-e '/prove/ s:^:#:' \
+		-e '/stub_const/ s:^:#:' \
+		-i test/helper.rb || die
+
+	# Avoid tests failing inconsistently
+	sed -i -e '/test_bad_client/askip "inconsistent results"' test/test_web_server.rb || die
+
+	# Avoid launcher tests since they make assumptions about bundler use
+	rm -f test/test_launcher.rb test/test_worker_gem_independence.rb || die
+
+	# Skip integration tests since they make a lot of assumptions about
+	# the environment
+	rm -f test/test_integration_* test/test_preserve_bundler_env.rb|| die
+
+	# Avoid test that uses unpackaged stub_const
+	sed -i -e '/test_shutdown_with_grace/,/^  end/ s:^:#:' test/test_thread_pool.rb || die
+
+	sed -e 's/git ls-files --/find/' \
+		-e 's:_relative ": "./:' \
+		-i ${RUBY_FAKEGEM_GEMSPEC} || die
+}
+
+each_ruby_test() {
+	einfo "Running test suite"
+	${RUBY} -Ilib:.:test -e "gem 'minitest', '~>5.9'; gem 'test-unit', '~>3.0'; require 'minitest/autorun'; Dir['test/**/*test_*.rb'].each{|f| require f}" || die
+}
diff --git a/www-servers/uwsgi/Manifest b/www-servers/uwsgi/Manifest
index cca7cd9c2767..ca4aa55a42e3 100644
--- a/www-servers/uwsgi/Manifest
+++ b/www-servers/uwsgi/Manifest
@@ -2,6 +2,6 @@ AUX gentoo.buildconf 490 BLAKE2B 320b0471c0c76ab6c8ada7b034f612fc20398eb60e1edc3
 AUX uwsgi.confd-r4 1849 BLAKE2B 80afdf7a5ebc520d887061aba9f7cd64b1bca06d3da478d8d1090a8b9cba973ac2d3dbcbc2ceb980415e98317bc55b07a9a7e6641fac593dc4dd5466bd8d67c9 SHA512 041d1bd694fad6f7c5e28944aab6d7ba53b3c7fc990ce6b7c2d97b9f3d6650c46dda8069e545c252a7400e1d825c8e46d7393a289757b1bd665e64241ca3789a
 AUX uwsgi.initd-r7 3746 BLAKE2B a56c5f4e32ccb415fab10f357e2a7404179285e656d9f886809da281b214e2110c76e2cf8826d8fd90aba01262a5edc7a941522ff59348972c5a4325c784b9b9 SHA512 81ed974fb2957e05c890cab29f5b5a75845e6b7de899d2695fb2fa5f49b4545daa437c81c8dc5c735b24a45655cf6320c9256bc8faa7e32ffd7a2d981922def5
 DIST uwsgi-2.0.19.1.tar.gz 804398 BLAKE2B 73fc19990866eb1058a742b34a817b3bd87e00c838da055bece2bff5e13c161f53c642866ed591aa4afeb23ef924205502f2cb0a4cf9d303b5b63fb9a53f57e2 SHA512 34b55f7c7a77dc0b0dab34d1a9ca9a4cba8a9261969656c88435e7f32fe8a0c5654e1562706775f77e2f60c4ad0f5c6055257a23ab7d387c1579639e054807b5
-EBUILD uwsgi-2.0.19.1-r100.ebuild 11625 BLAKE2B 3d30dbf641ac205f4652885c9336d0e4e5cde263159b97ce3d77367aba43435400581b4e3cedc9f46d6254c9a85ec07407271e85bbed0de8b33be8661bb762bc SHA512 8c5502227fdc2b64f516756025934d481f948dc6ff2dd21b1d60d3cef501b774a80926c5aab7e256a4932269212097d0c496fd117d33e309212db43acd0370f2
-EBUILD uwsgi-2.0.19.1.ebuild 11516 BLAKE2B 9d99da4763b1654771dd4e04931027c4355908d91f42dda43911ae5e6741c4fab1002eaeae71aa371e654cf48c2ce7d9bd109a91bf639d3008b422499d296881 SHA512 68e095b75c72678b9c8a4b3c91737d4f22c6a27721c3dc7c29c19be454adab3462dcd7834e883ac829df47c14455beff6fb0430ff889470b53d66b4741a25ef2
+EBUILD uwsgi-2.0.19.1-r100.ebuild 11568 BLAKE2B 4b4a86432176b09fd3b5d14cfdaae3f1ca7481bbf672522ce5b6abb93aecb0ef17ebda2cb403cbd19a662f0789101fe01870dce7bfa90b597865c4ff0f4bac05 SHA512 50373394197ab84a527be0934b3994578463845cb8198f5ed57f60f220933ac17858a154ecb044f72cd4c60e2561f34cd1182ee77234b81aa1756a453ddbf545
+EBUILD uwsgi-2.0.19.1-r101.ebuild 11573 BLAKE2B 575f6be4e72ddda8ca88394391a81abd69e6ad940915e4565c3c3facce7f8a798ce060edf753aff9d9bf687e18359857f31f6643889ab0df5a040111670b5cd6 SHA512 416eee7a749abd5e9663a79646d77af26cf689f65e547a876507d521a1f7b236eb0858df9b044e6eff6888d44854b051b94dec9ae7c2c93cf4aaa581f28c5199
 MISC metadata.xml 1411 BLAKE2B 89114f75b2150f4340e30cd106115f0e9aa1a00389558f6f75aa86c0bf5a11d5df5ecb794c12f7bb39791d8edef40415cbca4403f8f2b65bd642ce52e95357a3 SHA512 33d3767a25dfca633e5149a20900d56998c40204a4c55e3814248574d0c8525883a842222ed5f8ac739a06cd09d806c189ff6f742d1277bcd3f8e8afdea84445
diff --git a/www-servers/uwsgi/uwsgi-2.0.19.1-r100.ebuild b/www-servers/uwsgi/uwsgi-2.0.19.1-r100.ebuild
index 367e1207f41d..e9cbeaa8d757 100644
--- a/www-servers/uwsgi/uwsgi-2.0.19.1-r100.ebuild
+++ b/www-servers/uwsgi/uwsgi-2.0.19.1-r100.ebuild
@@ -13,7 +13,7 @@ USE_RUBY="ruby23 ruby24 ruby25 ruby26"
 PHP_EXT_INI="no"
 PHP_EXT_NAME="dummy"
 PHP_EXT_OPTIONAL_USE="php"
-USE_PHP="php7-2 php7-3 php7-4" # deps must be registered separately below
+USE_PHP="php7-3 php7-4" # deps must be registered separately below
 
 MY_P="${P/_/-}"
 
@@ -118,7 +118,6 @@ CDEPEND="
 	perl? ( dev-lang/perl:= )
 	php? (
 		net-libs/libnsl
-		php_targets_php7-2? ( dev-lang/php:7.2[embed] )
 		php_targets_php7-3? ( dev-lang/php:7.3[embed] )
 		php_targets_php7-4? ( dev-lang/php:7.4[embed] )
 	)
diff --git a/www-servers/uwsgi/uwsgi-2.0.19.1-r101.ebuild b/www-servers/uwsgi/uwsgi-2.0.19.1-r101.ebuild
new file mode 100644
index 000000000000..72a449c8448f
--- /dev/null
+++ b/www-servers/uwsgi/uwsgi-2.0.19.1-r101.ebuild
@@ -0,0 +1,379 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-1 )
+PYTHON_COMPAT=( python3_{7,8,9} )
+PYTHON_REQ_USE="threads(+)"
+
+RUBY_OPTIONAL="yes"
+USE_RUBY="ruby23 ruby24 ruby25 ruby26"
+
+PHP_EXT_INI="no"
+PHP_EXT_NAME="dummy"
+PHP_EXT_OPTIONAL_USE="php"
+USE_PHP="php7-3 php7-4" # deps must be registered separately below
+
+MY_P="${P/_/-}"
+
+inherit flag-o-matic lua-single pax-utils php-ext-source-r3 python-r1 ruby-ng
+
+DESCRIPTION="uWSGI server for Python web applications"
+HOMEPAGE="https://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 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 )
+	lua? ( ${LUA_REQUIRED_USE} )
+	python? ( ${PYTHON_REQUIRED_USE} )
+	python-asyncio? ( || ( $(python_gen_useflags -3) ) )
+	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? ( sys-libs/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? ( sys-devel/gcc:=[go] )
+	lua? ( ${LUA_DEPS} )
+	mono? ( dev-lang/mono:= )
+	perl? ( dev-lang/perl:= )
+	php? (
+		net-libs/libnsl
+		php_targets_php7-3? ( dev-lang/php:7.3[embed] )
+		php_targets_php7-4? ( dev-lang/php:7.4[embed] )
+	)
+	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}"
+RDEPEND="${CDEPEND}
+	selinux? ( sec-policy/selinux-uwsgi )
+	uwsgi_plugins_rrdtool? ( net-analyzer/rrdtool )"
+BDEPEND="virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}"
+
+src_unpack() {
+	echo ${PYTHON_USEDEP}
+	default
+}
+
+pkg_setup() {
+	python_setup
+	use lua && lua-single_pkg_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}
+
+	${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
+}
+
+python_install_symlinks() {
+	dosym uwsgi /usr/bin/uwsgi_${EPYTHON/.}
+}
+
+src_compile() {
+	mkdir -p "${T}/plugins" || die
+
+	CPUCOUNT=1 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 that is the name
+		# provided by the wrapper from Lua eclasses
+		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}
+
+		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 $(ruby_get_use_implementations) ; do
+			elog "  '--plugins rack_${ruby/.}' for ${ruby}"
+			elog "  '--plugins fiber_${ruby/.}' for ${ruby} fibers"
+			elog "  '--plugins rbthreads_${ruby/.}' for ${ruby} rbthreads"
+		done
+	fi
+}
diff --git a/www-servers/uwsgi/uwsgi-2.0.19.1.ebuild b/www-servers/uwsgi/uwsgi-2.0.19.1.ebuild
deleted file mode 100644
index adc1de637c15..000000000000
--- a/www-servers/uwsgi/uwsgi-2.0.19.1.ebuild
+++ /dev/null
@@ -1,377 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_{7,8} )
-PYTHON_REQ_USE="threads(+)"
-
-RUBY_OPTIONAL="yes"
-USE_RUBY="ruby23 ruby24 ruby25 ruby26"
-
-PHP_EXT_INI="no"
-PHP_EXT_NAME="dummy"
-PHP_EXT_OPTIONAL_USE="php"
-USE_PHP="php7-2 php7-3 php7-4" # 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 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 )
-	python? ( ${PYTHON_REQUIRED_USE} )
-	python-asyncio? ( || ( $(python_gen_useflags -3) ) )
-	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? ( sys-libs/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? ( sys-devel/gcc:=[go] )
-	lua? ( dev-lang/lua:0= )
-	mono? ( dev-lang/mono:= )
-	perl? ( dev-lang/perl:= )
-	php? (
-		net-libs/libnsl
-		php_targets_php7-2? ( dev-lang/php:7.2[embed] )
-		php_targets_php7-3? ( dev-lang/php:7.3[embed] )
-		php_targets_php7-4? ( dev-lang/php:7.4[embed] )
-	)
-	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}
-
-	${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
-}
-
-python_install_symlinks() {
-	dosym uwsgi /usr/bin/uwsgi_${EPYTHON/.}
-}
-
-src_compile() {
-	mkdir -p "${T}/plugins" || die
-
-	CPUCOUNT=1 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}
-
-		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 $(ruby_get_use_implementations) ; do
-			elog "  '--plugins rack_${ruby/.}' for ${ruby}"
-			elog "  '--plugins fiber_${ruby/.}' for ${ruby} fibers"
-			elog "  '--plugins rbthreads_${ruby/.}' for ${ruby} rbthreads"
-		done
-	fi
-}
-- 
cgit v1.2.3