+# TODO:
+# 1) make mod_python3 use it's own set of config directives
+# 2) test if both flavors can be loaded at the same time
+# 3) after 1 and 2 are done, drop conflicts
+#
+# Conditional build:
+%bcond_without python2 # CPython 2.x module
+%bcond_without python3 # CPython 3.x module
+
%define mod_name python
%define apxs /usr/sbin/apxs
Summary: An embedded Python interpreter for the Apache Web server
Summary(cs.UTF-8): Vestavěný interpret Pythonu pro WWW server Apache
-Summary(da.UTF-8): En indbygget Python-fortolker for webtjeneren Apache
Summary(de.UTF-8): Ein eingebetteter Python-Interpreter für den Apache Web-Server
-Summary(es.UTF-8): Intérprete Perl para el servidor Web Apache
+Summary(es.UTF-8): Intérprete Python para el servidor Web Apache
Summary(fr.UTF-8): Interpréteur Python intégré pour le serveur Web Apache
-Summary(id.UTF-8): Interpreter Perl untuk web server Apache
-Summary(is.UTF-8): Perl túlkur fyrir Apache vefþjóninn
Summary(it.UTF-8): Interprete Python integrato per il server Web Apache
-Summary(ja.UTF-8): Apache Web サーバー用の組込み Perl インタープリタ
-Summary(nb.UTF-8): En Python-fortolker for webtjeneren Apache
+Summary(ja.UTF-8): Apache Web サーバー用の組込み Python インタープリタ
Summary(pl.UTF-8): Wbudowany interpreter języka Python dla serwera WWW Apache
-Summary(pt.UTF-8): Um interpretador de Perl embebido para o servidor Web Apache
-Summary(ru.UTF-8): Встроенный интерпретатор Perl для WWW-сервера Apache
-Summary(sk.UTF-8): Interpreter jazyka Perl pre webový server Apache
-Summary(sl.UTF-8): Vključeni pythonski tolmač za spletni strežnik Apache
Summary(sv.UTF-8): En inbyggd Python-interpretator för webbservern Apache
Name: apache-mod_%{mod_name}
-Version: 3.4.1
-Release: 4
+Version: 3.5.0
+Release: 1
License: Apache
Group: Networking/Daemons/HTTP
Source0: http://dist.modpython.org/dist/mod_%{mod_name}-%{version}.tgz
-# Source0-md5: d27804354f1808ad55d432fd76ed9d05
+# Source0-md5: 2e61621e8d030f535f112d8e739161e2
Source1: %{name}.conf
+Source2: %{name}3.conf
Patch0: %{name}-httpd-not-needed.patch
Patch1: no-git.patch
URL: http://www.modpython.org/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: flex >= 2.5.31
-BuildRequires: python
-BuildRequires: python-devel >= 2.2
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.268
+%if %{with python2}
+BuildRequires: python
+BuildRequires: python-devel >= 2.6
+%endif
+%if %{with python3}
+BuildRequires: python3
+BuildRequires: python3-devel >= 3.3
+%endif
Requires: apache(modules-api) = %apache_modules_api
Requires: apr >= 1:1.0.0
# apache.py uses pdb module
Requires: python-devel-tools
%requires_eq python-libs
+Conflicts: apache-mod_python3
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define apachelibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
webbservern Apache till en avsevärd ökning av flexibiliteten och
prestandan jämfört med den traditionella CGI-metoden.
+%package -n apache-mod_python3
+Summary: An embedded Python 3 interpreter for the Apache Web server
+Summary(cs.UTF-8): Vestavěný interpret Pythonu 3 pro WWW server Apache
+Summary(de.UTF-8): Ein eingebetteter Python3-Interpreter für den Apache Web-Server
+Summary(es.UTF-8): Intérprete Python 3 para el servidor Web Apache
+Summary(fr.UTF-8): Interpréteur Python 3 intégré pour le serveur Web Apache
+Summary(it.UTF-8): Interprete Python 3 integrato per il server Web Apache
+Summary(ja.UTF-8): Apache Web サーバー用の組込み Python 3 インタープリタ
+Summary(pl.UTF-8): Wbudowany interpreter języka Python 3 dla serwera WWW Apache
+Summary(sv.UTF-8): En inbyggd Python3-interpretator för webbservern Apache
+Group: Networking/Daemons/HTTP
+Requires: apache(modules-api) = %apache_modules_api
+Requires: apr >= 1:1.0.0
+# apache.py uses pdb module
+Requires: python3-devel-tools
+%requires_eq python3-libs
+Conflicts: apache-mod_python
+
+%description -n apache-mod_python3
+mod_python3 is a module that embeds the Python 3 language interpreter
+within the server, allowing Apache handlers to be written in Python 3.
+
+mod_python3 brings together the versatility of Python 3 and the power
+of the Apache Web server for a considerable boost in flexibility and
+performance over the traditional CGI approach.
+
+%description -n apache-mod_python3 -l cs.UTF-8
+Balíček mod_python3 obsahuje modul, který umožní serveru Apache přímo
+interpretovat CGI skripty napsané v jazyce Python 3. To vede k
+výraznému zvýšení rychlosti jejich provedení.
+
+%description -n apache-mod_python3 -l de.UTF-8
+mod_python3 ist ein Modul, das den Python3-Sprachinterpreter innerhalb
+des Servers einbettet und es den Apache-Handlern ermöglicht,
+in Python 3 geschrieben zu werden.
+
+mod_python3 verbindet die Vielseitigkeit von Python 3 und die
+Leistungsstärke des Apache Web-Servers, was eine enorme Steigerung der
+Flexibilität und Leistung gegenüber dem traditionellen CGI-Ansatz
+bedeutet.
+
+%description -n apache-mod_python3 -l es.UTF-8
+mod_python3 es un módulo que activa el intérprete de Python 3 en el
+servidor, permitiendo que se escriban gestores para Apache en
+Python 3.
+
+mod_python3 proporciona la versatilidad y el poder del servidor web
+Apache para acelerar considerablemente la flexibilidad y prestaciones
+en comparación a una aproximación tradicional con CGI.
+
+%description -n apache-mod_python3 -l fr.UTF-8
+mod_python3 est un module qui intègre l'interpréteur de langage
+Python 3 dans le serveur, permettant aux gestionnaires Apache d'être
+écrits en Python 3.
+
+mod_python3 conjugue la versatilité de Python 3 et la puissance du
+serveur Web Apache de façon à augmenter considérablement la
+flexibilité et la performance par rapport à une approche CGI
+traditionnelle.
+
+%description -n apache-mod_python3 -l it.UTF-8
+mod_python3 è un modulo che integra nel server l'interprete del
+linguaggio Python 3, in modo che i programmi di gestione possano
+essere scritti in Python 3.
+
+mod_python3 unisce in sé la versatilità di Python 3 e la potenza del
+server Web Apache, con un conseguente accrescimento di flessibilità e
+un miglioramento notevole nelle prestazioni rispetto all'approccio
+tradizionale CGI.
+
+%description -n apache-mod_python3 -l ja.UTF-8
+mod_python3 はサーバー内に Python 3
+言語インタープリタを組み込んだモジュール です。これにより、Apache
+ハンドラを Python 3 で記述できます。 mod_python3 は、Python 3
+の汎用性と Apache Web サーバーのパワーを組み合わせる ことにより、
+従来の CGI アプローチから柔軟性とパフォーマンスを大幅に向上させます。
+
+%description -n apache-mod_python3 -l pl.UTF-8
+mod_python3 jest modułem osadzającym interpreter języka Python 3 w
+serwerze WWW Apache, umożliwiając mu obsługę kodu napisanego w
+Pythonie 3.
+
+mod_python3 łączy wszechstronność Pythona 3 i moc Apache'a jako
+serwera WWW, co daje zwiększoną elastyczność i zauważalną poprawę
+wydajności w stosunku do tradycyjnego rozwiązania opartego na CGI.
+
+%description -n apache-mod_python3 -l sv.UTF-8
+mod_python3 är en modul som bygger in en interpretator för språket
+Python 3 i servern, och låter Apach-hanterare skrivas i Python 3.
+
+mod_python3 sammanför mångsidigheten hos Python 3 och kraften hos
+webbservern Apache till en avsevärd ökning av flexibiliteten och
+prestandan jämfört med den traditionella CGI-metoden.
+
%prep
%setup -q -n mod_%{mod_name}-%{version}
%patch0 -p1
%build
%{__aclocal}
%{__autoconf}
+%if %{with python2}
%configure \
- --with-apxs=%{apxs}
+ --with-apxs=%{apxs} \
+ --with-python=%{__python}
%{__make} dso
+install -d apache-mod_python{%{apachelibdir},%{apacheconfdir},%{_bindir}}
+%{__make} install \
+ DESTDIR=`pwd`/apache-mod_python
+%{__make} clean
+%endif
+
+%if %{with python3}
+%configure \
+ --with-apxs=%{apxs} \
+ --with-python=%{__python3}
+%{__make} dso
+install -d apache-mod_python3{%{apachelibdir},%{apacheconfdir},%{_bindir}}
+%{__make} install \
+ DESTDIR=`pwd`/apache-mod_python3
+%{__mv} apache-mod_python3%{_bindir}/mod_python{,3}
+%{__mv} apache-mod_python3%{apachelibdir}/mod_python{,3}.so
+%endif
%install
rm -rf $RPM_BUILD_ROOT
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
+%if %{with python2}
+cp -a apache-mod_python/* $RPM_BUILD_ROOT
install %{SOURCE1} $RPM_BUILD_ROOT%{apacheconfdir}/60_mod_python.conf
+%endif
+
+%if %{with python3}
+cp -a apache-mod_python3/* $RPM_BUILD_ROOT
+install %{SOURCE2} $RPM_BUILD_ROOT%{apacheconfdir}/60_mod_python3.conf
+%endif
+
%py_postclean
%clean
%service -q httpd restart
fi
+%post -n apache-mod_python3
+%service -q httpd restart
+
+%postun -n apache-mod_python3
+if [ "$1" = "0" ]; then
+ %service -q httpd restart
+fi
+
+%if %{with python2}
%files
%defattr(644,root,root,755)
%doc doc-html/* README.md COPYRIGHT NEWS CREDITS
%doc examples
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{apacheconfdir}/*_mod_%{mod_name}.conf
%attr(755,root,root) %{_bindir}/mod_python
-%attr(755,root,root) %{apachelibdir}/*.so
+%attr(755,root,root) %{apachelibdir}/mod_python.so
%dir %{py_sitedir}/mod_%{mod_name}
-%if "%{py_ver}" > "2.4"
%{py_sitedir}/mod_%{mod_name}-*.egg-info
-%endif
%attr(755,root,root) %{py_sitedir}/mod_%{mod_name}/*.so
%{py_sitedir}/mod_%{mod_name}/*.py[co]
+%endif
+
+%if %{with python3}
+%files -n apache-mod_python3
+%defattr(644,root,root,755)
+%doc doc-html/* README.md COPYRIGHT NEWS CREDITS
+%doc examples
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{apacheconfdir}/*_mod_%{mod_name}3.conf
+%attr(755,root,root) %{_bindir}/mod_python3
+%attr(755,root,root) %{apachelibdir}/mod_python3.so
+%dir %{py3_sitedir}/mod_%{mod_name}
+%{py3_sitedir}/mod_%{mod_name}-*.egg-info
+%attr(755,root,root) %{py3_sitedir}/mod_%{mod_name}/*.so
+%{py3_sitedir}/mod_%{mod_name}/__pycache__
+%{py3_sitedir}/mod_%{mod_name}/*.py
+%endif