diff options
author | root <root@rshg054.dnsready.net> | 2013-08-13 01:33:19 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2013-08-13 01:33:19 -0700 |
commit | 7a65a910b77ad191d69881098c47f9b0c852d92e (patch) | |
tree | 9564e611af1442f8952a8cbddb3b0ad25ed71aab /community/uwsgi | |
parent | 60da6abff6c9577a783d72865f11de7a585e912e (diff) |
Tue Aug 13 01:31:08 PDT 2013
Diffstat (limited to 'community/uwsgi')
-rw-r--r-- | community/uwsgi/PKGBUILD | 226 | ||||
-rw-r--r-- | community/uwsgi/archlinux.ini | 17 | ||||
-rw-r--r-- | community/uwsgi/tmpfilesd | 1 | ||||
-rw-r--r-- | community/uwsgi/uwsgi.install | 12 | ||||
-rw-r--r-- | community/uwsgi/uwsgi@.service | 13 | ||||
-rw-r--r-- | community/uwsgi/uwsgi@.socket | 9 | ||||
-rw-r--r-- | community/uwsgi/uwsgi_fix_rpath.patch | 66 | ||||
-rw-r--r-- | community/uwsgi/uwsgi_ruby20_compatibility.patch | 42 | ||||
-rw-r--r-- | community/uwsgi/uwsgi_trick_chroot.patch | 16 |
9 files changed, 402 insertions, 0 deletions
diff --git a/community/uwsgi/PKGBUILD b/community/uwsgi/PKGBUILD new file mode 100644 index 000000000..9ccc64750 --- /dev/null +++ b/community/uwsgi/PKGBUILD @@ -0,0 +1,226 @@ +# $Id: PKGBUILD 95003 2013-08-03 02:02:14Z 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-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.14 +pkgrel=3 +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=('ec9cf333534604f17ef4e24051d9d65d' + '899e61d6957bec57e148b92dcb1bec6d' + 'b05ba1d796e1ea608a40635bc4f3ec67' + '0b79320fbae92715c96086cf51e60bc8' + '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 +} + +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-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 -Dm644 $file $pkgdir/usr/lib/uwsgi/$file + done +} + +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-} +} diff --git a/community/uwsgi/archlinux.ini b/community/uwsgi/archlinux.ini new file mode 100644 index 000000000..4512b301a --- /dev/null +++ b/community/uwsgi/archlinux.ini @@ -0,0 +1,17 @@ +[uwsgi] +inherit = core +bin_name = uwsgi +xml = true +yaml = true +json = true +pcre = true +routing = true +debug = false +sqlite3 = true +ssl = true +xml_implementation = libxml2 +yaml_implementation = auto +malloc_implementation = libc +embedded_plugins = echo, ping, http, corerouter +plugin_dir = /usr/lib/uwsgi +plugins = rack, rbthreads, fiber, python, nagios, admin, lua, cache, cgi, rpc, ugreen, carbon, rrdtool, erlang, pam, systemd_logger, php, fastrouter, router_uwsgi, router_redirect, router_basicauth, zergpool, router_rewrite, router_http, router_cache, rawrouter, router_static, sslrouter diff --git a/community/uwsgi/tmpfilesd b/community/uwsgi/tmpfilesd new file mode 100644 index 000000000..8609b38f0 --- /dev/null +++ b/community/uwsgi/tmpfilesd @@ -0,0 +1 @@ +d /run/uwsgi 0755 - - - - diff --git a/community/uwsgi/uwsgi.install b/community/uwsgi/uwsgi.install new file mode 100644 index 000000000..0002ec42e --- /dev/null +++ b/community/uwsgi/uwsgi.install @@ -0,0 +1,12 @@ +post_install(){ + systemd-tmpfiles --create /usr/lib/tmpfiles.d/uwsgi.conf +} +post_update(){ + echo "To use uwsgi@.socket and uwsgi@.service:" + echo "\tAll you need to do is put the name of your .ini file after the @ sign" + echo "\tYou can use either the .socket or .service, but if you use the .socket" + echo "\tuwsgi@<sameinifile>.service won't be started until the first time your http" + echo "\tserver touches the socket. You will also not need to specify the socket in" + echo "\tthe .ini file or in the .service file. Systemd will handle listening to" + echo "\tthe socket for you." +} diff --git a/community/uwsgi/uwsgi@.service b/community/uwsgi/uwsgi@.service new file mode 100644 index 000000000..c9e9789a0 --- /dev/null +++ b/community/uwsgi/uwsgi@.service @@ -0,0 +1,13 @@ +[Unit] +Description=uWSGI Emperor +After=syslog.target + +[Service] +ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/%I.ini +Restart=always +Type=notify +StandardError=syslog +NotifyAccess=main + +[Install] +WantedBy=multi-user.target diff --git a/community/uwsgi/uwsgi@.socket b/community/uwsgi/uwsgi@.socket new file mode 100644 index 000000000..012b33a7a --- /dev/null +++ b/community/uwsgi/uwsgi@.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Socket for uWSGI Cgit + +[Socket] +# Change this to your uwsgi application port or unix socket location +ListenStream=/run/uwsgi/%I.sock + +[Install] +WantedBy=sockets.target diff --git a/community/uwsgi/uwsgi_fix_rpath.patch b/community/uwsgi/uwsgi_fix_rpath.patch new file mode 100644 index 000000000..3de66a771 --- /dev/null +++ b/community/uwsgi/uwsgi_fix_rpath.patch @@ -0,0 +1,66 @@ +diff --git a/plugins/jvm/uwsgiplugin.py b/plugins/jvm/uwsgiplugin.py +index ac7eb3e..0911288 100644 +--- a/plugins/jvm/uwsgiplugin.py ++++ b/plugins/jvm/uwsgiplugin.py +@@ -59,11 +59,6 @@ if "-framework JavaVM" in JVM_LIBPATH: + + GCC_LIST = ['jvm_plugin'] + +-if 'LD_RUN_PATH' in os.environ: +- os.environ['LD_RUN_PATH'] += ':' + JVM_LIBPATH[0][2:] +-else: +- os.environ['LD_RUN_PATH'] = JVM_LIBPATH[0][2:] +- + def post_build(config): + if os.system("javac %s/plugins/jvm/uwsgi.java" % os.getcwd()) != 0: + os._exit(1) +diff --git a/plugins/php/uwsgiplugin.py b/plugins/php/uwsgiplugin.py +index fb9e5bb..fd12c91 100644 +--- a/plugins/php/uwsgiplugin.py ++++ b/plugins/php/uwsgiplugin.py +@@ -22,7 +22,6 @@ CFLAGS = [os.popen(PHPPATH + ' --includes').read().rstrip(), '-Wno-error=sign-co + LDFLAGS = os.popen(PHPPATH + ' --ldflags').read().rstrip().split() + if ld_run_path: + LDFLAGS.append('-L%s' % ld_run_path) +- os.environ['LD_RUN_PATH'] = ld_run_path + + LIBS = [os.popen(PHPPATH + ' --libs').read().rstrip(), '-lphp5'] + +diff --git a/plugins/python/uwsgiplugin.py b/plugins/python/uwsgiplugin.py +index c4f03e1..8d4b2e0 100644 +--- a/plugins/python/uwsgiplugin.py ++++ b/plugins/python/uwsgiplugin.py +@@ -45,10 +45,8 @@ if not 'UWSGI_PYTHON_NOLIB' in os.environ: + else: + try: + LDFLAGS.append("-L%s" % sysconfig.get_config_var('LIBDIR')) +- os.environ['LD_RUN_PATH'] = "%s" % (sysconfig.get_config_var('LIBDIR')) + except: + LDFLAGS.append("-L%s/lib" % sysconfig.PREFIX) +- os.environ['LD_RUN_PATH'] = "%s/lib" % sysconfig.PREFIX + + LIBS.append('-lpython%s' % get_python_version()) + else: +diff --git a/plugins/rack/uwsgiplugin.py b/plugins/rack/uwsgiplugin.py +index 8dee214..2375bc9 100644 +--- a/plugins/rack/uwsgiplugin.py ++++ b/plugins/rack/uwsgiplugin.py +@@ -44,7 +44,6 @@ LIBS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print %s::CONFIG['LIBS']\"" + + if has_shared == 'yes': + LDFLAGS.append('-L' + libpath ) +- os.environ['LD_RUN_PATH'] = libpath + LIBS.append(os.popen(RUBYPATH + " -e \"require 'rbconfig';print '-l' + %s::CONFIG['RUBY_SO_NAME']\"" % rbconfig).read().rstrip()) + else: + GCC_LIST.append("%s/%s" % (libpath, os.popen(RUBYPATH + " -e \"require 'rbconfig';print %s::CONFIG['LIBRUBY_A']\"" % rbconfig).read().rstrip())) +diff --git a/plugins/ruby19/uwsgiplugin.py b/plugins/ruby19/uwsgiplugin.py +index ecea48d..4f35984 100644 +--- a/plugins/ruby19/uwsgiplugin.py ++++ b/plugins/ruby19/uwsgiplugin.py +@@ -40,6 +40,5 @@ LDFLAGS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print %s::CONFIG['LDFLAG + + libpath = os.popen(RUBYPATH + " -e \"require 'rbconfig';print %s::CONFIG['libdir']\"" % rbconfig).read().rstrip() + LDFLAGS.append('-L' + libpath ) +-os.environ['LD_RUN_PATH'] = libpath + LIBS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print '-l' + %s::CONFIG['RUBY_SO_NAME']\"" % rbconfig).read().rstrip().split() + diff --git a/community/uwsgi/uwsgi_ruby20_compatibility.patch b/community/uwsgi/uwsgi_ruby20_compatibility.patch new file mode 100644 index 000000000..b4bf20d38 --- /dev/null +++ b/community/uwsgi/uwsgi_ruby20_compatibility.patch @@ -0,0 +1,42 @@ +diff --git a/plugins/rack/uwsgiplugin.py b/plugins/rack/uwsgiplugin.py +index 2375bc9..b908417 100644 +--- a/plugins/rack/uwsgiplugin.py ++++ b/plugins/rack/uwsgiplugin.py +@@ -10,13 +10,14 @@ except: + rbconfig = 'Config' + + version = os.popen(RUBYPATH + " -e \"print RUBY_VERSION\"").read().rstrip() +-v = version.split('.') + + GCC_LIST = ['rack_plugin', 'rack_api'] + +-if (v[0] == '1' and v[1] == '9') or v[0] >= '2': ++if version >= '1.9': + CFLAGS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print RbConfig::CONFIG['CFLAGS']\"").read().rstrip().split() + CFLAGS.append('-DRUBY19') ++ if version >= '2.0': ++ CFLAGS.append('-DRUBY20') + CFLAGS.append('-Wno-unused-parameter') + rbconfig = 'RbConfig' + else: +diff --git a/plugins/ruby19/uwsgiplugin.py b/plugins/ruby19/uwsgiplugin.py +index 4f35984..156018f 100644 +--- a/plugins/ruby19/uwsgiplugin.py ++++ b/plugins/ruby19/uwsgiplugin.py +@@ -10,13 +10,14 @@ except: + rbconfig = 'Config' + + version = os.popen(RUBYPATH + " -e \"print RUBY_VERSION\"").read().rstrip() +-v = version.split('.') + + GCC_LIST = ['../rack/rack_plugin', '../rack/rack_api'] + +-if v[0] == '1' and v[1] == '9': ++if version >= '1.9': + CFLAGS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print RbConfig::CONFIG['CFLAGS']\"").read().rstrip().split() + CFLAGS.append('-DRUBY19') ++ if version >= '2.0': ++ CFLAGS.append('-DRUBY20') + CFLAGS.append('-Wno-unused-parameter') + rbconfig = 'RbConfig' + else: diff --git a/community/uwsgi/uwsgi_trick_chroot.patch b/community/uwsgi/uwsgi_trick_chroot.patch new file mode 100644 index 000000000..3bfb1ac22 --- /dev/null +++ b/community/uwsgi/uwsgi_trick_chroot.patch @@ -0,0 +1,16 @@ +diff --git a/uwsgiconfig.py b/uwsgiconfig.py +index e447123..4d55f2c 100644 +--- a/uwsgiconfig.py ++++ b/uwsgiconfig.py +@@ -1129,10 +1129,7 @@ def build_plugin(path, uc, cflags, ldflags, libs, name = None): + except: + pass + +- if uc: +- plugin_dest = uc.get('plugin_dir') + '/' + name + '_plugin' +- else: +- plugin_dest = name + '_plugin' ++ plugin_dest = name + '_plugin' + + shared_flag = '-shared' + |