PKGBUILDs/community/uwsgi/PKGBUILD
2020-10-08 00:24:40 +00:00

176 lines
8.1 KiB
Bash

# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com>
# Maintainer: Sven-Hendrik Haase <svenstaro@gmail.com>
# Contributor: Valentin Hăloiu <vially.ichb+aur@gmail.com>
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: Kevin Zuber <uKev@knet.eu>
# Contributor: Vsevolod Balashov <vsevolod@balashov.name>
# Contributor: David Runge <dave@sleepmap.de>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - ripped out pypy stuff
# - dropped mono plugin
pkgbase=uwsgi
pkgname=(uwsgi
uwsgi-plugin-rack
uwsgi-plugin-psgi
uwsgi-plugin-cgi
uwsgi-plugin-python
uwsgi-plugin-php
uwsgi-plugin-lua51
uwsgi-plugin-jvm
uwsgi-plugin-webdav
uwsgi-plugin-zabbix
uwsgi-plugin-notfound)
pkgver=2.0.19.1
pkgrel=5
arch=(x86_64)
url="http://projects.unbit.it/$pkgbase"
license=(GPL2)
backup=('etc/uwsgi/emperor.ini')
conflicts=(python-$pkgbase)
makedepends=(gcc python ruby python-greenlet php-embed curl libxml2 libyaml
perl lua51 pcre libedit openssl bzip2 gmp pam java-environment=7
jansson classpath python-gevent systemd)
optdepends=('systemd: daemon scripts')
source=("https://projects.unbit.it/downloads/$pkgbase-$pkgver.tar.gz"
uwsgiplugin.py::https://raw.githubusercontent.com/unbit/uwsgi/9787f6882c2475aa9873e400988160b17dd04545/plugins/systemd_logger/uwsgiplugin.py
archlinux.ini
tmpfilesd
uwsgi_at.service
uwsgi_at.socket
uwsgi_ruby20_compatibility.patch
uwsgi_trick_chroot.patch
emperor.ini
emperor.uwsgi.service
emperor.uwsgi.socket
uwsgi.logrotate
uwsgi.sysusers)
sha512sums=('e18359c5ea3606d5de7fb3a0074d777e1c4b41f51f4b1a21f1446f32253058d7924286d9ed8a159d4c6e6c0ea64df7fc3c70b2933c3433b9a9cce39737e702bf'
'68eef703de39cb336915e1e9c36b11c65c2d46482407b0234ca245df0e052952abb7dd85b0a1cd4507c78356a3b7a55424524b3aa0997b559b51e7b20eab5e16'
'acfe9fb089d1905c3d736dbeaaef7eb1848b4ce8d1f585de653086cf7f90c166a1e493d0b62ba030a4bcf2eca9c919e0d6deea2ea1c0bcb8533d7cb040d2f67c'
'4def9dcd06cfc2c6ce554add9d9545a01f3bb2681f0a2a6fc4ba68f91011111803a955cc41b5e70832ca448b196109368fdf874e81b7ec0edee4b51f864e16f7'
'29e51d3f441bd8af23c9378bca6cb38376bbbf31bb3b07f318a04ea5620cf25d35d7799ba4a8ecff12634dccd903eef27a6957b932370706e35549f8fbcd2455'
'fb51a4d102a1bc7d9f7d4c4f310ee65076bcfbc94b47e2dafdf9b20e99a661c5f938185dcf698437d81409376f0276b966f09b13c8a29462c48612df43c3f3ef'
'162ca1be96282b32e8e6be919b6315bfd08954c491056958985bf99e7f5bdad3511665f059329d6cb6ef5d222f9aa11d4dc43c72e6a963ab941ada959fe8d964'
'bc30f8ec69abd14fb96ada5b36cf65811a7a63ee27e224fcb6ceabe9935c1f17379cd872149a17da3d590b8ff60fbe7f77140d777aaf06e25e83388f897f611d'
'd54c84838ddb2f389e115ebb81aa2583705c9e330f020e6583b496f9c271ed236b6820c2a065f2b55a79adbf13e262b9ff2428124a8044b8fa20ca29ca4930ac'
'068ada6281fdeb504fed7e47dae2729d047ed810bb596e5268c1821ad275cd32110e801e93e7ba0ee2d92dbc39e1954180cf43d88d2990d42b802ceb54b50a9e'
'592c85270f43b37e9c51aae126533830515b96fff9fcae969ee865fe173bd0550c7729530d5ff1e44ffee43cd5c78c96688ce091c677a4196379e24983c0180e'
'937878372aa1556f6ba62ad7148d1681288c94d6cff609368a9e861dd4d4524330006a08ae5993441f7d3101170e3a0a681a4c8b3c2c13b364b8b1f81cf25117'
'9e9eab08199cf08810ec95b0697cd8817226986d1e3aeb54845c0140ea5887360580348f295060c0558fb2d6aaed26fec929ea36b28cfeaf2b3588ce40fec3df')
prepare() {
cd $pkgbase-$pkgver
cp "$srcdir"/archlinux.ini buildconf/archlinux.ini
for patch in uwsgi_ruby20_compatibility.patch uwsgi_trick_chroot.patch; do
patch -Np1 -i "$srcdir"/$patch
done
rm -rf plugins/ruby
mv plugins/ruby{19,}
sed -i 's:\(ruby\)19:\1:' plugins/ruby/uwsgiplugin.py
sed -i 's/--cflags mono-2/--cflags mono-2 glib-2.0/g' plugins/mono/uwsgiplugin.py
cp "$srcdir"/uwsgiplugin.py plugins/systemd_logger/uwsgiplugin.py
}
build() {
pushd "$srcdir"/$pkgbase-$pkgver
export UWSGICONFIG_LUAPC='lua51'
python uwsgiconfig.py --build archlinux
python uwsgiconfig.py --plugin plugins/python archlinux python
python uwsgiconfig.py --plugin plugins/greenlet archlinux greenlet
python uwsgiconfig.py --plugin plugins/gevent archlinux gevent
python uwsgiconfig.py --plugin plugins/asyncio archlinux asyncio
python uwsgiconfig.py --plugin plugins/zabbix archlinux zabbix
python uwsgiconfig.py --plugin plugins/notfound archlinux notfound
}
package_uwsgi() {
pkgdesc="A fast, self-healing and developer/sysadmin-friendly application container server coded in pure C"
depends=(libxml2 jansson libsystemd libcap pam pcre)
install=uwsgi.install
cd "$srcdir"/$pkgbase-$pkgver
install -Dm755 uwsgi "$pkgdir"/usr/bin/uwsgi
install -Dm644 "$srcdir"/uwsgi_at.service "$pkgdir"/usr/lib/systemd/system/uwsgi@.service
install -Dm644 "$srcdir"/uwsgi_at.socket "$pkgdir"/usr/lib/systemd/system/uwsgi@.socket
install -Dm644 "$srcdir"/emperor.uwsgi.service "$pkgdir"/usr/lib/systemd/system/emperor.uwsgi.service
install -Dm644 "$srcdir"/emperor.uwsgi.socket "$pkgdir"/usr/lib/systemd/system/emperor.uwsgi.socket
install -Dm644 "$srcdir"/emperor.ini "$pkgdir"/etc/uwsgi/emperor.ini
install -Dm644 "$srcdir"/tmpfilesd "$pkgdir"/usr/lib/tmpfiles.d/uwsgi.conf
install -Dm644 "$srcdir"/uwsgi.logrotate "$pkgdir"/etc/logrotate.d/uwsgi
install -Dm644 "$srcdir"/uwsgi.sysusers "$pkgdir"/usr/lib/sysusers.d/uwsgi.conf
}
package_uwsgi-plugin-cgi() {
depends=(uwsgi)
pkgdesc="CGI plugin"
install -Dm755 $pkgbase-$pkgver/cgi_plugin.so "$pkgdir"/usr/lib/uwsgi/cgi_plugin.so
}
package_uwsgi-plugin-rack() {
depends=(uwsgi ruby)
pkgdesc="Ruby rack plugin"
install -Dm755 $pkgbase-$pkgver/rack_plugin.so "$pkgdir"/usr/lib/uwsgi/rack_plugin.so
install -Dm755 $pkgbase-$pkgver/fiber_plugin.so "$pkgdir"/usr/lib/uwsgi/fiber_plugin.so
install -Dm755 $pkgbase-$pkgver/rbthreads_plugin.so "$pkgdir"/usr/lib/uwsgi/rbthreads_plugin.so
}
package_uwsgi-plugin-psgi() {
depends=(uwsgi perl)
pkgdesc="Perl psgi plugin"
install -Dm755 $pkgbase-$pkgver/psgi_plugin.so "$pkgdir"/usr/lib/uwsgi/psgi_plugin.so
}
package_uwsgi-plugin-python() {
depends=(uwsgi python python-greenlet)
pkgdesc="Plugin for Python support"
install -Dm755 $pkgbase-$pkgver/python_plugin.so "$pkgdir"/usr/lib/uwsgi/python_plugin.so
install -Dm755 $pkgbase-$pkgver/greenlet_plugin.so "$pkgdir"/usr/lib/uwsgi/greenlet_plugin.so
install -Dm755 $pkgbase-$pkgver/gevent_plugin.so "$pkgdir"/usr/lib/uwsgi/gevent_plugin.so
install -Dm755 $pkgbase-$pkgver/asyncio_plugin.so "$pkgdir"/usr/lib/uwsgi/asyncio_plugin.so
install -Dm644 $pkgbase-$pkgver/uwsgidecorators.py "$pkgdir"/usr/lib/python3.8/site-packages/uwsgidecorators.py
python -m compileall "$pkgdir"/usr/lib/python3.8/site-packages/
python -O -m compileall "$pkgdir"/usr/lib/python3.8/site-packages/
}
package_uwsgi-plugin-lua51() {
depends=(uwsgi lua51)
pkgdesc="Plugin for Lua support"
install -Dm755 $pkgbase-$pkgver/lua_plugin.so "$pkgdir"/usr/lib/uwsgi/lua_plugin.so
}
package_uwsgi-plugin-php() {
depends=(uwsgi php-embed libyaml jansson)
pkgdesc="Plugin for PHP support"
install -Dm755 $pkgbase-$pkgver/php_plugin.so "$pkgdir"/usr/lib/uwsgi/php_plugin.so
}
package_uwsgi-plugin-jvm() {
depends=(uwsgi java-environment=7 classpath)
pkgdesc="Plugin for Jvm support"
install -Dm644 $pkgbase-$pkgver/plugins/jvm/uwsgi.jar "$pkgdir"/usr/share/java/uwsgi.jar
install -Dm755 $pkgbase-$pkgver/jvm_plugin.so "$pkgdir"/usr/lib/uwsgi/jvm_plugin.so
}
package_uwsgi-plugin-webdav() {
depends=(uwsgi)
pkgdesc="Plugin for webdav support"
install -Dm755 $pkgbase-$pkgver/webdav_plugin.so "$pkgdir"/usr/lib/uwsgi/webdav_plugin.so
}
package_uwsgi-plugin-zabbix() {
depends=(uwsgi)
pkgdesc="Plugin for zabbix support"
install -Dm755 $pkgbase-$pkgver/zabbix_plugin.so "$pkgdir"/usr/lib/uwsgi/zabbix_plugin.so
}
package_uwsgi-plugin-notfound() {
depends=(uwsgi)
pkgdesc="Plugin for notfound support"
install -Dm755 $pkgbase-$pkgver/notfound_plugin.so "$pkgdir"/usr/lib/uwsgi/notfound_plugin.so
}