From 6c2446c0b0e96571c1e257d884fb934cb30ee5ad Mon Sep 17 00:00:00 2001 From: Jorge Gallegos Date: Tue, 10 Mar 2015 21:28:59 -0700 Subject: [PATCH] epel7 compatible --- fedora.ini | 2 +- uwsgi.spec | 105 +++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 94 insertions(+), 13 deletions(-) diff --git a/fedora.ini b/fedora.ini index 25ebe0d..3e6bf94 100644 --- a/fedora.ini +++ b/fedora.ini @@ -9,4 +9,4 @@ routing = auto ssl = auto malloc_implementation = libc embedded_plugins = corerouter, echo, ping -plugins = alarm_curl, alarm_xmpp, airbrake, cache, carbon, cgi, coroae, cplusplus, curl_cron, dumbloop, fastrouter, forkptyrouter, geoip, gevent, glusterfs, graylog2, greenlet, gridfs, http, jvm, jwsgi, ldap, logcrypto, logfile, logpipe, logsocket, logzmq, lua, mongodblog, mongrel2, mono, msgpack, nagios, pam, php, psgi, pty, python, rack, rawrouter, redislog, ring, router_access, router_basicauth, router_cache, router_expires, router_hash, router_http, router_memcached, router_metrics, router_radius, router_redirect, router_redis, router_rewrite, router_spnego, router_static, router_uwsgi, router_xmldir, rpc, rrdtool, rsyslog, ruby19, spooler, sqlite3, ssi, sslrouter, stats_pusher_file, stats_pusher_mongodb, stats_pusher_socket, stats_pusher_statsd, syslog, tornado, transformation_chunked, transformation_gzip, transformation_offload, transformation_template, transformation_tofile, transformation_toupper, ugreen, v8, webdav, xattr, xslt, zabbix, zergpool +plugins = alarm_curl, alarm_xmpp, airbrake, cache, carbon, cgi, cplusplus, curl_cron, dumbloop, fastrouter, forkptyrouter, geoip, gevent, graylog2, http, jvm, jwsgi, ldap, logcrypto, logfile, logpipe, logsocket, lua, mongodblog, mono, msgpack, nagios, pam, php, psgi, pty, python, rack, rawrouter, redislog, ring, router_access, router_basicauth, router_cache, router_expires, router_hash, router_http, router_memcached, router_metrics, router_radius, router_redirect, router_redis, router_rewrite, router_spnego, router_static, router_uwsgi, router_xmldir, rpc, rrdtool, rsyslog, ruby19, spooler, sqlite3, ssi, sslrouter, stats_pusher_file, stats_pusher_mongodb, stats_pusher_socket, stats_pusher_statsd, syslog, tornado, transformation_chunked, transformation_gzip, transformation_offload, transformation_template, transformation_tofile, transformation_toupper, ugreen, v8, webdav, xattr, xslt, zabbix, zergpool diff --git a/uwsgi.spec b/uwsgi.spec index b9e3fd6..33da413 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -10,16 +10,24 @@ %{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_sbindir}/apxs}} %{!?_httpd_moddir: %{expand: %%global _httpd_moddir %%{_libdir}/httpd/modules}} -# Conditionally enable some plugins in newer epel -%if 0%{?fedora} || 0%{?rhel} >= 7 +# This is primarily built for fedora, make it easy right now +%if 0%{?fedora} %bcond_without systemd %bcond_without go %bcond_without python3 %bcond_without ruby19 -%bcond_without mongodblibs +%bcond_without gridfs %bcond_without tuntap -%else -# el6 doesn't use systemd +%bcond_without zeromq +%bcond_without greenlet +%bcond_without perlcoro +%bcond_without glusterfs +%bcond_without mongodblibs +%endif + +# Conditionally disable some things in epel6 +%if 0%{?rhel} == 6 +# el6 doesn't ship with systemd %bcond_with systemd # el6 doesn't have go %bcond_with go @@ -27,14 +35,32 @@ %bcond_with python3 # el6 ships with ruby 1.8 but fiberloop/rbthreads needs 1.9 %bcond_with ruby19 -# this fails in el6 not sure why -%bcond_with mongodblibs +# this fails in el not sure why +%bcond_with gridfs %bcond_with tuntap +%bcond_with mongodblibs +%endif + +# Conditionally disable some things in epel7 +%if 0%{?rhel} == 7 +# el7 doesn't ship with systemd +%bcond_with systemd +# el7 doesn't have python3 +%bcond_with python3 +# el7 doesn't have zeromq +%bcond_with zeromq +# el7 doesn't have greenlet +%bcond_with greenlet +# el7 doesn't have perl-Coro +%bcond_with perlcoro +# this fails in el not sure why +%bcond_with glusterfs +%bcond_with gridfs %endif Name: uwsgi Version: 2.0.9 -Release: 0 +Release: 1 Summary: Fast, self-healing, application container server Group: System Environment/Daemons License: GPLv2 with exceptions @@ -55,16 +81,28 @@ BuildRequires: libyaml-devel, perl-devel, ruby-devel, perl-ExtUtils-Embed %if %{with python3} BuildRequires: python3-devel %endif -BuildRequires: python-greenlet-devel, lua-devel, ruby, pcre-devel +%if %{with greenlet} +BuildRequires: python-greenlet-devel +%endif +%if %{with glusterfs} +BuildRequires: glusterfs-devel, glusterfs-api-devel +%endif +BuildRequires: lua-devel, ruby, pcre-devel BuildRequires: php-devel, php-embedded, libedit-devel, openssl-devel BuildRequires: bzip2-devel, gmp-devel, pam-devel BuildRequires: java-devel, sqlite-devel, libcap-devel -BuildRequires: httpd-devel, tcp_wrappers-devel, zeromq-devel, libcurl-devel -BuildRequires: gloox-devel, perl-Coro, libstdc++-devel +BuildRequires: httpd-devel, tcp_wrappers-devel, libcurl-devel +BuildRequires: gloox-devel, libstdc++-devel +%if %{with perlcoro} +BuildRequires: perl-Coro +%endif +%if %{with zeromq} +BuildRequires: zeromq-devel +%endif %if %{with go} BuildRequires: libgo-devel, gcc-go %endif -BuildRequires: GeoIP-devel, libevent-devel, glusterfs-api-devel, zlib-devel +BuildRequires: GeoIP-devel, libevent-devel, zlib-devel BuildRequires: mono-devel, mono-web, openldap-devel, v8-devel BuildRequires: libmongodb-devel, boost-devel BuildRequires: libattr-devel, libxslt-devel @@ -336,6 +374,7 @@ Requires: %{name}-plugin-common This package contains the SystemD Journal logger plugin for uWSGI %endif +%if %{with zeromq} %package -n %{name}-logger-zeromq Summary: uWSGI - ZeroMQ logger plugin Group: System Environment/Daemons @@ -343,6 +382,7 @@ Requires: %{name}-plugin-common, zeromq %description -n %{name}-logger-zeromq This package contains the ZeroMQ logger plugin for uWSGI +%endif # Plugins @@ -370,6 +410,7 @@ Requires: %{name}-plugin-common %description -n %{name}-plugin-carbon This package contains the Carbon plugin for uWSGI (to use in graphite) +%if %{with perlcoro} %package -n %{name}-plugin-coroae Summary: uWSGI - Plugin for PERL Coro support Group: System Environment/Daemons @@ -377,6 +418,7 @@ Requires: %{name}-plugin-common, %{name}-plugin-psgi, perl-Coro %description -n %{name}-plugin-coroae This package contains the coroae plugin for uWSGI +%endif %package -n %{name}-plugin-cplusplus Summary: uWSGI - Plugin for C++ support @@ -434,6 +476,7 @@ Requires: %{name}-plugin-common, libevent %description -n %{name}-plugin-gevent This package contains the gevent plugin for uWSGI +%if %{with glusterfs} %package -n %{name}-plugin-glusterfs Summary: uWSGI - Plugin for GlusterFS support Group: System Environment/Daemons @@ -441,7 +484,9 @@ Requires: %{name}-plugin-common, glusterfs-api %description -n %{name}-plugin-glusterfs This package contains the glusterfs plugin for uWSGI +%endif +%if %{with greenlet} %package -n %{name}-plugin-greenlet Summary: uWSGI - Plugin for Python Greenlet support Group: System Environment/Daemons @@ -449,6 +494,7 @@ Requires: python-greenlet, %{name}-plugin-common %description -n %{name}-plugin-greenlet This package contains the python greenlet plugin for uWSGI +%endif %package -n %{name}-plugin-gridfs Summary: uWSGI - Plugin for GridFS support @@ -490,6 +536,7 @@ Requires: lua, %{name}-plugin-common %description -n %{name}-plugin-lua This package contains the lua plugin for uWSGI +%if %{with zeromq} %package -n %{name}-plugin-mongrel2 Summary: uWSGI - Plugin for Mongrel2 support Group: System Environment/Daemons @@ -497,6 +544,7 @@ Requires: %{name}-plugin-common, zeromq %description -n %{name}-plugin-mongrel2 This package contains the mongrel2 plugin for uWSGI +%endif %package -n %{name}-plugin-mono Summary: uWSGI - Plugin for Mono / .NET support @@ -941,6 +989,22 @@ CFLAGS="%{optflags} -Wno-unused-but-set-variable" python uwsgiconfig.py --plugin %if %{with tuntap} CFLAGS="%{optflags} -Wno-unused-but-set-variable" python uwsgiconfig.py --plugin plugins/tuntap fedora %endif +%if %{with perlcoro} +CFLAGS="%{optflags} -Wno-unused-but-set-variable" python uwsgiconfig.py --plugin plugins/coroae fedora +%endif +%if %{with zeromq} +CFLAGS="%{optflags} -Wno-unused-but-set-variable" python uwsgiconfig.py --plugin plugins/logzmq fedora +CFLAGS="%{optflags} -Wno-unused-but-set-variable" python uwsgiconfig.py --plugin plugins/mongrel2 fedora +%endif +%if %{with greenlet} +CFLAGS="%{optflags} -Wno-unused-but-set-variable" python uwsgiconfig.py --plugin plugins/greenlet fedora +%endif +%if %{with glusterfs} +CFLAGS="%{optflags} -Wno-unused-but-set-variable" python uwsgiconfig.py --plugin plugins/glusterfs fedora +%endif +%if %{with gridfs} +CFLAGS="%{optflags} -Wno-unused-but-set-variable" python uwsgiconfig.py --plugin plugins/gridfs fedora +%endif %{_httpd_apxs} -Wc,-Wall -Wl -c apache2/mod_proxy_uwsgi.c %install @@ -1144,8 +1208,10 @@ fi %{_libdir}/%{name}/systemd_logger_plugin.so %endif +%if %{with zeromq} %files -n %{name}-logger-zeromq %{_libdir}/%{name}/logzmq_plugin.so +%endif # Plugins @@ -1158,8 +1224,10 @@ fi %files -n %{name}-plugin-carbon %{_libdir}/%{name}/carbon_plugin.so +%if %{with perlcoro} %files -n %{name}-plugin-coroae %{_libdir}/%{name}/coroae_plugin.so +%endif %files -n %{name}-plugin-cplusplus %{_libdir}/%{name}/cplusplus_plugin.so @@ -1186,14 +1254,20 @@ fi %files -n %{name}-plugin-gevent %{_libdir}/%{name}/gevent_plugin.so +%if %{with glusterfs} %files -n %{name}-plugin-glusterfs %{_libdir}/%{name}/glusterfs_plugin.so +%endif +%if %{with greenlet} %files -n %{name}-plugin-greenlet %{_libdir}/%{name}/greenlet_plugin.so +%endif +%if %{with gridfs} %files -n %{name}-plugin-gridfs %{_libdir}/%{name}/gridfs_plugin.so +%endif %files -n %{name}-plugin-jvm %{_libdir}/%{name}/jvm_plugin.so @@ -1208,8 +1282,10 @@ fi %files -n %{name}-plugin-lua %{_libdir}/%{name}/lua_plugin.so +%if %{with zeromq} %files -n %{name}-plugin-mongrel2 %{_libdir}/%{name}/mongrel2_plugin.so +%endif %files -n %{name}-plugin-mono %dir /usr/lib/mono/%{name}/ @@ -1370,6 +1446,11 @@ fi %changelog +* Wed Mar 11 2015 Jorge A Gallegos - 2.0.9-1 +- EPEL 6 and EPEL 7 compatible +- Plugins not compatible with epel 6 are systemd, go, python3 based, ruby19 based, gridfs and tuntap +- Plugins not compatible with epel 7 are python3 based, zeromq, greenlet, coroae, glusterfs and gridfs + * Fri Feb 27 2015 Jorge A Gallegos - 2.0.9-0 - New version