2 # - add -n mod_wsgi-express package
3 # https://github.com/GrahamDumpleton/mod_wsgi#installation-into-python
7 %bcond_without python2 # mod_wsgi for CPython 2.x
8 %bcond_without python3 # mod_wsgi for CPython 3.x
11 %define apxs /usr/sbin/apxs
12 Summary: WSGI interface for the Apache Web server
13 Summary(pl.UTF-8): Interfejs WSGI dla serwera WWW Apache
14 Name: apache-mod_%{mod_name}
18 Group: Networking/Daemons
19 Source0: https://github.com/GrahamDumpleton/mod_wsgi/archive/%{version}/mod_%{mod_name}-%{version}.tar.gz
20 # Source0-md5: 6d307e246684399c5dc501350e34e390
22 URL: http://www.modwsgi.org/
23 BuildRequires: %{apxs}
24 BuildRequires: apache-devel >= 2.0.52-7
25 BuildRequires: apr-devel >= 1:1.0.0
26 BuildRequires: autoconf
27 BuildRequires: automake
29 BuildRequires: python-devel >= 2.3
32 BuildRequires: python3-devel
34 BuildRequires: rpmbuild(macros) >= 1.268
35 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
37 %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
38 %define _sysconfdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)/conf.d
41 The mod_wsgi adapter is an Apache module that provides a WSGI
42 compliant interface for hosting Python based web applications within
43 Apache. The adapter is written completely in C code against the Apache
44 C runtime and for hosting WSGI applications within Apache has a lower
45 overhead than using existing WSGI adapters for mod_python or CGI.
47 %description -l pl.UTF-8
48 Adapter mod_wsgi jest modułem udostępniającym interfejs WSGI dla
49 aplikacji WWW napisanych w języku Python i osadzonych w serwerze
50 Apache. Adapter jest w całości napisany w języku C w oparciu o
51 bibliotekę uruchomieniową Apache i ma mniejsze wymagania niż w
52 przypadku używania istniejących adapterów WSGI dla modułu mod_python
56 Summary: WSGI interface for the Apache Web server
57 Summary(pl.UTF-8): Interfejs WSGI dla serwera WWW Apache
58 Group: Networking/Daemons
59 Requires: apache(modules-api) = %{apache_modules_api}
60 Requires: apr >= 1:1.0.0
61 Requires: python-modules
62 Conflicts: %{name} < 4.5.7-0.2
63 # http://helpful.knobs-dials.com/index.php/Mod_wsgi_notes#PyEval_AcquireThread:_non-NULL_old_thread_state
64 Conflicts: apache-mod_python
67 The mod_wsgi adapter is an Apache module that provides a WSGI
68 compliant interface for hosting Python based web applications within
69 Apache. The adapter is written completely in C code against the Apache
70 C runtime and for hosting WSGI applications within Apache has a lower
71 overhead than using existing WSGI adapters for mod_python or CGI.
73 %description py2 -l pl.UTF-8
74 Adapter mod_wsgi jest modułem udostępniającym interfejs WSGI dla
75 aplikacji WWW napisanych w języku Python i osadzonych w serwerze
76 Apache. Adapter jest w całości napisany w języku C w oparciu o
77 bibliotekę uruchomieniową Apache i ma mniejsze wymagania niż w
78 przypadku używania istniejących adapterów WSGI dla modułu mod_python
82 Summary: WSGI interface for the Apache Web server
83 Summary(pl.UTF-8): Interfejs WSGI dla serwera WWW Apache
84 Group: Networking/Daemons
85 Requires: apache(modules-api) = %{apache_modules_api}
86 Requires: apr >= 1:1.0.0
87 Requires: python3-modules
88 Conflicts: %{name} < 4.5.7-0.2
89 # http://helpful.knobs-dials.com/index.php/Mod_wsgi_notes#PyEval_AcquireThread:_non-NULL_old_thread_state
90 Conflicts: apache-mod_python3
93 The mod_wsgi adapter is an Apache module that provides a WSGI
94 compliant interface for hosting Python based web applications within
95 Apache. The adapter is written completely in C code against the Apache
96 C runtime and for hosting WSGI applications within Apache has a lower
97 overhead than using existing WSGI adapters for mod_python or CGI.
99 %description py3 -l pl.UTF-8
100 Adapter mod_wsgi jest modułem udostępniającym interfejs WSGI dla
101 aplikacji WWW napisanych w języku Python i osadzonych w serwerze
102 Apache. Adapter jest w całości napisany w języku C w oparciu o
103 bibliotekę uruchomieniową Apache i ma mniejsze wymagania niż w
104 przypadku używania istniejących adapterów WSGI dla modułu mod_python
108 %setup -q -n mod_%{mod_name}-%{version}
114 # doesn't support out of tree builds, so we just build twice
117 --with-python=%{__python} \
120 %{__make} install DESTDIR=$(pwd)/py2
126 --with-python=%{__python3} \
129 %{__make} install DESTDIR=$(pwd)/py3
134 rm -rf $RPM_BUILD_ROOT
135 install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir}}
137 cp -a py2/* $RPM_BUILD_ROOT
138 mv $RPM_BUILD_ROOT%{_pkglibdir}/mod_%{mod_name}{,-py2}.so
139 sed -e 's/mod_wsgi.so/mod_wsgi-py2.so/' %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/61_mod_wsgi-py2.conf
142 cp -a py3/* $RPM_BUILD_ROOT
143 mv $RPM_BUILD_ROOT%{_pkglibdir}/mod_%{mod_name}{,-py3}.so
144 sed -e 's/mod_wsgi.so/mod_wsgi-py3.so/' %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/61_mod_wsgi-py3.conf
148 rm -rf $RPM_BUILD_ROOT
151 %service -q httpd restart
154 if [ "$1" = "0" ]; then
155 %service -q httpd restart
159 %service -q httpd restart
162 if [ "$1" = "0" ]; then
163 %service -q httpd restart
168 %defattr(644,root,root,755)
169 %doc README.rst CREDITS.rst
170 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}-py2.conf
171 %attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}-py2.so
176 %defattr(644,root,root,755)
177 %doc README.rst CREDITS.rst
178 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}-py3.conf
179 %attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}-py3.so