813 lines
25 KiB
RPMSpec
813 lines
25 KiB
RPMSpec
#
|
|
# spec file for package uwsgi
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
#
|
|
# 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 https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%{?sle15_python_module_pythons}
|
|
%define with_php 1
|
|
%if 0%{?suse_version} > 1320
|
|
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
|
|
%define php php8
|
|
%else
|
|
%define php php7
|
|
%endif
|
|
%else
|
|
%define with_php 0
|
|
%endif
|
|
|
|
Name: uwsgi
|
|
Version: 2.0.28
|
|
Release: 0
|
|
Summary: Application Container Server for Networked/Clustered Web Applications
|
|
License: Apache-2.0 AND GPL-2.0-only WITH GCC-exception-2.0
|
|
Group: Productivity/Networking/Web/Servers
|
|
URL: https://uwsgi-docs.readthedocs.io/en/latest/
|
|
Source: https://github.com/unbit/uwsgi/archive/refs/tags/%{version}.tar.gz#/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
|
|
Source9: uwsgi.tmpfiles.d
|
|
# 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-2.0.12-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-2.0.18-postgresql-config.patch - Use pkg-config instead of pg_config
|
|
Patch4: uwsgi-2.0.18-postgresql-config.patch
|
|
# PATCH-FIX-UPSTREAM uwsgi-ld-noexecstack.patch - Do not create executable stack
|
|
Patch5: uwsgi-ld-noexecstack.patch
|
|
# PATCH-FIX-UPSTREAM python313.patch - plugins/python: handle cframe removal from CPython thread state https://github.com/unbit/uwsgi/commit/699dc20f8204ee18812951600b0221156d217530
|
|
Patch6: python313.patch
|
|
BuildRequires: apache-rpm-macros
|
|
%if 0%{suse_version} < 1500
|
|
BuildRequires: apache2-devel
|
|
%else
|
|
BuildRequires: apache2-devel >= 2.4.33
|
|
%endif
|
|
%if 0%{?suse_version} >= 1500
|
|
BuildRequires: argon2-devel
|
|
%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: 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: ncurses-devel
|
|
BuildRequires: openldap2-devel
|
|
BuildRequires: openssl-devel
|
|
BuildRequires: pam-devel
|
|
BuildRequires: pcre-devel
|
|
%if %{with_php}
|
|
BuildRequires: %{php}-devel
|
|
BuildRequires: %{php}-embed
|
|
%endif
|
|
BuildRequires: %{python_module devel}
|
|
BuildRequires: %{python_module greenlet-devel}
|
|
BuildRequires: pkg-config
|
|
BuildRequires: postgresql-devel
|
|
BuildRequires: python-rpm-macros
|
|
%if 0%{?suse_version} <= 1310
|
|
BuildRequires: ruby19-devel
|
|
%endif
|
|
BuildRequires: sqlite3-devel
|
|
BuildRequires: tcpd-devel
|
|
BuildRequires: pkgconfig(libsystemd)
|
|
%ifarch %{ix86} x86_64 %{arm}
|
|
%if 0%{?suse_version} < 1310
|
|
BuildRequires: v8-devel
|
|
%endif
|
|
%endif
|
|
BuildRequires: zeromq-devel
|
|
BuildRequires: pkgconfig(zlib)
|
|
%{?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
|
|
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500
|
|
# these must be the last directives before the description
|
|
%define python_subpackage_only 1
|
|
%python_subpackages
|
|
%endif
|
|
|
|
%description
|
|
uWSGI is a self-healing application container server coded in pure C.
|
|
|
|
It is a WSGI server with a stack for networked/clustered web applications,
|
|
implementing message/object passing, caching, RPC and process management.
|
|
|
|
It uses the uwsgi 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).
|
|
|
|
Different plugins can be used in order to add compatibility with
|
|
different technology on top of the same core.
|
|
|
|
|
|
# This is part of the apache2 package now
|
|
%if 0%{suse_version} < 1500
|
|
%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 self-healing application container server coded in pure C.
|
|
|
|
This package contains an Apache 2.0 proxy module for uWSGI.
|
|
%endif
|
|
|
|
%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 self-healing 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 self-healing 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 self-healing application container server coded in pure C.
|
|
|
|
This package contains an emperor plugin allowing for configuration of
|
|
applications (vassals) via ZeroMQ.
|
|
|
|
%package gevent
|
|
Summary: Gevent Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-python3 = %{version}
|
|
|
|
%description gevent
|
|
uWSGI is a self-healing 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 self-healing 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}-python3 = %{version}
|
|
|
|
%description greenlet
|
|
uWSGI is a self-healing 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 self-healing 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 self-healing application container server coded in pure C.
|
|
|
|
This package contains support for configuring uWSGI via LDAP.
|
|
|
|
%package libffi
|
|
Summary: Plugin libffi for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description libffi
|
|
uWSGI is a self-healing application container server coded in pure C.
|
|
|
|
This package contains support for libffi.
|
|
|
|
%package logzmq
|
|
Summary: ZMQ Logger for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description logzmq
|
|
uWSGI is a self-healing application container server coded in pure C.
|
|
|
|
This package contains support for ZMQ logging.
|
|
|
|
%package lua
|
|
Summary: Lua Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description lua
|
|
uWSGI is a self-healing 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 self-healing 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 self-healing application container server coded in pure C.
|
|
|
|
This package contains the PSGI plugin for running Perl applications that
|
|
support the PSGI protocol.
|
|
|
|
%package pypy
|
|
Summary: PyPy Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description pypy
|
|
uWSGI is a self-healing application container server coded in pure C.
|
|
|
|
This package contains support for Python applications using PyPy.
|
|
|
|
%if 0%{?sle_version} && 0%{?sle_version} <= 150400
|
|
|
|
%package python3
|
|
Summary: Python 3 Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
Requires: python3-base >= 3.6
|
|
Provides: python3-uwsgi-python3 = %{version}-%{release}
|
|
|
|
%description python3
|
|
uWSGI is a self-healing application container server coded in pure C.
|
|
|
|
This package contains support for Python 3 applications via the WSGI protocol.
|
|
|
|
%else
|
|
|
|
%package -n python-uwsgi-python3
|
|
Summary: Python %{python_version} Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
%if "%{python_provides}" == "python3"
|
|
Provides: uwsgi-python3 = %{version}-%{release}
|
|
Obsoletes: uwsgi-python3 < %{version}-%{release}
|
|
%endif
|
|
# the plugin is linked to the python library, no reason the state -base explicitly
|
|
|
|
%description -n python-uwsgi-python3
|
|
uWSGI is a self-healing application container server coded in pure C.
|
|
|
|
This package contains support for Python %{python_version} applications via the WSGI protocol.
|
|
|
|
%endif
|
|
|
|
%if 0%{?suse_version} <= 1310
|
|
%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 self-healing 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 self-healing application container server coded in pure C.
|
|
|
|
This package contains support for storing application configuration in SQLite3
|
|
databases.
|
|
|
|
%package v8
|
|
Summary: V8 JavaScript Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description v8
|
|
uWSGI is a self-healing application container server coded in pure C.
|
|
|
|
This package contains support for JavaScript using V8.
|
|
|
|
%package xslt
|
|
Summary: XSLT Plugin for uWSGI
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
|
|
%description xslt
|
|
uWSGI is a self-healing application container server coded in pure C.
|
|
|
|
This package contains support for rendering XML content using XSLT.
|
|
|
|
%if %{with_php}
|
|
%package %{php}
|
|
%if 0%{?suse_version} >= 1550
|
|
Summary: PHP8 Plugin for uWSGI
|
|
%else
|
|
Summary: PHP7 Plugin for uWSGI
|
|
%endif
|
|
Group: Productivity/Networking/Web/Servers
|
|
Requires: %{name} = %{version}
|
|
Requires: %{php}-embed
|
|
|
|
%description %{php}
|
|
uWSGI is a self-healing application container server coded in pure C.
|
|
|
|
%if 0%{?suse_version} >= 1550
|
|
This package contains support for PHP version 8.
|
|
%else
|
|
This package contains support for PHP version 7.
|
|
%endif
|
|
%endif
|
|
|
|
%prep
|
|
%autosetup -p1 -n uwsgi-%{version}
|
|
|
|
# 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"
|
|
|
|
%if 0%{?suse_version} <= 1320
|
|
# No php[57]-embed on openSUSE Leap for some reason
|
|
excluded_plugins="$excluded_plugins php"
|
|
%endif
|
|
|
|
# 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 gccgo in openSUSE yet
|
|
excluded_plugins="$excluded_plugins gccgo"
|
|
|
|
# This plugin require a libuwsgi, which appears to conflict with core...
|
|
excluded_plugins="$excluded_plugins 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"
|
|
|
|
# matheval is deprecated
|
|
excluded_plugins="$excluded_plugins matheval"
|
|
|
|
# bsc#1156199 - python-txtorcon: GeoIP support is discontinued
|
|
excluded_plugins="$excluded_plugins geoip"
|
|
|
|
# V8 is not yet available on all platforms and is broken in the v8 versions in
|
|
# 13.1+
|
|
%if 0%{?suse_version} >= 1310
|
|
excluded_plugins="$excluded_plugins v8"
|
|
%else
|
|
%ifnarch %{ix86} x86_64 %{arm}
|
|
excluded_plugins="$excluded_plugins v8"
|
|
%endif
|
|
%endif
|
|
|
|
# python3 modules are built separately
|
|
excluded_plugins="$excluded_plugins python"
|
|
|
|
# Ruby 1.9 is no longer available after 13.1
|
|
%if 0%{?suse_version} > 1310
|
|
excluded_plugins="$excluded_plugins fiber mongrel2 rack rbthreads ruby19"
|
|
%endif
|
|
|
|
%if 0%{?suse_version} <= 1220
|
|
# Requirements missing on openSUSE <= 12.2
|
|
excluded_plugins="$excluded_plugins glusterfs"
|
|
%endif
|
|
|
|
plugins=$(python3 -c "import sys, os; print(', '.join([p for p in sorted(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} -Wno-error=deprecated-declarations -I%{_includedir}/glusterfs -I$(echo %{_libdir}/erlang/lib/erl_interface-*/include) -I%{_jvmdir}/java/include/linux -L$UWSGICONFIG_JVM_LIBPATH/jli"
|
|
%{?jobs:export CPUCOUNT=%jobs}
|
|
%python_expand PYTHON=$python $python uwsgiconfig.py --build opensuse
|
|
|
|
# Build python3 plugins
|
|
%if 0%{?sle_version} && 0%{?sle_version} <= 150400
|
|
python3 uwsgiconfig.py --plugin plugins/python opensuse python3
|
|
%else
|
|
# https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html#bonus-multiple-python-versions-for-the-same-uwsgi-binary
|
|
%python_expand PYTHON=$python $python uwsgiconfig.py --plugin plugins/python opensuse ${python_flavor}
|
|
%endif
|
|
|
|
# Build Apache modules
|
|
%if 0%{suse_version} < 1500
|
|
%{apache_apxs} -c apache2/mod_proxy_uwsgi.c
|
|
%endif
|
|
%{apache_apxs} -c apache2/mod_uwsgi.c
|
|
|
|
# Build php plugin
|
|
%if %{with_php}
|
|
python3 uwsgiconfig.py --plugin plugins/php opensuse %{php}
|
|
%endif
|
|
|
|
%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
|
|
%if 0%{?sle_version} && 0%{?sle_version} <= 150400
|
|
install -D -m 0644 uwsgidecorators.py %{buildroot}%{python3_sitelib}/uwsgidecorators.py
|
|
%else
|
|
%{python_expand #
|
|
install -D -m 0644 uwsgidecorators.py %{buildroot}%{$python_sitelib}/uwsgidecorators.py
|
|
if [ "%{$python_provides}" == "python3" ]; then
|
|
ln -s ${python_flavor}_plugin.so %{buildroot}%{_libdir}/uwsgi/python3_plugin.so
|
|
fi
|
|
}
|
|
%endif
|
|
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}
|
|
%if 0%{?suse_version} > 1220
|
|
ln -sf /usr/sbin/service %{buildroot}%{_sbindir}/rcuwsgi
|
|
%endif
|
|
|
|
install -d -m 0755 %{buildroot}%{_tmpfilesdir}
|
|
install -m 0644 %{SOURCE9} %{buildroot}/%{_tmpfilesdir}/uwsgi.conf
|
|
|
|
%pre
|
|
%service_add_pre uwsgi.service
|
|
|
|
%post
|
|
%service_add_post uwsgi.service
|
|
%tmpfiles_create %{_tmpfilesdir}/uwsgi.conf
|
|
|
|
%preun
|
|
%service_del_preun uwsgi.service
|
|
|
|
%postun
|
|
%service_del_postun uwsgi.service
|
|
|
|
%files
|
|
%defattr(-,root,root,-)
|
|
%license LICENSE
|
|
%doc CONTRIBUTORS README contrib examples README.openSUSE
|
|
%{_sbindir}/uwsgi
|
|
%dir %{_sysconfdir}/uwsgi/
|
|
%config(noreplace) %{_sysconfdir}/uwsgi/uwsgi.ini
|
|
%dir %{_sysconfdir}/uwsgi/vassals
|
|
%config %{_sysconfdir}/uwsgi/vassals/*
|
|
%dir %{_libdir}/uwsgi
|
|
%ghost %dir %attr(711,root,root) /run/uwsgi
|
|
%{_unitdir}/uwsgi.service
|
|
%{_tmpfilesdir}/uwsgi.conf
|
|
%if 0%{?suse_version} > 1220
|
|
%{_sbindir}/rcuwsgi
|
|
%endif
|
|
%{_libdir}/uwsgi/airbrake_plugin.so
|
|
%{_libdir}/uwsgi/alarm_curl_plugin.so
|
|
%{_libdir}/uwsgi/asyncio_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
|
|
%{_libdir}/uwsgi/systemd_logger_plugin.so
|
|
%{_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
|
|
|
|
%if 0%{suse_version} < 1500
|
|
%files -n apache2-mod_proxy_uwsgi
|
|
%defattr(-,root,root,-)
|
|
%{apache_libexecdir}/mod_proxy_uwsgi.so
|
|
%endif
|
|
|
|
%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
|
|
|
|
%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 logzmq
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/logzmq_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
|
|
|
|
%files pypy
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/pypy_plugin.so
|
|
|
|
%if 0%{?sle_version} && 0%{?sle_version} <= 150400
|
|
|
|
%files python3
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/python3_plugin.so
|
|
%{python3_sitelib}/uwsgidecorators.py*
|
|
|
|
%else
|
|
|
|
%files %{python_files uwsgi-python3}
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/%{python_flavor}_plugin.so
|
|
%if "%{python_provides}" == "python3"
|
|
%{_libdir}/uwsgi/python3_plugin.so
|
|
%endif
|
|
%{python_sitelib}/uwsgidecorators.py*
|
|
|
|
%endif
|
|
|
|
%if 0%{?suse_version} <= 1310
|
|
%files ruby
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/fiber_plugin.so
|
|
%{_libdir}/uwsgi/mongrel2_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
|
|
|
|
%if 0%{?suse_version} > 1320
|
|
%files %{php}
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/uwsgi/php*_plugin.so
|
|
%endif
|
|
|
|
%changelog
|