%bcond_with tests # skip tests # 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) # test_site: fails because our site.py is patched to include both /usr/share/... and /usr/lib... # test_gdb: fails, as the gdb uses old python version %define broken_tests test_httpservers test_distutils test_cmd_line test_pydoc test_telnetlib test_zlib test_gdb test_site %define py_ver 3.3 %define py_abi %{py_ver}m %define py_prefix %{_prefix} %define py_libdir %{py_prefix}/%{_lib}/python%{py_ver} %define py_incdir %{_includedir}/python%{py_abi} %define py_sitedir %{py_libdir}/site-packages %define py_dyndir %{py_libdir}/lib-dynload Summary: Very high level scripting language with X interface Name: python3 Version: %{py_ver}.2 Release: 2 Epoch: 1 License: PSF Group: Applications Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.bz2 # Source0-md5: 7dffe775f3bea68a44f762a3490e5e28 Patch0: %{name}-pythonpath.patch Patch1: %{name}-opt.patch Patch2: %{name}-cflags.patch Patch3: %{name}-lib64.patch Patch4: %{name}-lib64-regex.patch Patch5: %{name}-lib64-fix-for-test_install.patch Patch6: %{name}-makefile-location.patch # from gentoo Patch7: %{name}-regenerate-platspec.patch Patch8: %{name}-distutils-cxx.patch Patch9: %{name}-h2py-encoding.patch URL: http://www.python.org/ BuildRequires: autoconf BuildRequires: bzip2-devel BuildRequires: db-devel BuildRequires: expat-devel BuildRequires: file BuildRequires: gdbm-devel BuildRequires: gmp-devel BuildRequires: libffi-devel BuildRequires: libstdc++-devel BuildRequires: ncurses-ext-devel BuildRequires: openssl-devel BuildRequires: readline-devel BuildRequires: rpm-pythonprov BuildRequires: sed BuildRequires: sqlite3-devel BuildRequires: xz-devel BuildRequires: zlib-devel Requires: %{name}-libs = %{epoch}:%{version}-%{release} BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define test_flags -w -l -x %define test_list %{nobuilder_tests} %{broken_tests} %description Python is an interpreted, interactive, object-oriented programming language. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes. Python combines remarkable power with very clear syntax. It has interfaces to many system calls and libraries, as well as to various window systems, and is extensible in C or C++. It is also usable as an extension language for applications that need a programmable interface. %package libs Summary: Python library Group: Libraries/Python # broken detection in rpm/pythondeps.sh Provides: python(abi) = %{py_ver} Provides: python(bytecode) = %{py_ver} %description libs Python shared library and very essental modules for Python binary. %package modules Summary: Python modules Group: Libraries/Python Requires: %{name}-libs = %{epoch}:%{version}-%{release} %description modules Python officially distributed modules. %package pydoc3 Summary: Python interactive module documentation access support Group: Applications Requires: %{name}-modules = %{epoch}:%{version}-%{release} %description pydoc3 Python interactive module documentation access support. %package idle3 Summary: IDE for Python language Group: Applications Requires: %{name}-tkinter = %{epoch}:%{version}-%{release} %description idle3 IDE for Python language. %package devel Summary: Libraries and header files for building python code Group: Development/Languages/Python Requires: %{name}-libs = %{epoch}:%{version}-%{release} %description devel The Python interpreter is relatively easy to extend with dynamically loaded extensions and to embed in other programs. This package contains the header files and libraries which are needed to do both of these tasks. %package devel-tools Summary: Python development tools Group: Development/Languages/Python Requires: %{name}-modules = %{epoch}:%{version}-%{release} %description devel-tools Python development tools such as profilers and debugger. %package tkinter Summary: Standard Python interface to the Tk GUI toolkit Group: Libraries/Python Requires: %{name}-modules = %{epoch}:%{version}-%{release} Requires: tix Requires: tk %description tkinter Standard Python interface to the Tk GUI toolkit. %prep %setup -qn Python-%{version} %patch0 -p1 %patch1 -p1 %patch2 -p1 %if %{_lib} == "lib64" %patch3 -p1 %patch4 -p1 %patch5 -p1 %endif %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p0 %{__rm} -r Modules/{expat,zlib,_ctypes/{darwin,libffi*}} %build %{__aclocal} %{__autoconf} CPPFLAGS="-I/usr/include/ncursesw %{rpmcppflags}" export CPPFLAGS %configure \ ac_cv_posix_semaphores_enabled=yes \ ac_cv_broken_sem_getvalue=no \ --enable-ipv6 \ --enable-shared \ --with-computed-gotos \ --with-cxx-main="%{__cxx}" \ --with-dbmliborder=gdbm:bdb \ --with-system-expat \ --with-system-ffi \ --with-threads \ BLDSHARED='$(CC) $(CFLAGS) -shared' \ LDFLAGS="%{rpmcflags} %{rpmldflags}" \ LDSHARED='$(CC) $(CFLAGS) -shared' \ LINKCC='$(PURIFY) $(CXX)' %{__make} 2>&1 | awk ' BEGIN { fail = 0; logmsg = ""; } { if ($0 ~ /\*\*\* WARNING:/) { fail = 1; logmsg = logmsg $0; } print $0; } END { if (fail) { print "\nPROBLEMS FOUND:"; print logmsg; exit(1); } }' %install rm -rf $RPM_BUILD_ROOT install -d \ $RPM_BUILD_ROOT%{py_sitedir}/__pycache__ \ $RPM_BUILD_ROOT%{py_sitescriptdir}/__pycache__ # workaround short-circuit problems rm -f *.pc %{__make} install \ DESTDIR=$RPM_BUILD_ROOT # make libpython3.so simply symlink to real lib ln -sf libpython%{py_abi}.so $RPM_BUILD_ROOT%{_libdir}/libpython3.so ln -s python-%{py_ver}.pc $RPM_BUILD_ROOT%{_pkgconfigdir}/python3.pc ln -s python-%{py_ver}.pc $RPM_BUILD_ROOT%{_pkgconfigdir}/python-%{py_abi}.pc # 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 -p Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver} # just to cut the noise, as they are not packaged (now) # first tests (probably could be packaged) %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/test %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/test %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/distutils/tests %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/lib2to3/tests %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/sqlite3/test %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/tkinter/test %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/unittest/test # other files %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/plat-*/regen %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/macholib/fetch_macholib* %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/site-packages/README %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/distutils/command/wininst*.exe %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/idlelib/*.bat %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/idlelib/*.pyw # currently provided by python-2to3, consider switching to this one %{__rm} $RPM_BUILD_ROOT%{_bindir}/2to3 # that seems to be only an empty extension template, # which seems to be built only {with tests} %{__rm} -f $RPM_BUILD_ROOT%{py_dyndir}/xxlimited.*.so # already in %%doc %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/LICENSE.txt %if %{with tests} %check LC_ALL=C export LC_ALL binlibdir=`echo build/lib.*` %{__make} test \ TESTOPTS="%{test_flags} %{test_list}" \ TESTPYTHON="LD_LIBRARY_PATH=`pwd` PYTHONHOME=`pwd` PYTHONPATH=`pwd`/Lib:`pwd`/$binlibdir ./python -tt" %endif %clean rm -rf $RPM_BUILD_ROOT %post libs -p /usr/sbin/ldconfig %postun libs -p /usr/sbin/ldconfig %files %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/python%{py_ver} %attr(755,root,root) %{_bindir}/python%{py_abi} %attr(755,root,root) %{_bindir}/python3 %attr(755,root,root) %{_bindir}/pyvenv %attr(755,root,root) %{_bindir}/pyvenv-%{py_ver} %{_mandir}/man1/python%{py_ver}.1* %files libs %defattr(644,root,root,755) %doc LICENSE %attr(755,root,root) %{_libdir}/libpython%{py_abi}.so.*.* %dir %{py_incdir} %{py_incdir}/pyconfig.h %dir %{py_libdir} %dir %{py_dyndir} %dir %{py_sitedir} %dir %{py_sitedir}/__pycache__ %dir %{py_scriptdir} %dir %{py_scriptdir}/__pycache__ %dir %{py_sitescriptdir} %dir %{py_sitescriptdir}/__pycache__ # shared modules required by python library %attr(755,root,root) %{py_dyndir}/_struct.cpython-*.so # modules required by python library %{py_scriptdir}/_weakrefset.py %{py_scriptdir}/abc.py %{py_scriptdir}/bisect.py %{py_scriptdir}/codecs.py %{py_scriptdir}/copyreg.py %{py_scriptdir}/functools.py %{py_scriptdir}/genericpath.py %{py_scriptdir}/heapq.py %{py_scriptdir}/keyword.py %{py_scriptdir}/linecache.py %{py_scriptdir}/locale.py %{py_scriptdir}/io.py %{py_scriptdir}/posixpath.py %{py_scriptdir}/re.py %{py_scriptdir}/reprlib.py %{py_scriptdir}/site.py %{py_scriptdir}/sre_*.py %{py_scriptdir}/stat.py %{py_scriptdir}/sysconfig.py %{py_scriptdir}/token.py %{py_scriptdir}/tokenize.py %{py_scriptdir}/traceback.py %{py_scriptdir}/weakref.py %{py_scriptdir}/os.py # needed by the dynamic sys.lib patch %{py_scriptdir}/types.py %{py_scriptdir}/__pycache__/_weakrefset.cpython-*.py[co] %{py_scriptdir}/__pycache__/abc.cpython-*.py[co] %{py_scriptdir}/__pycache__/bisect.cpython-*.py[co] %{py_scriptdir}/__pycache__/codecs.cpython-*.py[co] %{py_scriptdir}/__pycache__/copyreg.cpython-*.py[co] %{py_scriptdir}/__pycache__/functools.cpython-*.py[co] %{py_scriptdir}/__pycache__/genericpath.cpython-*.py[co] %{py_scriptdir}/__pycache__/heapq.cpython-*.py[co] %{py_scriptdir}/__pycache__/io.cpython-*.py[co] %{py_scriptdir}/__pycache__/keyword.cpython-*.py[co] %{py_scriptdir}/__pycache__/linecache.cpython-*.py[co] %{py_scriptdir}/__pycache__/locale.cpython-*.py[co] %{py_scriptdir}/__pycache__/os.cpython-*.py[co] %{py_scriptdir}/__pycache__/posixpath.cpython-*.py[co] %{py_scriptdir}/__pycache__/re.cpython-*.py[co] %{py_scriptdir}/__pycache__/reprlib.cpython-*.py[co] %{py_scriptdir}/__pycache__/site.cpython-*.py[co] %{py_scriptdir}/__pycache__/sre_*.cpython-*.py[co] %{py_scriptdir}/__pycache__/stat.cpython-*.py[co] %{py_scriptdir}/__pycache__/sysconfig.cpython-*.py[co] %{py_scriptdir}/__pycache__/token.cpython-*.py[co] %{py_scriptdir}/__pycache__/tokenize.cpython-*.py[co] %{py_scriptdir}/__pycache__/traceback.cpython-*.py[co] %{py_scriptdir}/__pycache__/types.cpython-*.py[co] %{py_scriptdir}/__pycache__/weakref.cpython-*.py[co] # encodings required by python library %dir %{py_scriptdir}/encodings %{py_scriptdir}/encodings/__pycache__ %{py_scriptdir}/encodings/*.py %dir %{py_scriptdir}/collections %{py_scriptdir}/collections/*.py %{py_scriptdir}/collections/__pycache__ %{py_scriptdir}/__pycache__/_sysconfigdata.cpython-33.pyc %{py_scriptdir}/__pycache__/_sysconfigdata.cpython-33.pyo %{py_scriptdir}/_sysconfigdata.py %dir %{py_scriptdir}/venv %{py_scriptdir}/venv/*.py %{py_scriptdir}/venv/__pycache__ %{py_scriptdir}/venv/scripts %dir %{py_libdir}/config-%{py_abi} %{py_libdir}/config-%{py_abi}/Makefile %{py_libdir}/config-%{py_abi}/Setup %{py_libdir}/config-%{py_abi}/Setup.config %{py_libdir}/config-%{py_abi}/Setup.local %files modules %defattr(644,root,root,755) %{py_scriptdir}/__future__.py %{py_scriptdir}/_compat_pickle.py %{py_scriptdir}/_dummy_thread.py %{py_scriptdir}/_markupbase.py %{py_scriptdir}/_pyio.py %{py_scriptdir}/_strptime.py %{py_scriptdir}/_threading_local.py %{py_scriptdir}/aifc.py %{py_scriptdir}/antigravity.py %{py_scriptdir}/argparse.py %{py_scriptdir}/ast.py %{py_scriptdir}/asynchat.py %{py_scriptdir}/asyncore.py %{py_scriptdir}/base64.py %{py_scriptdir}/bdb.py %{py_scriptdir}/binhex.py %{py_scriptdir}/cProfile.py %{py_scriptdir}/calendar.py %{py_scriptdir}/cgi.py %{py_scriptdir}/cgitb.py %{py_scriptdir}/chunk.py %{py_scriptdir}/cmd.py %{py_scriptdir}/code.py %{py_scriptdir}/codeop.py %{py_scriptdir}/colorsys.py %{py_scriptdir}/compileall.py %{py_scriptdir}/configparser.py %{py_scriptdir}/contextlib.py %{py_scriptdir}/copy.py %{py_scriptdir}/csv.py %{py_scriptdir}/datetime.py %{py_scriptdir}/decimal.py %{py_scriptdir}/difflib.py %{py_scriptdir}/dis.py %{py_scriptdir}/doctest.py %{py_scriptdir}/dummy_threading.py %{py_scriptdir}/filecmp.py %{py_scriptdir}/fileinput.py %{py_scriptdir}/fnmatch.py %{py_scriptdir}/formatter.py %{py_scriptdir}/fractions.py %{py_scriptdir}/ftplib.py %{py_scriptdir}/getopt.py %{py_scriptdir}/getpass.py %{py_scriptdir}/gettext.py %{py_scriptdir}/glob.py %{py_scriptdir}/gzip.py %{py_scriptdir}/hashlib.py %{py_scriptdir}/hmac.py %{py_scriptdir}/imaplib.py %{py_scriptdir}/imghdr.py %{py_scriptdir}/inspect.py %{py_scriptdir}/macpath.py %{py_scriptdir}/macurl2path.py %{py_scriptdir}/mailbox.py %{py_scriptdir}/mailcap.py %{py_scriptdir}/mimetypes.py %{py_scriptdir}/modulefinder.py %{py_scriptdir}/netrc.py %{py_scriptdir}/nntplib.py %{py_scriptdir}/ntpath.py %{py_scriptdir}/nturl2path.py %{py_scriptdir}/numbers.py %{py_scriptdir}/opcode.py %{py_scriptdir}/optparse.py %{py_scriptdir}/os2emxpath.py %{py_scriptdir}/pickle.py %{py_scriptdir}/pickletools.py %{py_scriptdir}/pipes.py %{py_scriptdir}/pkgutil.py %{py_scriptdir}/platform.py %{py_scriptdir}/plistlib.py %{py_scriptdir}/poplib.py %{py_scriptdir}/pprint.py %{py_scriptdir}/pty.py %{py_scriptdir}/py_compile.py %{py_scriptdir}/pyclbr.py %{py_scriptdir}/queue.py %{py_scriptdir}/quopri.py %{py_scriptdir}/random.py %{py_scriptdir}/rlcompleter.py %{py_scriptdir}/runpy.py %{py_scriptdir}/sched.py %{py_scriptdir}/shelve.py %{py_scriptdir}/shlex.py %{py_scriptdir}/shutil.py %{py_scriptdir}/smtpd.py %{py_scriptdir}/smtplib.py %{py_scriptdir}/sndhdr.py %{py_scriptdir}/socket.py %{py_scriptdir}/socketserver.py %{py_scriptdir}/ssl.py %{py_scriptdir}/string.py %{py_scriptdir}/stringprep.py %{py_scriptdir}/struct.py %{py_scriptdir}/subprocess.py %{py_scriptdir}/sunau.py %{py_scriptdir}/symbol.py %{py_scriptdir}/symtable.py %{py_scriptdir}/tabnanny.py %{py_scriptdir}/tarfile.py %{py_scriptdir}/telnetlib.py %{py_scriptdir}/tempfile.py %{py_scriptdir}/textwrap.py %{py_scriptdir}/this.py %{py_scriptdir}/threading.py %{py_scriptdir}/trace.py %{py_scriptdir}/tty.py %{py_scriptdir}/turtle.py %{py_scriptdir}/uu.py %{py_scriptdir}/uuid.py %{py_scriptdir}/warnings.py %{py_scriptdir}/wave.py %{py_scriptdir}/webbrowser.py %{py_scriptdir}/xdrlib.py %{py_scriptdir}/zipfile.py %{py_scriptdir}/__pycache__/__future__.cpython-*.py[co] %{py_scriptdir}/__pycache__/_compat_pickle.cpython-*.py[co] %{py_scriptdir}/__pycache__/_dummy_thread.cpython-*.py[co] %{py_scriptdir}/__pycache__/_markupbase.cpython-*.py[co] %{py_scriptdir}/__pycache__/_pyio.cpython-*.py[co] %{py_scriptdir}/__pycache__/_strptime.cpython-*.py[co] %{py_scriptdir}/__pycache__/_threading_local.cpython-*.py[co] %{py_scriptdir}/__pycache__/aifc.cpython-*.py[co] %{py_scriptdir}/__pycache__/antigravity.cpython-*.py[co] %{py_scriptdir}/__pycache__/argparse.cpython-*.py[co] %{py_scriptdir}/__pycache__/ast.cpython-*.py[co] %{py_scriptdir}/__pycache__/asynchat.cpython-*.py[co] %{py_scriptdir}/__pycache__/asyncore.cpython-*.py[co] %{py_scriptdir}/__pycache__/base64.cpython-*.py[co] %{py_scriptdir}/__pycache__/bdb.cpython-*.py[co] %{py_scriptdir}/__pycache__/binhex.cpython-*.py[co] %{py_scriptdir}/__pycache__/cProfile.cpython-*.py[co] %{py_scriptdir}/__pycache__/calendar.cpython-*.py[co] %{py_scriptdir}/__pycache__/cgi.cpython-*.py[co] %{py_scriptdir}/__pycache__/cgitb.cpython-*.py[co] %{py_scriptdir}/__pycache__/chunk.cpython-*.py[co] %{py_scriptdir}/__pycache__/cmd.cpython-*.py[co] %{py_scriptdir}/__pycache__/code.cpython-*.py[co] %{py_scriptdir}/__pycache__/codeop.cpython-*.py[co] %{py_scriptdir}/__pycache__/colorsys.cpython-*.py[co] %{py_scriptdir}/__pycache__/compileall.cpython-*.py[co] %{py_scriptdir}/__pycache__/configparser.cpython-*.py[co] %{py_scriptdir}/__pycache__/contextlib.cpython-*.py[co] %{py_scriptdir}/__pycache__/copy.cpython-*.py[co] %{py_scriptdir}/__pycache__/csv.cpython-*.py[co] %{py_scriptdir}/__pycache__/datetime.cpython-*.py[co] %{py_scriptdir}/__pycache__/decimal.cpython-*.py[co] %{py_scriptdir}/__pycache__/difflib.cpython-*.py[co] %{py_scriptdir}/__pycache__/dis.cpython-*.py[co] %{py_scriptdir}/__pycache__/doctest.cpython-*.py[co] %{py_scriptdir}/__pycache__/dummy_threading.cpython-*.py[co] %{py_scriptdir}/__pycache__/filecmp.cpython-*.py[co] %{py_scriptdir}/__pycache__/fileinput.cpython-*.py[co] %{py_scriptdir}/__pycache__/fnmatch.cpython-*.py[co] %{py_scriptdir}/__pycache__/formatter.cpython-*.py[co] %{py_scriptdir}/__pycache__/fractions.cpython-*.py[co] %{py_scriptdir}/__pycache__/ftplib.cpython-*.py[co] %{py_scriptdir}/__pycache__/getopt.cpython-*.py[co] %{py_scriptdir}/__pycache__/getpass.cpython-*.py[co] %{py_scriptdir}/__pycache__/gettext.cpython-*.py[co] %{py_scriptdir}/__pycache__/glob.cpython-*.py[co] %{py_scriptdir}/__pycache__/gzip.cpython-*.py[co] %{py_scriptdir}/__pycache__/hashlib.cpython-*.py[co] %{py_scriptdir}/__pycache__/hmac.cpython-*.py[co] %{py_scriptdir}/__pycache__/imaplib.cpython-*.py[co] %{py_scriptdir}/__pycache__/imghdr.cpython-*.py[co] %{py_scriptdir}/__pycache__/inspect.cpython-*.py[co] %{py_scriptdir}/__pycache__/macpath.cpython-*.py[co] %{py_scriptdir}/__pycache__/macurl2path.cpython-*.py[co] %{py_scriptdir}/__pycache__/mailbox.cpython-*.py[co] %{py_scriptdir}/__pycache__/mailcap.cpython-*.py[co] %{py_scriptdir}/__pycache__/mimetypes.cpython-*.py[co] %{py_scriptdir}/__pycache__/modulefinder.cpython-*.py[co] %{py_scriptdir}/__pycache__/netrc.cpython-*.py[co] %{py_scriptdir}/__pycache__/nntplib.cpython-*.py[co] %{py_scriptdir}/__pycache__/ntpath.cpython-*.py[co] %{py_scriptdir}/__pycache__/nturl2path.cpython-*.py[co] %{py_scriptdir}/__pycache__/numbers.cpython-*.py[co] %{py_scriptdir}/__pycache__/opcode.cpython-*.py[co] %{py_scriptdir}/__pycache__/optparse.cpython-*.py[co] %{py_scriptdir}/__pycache__/os2emxpath.cpython-*.py[co] %{py_scriptdir}/__pycache__/pickle.cpython-*.py[co] %{py_scriptdir}/__pycache__/pickletools.cpython-*.py[co] %{py_scriptdir}/__pycache__/pipes.cpython-*.py[co] %{py_scriptdir}/__pycache__/pkgutil.cpython-*.py[co] %{py_scriptdir}/__pycache__/platform.cpython-*.py[co] %{py_scriptdir}/__pycache__/plistlib.cpython-*.py[co] %{py_scriptdir}/__pycache__/poplib.cpython-*.py[co] %{py_scriptdir}/__pycache__/pprint.cpython-*.py[co] %{py_scriptdir}/__pycache__/pty.cpython-*.py[co] %{py_scriptdir}/__pycache__/py_compile.cpython-*.py[co] %{py_scriptdir}/__pycache__/pyclbr.cpython-*.py[co] %{py_scriptdir}/__pycache__/queue.cpython-*.py[co] %{py_scriptdir}/__pycache__/quopri.cpython-*.py[co] %{py_scriptdir}/__pycache__/random.cpython-*.py[co] %{py_scriptdir}/__pycache__/rlcompleter.cpython-*.py[co] %{py_scriptdir}/__pycache__/runpy.cpython-*.py[co] %{py_scriptdir}/__pycache__/sched.cpython-*.py[co] %{py_scriptdir}/__pycache__/shelve.cpython-*.py[co] %{py_scriptdir}/__pycache__/shlex.cpython-*.py[co] %{py_scriptdir}/__pycache__/shutil.cpython-*.py[co] %{py_scriptdir}/__pycache__/smtpd.cpython-*.py[co] %{py_scriptdir}/__pycache__/smtplib.cpython-*.py[co] %{py_scriptdir}/__pycache__/sndhdr.cpython-*.py[co] %{py_scriptdir}/__pycache__/socket.cpython-*.py[co] %{py_scriptdir}/__pycache__/socketserver.cpython-*.py[co] %{py_scriptdir}/__pycache__/ssl.cpython-*.py[co] %{py_scriptdir}/__pycache__/string.cpython-*.py[co] %{py_scriptdir}/__pycache__/stringprep.cpython-*.py[co] %{py_scriptdir}/__pycache__/struct.cpython-*.py[co] %{py_scriptdir}/__pycache__/subprocess.cpython-*.py[co] %{py_scriptdir}/__pycache__/sunau.cpython-*.py[co] %{py_scriptdir}/__pycache__/symbol.cpython-*.py[co] %{py_scriptdir}/__pycache__/symtable.cpython-*.py[co] %{py_scriptdir}/__pycache__/tabnanny.cpython-*.py[co] %{py_scriptdir}/__pycache__/tarfile.cpython-*.py[co] %{py_scriptdir}/__pycache__/telnetlib.cpython-*.py[co] %{py_scriptdir}/__pycache__/tempfile.cpython-*.py[co] %{py_scriptdir}/__pycache__/textwrap.cpython-*.py[co] %{py_scriptdir}/__pycache__/this.cpython-*.py[co] %{py_scriptdir}/__pycache__/threading.cpython-*.py[co] %{py_scriptdir}/__pycache__/trace.cpython-*.py[co] %{py_scriptdir}/__pycache__/tty.cpython-*.py[co] %{py_scriptdir}/__pycache__/turtle.cpython-*.py[co] %{py_scriptdir}/__pycache__/uu.cpython-*.py[co] %{py_scriptdir}/__pycache__/uuid.cpython-*.py[co] %{py_scriptdir}/__pycache__/warnings.cpython-*.py[co] %{py_scriptdir}/__pycache__/wave.cpython-*.py[co] %{py_scriptdir}/__pycache__/webbrowser.cpython-*.py[co] %{py_scriptdir}/__pycache__/xdrlib.cpython-*.py[co] %{py_scriptdir}/__pycache__/zipfile.cpython-*.py[co] %{py_scriptdir}/__phello__.foo.py %{py_scriptdir}/__pycache__/__phello__.cpython-33.pyc %{py_scriptdir}/__pycache__/__phello__.cpython-33.pyo %{py_scriptdir}/__pycache__/bz2.cpython-33.pyc %{py_scriptdir}/__pycache__/bz2.cpython-33.pyo %{py_scriptdir}/__pycache__/crypt.cpython-33.pyc %{py_scriptdir}/__pycache__/crypt.cpython-33.pyo %{py_scriptdir}/__pycache__/imp.cpython-33.pyc %{py_scriptdir}/__pycache__/imp.cpython-33.pyo %{py_scriptdir}/__pycache__/ipaddress.cpython-33.pyc %{py_scriptdir}/__pycache__/ipaddress.cpython-33.pyo %{py_scriptdir}/__pycache__/lzma.cpython-33.pyc %{py_scriptdir}/__pycache__/lzma.cpython-33.pyo %{py_scriptdir}/bz2.py %{py_scriptdir}/crypt.py %{py_scriptdir}/imp.py %{py_scriptdir}/ipaddress.py %{py_scriptdir}/lzma.py # # list .so modules to be sure that all of them are built # %attr(755,root,root) %{py_dyndir}/_bisect.cpython-*.so %attr(755,root,root) %{py_dyndir}/_bz2.cpython-33m.so %attr(755,root,root) %{py_dyndir}/_codecs_cn.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_hk.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_iso2022.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_jp.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_kr.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_tw.cpython-*.so %attr(755,root,root) %{py_dyndir}/_crypt.cpython-33m.so %attr(755,root,root) %{py_dyndir}/_csv.cpython-*.so %attr(755,root,root) %{py_dyndir}/_ctypes*.cpython-*.so %attr(755,root,root) %{py_dyndir}/_curses.cpython-*.so %attr(755,root,root) %{py_dyndir}/_curses_panel.cpython-*.so %attr(755,root,root) %{py_dyndir}/_datetime.cpython-*.so %attr(755,root,root) %{py_dyndir}/_dbm.cpython-*.so %attr(755,root,root) %{py_dyndir}/_decimal.cpython-33m.so %attr(755,root,root) %{py_dyndir}/_elementtree.cpython-*.so %attr(755,root,root) %{py_dyndir}/_gdbm.cpython-*.so %attr(755,root,root) %{py_dyndir}/_hashlib.cpython-*.so %attr(755,root,root) %{py_dyndir}/_heapq.cpython-*.so %attr(755,root,root) %{py_dyndir}/_json.cpython-*.so %attr(755,root,root) %{py_dyndir}/_lsprof.cpython-*.so %attr(755,root,root) %{py_dyndir}/_lzma.cpython-33m.so %attr(755,root,root) %{py_dyndir}/_md5.cpython-33m.so %attr(755,root,root) %{py_dyndir}/_multibytecodec.cpython-*.so %attr(755,root,root) %{py_dyndir}/_multiprocessing.cpython-*.so %attr(755,root,root) %{py_dyndir}/_pickle.cpython-*.so %attr(755,root,root) %{py_dyndir}/_posixsubprocess.cpython-*.so %attr(755,root,root) %{py_dyndir}/_random.cpython-*.so %attr(755,root,root) %{py_dyndir}/_sha1.cpython-33m.so %attr(755,root,root) %{py_dyndir}/_sha256.cpython-33m.so %attr(755,root,root) %{py_dyndir}/_sha512.cpython-33m.so %attr(755,root,root) %{py_dyndir}/_socket.cpython-*.so %attr(755,root,root) %{py_dyndir}/_ssl.cpython-*.so %attr(755,root,root) %{py_dyndir}/_testbuffer.cpython-33m.so %attr(755,root,root) %{py_dyndir}/_testcapi.cpython-*.so %attr(755,root,root) %{py_dyndir}/array.cpython-*.so %attr(755,root,root) %{py_dyndir}/atexit.cpython-*.so %attr(755,root,root) %{py_dyndir}/audioop.cpython-*.so %attr(755,root,root) %{py_dyndir}/binascii.cpython-*.so %attr(755,root,root) %{py_dyndir}/cmath.cpython-*.so %attr(755,root,root) %{py_dyndir}/fcntl.cpython-*.so %attr(755,root,root) %{py_dyndir}/grp.cpython-*.so %attr(755,root,root) %{py_dyndir}/math.cpython-*.so %attr(755,root,root) %{py_dyndir}/mmap.cpython-*.so %attr(755,root,root) %{py_dyndir}/nis.cpython-*.so %attr(755,root,root) %{py_dyndir}/ossaudiodev.cpython-*.so %attr(755,root,root) %{py_dyndir}/parser.cpython-*.so %attr(755,root,root) %{py_dyndir}/pyexpat.cpython-*.so %attr(755,root,root) %{py_dyndir}/readline.cpython-*.so %attr(755,root,root) %{py_dyndir}/resource.cpython-*.so %attr(755,root,root) %{py_dyndir}/select.cpython-*.so %attr(755,root,root) %{py_dyndir}/syslog.cpython-*.so %attr(755,root,root) %{py_dyndir}/termios.cpython-*.so %attr(755,root,root) %{py_dyndir}/time.cpython-*.so %attr(755,root,root) %{py_dyndir}/spwd.cpython-*.so %attr(755,root,root) %{py_dyndir}/unicodedata.cpython-*.so %attr(755,root,root) %{py_dyndir}/zlib.cpython-*.so %dir %{py_scriptdir}/plat-* %{py_scriptdir}/plat-*/__pycache__ %{py_scriptdir}/plat-*/*.py %{py_scriptdir}/concurrent %dir %{py_scriptdir}/ctypes %dir %{py_scriptdir}/ctypes/macholib %{py_scriptdir}/ctypes/__pycache__ %{py_scriptdir}/ctypes/macholib/__pycache__ %{py_scriptdir}/ctypes/*.py %{py_scriptdir}/ctypes/macholib/*.py %doc %{py_scriptdir}/ctypes/macholib/README.ctypes %dir %{py_scriptdir}/curses %{py_scriptdir}/curses/__pycache__ %{py_scriptdir}/curses/*.py %dir %{py_scriptdir}/dbm %{py_scriptdir}/dbm/__pycache__ %{py_scriptdir}/dbm/*.py %dir %{py_scriptdir}/distutils %dir %{py_scriptdir}/distutils/command %doc %{py_scriptdir}/distutils/README %{py_scriptdir}/distutils/__pycache__ %{py_scriptdir}/distutils/command/__pycache__ %{py_scriptdir}/distutils/*.py %{py_scriptdir}/distutils/command/*.py %{py_scriptdir}/distutils/command/command_template %dir %{py_scriptdir}/email %dir %{py_scriptdir}/email/mime %{py_scriptdir}/email/__pycache__ %{py_scriptdir}/email/mime/__pycache__ %{py_scriptdir}/email/*.py %{py_scriptdir}/email/mime/*.py %dir %{py_scriptdir}/html %{py_scriptdir}/html/*.py %{py_scriptdir}/html/__pycache__ %dir %{py_scriptdir}/http %{py_scriptdir}/http/__pycache__ %{py_scriptdir}/http/*.py %dir %{py_scriptdir}/importlib %{py_scriptdir}/importlib/__pycache__ %{py_scriptdir}/importlib/*.py %dir %{py_scriptdir}/json %{py_scriptdir}/json/__pycache__ %{py_scriptdir}/json/*.py %dir %{py_scriptdir}/logging %{py_scriptdir}/logging/__pycache__ %{py_scriptdir}/logging/*.py %dir %{py_scriptdir}/multiprocessing %{py_scriptdir}/multiprocessing/__pycache__ %{py_scriptdir}/multiprocessing/*.py %dir %{py_scriptdir}/multiprocessing/dummy %{py_scriptdir}/multiprocessing/dummy/__pycache__ %{py_scriptdir}/multiprocessing/dummy/*.py %{py_scriptdir}/turtledemo %{py_scriptdir}/unittest %dir %{py_scriptdir}/urllib %{py_scriptdir}/urllib/__pycache__ %{py_scriptdir}/urllib/*.py %dir %{py_scriptdir}/wsgiref %{py_scriptdir}/wsgiref/__pycache__ %{py_scriptdir}/wsgiref/*.py %dir %{py_scriptdir}/xml %dir %{py_scriptdir}/xml/dom %dir %{py_scriptdir}/xml/etree %dir %{py_scriptdir}/xml/parsers %dir %{py_scriptdir}/xml/sax %{py_scriptdir}/xml/__pycache__ %{py_scriptdir}/xml/dom/__pycache__ %{py_scriptdir}/xml/etree/__pycache__ %{py_scriptdir}/xml/parsers/__pycache__ %{py_scriptdir}/xml/sax/__pycache__ %{py_scriptdir}/xml/*.py %{py_scriptdir}/xml/dom/*.py %{py_scriptdir}/xml/etree/*.py %{py_scriptdir}/xml/parsers/*.py %{py_scriptdir}/xml/sax/*.py %dir %{py_scriptdir}/xmlrpc %{py_scriptdir}/xmlrpc/__pycache__ %{py_scriptdir}/xmlrpc/*.py %attr(755,root,root) %{py_dyndir}/_sqlite3.cpython-*.so %dir %{py_scriptdir}/sqlite3 %{py_scriptdir}/sqlite3/__pycache__ %{py_scriptdir}/sqlite3/*.py %files pydoc3 %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/pydoc3 %attr(755,root,root) %{_bindir}/pydoc%{py_ver} %{py_scriptdir}/pydoc.py %{py_scriptdir}/__pycache__/pydoc.cpython-*.py[co] %dir %{py_scriptdir}/pydoc_data %{py_scriptdir}/pydoc_data/__pycache__ %{py_scriptdir}/pydoc_data/*.py %{py_scriptdir}/pydoc_data/*.css %files idle3 %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/idle3 %attr(755,root,root) %{_bindir}/idle%{py_ver} %dir %{py_scriptdir}/idlelib %dir %{py_scriptdir}/idlelib/Icons %{py_scriptdir}/idlelib/__pycache__ %{py_scriptdir}/idlelib/*.py %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%{py_abi}-config %attr(755,root,root) %{_bindir}/python%{py_ver}-config %attr(755,root,root) %{_bindir}/python3-config %attr(755,root,root) %{_libdir}/libpython%{py_abi}.so %attr(755,root,root) %{_libdir}/libpython3.so %{py_incdir}/*.h %exclude %{py_incdir}/pyconfig.h %attr(755,root,root) %{py_libdir}/config-%{py_abi}/makesetup %attr(755,root,root) %{py_libdir}/config-%{py_abi}/install-sh %{py_libdir}/config-%{py_abi}/config.c %{py_libdir}/config-%{py_abi}/config.c.in %{py_libdir}/config-%{py_abi}/python.o %{_pkgconfigdir}/python-%{py_ver}.pc %{_pkgconfigdir}/python-%{py_abi}.pc %{_pkgconfigdir}/python3.pc %files devel-tools %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/pygettext%{py_ver} %{py_scriptdir}/pdb.py %{py_scriptdir}/profile.py %{py_scriptdir}/pstats.py %{py_scriptdir}/timeit.py %{py_scriptdir}/__pycache__/pdb.cpython-*.py[co] %{py_scriptdir}/__pycache__/profile.cpython-*.py[co] %{py_scriptdir}/__pycache__/pstats.cpython-*.py[co] %{py_scriptdir}/__pycache__/timeit.cpython-*.py[co] # 2to3 %dir %{py_scriptdir}/lib2to3 %dir %{py_scriptdir}/lib2to3/fixes %dir %{py_scriptdir}/lib2to3/pgen2 %{_bindir}/2to3-%{py_ver} %{py_scriptdir}/lib2to3/*.pickle %{py_scriptdir}/lib2to3/*.py %{py_scriptdir}/lib2to3/*.txt %{py_scriptdir}/lib2to3/__pycache__ %{py_scriptdir}/lib2to3/fixes/*.py %{py_scriptdir}/lib2to3/fixes/__pycache__ %{py_scriptdir}/lib2to3/pgen2/*.py %{py_scriptdir}/lib2to3/pgen2/__pycache__ %files tkinter %defattr(644,root,root,755) %dir %{py_scriptdir}/tkinter %{py_scriptdir}/tkinter/__pycache__ %{py_scriptdir}/tkinter/*.py #%attr(755,root,root) %{py_dyndir}/_tkinter.cpython-*.so