]> git.pld-linux.org Git - packages/python3.git/blobdiff - python3.spec
- tcl rebuild
[packages/python3.git] / python3.spec
index 60add422e2e43212420d66b462fc2b60bab8a7e8..ee9e4b6f86745ccefd035de430821fa7d7392afb 100644 (file)
@@ -1,26 +1,27 @@
-#
 # TODO:
-# - decide what to do with __pycache__:
-#   1) package *.py sources in main and use __pycache__ dirs (and package them)
-#   2) don't package __pycache__, manually invoke py_compileall everywhere (i.e. stick to python2-way)
-# - fix tests
-# - check unpackaged files
-
+# - fix lib64 and noarch/datadir patches as the 2nd one overrides some
+#   changes made by the first one; propose patches to python team as they
+#   seem to be duplicated by fedora as well
+# - --with-system-libmpdec when new version released [BR: mpdecimal-devel > 2.3]
+#
 # Conditional build:
 %bcond_with    info                    # info pages (requires emacs)
 %bcond_without tkinter                 # disables tkinter module building
-%bcond_without tests                   # disables Python testing
+%bcond_with    tests                   # disables Python testing
 %bcond_with    verbose_tests           # runs tests in verbose mode
 #
 # 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_httpservers test_distutils test_cmd_line test_pydoc test_telnetlib test_zlib
+#   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.2
-%define py_abi         %{py_ver}mu
+%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}
@@ -36,19 +37,24 @@ Summary(ru.UTF-8):  Язык программирования очень высо
 Summary(tr.UTF-8):     X arayüzlü, yüksek düzeyli, kabuk yorumlayıcı dili
 Summary(uk.UTF-8):     Мова програмування дуже високого рівня з X-інтерфейсом
 Name:          python3
-Version:       %{py_ver}
-Release:       0.1
+Version:       %{py_ver}.5
+Release:       2
 Epoch:         1
 License:       PSF
 Group:         Applications
 Source0:       http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
-# Source0-md5: 563c0b4b8c8596e332cc076c4f013971
+# Source0-md5: b2a4df195d934e5b229e8328ca864960
 Patch0:                %{name}-pythonpath.patch
 Patch1:                %{name}-ac_fixes.patch
 Patch2:                %{name}-lib64.patch
 Patch3:                %{name}-noarch_to_datadir.patch
+Patch4:                %{name}-no_cmdline_tests.patch
+Patch5:                %{name}-makefile-location.patch
+Patch6:                libc-cloexec.patch
+Patch7:                python-distro.patch
+Patch8:                %{name}-db.patch
 URL:           http://www.python.org/
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.65
 BuildRequires: bluez-libs-devel
 BuildRequires: bzip2-devel
 BuildRequires: db-devel >= 4
@@ -60,11 +66,12 @@ BuildRequires:      gmp-devel >= 4.0
 BuildRequires: libffi-devel
 BuildRequires: libstdc++-devel
 BuildRequires: ncurses-ext-devel >= 5.2
-BuildRequires: openssl-devel >= 0.9.8
+BuildRequires: openssl-devel >= 0.9.7
 BuildRequires: readline-devel >= 5.0
 BuildRequires: rpm-pythonprov
 BuildRequires: sed >= 4.0
 BuildRequires: sqlite3-devel >= 3.3.5
+BuildRequires: tar >= 1:1.22
 %{?with_info:BuildRequires:    tetex-makeindex}
 %{?with_tkinter:BuildRequires: tix-devel >= 1:8.1.4-4}
 %{?with_tkinter:BuildRequires: tk-devel >= 8.4.3}
@@ -76,9 +83,9 @@ BuildRoot:    %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define                specflags_ppc64 -D__ppc64__=1
 
 %if %{with verbose_tests}
-%define test_flags -v -l -x
+%define test_flags -v -x
 %else
-%define test_flags -w -l -x
+%define test_flags -w -x
 %endif
 
 %ifarch alpha ia64 ppc64 sparc64 ppc64 %{x8664}
@@ -439,36 +446,75 @@ Przykładowe programy w Pythonie.
 
 Przykłady te są dla Pythona 2.3.4, nie %{version}.
 
+%package test
+Summary:       Test modules for Python
+Summary(pl.UTF-8):     Moduły testowe dla Pythona
+Group:         Development/Languages/Python
+
+%description test
+Test modules for Python.
+
+%description test -l pl.UTF-8
+Moduły testowe dla Pythona.
+
 %prep
 %setup -q -n Python-%{version}
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+
+%{__rm} -r Modules/zlib
+%{__rm} -r Modules/expat
+
+for SUBDIR in darwin libffi libffi_arm_wince libffi_msvc libffi_osx; do
+       %{__rm} -r Modules/_ctypes/$SUBDIR
+done
+
+files="md5module.c sha1module.c"
+%if !0%(pkg-config  openssl --atleast-version=0.9.8; echo $?)
+files="$files sha256module.c sha512module.c"
+%endif
+for f in $files; do
+       %{__rm} Modules/$f
+done
 
 %build
+if ! grep -q "tmpfs" /proc/self/mounts; then
+       echo "You need to have /dev/shm mounted in order to build this package!" >&2
+       echo "(Or any other tmpfs mounted and accessible to the rpmbuild process)" >&2
+       exit 1
+fi
+
 %{__autoconf}
-CPPFLAGS="-I/usr/include/ncursesw %{rpmcppflags}"; export CPPFLAGS
 %configure \
+       OPT="%{rpmcflags} -fno-caller-saves" \
+       CPPFLAGS="%{rpmcppflags}" \
+       LDFLAGS="%{rpmldflags}" \
+       ac_cv_posix_semaphores_enabled=yes \
+       ac_cv_broken_sem_getvalue=no \
+       %{?with_debug:--with-pydebug} \
        --with-cxx-main="%{__cxx}" \
        --enable-shared \
        --enable-ipv6 \
        --with-dbmliborder=gdbm:bdb \
-       --with-wide-unicode \
        --with-signal-module \
+%ifarch %{ix86} %{x8664} ppc ppc64
        --with-tsc \
+%endif
        --with-threads \
        --with-doc-strings \
        --with-fpectl \
+       --with-system-expat \
        --with-system-ffi \
        --with-computed-gotos \
-       LINKCC='$(PURIFY) $(CXX)' \
-       LDSHARED='$(CC) $(CFLAGS) -shared' \
-       BLDSHARED='$(CC) $(CFLAGS) -shared' \
-       LDFLAGS="%{rpmcflags} %{rpmldflags}"
 
-%{__make} \
-       OPT="%{rpmcflags} -fno-caller-saves" 2>&1 | awk '
+%{__make} 2>&1 | awk '
 BEGIN { fail = 0; logmsg = ""; }
 {
         if ($0 ~ /\*\*\* WARNING:/) {
@@ -483,17 +529,18 @@ LC_ALL=C
 export LC_ALL
 %if %{with tests}
 binlibdir=`echo build/lib.*`
+# -l and -j don't go together! and -j is brought up by Tools/scripts/run_tests.py
 %{__make} test \
        TESTOPTS="%{test_flags} %{test_list}" \
-       TESTPYTHON="LD_LIBRARY_PATH=`pwd` PYTHONHOME=`pwd` PYTHONPATH=`pwd`/Lib:$binlibdir ./python -tt"
+       TESTPYTHON="LD_LIBRARY_PATH=`pwd` PYTHONHOME=`pwd` PYTHONPATH=`pwd`/Lib:`pwd`/$binlibdir ./python -tt"
 %endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}} \
-       $RPM_BUILD_ROOT{%{py_sitedir},%{_mandir}/man1} \
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_pkgconfigdir}} \
+       $RPM_BUILD_ROOT{%{py_sitedir},%{py_sitescriptdir}}/__pycache__ \
        $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
-       $RPM_BUILD_ROOT%{_infodir} \
+       $RPM_BUILD_ROOT{%{_infodir},%{_mandir}/man1} \
        $RPM_BUILD_ROOT/etc/shrc.d
 
 %{__make} install \
@@ -501,22 +548,26 @@ install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}} \
 
 %if %{with info}
 %{__make} -C Doc/info
-install Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
+cp -p Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
 %endif
 
 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 cp -a Tools $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
+# make libpython3.so simply symlink to real lib
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libpython3.so
+ln -s libpython%{py_abi}.so $RPM_BUILD_ROOT%{_libdir}/libpython3.so
+
 #
 # create several useful aliases, such as timeit.py, profile.py, pdb.py, smtpd.py
 #
 
 # for python devel tools
 for script in timeit profile pdb pstats; do
-    echo alias ${script}%{py_ver}.py=\"python%{py_ver} -m ${script}\"
+       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_ver}.py='"pygettext%{py_ver}"' \
+echo "alias pygettext%{py_ver}.py='pygettext%{py_ver}'" \
        >> $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh
 
 sed 's/=/ /' \
@@ -525,7 +576,7 @@ sed 's/=/ /' \
 
 # for python modules
 for script in smtpd webbrowser; do
-    echo alias ${script}%{py_ver}.py=\"python%{py_ver} -m ${script}\"
+       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/=/ /' \
@@ -537,26 +588,23 @@ sed 's/=/ /' \
 # 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%{py_ver}
+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
-%{__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}/email/test
-%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/importlib/test
-%{__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
-
-# 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
 
@@ -578,85 +626,361 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/python%{py_abi}
 %attr(755,root,root) %{_bindir}/python3
 %{_mandir}/man1/python%{py_ver}.1*
+%{_mandir}/man1/python3.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}/_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]
-%{py_scriptdir}/os.py[co]
+%{py_scriptdir}/_sysconfigdata.py
+%{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[co]
+%{py_scriptdir}/types.py
+%{py_scriptdir}/__pycache__/_sysconfigdata.cpython-*.py[co]
+%{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__/keyword.cpython-*.py[co]
+%{py_scriptdir}/__pycache__/linecache.cpython-*.py[co]
+%{py_scriptdir}/__pycache__/locale.cpython-*.py[co]
+%{py_scriptdir}/__pycache__/io.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__/weakref.cpython-*.py[co]
+%{py_scriptdir}/__pycache__/os.cpython-*.py[co]
+%{py_scriptdir}/__pycache__/types.cpython-*.py[co]
+
+%{py_scriptdir}/collections
 
 # encodings required by python library
 %dir %{py_scriptdir}/encodings
-%{py_scriptdir}/encodings/*.py[co]
+%{py_scriptdir}/encodings/__pycache__
+%{py_scriptdir}/encodings/*.py
+
+%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)
 /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]
-%exclude %{py_scriptdir}/profile.py[co]
-%exclude %{py_scriptdir}/pstats.py[co]
-%exclude %{py_scriptdir}/pydoc.py[co]
-%exclude %{py_scriptdir}/site.py[co]
-%exclude %{py_scriptdir}/stat.py[co]
-%exclude %{py_scriptdir}/timeit.py[co]
-%exclude %{py_scriptdir}/os.py[co]
-%exclude %{py_scriptdir}/encodings/*.py[co]
-%exclude %{py_scriptdir}/types.py[co]
-
-%{py_scriptdir}/*.py[co]
-
-%{py_dyndir}/Python-%{py_ver}-py*.egg-info
+%attr(755,root,root) %{_bindir}/pyvenv
+%attr(755,root,root) %{_bindir}/pyvenv-3.3
+%{py_scriptdir}/__future__.py
+%{py_scriptdir}/__phello__.foo.py
+%{py_scriptdir}/_compat_pickle.py
+%{py_scriptdir}/_dummy_thread.py
+%{py_scriptdir}/_markupbase.py
+%{py_scriptdir}/_osx_support.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}/bz2.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}/crypt.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}/imp.py
+%{py_scriptdir}/inspect.py
+%{py_scriptdir}/ipaddress.py
+%{py_scriptdir}/lzma.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__/__phello__.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__/_osx_support.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__/bz2.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__/crypt.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__/imp.cpython-*.py[co]
+%{py_scriptdir}/__pycache__/inspect.cpython-*.py[co]
+%{py_scriptdir}/__pycache__/ipaddress.cpython-*.py[co]
+%{py_scriptdir}/__pycache__/lzma.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]
 
 #
 # list .so modules to be sure that all of them are built
 #
 
-# 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.cpython-*.so
-%endif
-
 %attr(755,root,root) %{py_dyndir}/_bisect.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_bz2.cpython-*.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-*.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_panel.cpython-*.so
@@ -665,25 +989,35 @@ rm -rf $RPM_BUILD_ROOT
 %ifnarch sparc64
 %attr(755,root,root) %{py_dyndir}/_dbm.cpython-*.so
 %endif
+%attr(755,root,root) %{py_dyndir}/_decimal.cpython-*.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-*.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}/_socket.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_ssl.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_testbuffer.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_testcapi.cpython-*.so
+
+# for openssl < 0.9.8 package sha256 and sha512 modules
+%if 0%(pkg-config  openssl --atleast-version=0.9.8; echo $?)
+%attr(755,root,root) %{py_dyndir}/_sha256.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_sha512.cpython-*.so
+%endif
+
 %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}/bz2.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/cmath.cpython-*.so
-%attr(755,root,root) %{py_dyndir}/crypt.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
@@ -703,91 +1037,138 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{py_dyndir}/zlib.cpython-*.so
 
 %dir %{py_scriptdir}/plat-*
-%{py_scriptdir}/plat-*/*.py[co]
+%{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[co]
-%{py_scriptdir}/ctypes/macholib/*.py[co]
+%{py_scriptdir}/ctypes/*.py
+%{py_scriptdir}/ctypes/macholib/*.py
 %doc %{py_scriptdir}/ctypes/macholib/README.ctypes
 
 %dir %{py_scriptdir}/curses
-%{py_scriptdir}/curses/*.py[co]
+%{py_scriptdir}/curses/__pycache__
+%{py_scriptdir}/curses/*.py
 
 %dir %{py_scriptdir}/dbm
-%{py_scriptdir}/dbm/*.py[co]
+%{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/*.py[co]
-%{py_scriptdir}/distutils/command/*.py[co]
+%{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/*.py[co]
-%{py_scriptdir}/email/mime/*.py[co]
+%{py_scriptdir}/email/__pycache__
+%{py_scriptdir}/email/mime/__pycache__
+%{py_scriptdir}/email/architecture.rst
+%{py_scriptdir}/email/*.py
+%{py_scriptdir}/email/mime/*.py
 
 %dir %{py_scriptdir}/html
-%{py_scriptdir}/html/*.py[co]
+%{py_scriptdir}/html/*.py
+%{py_scriptdir}/html/__pycache__
 
 %dir %{py_scriptdir}/http
-%{py_scriptdir}/http/*.py[co]
+%{py_scriptdir}/http/__pycache__
+%{py_scriptdir}/http/*.py
+
+%dir %{py_scriptdir}/idlelib
 
 %dir %{py_scriptdir}/importlib
-%{py_scriptdir}/importlib/*.py[co]
+%{py_scriptdir}/importlib/__pycache__
+%{py_scriptdir}/importlib/*.py
 
 %dir %{py_scriptdir}/json
-%{py_scriptdir}/json/*.py[co]
+%{py_scriptdir}/json/__pycache__
+%{py_scriptdir}/json/*.py
 
 %dir %{py_scriptdir}/logging
-%{py_scriptdir}/logging/*.py[co]
+%{py_scriptdir}/logging/__pycache__
+%{py_scriptdir}/logging/*.py
 
 %dir %{py_scriptdir}/multiprocessing
-%{py_scriptdir}/multiprocessing/*.py[co]
+%{py_scriptdir}/multiprocessing/__pycache__
+%{py_scriptdir}/multiprocessing/*.py
 %dir %{py_scriptdir}/multiprocessing/dummy
-%{py_scriptdir}/multiprocessing/dummy/*.py[co]
+%{py_scriptdir}/multiprocessing/dummy/__pycache__
+%{py_scriptdir}/multiprocessing/dummy/*.py
+
+%{py_scriptdir}/turtledemo
+
+%dir %{py_scriptdir}/unittest
+%{py_scriptdir}/unittest/__pycache__
+%{py_scriptdir}/unittest/*.py
 
 %dir %{py_scriptdir}/urllib
-%{py_scriptdir}/urllib/*.py[co]
+%{py_scriptdir}/urllib/__pycache__
+%{py_scriptdir}/urllib/*.py
+
+%dir %{py_scriptdir}/venv
+%{py_scriptdir}/venv/__pycache__
+%{py_scriptdir}/venv/*.py
+%dir %{py_scriptdir}/venv/scripts
+%dir %{py_scriptdir}/venv/scripts/posix
+%{py_scriptdir}/venv/scripts/posix/activate
 
 %dir %{py_scriptdir}/wsgiref
-%{py_scriptdir}/wsgiref/*.py[co]
-%{py_scriptdir}/wsgiref.egg-info
+%{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/*.py[co]
-%{py_scriptdir}/xml/dom/*.py[co]
-%{py_scriptdir}/xml/etree/*.py[co]
-%{py_scriptdir}/xml/parsers/*.py[co]
-%{py_scriptdir}/xml/sax/*.py[co]
+%{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/*.py[co]
+%{py_scriptdir}/xmlrpc/__pycache__
+%{py_scriptdir}/xmlrpc/*.py
 
 %attr(755,root,root) %{py_dyndir}/_sqlite3.cpython-*.so
 %dir %{py_scriptdir}/sqlite3
-%{py_scriptdir}/sqlite3/*.py[co]
+%{py_scriptdir}/sqlite3/__pycache__
+%{py_scriptdir}/sqlite3/*.py
 
 %files -n pydoc3
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/pydoc3
-%{py_scriptdir}/pydoc.py[co]
+%attr(755,root,root) %{_bindir}/pydoc3.3
+%{py_scriptdir}/pydoc.py
+%{py_scriptdir}/__pycache__/pydoc.cpython-*.py[co]
 %dir %{py_scriptdir}/pydoc_data
-%{py_scriptdir}/pydoc_data/*.py[co]
+%{py_scriptdir}/pydoc_data/__pycache__
+%{py_scriptdir}/pydoc_data/*.py
+%{py_scriptdir}/pydoc_data/*.css
 
 %files -n idle3
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/idle3
-%dir %{py_scriptdir}/idlelib
+%attr(755,root,root) %{_bindir}/idle3.3
 %dir %{py_scriptdir}/idlelib/Icons
-%{py_scriptdir}/idlelib/*.py[co]
+%{py_scriptdir}/idlelib/__pycache__
+%{py_scriptdir}/idlelib/*.py
 %doc %{py_scriptdir}/idlelib/*.txt
 %doc %{py_scriptdir}/idlelib/ChangeLog
 %{py_scriptdir}/idlelib/Icons/*
@@ -801,89 +1182,62 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/python3-config
 %attr(755,root,root) %{_libdir}/libpython%{py_abi}.so
 %attr(755,root,root) %{_libdir}/libpython3.so
-%dir %{py_incdir}
 %{py_incdir}/*.h
-%{_pkgconfigdir}/python-%{py_ver}.pc
-%{_pkgconfigdir}/python-%{py_abi}.pc
-%{_pkgconfigdir}/python3.pc
-
-%dir %{py_libdir}/config-%{py_abi}
+%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}/Makefile
-%{py_libdir}/config-%{py_abi}/Setup
-%{py_libdir}/config-%{py_abi}/Setup.config
-%{py_libdir}/config-%{py_abi}/Setup.local
 %{py_libdir}/config-%{py_abi}/config.c
 %{py_libdir}/config-%{py_abi}/config.c.in
 %{py_libdir}/config-%{py_abi}/python.o
-
-%files devel-src
-%defattr(644,root,root,755)
-%attr(-,root,root) %{py_scriptdir}/*.py
-%{py_scriptdir}/plat-*/*.py
-%{py_scriptdir}/ctypes/*.py
-%{py_scriptdir}/ctypes/macholib/*.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}/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}/xmlrpc/*.py
+%{_pkgconfigdir}/python-%{py_ver}.pc
+%{_pkgconfigdir}/python-%{py_abi}.pc
+%{_pkgconfigdir}/python3.pc
 
 %files devel-tools
 %defattr(644,root,root,755)
 /etc/shrc.d/python*-devel*
-
 %attr(755,root,root) %{_bindir}/pygettext%{py_ver}
-
-%{py_scriptdir}/pdb.py[co]
-%{py_scriptdir}/profile.py[co]
-%{py_scriptdir}/pstats.py[co]
-%{py_scriptdir}/timeit.py[co]
+%{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]
 
 %files 2to3
 %attr(755,root,root) %{_bindir}/2to3-%{py_ver}
 %dir %{py_scriptdir}/lib2to3
+%{py_scriptdir}/lib2to3/__pycache__
 %{py_scriptdir}/lib2to3/*.txt
 %{py_scriptdir}/lib2to3/*.pickle
-%{py_scriptdir}/lib2to3/*.py[co]
+%{py_scriptdir}/lib2to3/*.py
 %dir %{py_scriptdir}/lib2to3/fixes
+%{py_scriptdir}/lib2to3/fixes/__pycache__
 %{py_scriptdir}/lib2to3/fixes/*.py
-%{py_scriptdir}/lib2to3/fixes/*.py[co]
 %dir %{py_scriptdir}/lib2to3/pgen2
-%{py_scriptdir}/lib2to3/pgen2/*.py[co]
+%{py_scriptdir}/lib2to3/pgen2/__pycache__
+%{py_scriptdir}/lib2to3/pgen2/*.py
 
 %files static
 %defattr(644,root,root,755)
-%{py_libdir}/config-%{py_abi}/libpython%{py_abi}.a
+%{_libdir}/libpython%{py_abi}.a
 
 %files examples
 %defattr(644,root,root,755)
 %{_examplesdir}/%{name}-%{version}
 
+%files test
+%{py_scriptdir}/idlelib/idle_test
+%{py_scriptdir}/test
+%{py_scriptdir}/ctypes/test
+%{py_scriptdir}/distutils/tests
+%{py_scriptdir}/lib2to3/tests
+%{py_scriptdir}/sqlite3/test
+%{py_scriptdir}/tkinter/test
+%{py_scriptdir}/unittest/test
+
 %if %{with info}
 %files doc-info
 %defattr(644,root,root,755)
@@ -894,6 +1248,7 @@ rm -rf $RPM_BUILD_ROOT
 %files tkinter
 %defattr(644,root,root,755)
 %dir %{py_scriptdir}/tkinter
-%{py_scriptdir}/tkinter/*.py[co]
+%{py_scriptdir}/tkinter/__pycache__
+%{py_scriptdir}/tkinter/*.py
 %attr(755,root,root) %{py_dyndir}/_tkinter.cpython-*.so
 %endif
This page took 0.074273 seconds and 4 git commands to generate.