+#
# TODO:
-# - conflicts with python.spec
-# - %files
+# - fix tests
+# - check unpackaged files
# Conditional build:
%bcond_with info # info pages (requires emacs)
%bcond_without tkinter # disables tkinter module building
%bcond_without tests # disables Python testing
%bcond_with verbose_tests # runs tests in verbose mode
-%bcond_with openssl097
#
# tests which will not work on 64-bit platforms
%define no64bit_tests test_audioop test_rgbimg test_imageop
# 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_anydbm test_bsddb test_re test_shelve test_whichdb test_zipimport test_distutils
+%define broken_tests test_httpservers test_distutils test_cmd_line test_pydoc test_telnetlib test_zlib
-%define beta a1
+%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
+Name: python3
Version: %{py_ver}
-Release: 0.1
+Release: 0.%{beta}.1
Epoch: 1
License: PSF
Group: Applications
-Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}%{beta}.tgz
-# Source0-md5: 89356ece9bd276e78a9e63cfe4a83a23
-Patch1: %{name}-pythonpath.patch
-Patch2: %{name}-no_ndbm.patch
-Patch3: %{name}-ac_fixes.patch
-Patch4: %{name}-noarch_to_datadir.patch
-Patch5: %{name}-lib64.patch
-Patch6: %{name}-doc_path.patch
-Patch7: %{name}-db4.6.patch
+Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}%{beta}.tar.bz2
+# 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
BuildRequires: file
BuildRequires: gdbm-devel >= 1.8.3
BuildRequires: gmp-devel >= 4.0
+BuildRequires: libffi-devel
BuildRequires: libstdc++-devel
BuildRequires: ncurses-ext-devel >= 5.2
-%if %{with openssl097}
-BuildRequires: openssl-devel < 0.9.8
-%else
BuildRequires: openssl-devel >= 0.9.8
-%endif
BuildRequires: readline-devel >= 5.0
BuildRequires: rpm-pythonprov
BuildRequires: sed >= 4.0
%{?with_tkinter:BuildRequires: tk-devel >= 8.4.3}
BuildRequires: zlib-devel
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
-Obsoletes: python-curses
-Obsoletes: python-gdbm
-Obsoletes: python-intl
-Obsoletes: python-xml
-Obsoletes: python-zlib
-Obsoletes: python2
-Obsoletes: python2-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define specflags_ppc -D__ppc__=1
+%define specflags_ppc64 -D__ppc64__=1
+
%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: python-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 pydoc
+%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 pydoc
+%description -n pydoc3
Python interactive module documentation access support.
-%description -n pydoc -l pl.UTF-8
+%description -n pydoc3 -l pl.UTF-8
Interaktywne korzystanie z dokumentacji modułów języka Python.
-%package -n idle
+%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 idle
+%description -n idle3
IDE for Python language.
-%description -n idle -l pl.UTF-8
+%description -n idle3 -l pl.UTF-8
IDE dla języka Python.
%package devel
Narzędzia programistyczne języka Python takie jak profiler oraz
debugger.
+%package 2to3
+Summary: Automated Python 2 to 3 code translation
+Summary(pl.UTF-8): Automatyczne tłumaczenie kody Pythona 2 do 3
+Group: Development/Languages/Pythona
+
+%description 2to3
+2to3 is a Python program that reads Python 2.x source code and applies a series
+of fixers to transform it into valid Python 3.x code. The standard library
+contains a rich set of fixers that will handle almost all code. 2to3 supporting
+library lib2to3 is, however, a flexible and generic library, so it is possible
+to write your own fixers for 2to3. lib2to3 could also be adapted to custom
+applications in which Python code needs to be edited automatically.
+
%package static
Summary: Static python library
Summary(pl.UTF-8): Statyczna biblioteka Pythona
%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
-%patch5 -p1
-%patch4 -p1
-%patch6 -p1
-%patch7 -p1
+#%patch2 -p1
+#%patch3 -p1
+#%patch4 -p1
%build
sed -i -e 's#-ltermcap#-ltinfo#g' configure*
%{__autoconf}
-CPPFLAGS="-I/usr/include/ncurses"; export CPPFLAGS
+CPPFLAGS="-I/usr/include/ncursesw %{rpmcppflags}"; export CPPFLAGS
%configure \
- --with-cxx="%{__cxx}" \
+ --with-cxx-main="%{__cxx}" \
--enable-shared \
--enable-ipv6 \
- --enable-unicode=ucs4 \
+ --with-dbmliborder=gdbm:bdb \
+ --with-wide-unicode \
--with-signal-module \
--with-tsc \
--with-threads \
--with-doc-strings \
- --with-wctype-functions \
--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.so
-ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython%{py_ver}.so
-
-rm -f $RPM_BUILD_ROOT%{_bindir}/python%{py_ver}
-
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
cp -a Tools Demo $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
# for python devel tools
for script in timeit profile pdb pstats; do
- echo alias $script.py=\"python -m ${script}\"
-done > $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh
+ echo alias ${script}%{py_ver}.py=\"python%{py_ver} -m ${script}\"
+done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh
-echo alias pygettext.py='"pygettext"' \
- >> $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh
+echo alias pygettext%{py_ver}.py='"pygettext%{py_ver}"' \
+ >> $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh
sed 's/=/ /' \
- < $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh \
- > $RPM_BUILD_ROOT/etc/shrc.d/python-devel.csh
+ < $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh \
+ > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.csh
# for python modules
for script in smtpd webbrowser; do
- echo alias $script.py=\"python -m ${script}\"
-done > $RPM_BUILD_ROOT/etc/shrc.d/python-modules.sh
+ echo alias ${script}%{py_ver}.py=\"python%{py_ver} -m ${script}\"
+done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh
sed 's/=/ /' \
- < $RPM_BUILD_ROOT/etc/shrc.d/python-modules.sh \
- > $RPM_BUILD_ROOT/etc/shrc.d/python-modules.csh
+ < $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh \
+ > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.csh
# xgettext specific for Python code
#
# we will have two commands: pygettext.py (an alias) and pygettext;
# this way there are no import (which is impossible now) conflicts and
# pygettext.py is provided for compatibility
-install Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext
+install Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver}
+
+# 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}/distutils/tests
rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/email/test
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
-find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.egg-info -exec rm {} \;
-find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.bat -exec rm {} \;
-find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.txt -exec rm {} \;
-find $RPM_BUILD_ROOT%{py_scriptdir} -name README\* -exec rm {} \;
+rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/macholib/fetch_macholib*
+rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/site-packages/README
+rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/distutils/command/wininst*.exe
+rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/idlelib/*.bat
+rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/idlelib/*.pyw
+rm -rf $RPM_BUILD_ROOT%{_bindir}/smtpd.py
+# already in %%doc
+rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/pdb.doc
+rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/LICENSE.txt
%clean
rm -rf $RPM_BUILD_ROOT
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
-%post doc-info
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%post doc-info -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
-%postun doc-info
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%postun doc-info -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
%files
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/python
-%{_mandir}/man1/*
+%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}/UserDict.py[co]
+/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}/copy_reg.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]
# list .so modules to be sure that all of them are built
#
-# three modules below do not work on 64-bit architectures
+# modules below do not work on 64-bit architectures
# see Python README file for explanation
%ifnarch alpha ia64 ppc64 sparc64 %{x8664}
%attr(755,root,root) %{py_dyndir}/audioop.so
-%attr(755,root,root) %{py_dyndir}/rgbimg.so
-%attr(755,root,root) %{py_dyndir}/imageop.so
-# sizeof(long) != sizeof(int), so dl module will not be built on 64-bit
-# platforms
-%attr(755,root,root) %{py_dyndir}/dl.so
%endif
%attr(755,root,root) %{py_dyndir}/array.so
+%attr(755,root,root) %{py_dyndir}/atexit.so
+%attr(755,root,root) %{py_dyndir}/audioop.so
%attr(755,root,root) %{py_dyndir}/binascii.so
%attr(755,root,root) %{py_dyndir}/_bisect.so
-%attr(755,root,root) %{py_dyndir}/_bsddb.so
%attr(755,root,root) %{py_dyndir}/bz2.so
%attr(755,root,root) %{py_dyndir}/cmath.so
%attr(755,root,root) %{py_dyndir}/_codecs_cn.so
%attr(755,root,root) %{py_dyndir}/_codecs_jp.so
%attr(755,root,root) %{py_dyndir}/_codecs_kr.so
%attr(755,root,root) %{py_dyndir}/_codecs_tw.so
-%attr(755,root,root) %{py_dyndir}/collections.so
-%attr(755,root,root) %{py_dyndir}/cPickle.so
+%attr(755,root,root) %{py_dyndir}/_collections.so
%attr(755,root,root) %{py_dyndir}/crypt.so
-%attr(755,root,root) %{py_dyndir}/cStringIO.so
%attr(755,root,root) %{py_dyndir}/_csv.so
%attr(755,root,root) %{py_dyndir}/_ctypes*.so
%attr(755,root,root) %{py_dyndir}/_curses_panel.so
%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}/_locale.so
+%attr(755,root,root) %{py_dyndir}/_json.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
+%attr(755,root,root) %{py_dyndir}/_pickle.so
%attr(755,root,root) %{py_dyndir}/_random.so
-%{?with_openssl097:%attr(755,root,root) %{py_dyndir}/_sha*.so}
%attr(755,root,root) %{py_dyndir}/_socket.so
%attr(755,root,root) %{py_dyndir}/_ssl.so
%attr(755,root,root) %{py_dyndir}/_testcapi.so
-%attr(755,root,root) %{py_dyndir}/_weakref.so
%ifnarch sparc64
-%attr(755,root,root) %{py_dyndir}/dbm.so
+%attr(755,root,root) %{py_dyndir}/_dbm.so
%endif
%attr(755,root,root) %{py_dyndir}/fcntl.so
-%attr(755,root,root) %{py_dyndir}/gdbm.so
+%attr(755,root,root) %{py_dyndir}/_gdbm.so
%attr(755,root,root) %{py_dyndir}/grp.so
%attr(755,root,root) %{py_dyndir}/itertools.so
-%attr(755,root,root) %{py_dyndir}/linuxaudiodev.so
%attr(755,root,root) %{py_dyndir}/math.so
%attr(755,root,root) %{py_dyndir}/mmap.so
%attr(755,root,root) %{py_dyndir}/nis.so
%attr(755,root,root) %{py_dyndir}/readline.so
%attr(755,root,root) %{py_dyndir}/resource.so
%attr(755,root,root) %{py_dyndir}/select.so
-%attr(755,root,root) %{py_dyndir}/strop.so
%attr(755,root,root) %{py_dyndir}/syslog.so
%attr(755,root,root) %{py_dyndir}/termios.so
%attr(755,root,root) %{py_dyndir}/time.so
%dir %{py_scriptdir}/plat-*
%{py_scriptdir}/plat-*/*.py[co]
-%dir %{py_scriptdir}/bsddb
-%{py_scriptdir}/bsddb/*.py[co]
-
-%dir %{py_scriptdir}/compiler
-%{py_scriptdir}/compiler/*.py[co]
-
%dir %{py_scriptdir}/ctypes
%dir %{py_scriptdir}/ctypes/macholib
+
%{py_scriptdir}/ctypes/*.py[co]
%{py_scriptdir}/ctypes/macholib/*.py[co]
+%doc %{py_scriptdir}/ctypes/macholib/README.ctypes
%dir %{py_scriptdir}/curses
%{py_scriptdir}/curses/*.py[co]
+%dir %{py_scriptdir}/dbm
+%{py_scriptdir}/dbm/*.py[co]
+
%dir %{py_scriptdir}/distutils
%dir %{py_scriptdir}/distutils/command
+%doc %{py_scriptdir}/distutils/README
%{py_scriptdir}/distutils/*.py[co]
%{py_scriptdir}/distutils/command/*.py[co]
+%{py_scriptdir}/distutils/command/command_template
%dir %{py_scriptdir}/email
%dir %{py_scriptdir}/email/mime
%{py_scriptdir}/email/*.py[co]
%{py_scriptdir}/email/mime/*.py[co]
+%dir %{py_scriptdir}/html
+%{py_scriptdir}/html/*.py[co]
+
+%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}/logging
%{py_scriptdir}/logging/*.py[co]
+%dir %{py_scriptdir}/multiprocessing
+%{py_scriptdir}/multiprocessing/*.py[co]
+%dir %{py_scriptdir}/multiprocessing/dummy
+%{py_scriptdir}/multiprocessing/dummy/*.py[co]
+
+%dir %{py_scriptdir}/urllib
+%{py_scriptdir}/urllib/*.py[co]
+
%dir %{py_scriptdir}/wsgiref
%{py_scriptdir}/wsgiref/*.py[co]
+%{py_scriptdir}/wsgiref.egg-info
%dir %{py_scriptdir}/xml
%dir %{py_scriptdir}/xml/dom
%{py_scriptdir}/xml/parsers/*.py[co]
%{py_scriptdir}/xml/sax/*.py[co]
-%files modules-sqlite
-%defattr(644,root,root,755)
+%dir %{py_scriptdir}/xmlrpc
+%{py_scriptdir}/xmlrpc/*.py[co]
+
%attr(755,root,root) %{py_dyndir}/_sqlite3.so
%dir %{py_scriptdir}/sqlite3
%{py_scriptdir}/sqlite3/*.py[co]
%files libs
%defattr(644,root,root,755)
+%doc LICENSE
%attr(755,root,root) %{_libdir}/libpython*.so.*
%dir %{py_dyndir}
%attr(755,root,root) %{py_dyndir}/_struct.so
# modules required by python library
-%{py_scriptdir}/UserDict.py[co]
+%{py_scriptdir}/_abcoll.py[co]
+%{py_scriptdir}/_weakrefset.py[co]
+%{py_scriptdir}/abc.py[co]
%{py_scriptdir}/codecs.py[co]
-%{py_scriptdir}/copy_reg.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 pydoc
+%files -n pydoc3
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/pydoc
+%attr(755,root,root) %{_bindir}/pydoc3
%{py_scriptdir}/pydoc.py[co]
+%dir %{py_scriptdir}/pydoc_data
+%{py_scriptdir}/pydoc_data/*.py[co]
-%files -n idle
+%files -n idle3
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/idle
+%attr(755,root,root) %{_bindir}/idle3
%dir %{py_scriptdir}/idlelib
%dir %{py_scriptdir}/idlelib/Icons
%{py_scriptdir}/idlelib/*.py[co]
+%doc %{py_scriptdir}/idlelib/*.txt
+%doc %{py_scriptdir}/idlelib/ChangeLog
%{py_scriptdir}/idlelib/Icons/*
%{py_scriptdir}/idlelib/*.def
%files devel
%defattr(644,root,root,755)
%doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp}
-%attr(755,root,root) %{_bindir}/python-config
-%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
%defattr(644,root,root,755)
%attr(-,root,root) %{py_scriptdir}/*.py
%{py_scriptdir}/plat-*/*.py
-%{py_scriptdir}/bsddb/*.py
%{py_scriptdir}/ctypes/*.py
%{py_scriptdir}/ctypes/macholib/*.py
-%{py_scriptdir}/compiler/*.py
%{py_scriptdir}/curses/*.py
+%{py_scriptdir}/dbm/*.py
%{py_scriptdir}/distutils/*.py
%{py_scriptdir}/distutils/command/*.py
%{py_scriptdir}/email/*.py
%{py_scriptdir}/email/mime/*.py
-%{py_scriptdir}/hotshot/*.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/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}/xml/*.py
%{py_scriptdir}/xml/dom/*.py
%{py_scriptdir}/xml/etree/*.py
%{py_scriptdir}/xml/parsers/*.py
%{py_scriptdir}/xml/sax/*.py
-%{py_scriptdir}/encodings/*.py
-%{py_scriptdir}/idlelib/*.py
+%{py_scriptdir}/xmlrpc/*.py
%files devel-tools
%defattr(644,root,root,755)
%doc Lib/pdb.doc
-/etc/shrc.d/python-devel*
+/etc/shrc.d/python*-devel*
-%attr(755,root,root) %{_bindir}/pygettext
+%attr(755,root,root) %{_bindir}/pygettext%{py_ver}
-%attr(755,root,root) %{py_dyndir}/_hotshot.so
-%dir %{py_scriptdir}/hotshot
-%{py_scriptdir}/hotshot/*.py[co]
%{py_scriptdir}/pdb.py[co]
%{py_scriptdir}/profile.py[co]
%{py_scriptdir}/pstats.py[co]
%{py_scriptdir}/timeit.py[co]
+%files 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]
+
%files static
%defattr(644,root,root,755)
%{_libdir}/lib*.a
%defattr(644,root,root,755)
%{_examplesdir}/%{name}-%{version}
-
-%files doc
-%defattr(644,root,root,755)
-%doc Python-Docs-%{version}%{beta}/*
-
%if %{with info}
%files doc-info
%defattr(644,root,root,755)
%if %{with tkinter}
%files tkinter
%defattr(644,root,root,755)
-%{py_scriptdir}/lib-tk
+%dir %{py_scriptdir}/tkinter
+%{py_scriptdir}/tkinter/*.py[co]
%attr(755,root,root) %{py_dyndir}/_tkinter.so
%endif