commit a5f0e22c8a15344b1845a68c40a0cf704296a63eb01cbfca63bee5c0e578942a Author: Ismail Dönmez Date: Mon Sep 10 10:57:08 2012 +0000 Accepting request 133409 from home:jimfunk Web application container server that speaks it's own uwsgi protocol in addition to HTTP. Mainly used in conjunction with Nginx and Python, but supports other servers and languages as well. OBS-URL: https://build.opensuse.org/request/show/133409 OBS-URL: https://build.opensuse.org/package/show/server:http/uwsgi?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/README.openSUSE b/README.openSUSE new file mode 100644 index 0000000..eddcb57 --- /dev/null +++ b/README.openSUSE @@ -0,0 +1,35 @@ +==================== +openSUSE uWSGI Notes +==================== + +Emperor Mode +------------ + +The included init script runs uWSGI in Emperor mode. It will monitor the +/etc/uwsgi/vassals directory for configurations and will automatically load +and restart uWSGI processes when configuration files are placed there or +modified. Some example configurations are provided in the directory. To enable +one, rename it without the .example at the end and edit for your application. + +For more information on Emperor mode, see +http://projects.unbit.it/uwsgi/wiki/Emperor + + +Plugins +------- + +This uWSGI package is fully modular. Some plugins, such as the Python plugin, +are not embedded in the main server binary. + +This means that your application configurations need to specify the plugins it +uses. For example, a Python application will need the following option +specified: + + plugins = python + +Alternatively, uWSGI has a autoload option that will load any plugins when it +encounters options for those plugins in the configuration. To enable that, use +the following in the configuration: + + autoload = 1 + diff --git a/django.ini.example b/django.ini.example new file mode 100644 index 0000000..0455351 --- /dev/null +++ b/django.ini.example @@ -0,0 +1,9 @@ +[uwsgi] +socket = 127.0.0.1:3034 +threads = 40 +master = 1 +autoload = 1 +env = DJANGO_SETTINGS_MODULE=myapp.settings +module = django.core.handlers.wsgi:WSGIHandler() +chdir = /srv/djangoapp001 + diff --git a/opensuse.ini.in b/opensuse.ini.in new file mode 100644 index 0000000..3fd566f --- /dev/null +++ b/opensuse.ini.in @@ -0,0 +1,5 @@ +[uwsgi] +inherit = base +plugin_dir = @@LIBDIR@@/uwsgi +embedded_plugins = null +plugins = @@PLUGINS@@ diff --git a/rails.yml.example b/rails.yml.example new file mode 100644 index 0000000..847b901 --- /dev/null +++ b/rails.yml.example @@ -0,0 +1,10 @@ +uwsgi: + plugins: rack + rack: config.ru + master: 1 + autoload: 1 + processes: 8 + socket: 127.0.0.1:3033 + post-buffering: 4096 + chdir: /srv/railsapp001 + diff --git a/trac.ini.example b/trac.ini.example new file mode 100644 index 0000000..e874475 --- /dev/null +++ b/trac.ini.example @@ -0,0 +1,8 @@ +[uwsgi] +master = true +autoload = true +processes = 2 +module = trac.web.main:dispatch_request +env = TRAC_ENV=/srv/project001 +socket = 127.0.0.1:3032 + diff --git a/uwsgi-1.2.6-plugin_build_path.patch b/uwsgi-1.2.6-plugin_build_path.patch new file mode 100644 index 0000000..c243ae1 --- /dev/null +++ b/uwsgi-1.2.6-plugin_build_path.patch @@ -0,0 +1,11 @@ +--- a/uwsgiconfig.py ++++ b/uwsgiconfig.py +@@ -902,7 +902,7 @@ def build_plugin(path, uc, cflags, ldfla + except: + pass + +- plugin_dest = uc.get('plugin_dir') + '/' + name + '_plugin' ++ plugin_dest = name + '_plugin' + + shared_flag = '-shared' + diff --git a/uwsgi-1.2.6.tar.gz b/uwsgi-1.2.6.tar.gz new file mode 100644 index 0000000..c78f9d6 --- /dev/null +++ b/uwsgi-1.2.6.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49d2fbedbd42b3c95a684f7ddf43302f881297f3614c7edd0af4a4c44e2032a5 +size 515869 diff --git a/uwsgi.changes b/uwsgi.changes new file mode 100644 index 0000000..b325230 --- /dev/null +++ b/uwsgi.changes @@ -0,0 +1,26 @@ +------------------------------------------------------------------- +Sun Sep 9 19:11:43 UTC 2012 - jfunk@funktronics.ca + +- Don't attempt to build Erlang plugins on openSUSE < 12.2 +- Don't attempt to build Greenlet plugin on openSUSE < 12.1 + +------------------------------------------------------------------- +Sun Sep 9 18:56:43 UTC 2012 - jfunk@funktronics.ca + +- Don't attempt to build Ruby 1.9 features on openSUSE < 12.2 + +------------------------------------------------------------------- +Sun Sep 9 00:19:40 UTC 2012 - jfunk@funktronics.ca + +- Fix JVM build on i586 + +------------------------------------------------------------------- +Sat Sep 8 23:17:30 UTC 2012 - jfunk@funktronics.ca + +- Fix lua requirement for openSUSE < 12.2 + +------------------------------------------------------------------- +Sat Sep 8 21:41:39 UTC 2012 - jfunk@funktronics.ca + +- Initial release + diff --git a/uwsgi.init b/uwsgi.init new file mode 100644 index 0000000..813581d --- /dev/null +++ b/uwsgi.init @@ -0,0 +1,89 @@ +#!/bin/sh +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# Author: James Oakley +# +# /etc/init.d/uwsgi +# and its symbolic link +# /(usr/)sbin/rcuwsgi +# +# LSB compatible service control script; see http://www.linuxbase.org/spec/ +# +### BEGIN INIT INFO +# Provides: uwsgi +# Required-Start: $syslog $remote_fs +# Should-Start: $time ypbind smtp +# Required-Stop: $syslog $remote_fs +# Should-Stop: ypbind smtp +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Application Container Server for Networked/Clustered Web Applications +# Description: Application Container Server for Networked/Clustered Web Applications +### END INIT INFO + +# Check for missing binaries (stale symlinks should not happen) +UWSGI_BIN=/usr/sbin/uwsgi +test -x $UWSGI_BIN || { echo "$UWSGI_BIN not installed"; + if [ "$1" = "stop" ]; then exit 0; + else exit 5; fi; } + +UWSGI_VASSALS=/etc/uwsgi/vassals + +. /etc/rc.status + +rc_reset + +case "$1" in + start) + echo -n "Starting uWSGI " + /sbin/startproc $UWSGI_BIN --autoload --emperor $UWSGI_VASSALS + rc_status -v + ;; + stop) + echo -n "Shutting down uWSGI " + /sbin/killproc $UWSGI_BIN + rc_status -v + ;; + try-restart|condrestart) + if test "$1" = "condrestart"; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if test $? = 0; then + $0 restart + else + rc_reset + fi + rc_status + ;; + restart) + $0 stop + $0 start + rc_status + ;; + force-reload) + echo -n "Reload service uWSGI " + /sbin/killproc -HUP $UWSGI_BIN + rc_status -v + ;; + reload) + echo -n "Reload service uWSGI " + /sbin/killproc -HUP $UWSGI_BIN + rc_status -v + ;; + status) + echo -n "Checking for service uWSGI " + /sbin/checkproc $UWSGI_BIN + rc_status -v + ;; + probe) + echo -n "uWSGI does not support probe " + rc_failed 3 + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" + exit 1 + ;; +esac +rc_exit diff --git a/uwsgi.spec b/uwsgi.spec new file mode 100644 index 0000000..3fe7a22 --- /dev/null +++ b/uwsgi.spec @@ -0,0 +1,633 @@ +# +# spec file for package uwsgi +# +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ + + +Name: uwsgi +Version: 1.2.6 +Release: 0 +License: GPL-2.0+ +Summary: Application Container Server for Networked/Clustered Web Applications +Url: http://projects.unbit.it/uwsgi/wiki +Group: Productivity/Networking/Web/Servers +Source: http://projects.unbit.it/downloads/uwsgi-%{version}.tar.gz +Source1: opensuse.ini.in +Source2: uwsgi.init +Source3: django.ini.example +Source4: rails.yml.example +Source5: trac.ini.example +Source6: werkzeug.xml.example +Source7: README.openSUSE +# PATCH-FIX-OPENSUSE uwsgi-1.2.6-plugin_build_path.patch - Don't attempt to install plugins to target dest during build +Patch0: uwsgi-1.2.6-plugin_build_path.patch +BuildRequires: gcc-c++ +BuildRequires: java-devel +BuildRequires: libxml2-devel +BuildRequires: pam-devel +BuildRequires: postgresql-devel +BuildRequires: python-devel +BuildRequires: ruby-devel +%if 0%{?suse_version} && 0%{?suse_version} > 1210 +BuildRequires: lua51-devel +BuildRequires: erlang +%else +BuildRequires: lua-devel +%endif +%if 0%{?suse_version} && 0%{?suse_version} > 1140 +BuildRequires: python-greenlet-devel +%endif +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%if 0%{?suse_version} && 0%{?suse_version} <= 1110 +%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} +%endif + +%description +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +Born as a WSGI-only server, over time it has evolved in a complete stack for +networked/clustered web applications, implementing message/object passing, +caching, RPC and process management. + +It uses the uwsgi (all lowercase, already included by default in the Nginx and +Cherokee releases) protocol for all the networking/interprocess communications, +but it can speak other protocols as well (http, fastcgi, mongrel2...) + +It can be run in preforking mode, threaded, asynchronous/evented and supports +various forms of green threads/coroutines (such as uGreen, Greenlet, Stackless, +Gevent and Fiber). + +Sysadmins will love it as it can be configured via several methods: command +line, environment variables, XML, .ini, yaml, json, sqlite3 database and via +LDAP. + +On top of all this, it is designed to be fully modular. This means that +different plugins can be used in order to add compatibility with tons of +different technology on top of the same core. + + +%package carbon +Summary: Carbon Plugin for Graphite Integration for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description carbon +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains the carbon plugin for integration with the Graphite +realtime graphing server. + +See http://projects.unbit.it/uwsgi/wiki/Carbon for more info. + + +%package cgi +Summary: CGI Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description cgi +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains the CGI plugin to support legacy CGI scripts. + +See http://projects.unbit.it/uwsgi/wiki/CGI for more info. + + +%package fastrouter +Summary: Fastrouter Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description fastrouter +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains the fastrouter plugin for using uWSGI as a +proxy/load-balancer/router speaking the uwsgi protocol. + +See http://projects.unbit.it/uwsgi/wiki/FastRouter for more info. + + +%package gevent +Summary: Gevent Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} +Requires: %{name}-python = %{version} + +%description gevent +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for Python Gevent, which is a non-blocking +networking framework. + +See http://projects.unbit.it/uwsgi/wiki/Gevent for more info. + + +%package graylog2 +Summary: Graylog2 Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description graylog2 +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for logging to Graylog2 log servers. + + +%package http +Summary: HTTP Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description http +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for using uWSGI as a HTTP server. + +See http://projects.unbit.it/uwsgi/wiki/HTTPserver for more info. + + +%package jvm +Summary: JVM Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description jvm +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for embedding a Java virtual machine in uWSGI. + +See http://projects.unbit.it/uwsgi/wiki/JVM for more info. + + +%package jwsgi +Summary: Java WSGI Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} +Requires: %{name}-jvm = %{version} + +%description jwsgi +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for WSGI-style Java applications. + +See http://projects.unbit.it/uwsgi/wiki/jwsgi for more info. + + +%package logsocket +Summary: Socket Logging Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description logsocket +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains the logsocket plugin for logging to UNIX and UDP sockets. + +See http://projects.unbit.it/uwsgi/wiki/SocketLogging for more info. + + +%package lua +Summary: Lua Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description lua +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for Lua applications via the wsapi interface. + +See http://projects.unbit.it/uwsgi/wiki/Lua for more info. + + +%package nagios +Summary: Nagios Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description nagios +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for Nagios monitoring of the uWSGI server. + +See http://projects.unbit.it/uwsgi/wiki/Nagios for more info. + + +%package pam +Summary: PAM Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description pam +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for PAM authentication. + + +%package probepg +Summary: PostgreSQL Probe Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description probepg +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for probing PostgreSQL servers. + + +%package psgi +Summary: PSGI Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description psgi +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains the PSGI plugin for running Perl applications that +support the PSGI protocol. + +See http://projects.unbit.it/uwsgi/wiki/PSGI for more info. + + +%package python +Summary: Python Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description python +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for Python applications via the WSGI protocol. + +See http://projects.unbit.it/uwsgi/wiki/Quickstart for more info. + + +%package ruby +Summary: Ruby Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description ruby +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for Ruby applications. + +See http://projects.unbit.it/uwsgi/wiki/Rack for more info. + + +%package redislog +Summary: Redis Logging Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description redislog +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for logging to a Redis server. + + +%package rrdtool +Summary: RRDTool Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description rrdtool +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for saving statistics in RRD bastabase files. + + +%package rsyslog +Summary: Rsyslog Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description rsyslog +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for logging to Rsyslog servers. + + +%package syslog +Summary: Syslog Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description syslog +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for logging to syslog servers. + + +%package ugreen +Summary: Green Threads Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} +Requires: %{name}-python = %{version} + +%description ugreen +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for green threads in Python applications. + +See http://projects.unbit.it/uwsgi/wiki/uGreen for more info. + + +%package zergpool +Summary: Zerg Mode Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description zergpool +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for Zerg mode, which allows for dynamically added +workers under load. + +See http://projects.unbit.it/uwsgi/wiki/ZergMode for more info. + + +%if 0%{?suse_version} && 0%{?suse_version} > 1210 +%package fiber +Summary: Ruby Fibers Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} +Requires: %{name}-ruby = %{version} + +%description fiber +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for Ruby fibers. Fibers are a form of coroutine, +useful for implementing cooperative multitasking in your apps. + +See http://projects.unbit.it/uwsgi/wiki/FiberLoop for more info. + + +%package erlang +Summary: Erlang Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} + +%description erlang +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for uWSGI to act as an Erlang C-Node and exchange +messages and rpc with Erlang nodes. + +See http://projects.unbit.it/uwsgi/wiki/ErlangIntegration for more info. + + +%package pyerl +Summary: Python-Erlang Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} +Requires: %{name}-erlang = %{version} +Requires: %{name}-python = %{version} + +%description pyerl +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains the pyerl module for accessing Erlang functionality to +Python applications. + +See http://projects.unbit.it/uwsgi/wiki/ErlangIntegration for more info. +%endif + + +%if 0%{?suse_version} && 0%{?suse_version} > 1140 +%package greenlet +Summary: Greenlet Plugin for uWSGI +Group: Productivity/Networking/Web/Servers +Requires: %{name} = %{version} +Requires: %{name}-python = %{version} + +%description greenlet +uWSGI is a fast, self-healing and developer/sysadmin-friendly application +container server coded in pure C. + +This package contains support for the Python Greenlet non-blocking network +framework. + +See http://projects.unbit.it/uwsgi/wiki/AsyncSupport for more info. +%endif + + +%prep +%setup -q -n uwsgi-%{version} +%patch0 -p1 +# Generate a config that builds all plugins except for examples and stuff we +# can't satisfy the requirements for +excluded_plugins="cheaper_backlog2 cplusplus dummy example mono pyuwsgi stackless pypy php" +%if 0%{?suse_version} && 0%{?suse_version} <= 1210 +excluded_plugins="$excluded_plugins fiber ruby19 erlang pyerl" +%endif +%if 0%{?suse_version} && 0%{?suse_version} <= 1140 +excluded_plugins="$excluded_plugins greenlet" +%endif +plugins=$(python -c "import sys, os; print ', '.join([p for p in os.listdir('plugins') if p not in sys.argv[1:]])" $excluded_plugins) +sed -e "s#@@LIBDIR@@#%{_libdir}#" -e "s#@@PLUGINS@@#$plugins#" %{SOURCE1} > buildconf/opensuse.ini +# README.openSUSE +cp %{SOURCE7} . + +%build +# Find correct location for libjvm +jvmlib=$(dirname $(find %{_jvmdir}/java/jre/lib -name "libjvm.so" | grep server)) +export CFLAGS="%{optflags} -I$(echo %{_libdir}/erlang/lib/erl_interface-*/include) -I%{_jvmdir}/java/include/ -I%{_jvmdir}/java/include/linux -L$jvmlib" +python uwsgiconfig.py --build opensuse + +%install +install -D -m 0755 uwsgi %{buildroot}%{_sbindir}/uwsgi +install -d -m 0755 %{buildroot}%{_libdir}/uwsgi +install -m 0755 *_plugin.so %{buildroot}%{_libdir}/uwsgi +install -D -m 0755 %{SOURCE2} %{buildroot}%{_sysconfdir}/init.d/uwsgi +ln -sf %{_sysconfdir}/init.d/uwsgi %{buildroot}%{_sbindir}/rcuwsgi +install -d -m 0755 %{buildroot}%{_sysconfdir}/uwsgi/vassals +install -m 0644 %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{buildroot}%{_sysconfdir}/uwsgi/vassals +install -m 0644 vassals/broodlord.ini %{buildroot}%{_sysconfdir}/uwsgi/vassals/broodlord.ini.example +install -m 0644 vassals/cc.ini %{buildroot}%{_sysconfdir}/uwsgi/vassals/cc.ini.example +install -m 0644 vassals/multi.xml %{buildroot}%{_sysconfdir}/uwsgi/vassals/multi.xml.example + +%post +%fillup_and_insserv uwsgi + +%preun +%stop_on_removal uwsgi + +%postun +%restart_on_update uwsgi +%insserv_cleanup + +%files +%defattr(-,root,root,-) +%doc CONTRIBUTORS ChangeLog LICENSE README uwsgi_API.txt README.openSUSE +%{_sbindir}/uwsgi +%dir %{_sysconfdir}/uwsgi/ +%dir %{_sysconfdir}/uwsgi/vassals +%{_sysconfdir}/uwsgi/vassals/* +%dir %{_libdir}/uwsgi +%config %{_sysconfdir}/init.d/uwsgi +%{_sbindir}/rcuwsgi +%{_libdir}/uwsgi/admin_plugin.so +%{_libdir}/uwsgi/cache_plugin.so +%{_libdir}/uwsgi/echo_plugin.so +%{_libdir}/uwsgi/notfound_plugin.so +%{_libdir}/uwsgi/ping_plugin.so +%{_libdir}/uwsgi/probeconnect_plugin.so +%{_libdir}/uwsgi/router_basicauth_plugin.so +%{_libdir}/uwsgi/router_redirect_plugin.so +%{_libdir}/uwsgi/router_uwsgi_plugin.so +%{_libdir}/uwsgi/rpc_plugin.so +%{_libdir}/uwsgi/signal_plugin.so +%{_libdir}/uwsgi/spooler_plugin.so +%{_libdir}/uwsgi/symcall_plugin.so + +%files carbon +%defattr(-,root,root,-) +%{_libdir}/uwsgi/carbon_plugin.so + +%files cgi +%defattr(-,root,root,-) +%{_libdir}/uwsgi/cgi_plugin.so + +%files fastrouter +%defattr(-,root,root,-) +%{_libdir}/uwsgi/fastrouter_plugin.so + +%files gevent +%defattr(-,root,root,-) +%{_libdir}/uwsgi/gevent_plugin.so + +%files graylog2 +%defattr(-,root,root,-) +%{_libdir}/uwsgi/graylog2_plugin.so + +%files http +%defattr(-,root,root,-) +%{_libdir}/uwsgi/http_plugin.so + +%files jvm +%defattr(-,root,root,-) +%{_libdir}/uwsgi/jvm_plugin.so + +%files jwsgi +%defattr(-,root,root,-) +%{_libdir}/uwsgi/jwsgi_plugin.so + +%files logsocket +%defattr(-,root,root,-) +%{_libdir}/uwsgi/logsocket_plugin.so + +%files lua +%defattr(-,root,root,-) +%{_libdir}/uwsgi/lua_plugin.so + +%files nagios +%defattr(-,root,root,-) +%{_libdir}/uwsgi/nagios_plugin.so + +%files pam +%defattr(-,root,root,-) +%{_libdir}/uwsgi/pam_plugin.so + +%files probepg +%defattr(-,root,root,-) +%{_libdir}/uwsgi/probepg_plugin.so + +%files psgi +%defattr(-,root,root,-) +%{_libdir}/uwsgi/psgi_plugin.so + +%files python +%defattr(-,root,root,-) +%{_libdir}/uwsgi/python_plugin.so + +%files ruby +%defattr(-,root,root,-) +%{_libdir}/uwsgi/rack_plugin.so +%if 0%{?suse_version} && 0%{?suse_version} > 1210 +%{_libdir}/uwsgi/ruby19_plugin.so +%endif + +%files redislog +%defattr(-,root,root,-) +%{_libdir}/uwsgi/redislog_plugin.so + +%files rrdtool +%defattr(-,root,root,-) +%{_libdir}/uwsgi/rrdtool_plugin.so + +%files rsyslog +%defattr(-,root,root,-) +%{_libdir}/uwsgi/rsyslog_plugin.so + +%files syslog +%defattr(-,root,root,-) +%{_libdir}/uwsgi/syslog_plugin.so + +%files ugreen +%defattr(-,root,root,-) +%{_libdir}/uwsgi/ugreen_plugin.so + +%files zergpool +%defattr(-,root,root,-) +%{_libdir}/uwsgi/zergpool_plugin.so + +%if 0%{?suse_version} && 0%{?suse_version} > 1210 +%files fiber +%defattr(-,root,root,-) +%{_libdir}/uwsgi/fiber_plugin.so + +%files erlang +%defattr(-,root,root,-) +%{_libdir}/uwsgi/erlang_plugin.so + +%files pyerl +%defattr(-,root,root,-) +%{_libdir}/uwsgi/pyerl_plugin.so +%endif + +%if 0%{?suse_version} && 0%{?suse_version} > 1140 +%files greenlet +%defattr(-,root,root,-) +%{_libdir}/uwsgi/greenlet_plugin.so +%endif + + +%changelog diff --git a/werkzeug.xml.example b/werkzeug.xml.example new file mode 100644 index 0000000..645cc3d --- /dev/null +++ b/werkzeug.xml.example @@ -0,0 +1,7 @@ + + werkzeug.testapp:test_app + + 4 + 127.0.0.1:3031 + +