+#
+# TODO:
+# - fix tests
+# - check unpackaged files
# Conditional build:
%bcond_with info # info pages (requires emacs)
# tests which may fail because of builder environment limitations (no /proc or /dev/pts)
%define nobuilder_tests test_resource test_openpty test_socket test_nis test_posix test_locale test_pty
# tests which fail because of some unknown/unresolved reason (this list should be empty)
-%define broken_tests test_httpservers
+%define broken_tests test_httpservers test_distutils test_cmd_line test_pydoc test_telnetlib test_zlib
-%define beta %{nil}
+%define beta b1
-%define py_ver 3.0
+%define py_ver 3.2
%define py_prefix %{_prefix}
%define py_libdir %{py_prefix}/%{_lib}/python%{py_ver}
%define py_incdir %{_includedir}/python%{py_ver}
Summary(ru.UTF-8): Язык программирования очень высокого уровня с X-интерфейсом
Summary(tr.UTF-8): X arayüzlü, yüksek düzeyli, kabuk yorumlayıcı dili
Summary(uk.UTF-8): Мова програмування дуже високого рівня з X-інтерфейсом
-Name: python30
-Version: %{py_ver}.1
-Release: 1
+Name: python3
+Version: %{py_ver}
+Release: 0.%{beta}.1
Epoch: 1
License: PSF
Group: Applications
Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}%{beta}.tar.bz2
-# Source0-md5: 7291eac6a9a7a3642e309c78b8d744e5
-Patch1: %{name}-pythonpath.patch
-Patch2: %{name}-no_ndbm.patch
-Patch3: %{name}-ac_fixes.patch
-Patch4: %{name}-lib64.patch
-Patch5: %{name}-noarch_to_datadir.patch
+# Source0-md5: 3ad06a5b080d7b32958b4af2e44b64d3
+Patch0: %{name}-pythonpath.patch
+Patch1: %{name}-ac_fixes.patch
+Patch2: %{name}-lib64.patch
+Patch3: %{name}-noarch_to_datadir.patch
+Patch4: %{name}-cast-fix.patch
URL: http://www.python.org/
BuildRequires: autoconf
BuildRequires: bluez-libs-devel
%if %{with verbose_tests}
%define test_flags -v -l -x
%else
-%define test_flags -l -x
+%define test_flags -w -l -x
%endif
%ifarch alpha ia64 ppc64 sparc64 ppc64 %{x8664}
Provides: python(abi) = %{py_ver}
# for compatibility with existing Ac packages
Provides: python(bytecode) = %{py_ver}
-%{!?with_info:Obsoletes: python30-doc-info}
+%{!?with_info:Obsoletes: python3-doc-info}
%description libs
Python shared library and very essental modules for Python binary.
Summary(pl.UTF-8): Moduły języka Python
Group: Libraries/Python
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
+Obsoletes: python3-modules-sqlite
%description modules
Python officially distributed modules.
%description modules -l pl.UTF-8
Oficjalnie rozprowadzane moduły języka Python.
-%package modules-sqlite
-Summary: Python SQLite modules
-Summary(pl.UTF-8): Moduły SQLite języka Python
-Group: Libraries/Python
-Requires: %{name}-modules = %{epoch}:%{version}-%{release}
-
-%description modules-sqlite
-Python officially distributed sqlite module.
-
-%description modules-sqlite -l pl.UTF-8
-Oficjalnie rozprowadzany moduł sqlite języka Python.
-
-%package -n pydoc30
+%package -n pydoc3
Summary: Python interactive module documentation access support
Summary(pl.UTF-8): Interaktywne korzystanie z dokumentacji modułów języka Python
Group: Applications
Requires: %{name}-modules = %{epoch}:%{version}-%{release}
-%description -n pydoc30
+%description -n pydoc3
Python interactive module documentation access support.
-%description -n pydoc30 -l pl.UTF-8
+%description -n pydoc3 -l pl.UTF-8
Interaktywne korzystanie z dokumentacji modułów języka Python.
-%package -n idle30
+%package -n idle3
Summary: IDE for Python language
Summary(pl.UTF-8): IDE dla języka Python
Group: Applications
Requires: %{name}-tkinter = %{epoch}:%{version}-%{release}
-%description -n idle30
+%description -n idle3
IDE for Python language.
-%description -n idle30 -l pl.UTF-8
+%description -n idle3 -l pl.UTF-8
IDE dla języka Python.
%package devel
%description static -l pl.UTF-8
Statyczna biblioteka Pythona.
-%package doc
-Summary: Documentation on Python
-Summary(de.UTF-8): Dokumentation zu Python
-Summary(es.UTF-8): Documentación para Python
-Summary(fr.UTF-8): Documentation sur Python
-Summary(pl.UTF-8): Dokumentacja do Pythona
-Summary(pt_BR.UTF-8): Documentação para a linguagem de programação Python
-Summary(ru.UTF-8): Документация по языку Python
-Summary(tr.UTF-8): Python belgeleri
-Summary(uk.UTF-8): Документація по мові Python
-Group: Documentation
-
-%description doc
-This package contains documentation on the Python language and
-interpretor as a mix of plain ASCII files and LaTeX sources.
-
-%description doc -l de.UTF-8
-Dieses Paket enthält Dokumentationen zu Python (Sprache und
-Interpreter) in Form von einfachen ASCII-Dateien und LaTeX-Quellen.
-
-%description doc -l es.UTF-8
-Documentación para Python. Contiene archivos en texto y PostScript.
-
-%description doc -l fr.UTF-8
-Ce paquetage contient la documentation sur le langage python et sur
-son interpréteur sous forme de fichiers ASCII et LaTeX.
-
-%description doc -l pl.UTF-8
-Oficjalna dokumentacja do Pythona. Zawiera przykładowe programy,
-narzędzia i dokumentację. Strony podręcznika man znajdują się w
-głównym pakiecie. Ten pakiet nie zawiera źródeł dokumentacji
-napisanych w LaTeXu, tylko gotowe do wykorzystania pliki postscriptowe
-i HTML.
-
-%description doc -l pt_BR.UTF-8
-O pacote python-doc contém documentação para a linguagem de
-programação e para o interpretador Python. Fornecida em arquivos texto
-e Postcript.
-
-%description doc -l ru.UTF-8
-Этот пакет содержит документацию по собственно языку Python и по
-исполняющему его интерпретатору в виде набора текстовых файлов и
-исходных текстов в формате LaTeX.
-
-%description doc -l tr.UTF-8
-Bu paket, Python dili ile ilgili belgeleri ve düz ASCII dosyaları ve
-LaTeX kaynaklarının bir karışımı olan yorumlayıcıyı içerir.
-
-%description doc -l uk.UTF-8
-Цей пакет містить документацію по власне мові Python та по виконуючому
-її інтерпретатору у вигляді набора текстових файлів та вихідних
-текстів у форматі LaTeX.
-
%package doc-info
Summary: Documentation on Python in texinfo format
Summary(pl.UTF-8): Dokumentacja do Pythona w formacie texinfo
%prep
%setup -q -n Python-%{version}%{beta}
+%patch0 -p1
%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
+#%patch2 -p1
+#%patch3 -p1
+#%patch4 -p1
%build
sed -i -e 's#-ltermcap#-ltinfo#g' configure*
%{__autoconf}
-CPPFLAGS="-I/usr/include/ncursesw"; export CPPFLAGS
+CPPFLAGS="-I/usr/include/ncursesw %{rpmcppflags}"; export CPPFLAGS
%configure \
--with-cxx-main="%{__cxx}" \
--enable-shared \
--enable-ipv6 \
+ --with-dbmliborder=gdbm:bdb \
--with-wide-unicode \
--with-signal-module \
--with-tsc \
--with-doc-strings \
--with-fpectl \
--with-system-ffi \
+ --with-computed-gotos \
LINKCC='$(PURIFY) $(CXX)' \
LDSHARED='$(CC) $(CFLAGS) -shared' \
BLDSHARED='$(CC) $(CFLAGS) -shared' \
LDFLAGS="%{rpmcflags} %{rpmldflags}"
%{__make} \
- OPT="%{rpmcflags}" 2>&1 | awk '
+ OPT="%{rpmcflags} -fno-caller-saves" 2>&1 | awk '
BEGIN { fail = 0; logmsg = ""; }
{
if ($0 ~ /\*\*\* WARNING:/) {
install Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
%endif
-install Makefile.pre.in $RPM_BUILD_ROOT%{py_libdir}/config
-
-mv $RPM_BUILD_ROOT{%{py_libdir}/config,%{_libdir}}/libpython%{py_ver}.a
-ln -sf libpython%{py_ver}.a $RPM_BUILD_ROOT%{_libdir}/libpython.a
-ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython%{py_ver}.so
-
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
cp -a Tools Demo $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
# pygettext.py is provided for compatibility
install Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver}
-# add py_ver
-for script in idle pydoc; do
- mv $RPM_BUILD_ROOT%{_bindir}/${script} $RPM_BUILD_ROOT%{_bindir}/${script}%{py_ver}
-done
+# rename file conflicting with python 2.*
+mv $RPM_BUILD_ROOT%{_bindir}/2to3{,-%{py_ver}}
# just to cut the noise, as they are not packaged (now)
# first tests
rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/sqlite3/test
rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/json/tests
rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/lib2to3/tests
+rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/importlib/test
+rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/tkinter/test
# other files
rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/plat-*/regen
%files
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/python%{py_ver}
+%attr(755,root,root) %{_bindir}/python3
+%{_mandir}/man1/python*.1*
%files modules
%defattr(644,root,root,755)
/etc/shrc.d/python*-modules*
+%exclude %{py_scriptdir}/_abcoll.py[co]
+%exclude %{py_scriptdir}/_weakrefset.py[co]
+%exclude %{py_scriptdir}/abc.py[co]
%exclude %{py_scriptdir}/codecs.py[co]
%exclude %{py_scriptdir}/copyreg.py[co]
+%exclude %{py_scriptdir}/genericpath.py[co]
+%exclude %{py_scriptdir}/io.py[co]
%exclude %{py_scriptdir}/locale.py[co]
%exclude %{py_scriptdir}/posixpath.py[co]
%exclude %{py_scriptdir}/pdb.py[co]
%attr(755,root,root) %{py_dyndir}/_curses.so
%attr(755,root,root) %{py_dyndir}/datetime.so
%attr(755,root,root) %{py_dyndir}/_elementtree.so
-%attr(755,root,root) %{py_dyndir}/_functools.so
+#%attr(755,root,root) %{py_dyndir}/_functools.so
%attr(755,root,root) %{py_dyndir}/_hashlib.so
%attr(755,root,root) %{py_dyndir}/_heapq.so
%attr(755,root,root) %{py_dyndir}/_json.so
-%attr(755,root,root) %{py_dyndir}/_locale.so
+#%attr(755,root,root) %{py_dyndir}/_locale.so
%attr(755,root,root) %{py_dyndir}/_lsprof.so
%attr(755,root,root) %{py_dyndir}/_multibytecodec.so
%attr(755,root,root) %{py_dyndir}/_multiprocessing.so
%dir %{py_scriptdir}/http
%{py_scriptdir}/http/*.py[co]
+%dir %{py_scriptdir}/importlib
+%{py_scriptdir}/importlib/*.py[co]
+
%dir %{py_scriptdir}/json
%{py_scriptdir}/json/*.py[co]
%dir %{py_scriptdir}/xmlrpc
%{py_scriptdir}/xmlrpc/*.py[co]
-%files modules-sqlite
-%defattr(644,root,root,755)
%attr(755,root,root) %{py_dyndir}/_sqlite3.so
%dir %{py_scriptdir}/sqlite3
%{py_scriptdir}/sqlite3/*.py[co]
%attr(755,root,root) %{py_dyndir}/_struct.so
# modules required by python library
+%{py_scriptdir}/_abcoll.py[co]
+%{py_scriptdir}/_weakrefset.py[co]
+%{py_scriptdir}/abc.py[co]
%{py_scriptdir}/codecs.py[co]
%{py_scriptdir}/copyreg.py[co]
+%{py_scriptdir}/genericpath.py[co]
%{py_scriptdir}/locale.py[co]
+%{py_scriptdir}/io.py[co]
%{py_scriptdir}/posixpath.py[co]
%{py_scriptdir}/site.py[co]
%{py_scriptdir}/stat.py[co]
%dir %{py_scriptdir}/encodings
%{py_scriptdir}/encodings/*.py[co]
-%files -n pydoc30
+%files -n pydoc3
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/pydoc%{py_ver}
+%attr(755,root,root) %{_bindir}/pydoc3
%{py_scriptdir}/pydoc.py[co]
+%dir %{py_scriptdir}/pydoc_data
+%{py_scriptdir}/pydoc_data/*.py[co]
-%files -n idle30
+%files -n idle3
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/idle%{py_ver}
+%attr(755,root,root) %{_bindir}/idle3
%dir %{py_scriptdir}/idlelib
%dir %{py_scriptdir}/idlelib/Icons
%{py_scriptdir}/idlelib/*.py[co]
%files devel
%defattr(644,root,root,755)
%doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp}
-%attr(755,root,root) %{_bindir}/python%{py_ver}-config
+%attr(755,root,root) %{_bindir}/python*-config
%attr(755,root,root) %{_libdir}/lib*.so
%dir %{py_incdir}
%{py_incdir}/*.h
+%{_pkgconfigdir}/python*.pc
%dir %{py_libdir}/config
%attr(755,root,root) %{py_libdir}/config/makesetup
%{py_scriptdir}/distutils/command/*.py
%{py_scriptdir}/email/*.py
%{py_scriptdir}/email/mime/*.py
+%{py_scriptdir}/encodings/*.py
%{py_scriptdir}/html/*.py
%{py_scriptdir}/http/*.py
+%{py_scriptdir}/idlelib/*.py
+%{py_scriptdir}/importlib/*.py
%{py_scriptdir}/json/*.py
%{py_scriptdir}/lib2to3/*.py
-%{py_scriptdir}/lib2to3/fixes/*.py
%{py_scriptdir}/lib2to3/pgen2/*.py
%{py_scriptdir}/logging/*.py
%{py_scriptdir}/multiprocessing/*.py
%{py_scriptdir}/multiprocessing/dummy/*.py
+%{py_scriptdir}/pydoc_data/*.py
%{py_scriptdir}/sqlite3/*.py
+%{py_scriptdir}/tkinter/*.py
%{py_scriptdir}/urllib/*.py
%{py_scriptdir}/wsgiref/*.py
-%{py_scriptdir}/tkinter/*.py
%{py_scriptdir}/xml/*.py
%{py_scriptdir}/xml/dom/*.py
%{py_scriptdir}/xml/etree/*.py
%{py_scriptdir}/xml/parsers/*.py
%{py_scriptdir}/xml/sax/*.py
%{py_scriptdir}/xmlrpc/*.py
-%{py_scriptdir}/encodings/*.py
-%{py_scriptdir}/idlelib/*.py
%files devel-tools
%defattr(644,root,root,755)
%{py_scriptdir}/timeit.py[co]
%files 2to3
-%attr(755,root,root) %{_bindir}/2to3
+%attr(755,root,root) %{_bindir}/2to3-%{py_ver}
%dir %{py_scriptdir}/lib2to3
%{py_scriptdir}/lib2to3/*.txt
%{py_scriptdir}/lib2to3/*.pickle
%{py_scriptdir}/lib2to3/*.py[co]
%dir %{py_scriptdir}/lib2to3/fixes
+%{py_scriptdir}/lib2to3/fixes/*.py
%{py_scriptdir}/lib2to3/fixes/*.py[co]
%dir %{py_scriptdir}/lib2to3/pgen2
%{py_scriptdir}/lib2to3/pgen2/*.py[co]