]> git.pld-linux.org Git - packages/python3.git/blobdiff - python3.spec
- purelib: directory for non-platform-specific files, rel 5
[packages/python3.git] / python3.spec
index 47e6c0d10e34a134dd27b271fea38f03883e4985..0fcc90ea54cc92a1d8d1db54950002ef1a613985 100644 (file)
@@ -1,23 +1,37 @@
+# NOTE: tests require processes limit >128 (256 is sufficient)
 #
 # Conditional build:
 %bcond_with    info                    # info pages (requires emacs)
 %bcond_without system_mpdecimal        # system libmpdec library
 %bcond_without tkinter                 # disables tkinter module building
-%bcond_with    tests                   # disables Python testing
+%bcond_without tests                   # disables Python testing
 %bcond_with    verbose_tests           # runs tests in verbose mode
+%bcond_without optimizations           # expensive, stable optimizations (PGO etc.) + LTO
 #
 # tests which will not work on 64-bit platforms
-%define                no64bit_tests   test_audioop test_rgbimg test_imageop
+%define                no64bit_tests   -x test_audioop -x test_rgbimg -x 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
+%define                nobuilder_tests -u-network -x test_resource -x test_openpty -x test_socket -x test_nis -x test_posix -x test_locale -x test_pty -x test_asyncio -x test_os -x test_readline -x test_normalization
 
-# tests which fail because of some unknown/unresolved reason (this list should be empty)
+# tests which fail because of some unknown/unresolved reason (this list should be %{nil})
 #   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
+#   test_time: test_AsTimeval (test.test_time.TestCPyTime), rounding error
+%ifarch x32
+%define                broken_tests_x32        -x test_time
+%undefine      with_optimizations
+%endif
+%define                broken_tests    -x test_embed -x test_nntplib -x test_gdb -x test_site -x test_distutils -x test_bdist_rpm -x test_ssl %{?broken_tests_x32}
+
+%ifarch armv6hl armv7hl armv7hnl
+%define                _python_target_abi      %{?_gnu}hf
+%else
+%define                _python_target_abi      %{?_gnu}
+%endif
 
-%define py_ver         3.5
-%define py_abi         %{py_ver}m
+%define py_ver         3.10
+%define py_abi         %{py_ver}
+%define        py_platform     %{py_abi}-%{_target_base_arch}-%{_target_os}%{?_python_target_abi}
 %define py_prefix      %{_prefix}
 %define py_libdir      %{py_prefix}/%{_lib}/python%{py_ver}
 %define py_incdir      %{_includedir}/python%{py_abi}
@@ -33,25 +47,31 @@ 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}.0
+Version:       %{py_ver}.4
 Release:       5
 Epoch:         1
 License:       PSF
-Group:         Applications
-Source0:       http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
-# Source0-md5: d149d2812f10cbe04c042232e7964171
+Group:         Development/Languages/Python
+Source0:       https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
+# Source0-md5: 21f2e113e087083a1e8cf10553d93599
+Source1:       pyconfig.h.in
 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:                python3-atomic.patch
-Patch7:                python-distro.patch
-Patch8:                %{name}-db.patch
-Patch9:                %{name}-install_prefix.patch
-URL:           http://www.python.org/
+Patch2:                %{name}-multilib.patch
+Patch3:                %{name}-no_cmdline_tests.patch
+
+Patch5:                %{name}-config.patch
+Patch7:                %{name}-db.patch
+Patch9:                %{name}-tests_with_pythonpath.patch
+Patch10:       %{name}-bdist_rpm.patch
+Patch11:       %{name}-installcompile.patch
+
+Patch13:       %{name}-no-randomize-tests.patch
+Patch14:       python3-profile-tests.patch
+Patch15:       python3-tests.patch
+URL:           https://www.python.org/
 BuildRequires: autoconf >= 2.65
+BuildRequires: autoconf-archive
 BuildRequires: automake
 BuildRequires: bluez-libs-devel
 BuildRequires: bzip2-devel
@@ -60,10 +80,15 @@ BuildRequires:      db-devel >= 4
 BuildRequires: expat-devel >= 1:1.95.7
 BuildRequires: file
 BuildRequires: gdbm-devel >= 1.8.3
+%if %(locale -a | grep -q '^C\.utf8$'; echo $?)
+BuildRequires: glibc-localedb-all
+%endif
 BuildRequires: gmp-devel >= 4.0
 BuildRequires: libffi-devel
+BuildRequires: libnsl-devel
 BuildRequires: libstdc++-devel
-%{?with_system_mpdecimal:BuildRequires:        mpdecimal-devel >= 2.4.1}
+BuildRequires: libtirpc-devel
+%{?with_system_mpdecimal:BuildRequires:        mpdecimal-devel >= 2.5.0}
 BuildRequires: ncurses-ext-devel >= 5.2
 BuildRequires: openssl-devel >= 0.9.7
 BuildRequires: pkgconfig
@@ -85,9 +110,9 @@ BuildRoot:   %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define                specflags_ppc64 -D__ppc64__=1
 
 %if %{with verbose_tests}
-%define test_flags -v -x
+%define test_flags -v
 %else
-%define test_flags -w -x
+%define test_flags -wW
 %endif
 
 %ifarch alpha ia64 ppc64 sparc64 ppc64 %{x8664}
@@ -97,7 +122,7 @@ BuildRoot:   %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %endif
 
 %ifarch sparc
-%define test_list %{nobuilder_tests} %{broken_tests} test_fcntl test_ioctl
+%define test_list %{nobuilder_tests} %{broken_tests} -x test_fcntl -x test_ioctl
 %endif
 
 %description
@@ -205,7 +230,9 @@ Group:              Libraries/Python
 Provides:      python(abi) = %{py_ver}
 # for compatibility with existing Ac packages
 Provides:      python(bytecode) = %{py_ver}
-%{!?with_info:Obsoletes:       python3-doc-info}
+Provides:      python3-enum
+Obsoletes:     python3-enum < 0.5
+%{!?with_info:Obsoletes:       python3-doc-info < %{epoch}:%{version}-%{release}}
 
 %description libs
 Python shared library and very essental modules for Python binary.
@@ -219,10 +246,9 @@ Summary:   Python modules
 Summary(pl.UTF-8):     Moduły języka Python
 Group:         Libraries/Python
 Requires:      %{name}-libs = %{epoch}:%{version}-%{release}
-%{?with_system_mpdecimal:Requires:     mpdecimal >= 2.4.1}
-Obsoletes:     python3-modules-sqlite
-Obsoletes:     python3-enum
-Provides:      python3-enum
+%{?with_system_mpdecimal:Requires:     mpdecimal >= 2.4.2-2}
+Obsoletes:     python3-modules-sqlite < 1:3.1-2
+%requires_ge_to        openssl openssl-devel
 
 %description modules
 Python officially distributed modules.
@@ -266,6 +292,7 @@ Summary(tr.UTF-8):  Python ile geliştirme yapmak için gerekli dosyalar
 Summary(uk.UTF-8):     Бібліотеки та хедери для програмування на мові Python
 Group:         Development/Languages/Python
 Requires:      %{name}-libs = %{epoch}:%{version}-%{release}
+Obsoletes:     python3-devel-src < 1:3.2-1
 
 %description devel
 The Python interpreter is relatively easy to extend with dynamically
@@ -318,18 +345,6 @@ dosyalarını ve kitaplıkları içerir.
 розширень з динамічною загрузкою та вбудовується в інші програми. Цей
 пакет містить хедери та бібліотеки, необхідні для обох цих задач.
 
-%package devel-src
-Summary:       Python module sources
-Summary(pl.UTF-8):     Pliki źródłowe modułów Pythona
-Group:         Development/Languages/Python
-Requires:      %{name}-modules = %{epoch}:%{version}-%{release}
-
-%description devel-src
-Python module sources.
-
-%description devel-src -l pl.UTF-8
-Pliki źródłowe modułów Pythona.
-
 %package devel-tools
 Summary:       Python development tools
 Summary(pl.UTF-8):     Narzędzia programistyczne języka Python
@@ -346,7 +361,7 @@ debugger.
 %package 2to3
 Summary:       Automated Python 2 to 3 code translation
 Summary(pl.UTF-8):     Automatyczne tłumaczenie kodu Pythona 2 do 3
-Group:         Development/Languages/Pythona
+Group:         Development/Languages/Python
 
 %description 2to3
 2to3 is a Python program that reads Python 2.x source code and applies
@@ -440,6 +455,7 @@ kullanılan grafik bir arayüzdür.
 Summary:       Example programs in Python
 Summary(pl.UTF-8):     Przykładowe programy w Pythonie
 Group:         Development/Languages/Python
+BuildArch:     noarch
 
 %description examples
 Example programs in Python.
@@ -468,17 +484,20 @@ Moduły testowe dla Pythona.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-%patch4 -p1
+
 %patch5 -p1
-%patch6 -p1
 %patch7 -p1
-%patch8 -p1
 %patch9 -p1
+%patch10 -p1
+%patch11 -p1
+
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
 
-%{__rm} -r Modules/zlib
 %{__rm} -r Modules/expat
 
-for SUBDIR in darwin libffi libffi_arm_wince libffi_msvc libffi_osx; do
+for SUBDIR in darwin libffi_osx; do
        %{__rm} -r Modules/_ctypes/$SUBDIR/*
 done
 
@@ -490,8 +509,21 @@ for f in $files; do
 done
 %endif
 
+sed -E -i -e '1s,#!\s*/usr/bin/env\s+python2(\s|$),#!%{__python}\1,' -e '1s,#!\s*/usr/bin/env\s+python(\s|$),#!%{__python}\1,' -e '1s,#!\s*/usr/bin/python(\s|$),#!%{__python}\1,' \
+      Tools/gdb/libpython.py \
+      Tools/pynche/pynche \
+      Tools/pynche/pynche.pyw \
+      Tools/scripts/2to3
+
+sed -E -i -e '1s,#!\s*/usr/bin/env\s+python3(\s|$),#!%{__python3}\1,' \
+      Tools/scripts/idle3 \
+      Tools/scripts/pydoc3
+
 find . -name '*.py' | xargs -r grep -El '^#! */usr/bin/env python3?' | xargs %{__sed} -i -e '1s,^#! */usr/bin/env python3\?,#!/usr/bin/python3,'
 
+sed -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\1,' \
+       Tools/c-analyzer/must-resolve.sh
+
 %build
 if ! grep -q "tmpfs" /proc/self/mounts; then
        echo "You need to have /dev/shm mounted in order to build this package!" >&2
@@ -503,47 +535,57 @@ fi
 %{__autoconf}
 %configure \
        CC="%{__cc}" \
-       OPT="%{rpmcflags} -fno-caller-saves" \
+       OPT="%{rpmcflags}" \
        CPPFLAGS="%{rpmcppflags}" \
        LDFLAGS="%{rpmldflags}" \
+       LDFLAGS_NODIST="%{debuginfocflags}" \
        ac_cv_posix_semaphores_enabled=yes \
        ac_cv_broken_sem_getvalue=no \
        --enable-ipv6 \
        --enable-shared \
        --with-computed-gotos \
-       --with-dbmliborder=gdbm:bdb \
+       --with-dbmliborder=gdbm:ndbm:bdb \
        --with-doc-strings \
        --without-ensurepip \
-       --with-fpectl \
+        --with-platlibdir="%{_lib}" \
        %{?with_debug:--with-pydebug} \
-       --with-signal-module \
+        --with-ssl-default-suites=openssl \
        --with-system-expat \
        --with-system-ffi \
        %{?with_system_mpdecimal:--with-system-libmpdec} \
-       --with-threads \
-%ifarch %{ix86} %{x8664} ppc ppc64
-       --with-tsc
+%if %{with optimizations}
+       --enable-optimizations \
+       --with-lto
 %endif
 
-%{__make} 2>&1 | awk '
+if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
+      echo "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." >&2
+      exit 1
+fi
+
+%{__make} \
+       TESTOPTS="%{_smp_mflags} %{test_list}" \
+       2>&1 | awk '
 BEGIN { fail = 0; logmsg = ""; }
 {
-        if ($0 ~ /\*\*\* WARNING:/) {
-                fail = 1;
-                logmsg = logmsg $0;
-        }
-        print $0;
+               if ($0 ~ /\*\*\* WARNING:/) {
+                               fail = 1;
+                               logmsg = logmsg $0;
+               }
+               print $0;
 }
 END { if (fail) { print "\nPROBLEMS FOUND:"; print logmsg; exit(1); } }'
 
-LC_ALL=C
+LC_ALL=C.UTF-8
 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:`pwd`/$binlibdir ./python -tt"
+WITHIN_PYTHON_RPM_BUILD=1 %{__make} test \
+       TESTOPTS="%{test_flags} %{test_list}"
+%endif
+
+%if %{with info}
+%{__make} -C Doc texinfo
+%{__make} -C Doc/build/texinfo info
 %endif
 
 %install
@@ -552,14 +594,14 @@ 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},%{_mandir}/man1} \
-       $RPM_BUILD_ROOT/etc/shrc.d
+       $RPM_BUILD_ROOT/etc/shrc.d \
+       $RPM_BUILD_ROOT%{_prefix}/lib/debug/%{_libdir}
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
 
 %if %{with info}
-%{__make} -C Doc/info
-cp -p Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
+cp -p Doc/build/texinfo/python*info* $RPM_BUILD_ROOT%{_infodir}
 %endif
 
 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
@@ -569,16 +611,20 @@ cp -a Tools $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libpython3.so
 ln -s libpython%{py_abi}.so $RPM_BUILD_ROOT%{_libdir}/libpython3.so
 
+# gdb helper that will end up in -debuginfo package
+soname=$(ls -1d $RPM_BUILD_ROOT%{_libdir}/libpython%{py_abi}.so.*.* | sed -e "s#^$RPM_BUILD_ROOT##g")
+cp -a Tools/gdb/libpython.py "$RPM_BUILD_ROOT%{_prefix}/lib/debug/$soname-gdb.py"
+
 #
 # 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/=/ /' \
@@ -587,7 +633,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/=/ /' \
@@ -605,23 +651,25 @@ install -p Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver}
 install -p Tools/scripts/reindent.py $RPM_BUILD_ROOT%{_bindir}/pyreindent%{py_ver}
 
 # just to cut the noise, as they are not packaged (now)
-%{__rm} $RPM_BUILD_ROOT%{py_libdir}/plat-*/regen
 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/ctypes/macholib/fetch_macholib*
-%{__rm} $RPM_BUILD_ROOT%{py_libdir}/site-packages/README
-%{__rm} $RPM_BUILD_ROOT%{py_libdir}/distutils/command/wininst*.exe
 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/*.bat
 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/*.pyw
+%{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/help.html
+%{__rm} $RPM_BUILD_ROOT%{py_libdir}/site-packages/README.txt
 
 # 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
+%{__rm} $RPM_BUILD_ROOT%{py_dyndir}/xxlimited*.*.so
 
 # already in %%doc
 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/LICENSE.txt
 
+%{__mv} $RPM_BUILD_ROOT%{py_incdir}/pyconfig.h $RPM_BUILD_ROOT%{py_libdir}/config-%{py_platform}/pyconfig.h
+%{__sed} -e's#@PREFIX@#%{_prefix}#g;s#@PY_VER@#%{py_ver}#g;s#@PY_ABI@#%{py_platform}#g' %{SOURCE1} > $RPM_BUILD_ROOT%{py_incdir}/pyconfig.h
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -637,10 +685,11 @@ rm -rf $RPM_BUILD_ROOT
 %files
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/python%{py_ver}
+%if "%{py_ver}" != "%{py_abi}"
 %attr(755,root,root) %{_bindir}/python%{py_abi}
+%endif
 %attr(755,root,root) %{_bindir}/python3
-%{_mandir}/man1/python%{py_ver}.1*
-%{_mandir}/man1/python3.1*
+%{_mandir}/man1/python3*.1*
 
 %files libs
 %defattr(644,root,root,755)
@@ -665,12 +714,13 @@ rm -rf $RPM_BUILD_ROOT
 # modules required by python library
 %{py_libdir}/_collections_abc.py
 %{py_libdir}/_sitebuiltins.py
-%{py_libdir}/_sysconfigdata.py
+%{py_libdir}/_sysconfigdata_*.py
 %{py_libdir}/_weakrefset.py
 %{py_libdir}/abc.py
 %{py_libdir}/bisect.py
 %{py_libdir}/codecs.py
 %{py_libdir}/copyreg.py
+%{py_libdir}/enum.py
 %{py_libdir}/functools.py
 %{py_libdir}/genericpath.py
 %{py_libdir}/heapq.py
@@ -678,6 +728,7 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/linecache.py
 %{py_libdir}/locale.py
 %{py_libdir}/io.py
+%{py_libdir}/operator.py
 %{py_libdir}/posixpath.py
 %{py_libdir}/re.py
 %{py_libdir}/reprlib.py
@@ -693,13 +744,14 @@ rm -rf $RPM_BUILD_ROOT
 # needed by the dynamic sys.lib patch
 %{py_libdir}/types.py
 %{py_libdir}/__pycache__/_sitebuiltins.cpython-*.py[co]
-%{py_libdir}/__pycache__/_sysconfigdata.cpython-*.py[co]
+%{py_libdir}/__pycache__/_sysconfigdata_*.cpython-*.py[co]
 %{py_libdir}/__pycache__/_weakrefset.cpython-*.py[co]
 %{py_libdir}/__pycache__/abc.cpython-*.py[co]
 %{py_libdir}/__pycache__/bisect.cpython-*.py[co]
 %{py_libdir}/__pycache__/codecs.cpython-*.py[co]
 %{py_libdir}/__pycache__/_collections_abc.cpython-*.py[co]
 %{py_libdir}/__pycache__/copyreg.cpython-*.py[co]
+%{py_libdir}/__pycache__/enum.cpython-*.py[co]
 %{py_libdir}/__pycache__/functools.cpython-*.py[co]
 %{py_libdir}/__pycache__/genericpath.cpython-*.py[co]
 %{py_libdir}/__pycache__/heapq.cpython-*.py[co]
@@ -707,6 +759,7 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/__pycache__/linecache.cpython-*.py[co]
 %{py_libdir}/__pycache__/locale.cpython-*.py[co]
 %{py_libdir}/__pycache__/io.cpython-*.py[co]
+%{py_libdir}/__pycache__/operator.cpython-*.py[co]
 %{py_libdir}/__pycache__/posixpath.cpython-*.py[co]
 %{py_libdir}/__pycache__/re.cpython-*.py[co]
 %{py_libdir}/__pycache__/reprlib.cpython-*.py[co]
@@ -728,26 +781,25 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/encodings/__pycache__
 %{py_libdir}/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
+%dir %{py_libdir}/config-%{py_platform}
+%{py_libdir}/config-%{py_platform}/Makefile
+%{py_libdir}/config-%{py_platform}/Setup
+%{py_libdir}/config-%{py_platform}/Setup.local
+%{py_libdir}/config-%{py_platform}/pyconfig.h
 
 %files modules
 %defattr(644,root,root,755)
-/etc/shrc.d/python*-modules*
-%attr(755,root,root) %{_bindir}/pyvenv
-%attr(755,root,root) %{_bindir}/pyvenv-%{py_ver}
+%config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/python*-modules*
 %{py_libdir}/__future__.py
 %{py_libdir}/__phello__.foo.py
-%{py_libdir}/_bootlocale.py
+%{py_libdir}/_aix_support.py
+%{py_libdir}/_bootsubprocess.py
 %{py_libdir}/_compat_pickle.py
 %{py_libdir}/_compression.py
-%{py_libdir}/_dummy_thread.py
 %{py_libdir}/_markupbase.py
 %{py_libdir}/_osx_support.py
 %{py_libdir}/_pydecimal.py
+%{py_libdir}/_py_abc.py
 %{py_libdir}/_pyio.py
 %{py_libdir}/_strptime.py
 %{py_libdir}/_threading_local.py
@@ -773,26 +825,26 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/compileall.py
 %{py_libdir}/configparser.py
 %{py_libdir}/contextlib.py
+%{py_libdir}/contextvars.py
 %{py_libdir}/copy.py
 %{py_libdir}/crypt.py
 %{py_libdir}/csv.py
+%{py_libdir}/dataclasses.py
 %{py_libdir}/datetime.py
 %{py_libdir}/decimal.py
 %{py_libdir}/difflib.py
 %{py_libdir}/dis.py
 %{py_libdir}/doctest.py
-%{py_libdir}/dummy_threading.py
-%{py_libdir}/enum.py
 %{py_libdir}/filecmp.py
 %{py_libdir}/fileinput.py
 %{py_libdir}/fnmatch.py
-%{py_libdir}/formatter.py
 %{py_libdir}/fractions.py
 %{py_libdir}/ftplib.py
 %{py_libdir}/getopt.py
 %{py_libdir}/getpass.py
 %{py_libdir}/gettext.py
 %{py_libdir}/glob.py
+%{py_libdir}/graphlib.py
 %{py_libdir}/gzip.py
 %{py_libdir}/hashlib.py
 %{py_libdir}/hmac.py
@@ -802,8 +854,6 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/inspect.py
 %{py_libdir}/ipaddress.py
 %{py_libdir}/lzma.py
-%{py_libdir}/macpath.py
-%{py_libdir}/macurl2path.py
 %{py_libdir}/mailbox.py
 %{py_libdir}/mailcap.py
 %{py_libdir}/mimetypes.py
@@ -814,7 +864,6 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/nturl2path.py
 %{py_libdir}/numbers.py
 %{py_libdir}/opcode.py
-%{py_libdir}/operator.py
 %{py_libdir}/optparse.py
 %{py_libdir}/pathlib.py
 %{py_libdir}/pickle.py
@@ -833,6 +882,7 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/random.py
 %{py_libdir}/rlcompleter.py
 %{py_libdir}/runpy.py
+%{py_libdir}/secrets.py
 %{py_libdir}/signal.py
 %{py_libdir}/sched.py
 %{py_libdir}/selectors.py
@@ -851,7 +901,6 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/struct.py
 %{py_libdir}/subprocess.py
 %{py_libdir}/sunau.py
-%{py_libdir}/symbol.py
 %{py_libdir}/symtable.py
 %{py_libdir}/tabnanny.py
 %{py_libdir}/tarfile.py
@@ -873,15 +922,17 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/xdrlib.py
 %{py_libdir}/zipapp.py
 %{py_libdir}/zipfile.py
+%{py_libdir}/zipimport.py
 %{py_libdir}/__pycache__/__future__.cpython-*.py[co]
 %{py_libdir}/__pycache__/__phello__.foo.cpython-*.py[co]
-%{py_libdir}/__pycache__/_bootlocale.cpython-*.py[co]
+%{py_libdir}/__pycache__/_aix_support.cpython-*.py[co]
+%{py_libdir}/__pycache__/_bootsubprocess.cpython-*.py[co]
 %{py_libdir}/__pycache__/_compat_pickle.cpython-*.py[co]
 %{py_libdir}/__pycache__/_compression.cpython-*.py[co]
-%{py_libdir}/__pycache__/_dummy_thread.cpython-*.py[co]
 %{py_libdir}/__pycache__/_markupbase.cpython-*.py[co]
 %{py_libdir}/__pycache__/_osx_support.cpython-*.py[co]
 %{py_libdir}/__pycache__/_pydecimal.cpython-*.py[co]
+%{py_libdir}/__pycache__/_py_abc.cpython-*.py[co]
 %{py_libdir}/__pycache__/_pyio.cpython-*.py[co]
 %{py_libdir}/__pycache__/_strptime.cpython-*.py[co]
 %{py_libdir}/__pycache__/_threading_local.cpython-*.py[co]
@@ -901,6 +952,7 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/__pycache__/cgitb.cpython-*.py[co]
 %{py_libdir}/__pycache__/chunk.cpython-*.py[co]
 %{py_libdir}/__pycache__/cmd.cpython-*.py[co]
+%{py_libdir}/__pycache__/contextvars.cpython-*.py[co]
 %{py_libdir}/__pycache__/code.cpython-*.py[co]
 %{py_libdir}/__pycache__/codeop.cpython-*.py[co]
 %{py_libdir}/__pycache__/colorsys.cpython-*.py[co]
@@ -910,23 +962,22 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/__pycache__/copy.cpython-*.py[co]
 %{py_libdir}/__pycache__/crypt.cpython-*.py[co]
 %{py_libdir}/__pycache__/csv.cpython-*.py[co]
+%{py_libdir}/__pycache__/dataclasses.cpython-*.py[co]
 %{py_libdir}/__pycache__/datetime.cpython-*.py[co]
 %{py_libdir}/__pycache__/decimal.cpython-*.py[co]
 %{py_libdir}/__pycache__/difflib.cpython-*.py[co]
 %{py_libdir}/__pycache__/dis.cpython-*.py[co]
 %{py_libdir}/__pycache__/doctest.cpython-*.py[co]
-%{py_libdir}/__pycache__/dummy_threading.cpython-*.py[co]
-%{py_libdir}/__pycache__/enum.cpython-*.py[co]
 %{py_libdir}/__pycache__/filecmp.cpython-*.py[co]
 %{py_libdir}/__pycache__/fileinput.cpython-*.py[co]
 %{py_libdir}/__pycache__/fnmatch.cpython-*.py[co]
-%{py_libdir}/__pycache__/formatter.cpython-*.py[co]
 %{py_libdir}/__pycache__/fractions.cpython-*.py[co]
 %{py_libdir}/__pycache__/ftplib.cpython-*.py[co]
 %{py_libdir}/__pycache__/getopt.cpython-*.py[co]
 %{py_libdir}/__pycache__/getpass.cpython-*.py[co]
 %{py_libdir}/__pycache__/gettext.cpython-*.py[co]
 %{py_libdir}/__pycache__/glob.cpython-*.py[co]
+%{py_libdir}/__pycache__/graphlib.cpython-*.py[co]
 %{py_libdir}/__pycache__/gzip.cpython-*.py[co]
 %{py_libdir}/__pycache__/hashlib.cpython-*.py[co]
 %{py_libdir}/__pycache__/hmac.cpython-*.py[co]
@@ -936,8 +987,6 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/__pycache__/inspect.cpython-*.py[co]
 %{py_libdir}/__pycache__/ipaddress.cpython-*.py[co]
 %{py_libdir}/__pycache__/lzma.cpython-*.py[co]
-%{py_libdir}/__pycache__/macpath.cpython-*.py[co]
-%{py_libdir}/__pycache__/macurl2path.cpython-*.py[co]
 %{py_libdir}/__pycache__/mailbox.cpython-*.py[co]
 %{py_libdir}/__pycache__/mailcap.cpython-*.py[co]
 %{py_libdir}/__pycache__/mimetypes.cpython-*.py[co]
@@ -948,7 +997,6 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/__pycache__/nturl2path.cpython-*.py[co]
 %{py_libdir}/__pycache__/numbers.cpython-*.py[co]
 %{py_libdir}/__pycache__/opcode.cpython-*.py[co]
-%{py_libdir}/__pycache__/operator.cpython-*.py[co]
 %{py_libdir}/__pycache__/optparse.cpython-*.py[co]
 %{py_libdir}/__pycache__/pathlib.cpython-*.py[co]
 %{py_libdir}/__pycache__/pickle.cpython-*.py[co]
@@ -968,6 +1016,7 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/__pycache__/rlcompleter.cpython-*.py[co]
 %{py_libdir}/__pycache__/runpy.cpython-*.py[co]
 %{py_libdir}/__pycache__/sched.cpython-*.py[co]
+%{py_libdir}/__pycache__/secrets.cpython-*.py[co]
 %{py_libdir}/__pycache__/selectors.cpython-*.py[co]
 %{py_libdir}/__pycache__/shelve.cpython-*.py[co]
 %{py_libdir}/__pycache__/shlex.cpython-*.py[co]
@@ -985,7 +1034,6 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/__pycache__/struct.cpython-*.py[co]
 %{py_libdir}/__pycache__/subprocess.cpython-*.py[co]
 %{py_libdir}/__pycache__/sunau.cpython-*.py[co]
-%{py_libdir}/__pycache__/symbol.cpython-*.py[co]
 %{py_libdir}/__pycache__/symtable.cpython-*.py[co]
 %{py_libdir}/__pycache__/tabnanny.cpython-*.py[co]
 %{py_libdir}/__pycache__/tarfile.cpython-*.py[co]
@@ -1007,12 +1055,15 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/__pycache__/xdrlib.cpython-*.py[co]
 %{py_libdir}/__pycache__/zipapp.cpython-*.py[co]
 %{py_libdir}/__pycache__/zipfile.cpython-*.py[co]
+%{py_libdir}/__pycache__/zipimport.cpython-*.py[co]
 
 #
 # list .so modules to be sure that all of them are built
 #
 
+%attr(755,root,root) %{py_dyndir}/_asyncio.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_bisect.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_blake2.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
@@ -1020,6 +1071,7 @@ rm -rf $RPM_BUILD_ROOT
 %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}/_contextvars.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
@@ -1042,15 +1094,23 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{py_dyndir}/_multiprocessing.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_opcode.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_pickle.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_posixshmem.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_posixsubprocess.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_queue.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_random.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_sha1.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_sha3.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}/_statistics.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_testbuffer.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_testcapi.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_testinternalcapi.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_testimportmultiple.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/_testmultiphase.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_uuid.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_xxsubinterpreters.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_xxtestfuzz.cpython-*.so
 
 # for openssl < 0.9.8 package sha256 and sha512 modules
 %if "%{pld_release}" != "ac"
@@ -1068,7 +1128,6 @@ rm -rf $RPM_BUILD_ROOT
 %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
@@ -1079,10 +1138,6 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{py_dyndir}/unicodedata.cpython-*.so
 %attr(755,root,root) %{py_dyndir}/zlib.cpython-*.so
 
-%dir %{py_libdir}/plat-*
-%{py_libdir}/plat-*/__pycache__
-%{py_libdir}/plat-*/*.py
-
 %dir %{py_libdir}/asyncio
 %{py_libdir}/asyncio/__pycache__
 %{py_libdir}/asyncio/*.py
@@ -1141,6 +1196,9 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{py_libdir}/importlib
 %{py_libdir}/importlib/__pycache__
 %{py_libdir}/importlib/*.py
+%dir %{py_libdir}/importlib/metadata
+%{py_libdir}/importlib/metadata/__pycache__
+%{py_libdir}/importlib/metadata/*.py
 
 %dir %{py_libdir}/json
 %{py_libdir}/json/__pycache__
@@ -1171,8 +1229,10 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/venv/__pycache__
 %{py_libdir}/venv/*.py
 %dir %{py_libdir}/venv/scripts
+%dir %{py_libdir}/venv/scripts/common
+%{py_libdir}/venv/scripts/common/Activate.ps1
+%{py_libdir}/venv/scripts/common/activate
 %dir %{py_libdir}/venv/scripts/posix
-%{py_libdir}/venv/scripts/posix/activate
 %{py_libdir}/venv/scripts/posix/activate.csh
 %{py_libdir}/venv/scripts/posix/activate.fish
 
@@ -1205,10 +1265,15 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/sqlite3/__pycache__
 %{py_libdir}/sqlite3/*.py
 
+%attr(755,root,root) %{py_dyndir}/_zoneinfo.cpython-*.so
+%dir %{py_libdir}/zoneinfo
+%{py_libdir}/zoneinfo/__pycache__
+%{py_libdir}/zoneinfo/*.py
+
 %files -n pydoc3
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/pydoc3
-%attr(755,root,root) %{_bindir}/pydoc3.5
+%attr(755,root,root) %{_bindir}/pydoc%{py_ver}
 %{py_libdir}/pydoc.py
 %{py_libdir}/__pycache__/pydoc.cpython-*.py[co]
 %dir %{py_libdir}/pydoc_data
@@ -1219,7 +1284,7 @@ rm -rf $RPM_BUILD_ROOT
 %files -n idle3
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/idle3
-%attr(755,root,root) %{_bindir}/idle3.5
+%attr(755,root,root) %{_bindir}/idle%{py_ver}
 %dir %{py_libdir}/idlelib/Icons
 %{py_libdir}/idlelib/__pycache__
 %{py_libdir}/idlelib/*.py
@@ -1232,25 +1297,35 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp}
 %attr(755,root,root) %{_bindir}/python%{py_ver}-config
+%if "%{py_ver}" != "%{py_abi}"
 %attr(755,root,root) %{_bindir}/python%{py_abi}-config
+%endif
 %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
-%{py_libdir}/config-%{py_abi}/python-config.py
+%{py_incdir}/cpython
+%{py_incdir}/internal
+%attr(755,root,root) %{py_libdir}/config-%{py_platform}/makesetup
+%attr(755,root,root) %{py_libdir}/config-%{py_platform}/install-sh
+%{py_libdir}/config-%{py_platform}/config.c
+%{py_libdir}/config-%{py_platform}/config.c.in
+%{py_libdir}/config-%{py_platform}/python.o
+%{py_libdir}/config-%{py_platform}/python-config.py
+%dir %{py_libdir}/config-%{py_platform}/__pycache__
+%{py_libdir}/config-%{py_platform}/__pycache__/python-config.*
 %{_pkgconfigdir}/python-%{py_ver}.pc
+%{_pkgconfigdir}/python-%{py_ver}-embed.pc
+%{_pkgconfigdir}/python3-embed.pc
+%if "%{py_ver}" != "%{py_abi}"
 %{_pkgconfigdir}/python-%{py_abi}.pc
+%endif
 %{_pkgconfigdir}/python3.pc
 
 %files devel-tools
 %defattr(644,root,root,755)
-/etc/shrc.d/python*-devel*
+%config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/python*-devel*
 %attr(755,root,root) %{_bindir}/pygettext%{py_ver}
 %attr(755,root,root) %{_bindir}/pyreindent%{py_ver}
 %{py_libdir}/pdb.py
@@ -1263,6 +1338,7 @@ rm -rf $RPM_BUILD_ROOT
 %{py_libdir}/__pycache__/timeit.cpython-*.py[co]
 
 %files 2to3
+%defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/2to3-%{py_ver}
 %dir %{py_libdir}/lib2to3
 %{py_libdir}/lib2to3/__pycache__
@@ -1285,6 +1361,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_examplesdir}/%{name}-%{version}
 
 %files test
+%defattr(644,root,root,755)
 %{py_libdir}/idlelib/idle_test
 %{py_libdir}/test
 %{py_libdir}/ctypes/test
@@ -1297,7 +1374,7 @@ rm -rf $RPM_BUILD_ROOT
 %if %{with info}
 %files doc-info
 %defattr(644,root,root,755)
-%{_infodir}/*.info*
+%{_infodir}/python.info*
 %endif
 
 %if %{with tkinter}
This page took 0.13204 seconds and 4 git commands to generate.