# $Id: PKGBUILD 97628 2013-09-25 23:54:48Z dwallace $
# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot 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>

pkgbase=uwsgi
pkgname=(uwsgi
        uwsgi-plugin-common
        uwsgi-plugin-rack
        uwsgi-plugin-psgi
        uwsgi-plugin-python2
        uwsgi-plugin-python
        uwsgi-plugin-nagios
        uwsgi-plugin-router
        uwsgi-plugin-admin
        uwsgi-plugin-php
        uwsgi-plugin-lua51
        uwsgi-plugin-carbon
        uwsgi-plugin-rrdtool
        uwsgi-plugin-erlang
        uwsgi-plugin-pam
        uwsgi-plugin-zergpool
        )
pkgver=1.9.17
pkgrel=1
arch=(i686 x86_64)
url="http://projects.unbit.it/$pkgbase"
license=(GPL2)
conflicts=(python-$pkgbase)
makedepends=(gcc python python2 ruby python2-greenlet php-embed curl libxml2 libyaml
             perl lua51 pcre libedit openssl bzip2 gmp erlang pam java-environment=7
             jansson classpath)
source=(http://projects.unbit.it/downloads/$pkgbase-$pkgver.tar.gz
        archlinux.ini
        tmpfilesd
        uwsgi@.service
        uwsgi@.socket
        uwsgi_fix_rpath.patch
        uwsgi_ruby20_compatibility.patch
        uwsgi_trick_chroot.patch)

md5sums=('0e05fe94aa6065a65fb1f54b327f6702'
         'fcd57c37372e6afe5b1fae151dd43bc9'
         'b05ba1d796e1ea608a40635bc4f3ec67'
         '740a7718bd341b03d916a13ddbbbe694'
         'db70315bbc8cb886a278ba59d5fd8d57'
         '1a4516d5cdcf5b95b036f4eae2d0c152'
         '4d09535ce379c8acd76160f35d5d6b55'
         '0c09a52fdb88f08c36a8b380f451ce6d')

prepare(){
    cd $srcdir/$pkgbase-$pkgver
    cp $srcdir/archlinux.ini buildconf/archlinux.ini
    #sed -i 's/LIBS .*-lphp5.*/LIBS = []/' plugins/php/uwsgiplugin.py
    for patch in uwsgi_fix_rpath.patch 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

}
build() {
  pushd $srcdir/$pkgbase-$pkgver

  python uwsgiconfig.py --build archlinux
  python2 uwsgiconfig.py --plugin plugins/python archlinux python2
  python2 uwsgiconfig.py --plugin plugins/greenlet archlinux greenlet
  python2 uwsgiconfig.py --plugin plugins/gevent archlinux gevent
}

package_uwsgi() {
  pkgdesc="A fast, self-healing and developer/sysadmin-friendly application container server coded in pure C"
  depends=(python2 libxml2 jansson libyaml systemd) 
  install=uwsgi.install
  cd $srcdir/$pkgbase-$pkgver
  install -Dm755 uwsgi $pkgdir/usr/bin/uwsgi
  install -Dm644 $srcdir/uwsgi@.service $pkgdir/usr/lib/systemd/system/uwsgi@.service
  install -Dm644 $srcdir/uwsgi@.socket $pkgdir/usr/lib/systemd/system/uwsgi@.socket
  install -Dm755 systemd_logger_plugin.so $pkgdir/usr/lib/uwsgi/systemd_logger_plugin.so
  install -Dm644 $srcdir/tmpfilesd $pkgdir/usr/lib/tmpfiles.d/uwsgi.conf
}

package_uwsgi-plugin-common(){
    depends=(uwsgi)
    pkgdesc="Common plugins for uWSGI"
    install -dm755 $pkgdir/usr/bin
    for plugin in cache cgi rpc ugreen; do
        install -Dm755 $pkgbase-$pkgver/${plugin}_plugin.so $pkgdir/usr/lib/uwsgi/${plugin}_plugin.so
        ln -s uwsgi $pkgdir/usr/bin/uwsgi_$plugin
    done
    install -Dm755 $pkgbase-$pkgver/corerouter_plugin.so $pkgdir/usr/lib/uwsgi/

}

package_uwsgi-plugin-rack(){
    depends=(ruby uwsgi-plugin-common)
    pkgdesc="Ruby rack plugin"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/rack_plugin.so $pkgdir/usr/lib/uwsgi/rack_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
    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=(perl uwsgi-plugin-common)
    pkgdesc="Perl psgi plugin"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/psgi_plugin.so $pkgdir/usr/lib/uwsgi/psgi_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}

package_uwsgi-plugin-python2(){
    depends=(uwsgi-plugin-common python2-gevent python2-gevent)
    pkgdesc="Plugin for Python2 support"
    replace=(uswgi-plugin-greenlet)
    cd $srcdir/$pkgbase-$pkgver
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $srcdir/$pkgbase-$pkgver/python2_plugin.so $pkgdir/usr/lib/uwsgi/python2_plugin.so
    install -Dm755 greenlet_plugin.so $pkgdir/usr/lib/uwsgi/greenlet_plugin.so
    install -Dm755 gevent_plugin.so $pkgdir/usr/lib/uwsgi/gevent_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}

package_uwsgi-plugin-python(){
    depends=(python uwsgi-plugin-common)
    pkgdesc="Plugin for Python support"
    install -dm755 $pkgdir/usr/bin
    cd $srcdir/$pkgbase-$pkgver
    install -Dm755 $srcdir/$pkgbase-$pkgver/python_plugin.so $pkgdir/usr/lib/uwsgi/python_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}

package_uwsgi-plugin-nagios(){
    depends=( uwsgi-plugin-common)
    pkgdesc="Plugin for Nagios support"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/nagios_plugin.so $pkgdir/usr/lib/uwsgi/nagios_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}

package_uwsgi-plugin-router(){
    depends=( uwsgi-plugin-common)
    pkgdesc="Plugin for Router support"
    install -dm755 $pkgdir/usr/lib/uwsgi
    install -dm755 $pkgdir/usr/bin
    cd $pkgbase-$pkgver

    for file in router_*_plugin.so fastrouter_plugin.so sslrouter_plugin.so rawrouter_plugin.so; do
        install -Dm755 $file $pkgdir/usr/lib/uwsgi/$file
    done
    install -Dm755 router_basicauth_plugin.so $pkgdir/usr/lib/uwsgi/basicauth_plugin.so
}

package_uwsgi-plugin-admin(){
    depends=( uwsgi-plugin-common)
    pkgdesc="Plugin for Admin support"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/admin_plugin.so $pkgdir/usr/lib/uwsgi/admin_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}

package_uwsgi-plugin-lua51(){
    depends=(lua51 uwsgi-plugin-common)
    pkgdesc="Plugin for Lua support"
    install -dm755 $pkgdir/usr/bin
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/lua_plugin.so $pkgdir/usr/lib/uwsgi/lua_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_lua
}

package_uwsgi-plugin-php(){
    depends=(uwsgi-plugin-common php-embed libyaml jansson)
    replace=(uswgi-plugin-php)
    pkgdesc="Plugin for PHP support"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/php_plugin.so $pkgdir/usr/lib/uwsgi/php_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}

package_uwsgi-plugin-carbon(){
    depends=(uwsgi-plugin-common)
    pkgdesc="Plugin for Carbon support"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/carbon_plugin.so $pkgdir/usr/lib/uwsgi/carbon_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}

package_uwsgi-plugin-rrdtool(){
    depends=(uwsgi-plugin-common rrdtool)
    pkgdesc="Plugin for Rrdtool support"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/rrdtool_plugin.so $pkgdir/usr/lib/uwsgi/rrdtool_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}

package_uwsgi-plugin-erlang(){
    depends=(uwsgi-plugin-common erlang)
    pkgdesc="Plugin for Erlang support"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/erlang_plugin.so $pkgdir/usr/lib/uwsgi/erlang_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}


package_uwsgi-plugin-pam(){
    depends=(uwsgi-plugin-common)
    pkgdesc="Plugin for Pam support"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/pam_plugin.so $pkgdir/usr/lib/uwsgi/pam_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}

package_uwsgi-plugin-jvm(){
    depends=(uwsgi-plugin-common java-environment=7 classpath)
    pkgdesc="Plugin for Jvm support"
    install -dm755 $pkgdir/usr/bin
    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-zergpool(){
    depends=(uwsgi-plugin-common)
    pkgdesc="Plugin for zergpool support"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/zergpool_plugin.so $pkgdir/usr/lib/uwsgi/zergpool_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}

package_uwsgi-plugin-gevent() {
    depends=(uwsgi-plugin-common gevent)
    pkgdesc="Plugin for gevent support"
    install -dm755 $pkgdir/usr/bin
    install -Dm755 $pkgbase-$pkgver/gevent_plugin.so $pkgdir/usr/lib/uwsgi/gevent_plugin.so
    ln -s uwsgi $pkgdir/usr/bin/uwsgi_${pkgname#uwsgi-plugin-}
}
