f11b066a3b
* This release starts the 'hardening' cycle for uWSGI 2.0 (scheduled for the end of december 2013). The metrics subsystem was the last piece missing and this version (after 1 year of analysis) finally includes it. During the following 2 months we will start deprecating features or plugins that got no-interest, are known to be broken or are simply superseed by more modern/advanced ones. * Bugfixes * completely skip cgroups initialization when non-root * tons of post-static_analysis fixes by Riccardo Magliocchetti * fixed the greenlet plugin reference counting * avoid kevent storm for stats pusher thread * fixed rbtimers math * both 'cache' and 'file' routers got a 'no_content_length' key option to avoid setting the Content-Length header * the PyPy plugin automatically enables threads/GIL * manage dot_segments in HTTP parser * improved srand() usage * New features * The Metrics subsystem. This was the last piece missing before uWSGI 2.0. The Metrics subsystem allows you to store "numbers" related to monitoring, graphing and quality checks and exports them in various ways * The Tornado loop engine. While working on nodejs integration we realized that contrary to what we used to believe, Tornado (an asynchronous, callback based module for python) is usable in uWSGI. * The 'puwsgi' protocol. A "persistent" (keep-alive) version of the 'uwsgi' parser has been added named 'puwsgi' (persistent uwsgi). * --vassal-set. You can tell the Emperor to pass specific options to every vassal using the --set facility * The 'template' transformation. This is a transformation allowing you to OBS-URL: https://build.opensuse.org/package/show/server:http/uwsgi?expand=0&rev=27
770 lines
24 KiB
RPMSpec
770 lines
24 KiB
RPMSpec
#
|
|
# spec file for package uwsgi
|
|
#
|
|
# Copyright (c) 2013 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.9.19
|
|
Release: 0
|
|
Summary: Application Container Server for Networked/Clustered Web Applications
|
|
License: GPL-2.0-with-GCC-exception
|
|
Group: Productivity/Networking/Web/Servers
|
|
Url: http://projects.unbit.it/uwsgi/wiki
|
|
Source: http://projects.unbit.it/downloads/uwsgi-%{version}.tar.gz
|
|
Source1: opensuse.ini.in
|
|
Source2: uwsgi.service
|
|
Source3: django.ini.example
|
|
Source4: rails.yml.example
|
|
Source5: trac.ini.example
|
|
Source6: werkzeug.xml.example
|
|
Source7: README.openSUSE
|
|
Source8: uwsgi.ini
|
|
# PATCH-FIX-OPENSUSE uwsgi-1.9.17-plugin_build_path.patch - Don't attempt to install plugins to target dest during build
|
|
Patch0: uwsgi-1.9.17-plugin_build_path.patch
|
|
# PATCH-FIX-OPENSUSE uwsgi-1.9.17-no-LD_RUN_PATH.patch - Disable invalid rpath in plugins
|
|
Patch1: uwsgi-1.9.17-no-LD_RUN_PATH.patch
|
|
# PATCH-FIX-OPENSUSE uwsgi-1.9.13-objc_gc-no-fobjc-gc.patch - No -fobjc-gc in CFLAGS, which is incorrect in GNU
|
|
Patch2: uwsgi-1.9.13-objc_gc-no-fobjc-gc.patch
|
|
# PATCH-FIX-OPENSUSE uwsgi-1.9.11-systemd_logger-old_systemd.patch - Older systemd in 12.2 does not implicity include syslog.h
|
|
Patch3: uwsgi-1.9.11-systemd_logger-old_systemd.patch
|
|
# PATCH-FIX-OPENSUSE uwsgi-1.9.13-emperor_pg-Wformat.patch - gcc complains about lack of -Wformat with -Wformat-security from pg_config
|
|
Patch4: uwsgi-1.9.13-emperor_pg-Wformat.patch
|
|
%define apache_branch %(rpm -q --qf %%{version} apache2 | grep -E -o "2\\.[0-9]+")
|
|
%if "%{apache_branch}" == "2.4"
|
|
%define apxs %{_bindir}/apxs2
|
|
%else
|
|
%define apxs %{_sbindir}/apxs2
|
|
%endif
|
|
%define apache_libexecdir %(%{apxs} -q LIBEXECDIR)
|
|
BuildRequires: apache2-devel
|
|
%if 0%{?suse_version} > 1210
|
|
BuildRequires: erlang
|
|
%endif
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: gcc-objc
|
|
%if 0%{?suse_version} > 1220
|
|
BuildRequires: glusterfs-devel
|
|
%endif
|
|
#BuildRequires: go
|
|
BuildRequires: java-devel
|
|
#BuildRequires: krb5-devel
|
|
BuildRequires: libGeoIP-devel
|
|
BuildRequires: libattr-devel
|
|
BuildRequires: libcap-devel
|
|
BuildRequires: libcurl-devel
|
|
BuildRequires: libffi-devel
|
|
%if 0%{?suse_version} > 1210
|
|
BuildRequires: libjansson-devel
|
|
%endif
|
|
#BuildRequires: libmono-2_0-devel
|
|
BuildRequires: libuuid-devel
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: libxslt-devel
|
|
BuildRequires: libyaml-devel
|
|
%if 0%{?suse_version} > 1210
|
|
BuildRequires: lua51-devel
|
|
%else
|
|
BuildRequires: lua-devel
|
|
%endif
|
|
#BuildRequires: mono-web
|
|
BuildRequires: openldap2-devel
|
|
BuildRequires: openssl-devel
|
|
BuildRequires: pam-devel
|
|
BuildRequires: pcre-devel
|
|
#BuildRequires: php5-devel
|
|
BuildRequires: pkg-config
|
|
BuildRequires: postgresql-devel
|
|
BuildRequires: python-devel
|
|
BuildRequires: python-greenlet-devel
|
|
%if 0%{?suse_version} > 1210
|
|
BuildRequires: ruby19-devel
|
|
%endif
|
|
BuildRequires: sqlite3-devel
|
|
%if 0%{?suse_version} > 1210
|
|
BuildRequires: systemd-devel
|
|
%else
|
|
BuildRequires: systemd
|
|
%endif
|
|
BuildRequires: tcpd-devel
|
|
%ifarch %{ix86} x86_64 %{arm}
|
|
%if 0%{?suse_version} < 1310
|
|
BuildRequires: v8-devel
|
|
%endif
|
|
%endif
|
|
BuildRequires: zeromq-devel
|
|
BuildRequires: zlib-devel
|
|
%{?systemd_requires}
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
Provides: uwsgi-carbon = %{version}
|
|
Obsoletes: uwsgi-carbon < 1.9.11
|
|
Provides: uwsgi-cgi = %{version}
|
|
Obsoletes: uwsgi-cgi < 1.9.11
|
|
Provides: uwsgi-fastrouter = %{version}
|
|
Obsoletes: uwsgi-fastrouter < 1.9.11
|
|
Provides: uwsgi-graylog2 = %{version}
|
|
Obsoletes: uwsgi-graylog2 < 1.9.11
|
|
Provides: uwsgi-http = %{version}
|
|
Obsoletes: uwsgi-http < 1.9.11
|
|
Provides: uwsgi-logsocket = %{version}
|
|
Obsoletes: uwsgi-logsocket < 1.9.11
|
|
Provides: uwsgi-nagios = %{version}
|
|
Obsoletes: uwsgi-nagios < 1.9.11
|
|
Provides: uwsgi-probepg = %{version}
|
|
Obsoletes: uwsgi-probepg < 1.9.11
|
|
Provides: uwsgi-redislog = %{version}
|
|
Obsoletes: uwsgi-redislog < 1.9.11
|
|
Provides: uwsgi-rrdtool = %{version}
|
|
Obsoletes: uwsgi-rrdtool < 1.9.11
|
|
Provides: uwsgi-rsyslog = %{version}
|
|
Obsoletes: uwsgi-rsyslog < 1.9.11
|
|
Provides: uwsgi-syslog = %{version}
|
|
Obsoletes: uwsgi-syslog < 1.9.11
|
|
Provides: uwsgi-ugreen = %{version}
|
|
Obsoletes: uwsgi-ugreen < 1.9.11
|
|
Provides: uwsgi-zergpool = %{version}
|
|
Obsoletes: uwsgi-zergpool < 1.9.11
|
|
|
|
%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 -n apache2-mod_proxy_uwsgi
|
|
Summary: uWSGI Proxy Module for Apache 2.0
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description -n apache2-mod_proxy_uwsgi
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains an Apache 2.0 proxy module for uWSGI.
|
|
|
|
|
|
%package -n apache2-mod_uwsgi
|
|
Summary: uWSGI Module for Apache 2.0
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description -n apache2-mod_uwsgi
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains an Apache 2.0 module for uWSGI.
|
|
|
|
|
|
%package emperor_pg
|
|
Summary: PostgreSQL Emperor Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description emperor_pg
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains an emperor plugin allowing for configuration of
|
|
applications (vassals) in a PostgreSQL database.
|
|
|
|
|
|
%package emperor_zeromq
|
|
Summary: ZeroMQ Emperor Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description emperor_zeromq
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains an emperor plugin allowing for configuration of
|
|
applications (vassals) via ZeroMQ.
|
|
|
|
|
|
%if 0%{?suse_version} > 1210
|
|
%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.
|
|
%endif
|
|
|
|
%package geoip
|
|
Summary: GeoIP Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-python = %{version}
|
|
|
|
%description geoip
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains support for GeoIP routing.
|
|
|
|
|
|
%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.
|
|
|
|
|
|
%if 0%{?suse_version} > 1220
|
|
%package glusterfs
|
|
Summary: GlusterFS Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description glusterfs
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains support for returning objects directly from a GlusterFS
|
|
filesystem
|
|
%endif
|
|
|
|
%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.
|
|
|
|
|
|
%package jvm
|
|
Summary: JVM Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
Provides: uwsgi-jwsgi = %{version}
|
|
Obsoletes: uwsgi-jwsgi < 1.9.11
|
|
|
|
%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.
|
|
|
|
|
|
%package ldap
|
|
Summary: LDAP Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description ldap
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains support for configuring uWSGI via LDAP.
|
|
|
|
|
|
%package libffi
|
|
Summary: libffi Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description libffi
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains support for libffi.
|
|
|
|
|
|
%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.
|
|
|
|
|
|
%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 psgi
|
|
Summary: PSGI Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
%{?libperl_requires}
|
|
|
|
%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.
|
|
|
|
|
|
%if 0%{?suse_version} > 1210
|
|
%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.
|
|
%endif
|
|
|
|
%package pypy
|
|
Summary: PyPy Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description pypy
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains support for Python applications using PyPy.
|
|
|
|
|
|
%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.
|
|
|
|
|
|
%if 0%{?suse_version} > 1210
|
|
%package ruby
|
|
Summary: Ruby Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
Requires: ruby19
|
|
Provides: uwsgi-fiber = %{version}
|
|
Obsoletes: uwsgi-fiber < 1.9.11
|
|
|
|
%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.
|
|
%endif
|
|
|
|
%package sqlite3
|
|
Summary: SQLite3 Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description sqlite3
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains support for storing application configuration in SQLite3
|
|
databases.
|
|
|
|
|
|
%ifarch %{ix86} x86_64 %{arm}
|
|
%if 0%{?suse_version} < 1310
|
|
%package v8
|
|
Summary: V8 JavaScript Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description v8
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains support for JavaScript using V8.
|
|
%endif
|
|
%endif
|
|
|
|
%package xslt
|
|
Summary: XSLT Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description xslt
|
|
uWSGI is a fast, self-healing and developer/sysadmin-friendly application
|
|
container server coded in pure C.
|
|
|
|
This package contains support for rendering XML content using XSLT.
|
|
|
|
|
|
%prep
|
|
%setup -q -n uwsgi-%{version}
|
|
%patch0 -p1
|
|
%patch1 -p1
|
|
%patch2 -p1
|
|
%patch3 -p1
|
|
%patch4 -p1
|
|
# Generate a config that builds all plugins except for examples and stuff we
|
|
# can't satisfy the requirements for or are just broken
|
|
excluded_plugins=""
|
|
|
|
# Still no mongodb in Factory
|
|
excluded_plugins="$excluded_plugins stats_pusher_mongodb emperor_mongodb mongodb mongodblog gridfs"
|
|
|
|
# Mono plugin builds private key during build. It would not be a good idea to
|
|
# distribute the same key to multiple systems
|
|
excluded_plugins="$excluded_plugins mono"
|
|
|
|
# Only for OSX
|
|
excluded_plugins="$excluded_plugins alarm_speech"
|
|
|
|
# No libphp on openSUSE for some reason
|
|
excluded_plugins="$excluded_plugins php"
|
|
|
|
# No stackless in openSUSE
|
|
excluded_plugins="$excluded_plugins stackless"
|
|
|
|
# No perl-Coro in Factory (there is a broken unmaintained one under d:l:perl:CPAN-C)
|
|
excluded_plugins="$excluded_plugins coroae"
|
|
|
|
# Requires libgloox, which is not in Factory
|
|
excluded_plugins="$excluded_plugins alarm_xmpp"
|
|
|
|
# No build config for gccgo ATM
|
|
excluded_plugins="$excluded_plugins gccgo"
|
|
|
|
# These plugins require a libuwsgi, which appears to conflict with core...
|
|
excluded_plugins="$excluded_plugins go pyuwsgi"
|
|
|
|
# The SPNEGO router is not complete
|
|
excluded_plugins="$excluded_plugins router_spnego"
|
|
|
|
# These are example plugins and shouldn't be distributed
|
|
excluded_plugins="$excluded_plugins cplusplus dummy example"
|
|
|
|
# Ceph/RADOS not yet in Factory
|
|
excluded_plugins="$excluded_plugins rados"
|
|
|
|
# libtcc not yet in Factory
|
|
excluded_plugins="$excluded_plugins libtcc"
|
|
|
|
# V8 is not yet available on all platforms and is broken in the v8 version in 13.1
|
|
%ifarch %{ix86} x86_64 %{arm}
|
|
%if 0%{?suse_version} > 1230
|
|
excluded_plugins="$excluded_plugins v8"
|
|
%endif
|
|
%endif
|
|
|
|
%if 0%{?suse_version} <= 1210
|
|
# Requirements missing on openSUSE <= 12.1
|
|
excluded_plugins="$excluded_plugins erlang fiber pyerl rack ruby19 systemd_logger"
|
|
%endif
|
|
|
|
%if 0%{?suse_version} <= 1220
|
|
# Requirements missing on openSUSE <= 12.2
|
|
excluded_plugins="$excluded_plugins glusterfs"
|
|
%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
|
|
export UWSGICONFIG_JVM_LIBPATH=$(dirname $(find %{_jvmdir}/java/jre/lib -name "libjvm.so" | grep server))
|
|
export UWSGICONFIG_JVM_INCPATH="%{_jvmdir}/java/include"
|
|
export UWSGICONFIG_LUALIB="lua"
|
|
export UWSGICONFIG_LUAPC="lua"
|
|
export UWSGICONFIG_RUBYPATH="ruby1.9"
|
|
export CFLAGS="%{optflags} -I$(echo %{_libdir}/erlang/lib/erl_interface-*/include) -I%{_jvmdir}/java/include/linux -L$UWSGICONFIG_JVM_LIBPATH/jli"
|
|
%{?jobs:export CPUCOUNT=%jobs}
|
|
python uwsgiconfig.py --build opensuse
|
|
|
|
# Build Apache modules
|
|
%{apxs} -c apache2/mod_proxy_uwsgi.c
|
|
%{apxs} -c apache2/mod_uwsgi.c
|
|
|
|
%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 0644 %{SOURCE2} %{buildroot}%{_unitdir}/uwsgi.service
|
|
install -d -m 0755 %{buildroot}%{_sysconfdir}/uwsgi/vassals
|
|
install -D -m 0644 %{SOURCE8} %{buildroot}%{_sysconfdir}/uwsgi/uwsgi.ini
|
|
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
|
|
install -D -m 0644 uwsgidecorators.py %{buildroot}%{python_sitelib}/uwsgidecorators.py
|
|
%py_compile %{buildroot}%{python_sitelib}
|
|
install -D plugins/jvm/uwsgi.jar %{buildroot}%{_javadir}/uwsgi.jar
|
|
install -d -m 0755 %{buildroot}/%{apache_libexecdir}
|
|
install -m 0755 apache2/.libs/*.so %{buildroot}/%{apache_libexecdir}
|
|
|
|
%pre
|
|
%service_add_pre uwsgi.service
|
|
|
|
%post
|
|
%service_add_post uwsgi.service
|
|
|
|
%preun
|
|
%service_del_preun uwsgi.service
|
|
|
|
%postun
|
|
%service_del_postun uwsgi.service
|
|
|
|
%files
|
|
%defattr(-,root,root,-)
|
|
%doc CONTRIBUTORS LICENSE README contrib examples README.openSUSE
|
|
%{_sbindir}/uwsgi
|
|
%dir %{_sysconfdir}/uwsgi/
|
|
%config(noreplace) %{_sysconfdir}/uwsgi/uwsgi.ini
|
|
%dir %{_sysconfdir}/uwsgi/vassals
|
|
%{_sysconfdir}/uwsgi/vassals/*
|
|
%dir %{_libdir}/uwsgi
|
|
%{_unitdir}/uwsgi.service
|
|
%{_libdir}/uwsgi/admin_plugin.so
|
|
%{_libdir}/uwsgi/airbrake_plugin.so
|
|
%{_libdir}/uwsgi/alarm_curl_plugin.so
|
|
%{_libdir}/uwsgi/cache_plugin.so
|
|
%{_libdir}/uwsgi/carbon_plugin.so
|
|
%{_libdir}/uwsgi/cgi_plugin.so
|
|
%{_libdir}/uwsgi/cheaper_backlog2_plugin.so
|
|
%{_libdir}/uwsgi/cheaper_busyness_plugin.so
|
|
%{_libdir}/uwsgi/clock_monotonic_plugin.so
|
|
%{_libdir}/uwsgi/clock_realtime_plugin.so
|
|
%{_libdir}/uwsgi/corerouter_plugin.so
|
|
%{_libdir}/uwsgi/curl_cron_plugin.so
|
|
%{_libdir}/uwsgi/dumbloop_plugin.so
|
|
%{_libdir}/uwsgi/emperor_amqp_plugin.so
|
|
%{_libdir}/uwsgi/exception_log_plugin.so
|
|
%{_libdir}/uwsgi/fastrouter_plugin.so
|
|
%{_libdir}/uwsgi/forkptyrouter_plugin.so
|
|
%{_libdir}/uwsgi/echo_plugin.so
|
|
%{_libdir}/uwsgi/graylog2_plugin.so
|
|
%{_libdir}/uwsgi/http_plugin.so
|
|
%{_libdir}/uwsgi/legion_cache_fetch_plugin.so
|
|
%{_libdir}/uwsgi/logcrypto_plugin.so
|
|
%{_libdir}/uwsgi/logfile_plugin.so
|
|
%{_libdir}/uwsgi/logpipe_plugin.so
|
|
%{_libdir}/uwsgi/logsocket_plugin.so
|
|
%{_libdir}/uwsgi/nagios_plugin.so
|
|
%{_libdir}/uwsgi/objc_gc_plugin.so
|
|
%{_libdir}/uwsgi/msgpack_plugin.so
|
|
%{_libdir}/uwsgi/notfound_plugin.so
|
|
%{_libdir}/uwsgi/ping_plugin.so
|
|
%{_libdir}/uwsgi/pty_plugin.so
|
|
%{_libdir}/uwsgi/rawrouter_plugin.so
|
|
%{_libdir}/uwsgi/redislog_plugin.so
|
|
%{_libdir}/uwsgi/router_access_plugin.so
|
|
%{_libdir}/uwsgi/router_basicauth_plugin.so
|
|
%{_libdir}/uwsgi/router_cache_plugin.so
|
|
%{_libdir}/uwsgi/router_expires_plugin.so
|
|
%{_libdir}/uwsgi/router_hash_plugin.so
|
|
%{_libdir}/uwsgi/router_http_plugin.so
|
|
%{_libdir}/uwsgi/router_memcached_plugin.so
|
|
%{_libdir}/uwsgi/router_metrics_plugin.so
|
|
%{_libdir}/uwsgi/router_radius_plugin.so
|
|
%{_libdir}/uwsgi/router_redirect_plugin.so
|
|
%{_libdir}/uwsgi/router_redis_plugin.so
|
|
%{_libdir}/uwsgi/router_rewrite_plugin.so
|
|
%{_libdir}/uwsgi/router_static_plugin.so
|
|
%{_libdir}/uwsgi/router_uwsgi_plugin.so
|
|
%{_libdir}/uwsgi/router_xmldir_plugin.so
|
|
%{_libdir}/uwsgi/rpc_plugin.so
|
|
%{_libdir}/uwsgi/rrdtool_plugin.so
|
|
%{_libdir}/uwsgi/rsyslog_plugin.so
|
|
%{_libdir}/uwsgi/signal_plugin.so
|
|
%{_libdir}/uwsgi/spooler_plugin.so
|
|
%{_libdir}/uwsgi/ssi_plugin.so
|
|
%{_libdir}/uwsgi/sslrouter_plugin.so
|
|
%{_libdir}/uwsgi/stats_pusher_file_plugin.so
|
|
%{_libdir}/uwsgi/stats_pusher_socket_plugin.so
|
|
%{_libdir}/uwsgi/stats_pusher_statsd_plugin.so
|
|
%{_libdir}/uwsgi/symcall_plugin.so
|
|
%{_libdir}/uwsgi/syslog_plugin.so
|
|
%if 0%{?suse_version} > 1210
|
|
%{_libdir}/uwsgi/systemd_logger_plugin.so
|
|
%endif
|
|
%{_libdir}/uwsgi/tornado_plugin.so
|
|
%{_libdir}/uwsgi/transformation_chunked_plugin.so
|
|
%{_libdir}/uwsgi/transformation_gzip_plugin.so
|
|
%{_libdir}/uwsgi/transformation_offload_plugin.so
|
|
%{_libdir}/uwsgi/transformation_template_plugin.so
|
|
%{_libdir}/uwsgi/transformation_tofile_plugin.so
|
|
%{_libdir}/uwsgi/transformation_toupper_plugin.so
|
|
%{_libdir}/uwsgi/tuntap_plugin.so
|
|
%{_libdir}/uwsgi/ugreen_plugin.so
|
|
%{_libdir}/uwsgi/webdav_plugin.so
|
|
%{_libdir}/uwsgi/xattr_plugin.so
|
|
%{_libdir}/uwsgi/zabbix_plugin.so
|
|
%{_libdir}/uwsgi/zergpool_plugin.so
|
|
|
|
%files -n apache2-mod_proxy_uwsgi
|
|
%defattr(-,root,root,-)
|
|
%{apache_libexecdir}/mod_proxy_uwsgi.so
|
|
|
|
%files -n apache2-mod_uwsgi
|
|
%defattr(-,root,root,-)
|
|
%{apache_libexecdir}/mod_uwsgi.so
|
|
|
|
%files emperor_pg
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/emperor_pg_plugin.so
|
|
|
|
%files emperor_zeromq
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/emperor_zeromq_plugin.so
|
|
|
|
%if 0%{?suse_version} > 1210
|
|
%files erlang
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/erlang_plugin.so
|
|
%endif
|
|
|
|
%files geoip
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/geoip_plugin.so
|
|
|
|
%files gevent
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/gevent_plugin.so
|
|
|
|
%files greenlet
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/greenlet_plugin.so
|
|
|
|
%if 0%{?suse_version} > 1220
|
|
%files glusterfs
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/glusterfs_plugin.so
|
|
%endif
|
|
|
|
%files jvm
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/jvm_plugin.so
|
|
%{_libdir}/uwsgi/jwsgi_plugin.so
|
|
%{_libdir}/uwsgi/ring_plugin.so
|
|
%{_libdir}/uwsgi/servlet_plugin.so
|
|
%{_javadir}/uwsgi.jar
|
|
|
|
%files ldap
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/ldap_plugin.so
|
|
|
|
%files libffi
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/libffi_plugin.so
|
|
|
|
%files lua
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/lua_plugin.so
|
|
|
|
%files pam
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/pam_plugin.so
|
|
|
|
%files psgi
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/psgi_plugin.so
|
|
|
|
%if 0%{?suse_version} > 1210
|
|
%files pyerl
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/pyerl_plugin.so
|
|
%endif
|
|
|
|
%files pypy
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/pypy_plugin.so
|
|
|
|
%files python
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/python_plugin.so
|
|
%{python_sitelib}/uwsgidecorators.py*
|
|
|
|
%if 0%{?suse_version} > 1210
|
|
%files ruby
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/fiber_plugin.so
|
|
%{_libdir}/uwsgi/rack_plugin.so
|
|
%{_libdir}/uwsgi/rbthreads_plugin.so
|
|
%{_libdir}/uwsgi/ruby19_plugin.so
|
|
%endif
|
|
|
|
%files sqlite3
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/sqlite3_plugin.so
|
|
|
|
%ifarch %{ix86} x86_64 %{arm}
|
|
%if 0%{?suse_version} < 1310
|
|
%files v8
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/v8_plugin.so
|
|
%endif
|
|
%endif
|
|
|
|
%files xslt
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/xslt_plugin.so
|
|
|
|
%changelog
|