%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 test_asyncio test_os test_readline test_normalization
+%define nobuilder_tests -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 %{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
# test_time: test_AsTimeval (test.test_time.TestCPyTime), rounding error
%ifarch x32
-%define broken_tests_x32 test_time
+%define broken_tests_x32 -x test_time
%undefine with_optimizations
%endif
-%define broken_tests test_nntplib test_gdb test_site test_distutils test_bdist_rpm test_ssl %{?broken_tests_x32}
+%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}
-%define py_ver 3.7
-%define py_abi %{py_ver}m
+%define py_ver 3.8
+%define py_abi %{py_ver}
%define py_platform %{py_abi}-%{_target_base_arch}-%{_target_os}%{?_gnu}
%define py_prefix %{_prefix}
%define py_libdir %{py_prefix}/%{_lib}/python%{py_ver}
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}.4
-Release: 2
+Version: %{py_ver}.8
+Release: 1
Epoch: 1
License: PSF
Group: Development/Languages/Python
Source0: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
-# Source0-md5: d33e4aae66097051c2eca45ee3604803
+# Source0-md5: 23e6b769857233c1ac07b6be7442eff4
Source1: pyconfig.h.in
Patch0: %{name}-pythonpath.patch
Patch1: %{name}-ac_fixes.patch
Patch3: %{name}-no_cmdline_tests.patch
Patch4: %{name}-makefile-location.patch
Patch5: %{name}-config.patch
-Patch6: python-distro.patch
+Patch6: %{name}-BLDLIBRARY.patch
Patch7: %{name}-db.patch
Patch8: %{name}-install_prefix.patch
Patch9: %{name}-tests_with_pythonpath.patch
# https://bugs.python.org/file21896/nonexistent_user.patch
Patch12: nonexistent_user.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: automake
%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.4.2-2}
BuildRequires: ncurses-ext-devel >= 5.2
BuildRequires: openssl-devel >= 0.9.7
BuildRequires: pkgconfig
%define specflags_ppc64 -D__ppc64__=1
%if %{with verbose_tests}
-%define test_flags -v -x
+%define test_flags -v
%else
-%define test_flags -wW -x
+%define test_flags -wW
%endif
%ifarch alpha ia64 ppc64 sparc64 ppc64 %{x8664}
%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
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}
+%{?with_system_mpdecimal:Requires: mpdecimal >= 2.4.2-2}
Obsoletes: python3-modules-sqlite
%requires_ge_to openssl openssl-devel
%patch11 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p1
+%patch15 -p1
%{__rm} -r Modules/expat
-for SUBDIR in darwin libffi_msvc libffi_osx; do
+for SUBDIR in darwin libffi_osx; do
%{__rm} -r Modules/_ctypes/$SUBDIR/*
done
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,'
%build
--with-lto
%endif
-%{__make} 2>&1 | awk '
+%{__make} \
+ TESTOPTS="%{_smp_mflags} %{test_list}" \
+ 2>&1 | awk '
BEGIN { fail = 0; logmsg = ""; }
{
if ($0 ~ /\*\*\* WARNING:/) {
LC_ALL=C.UTF-8
export LC_ALL
%if %{with tests}
-WITHIN_PYTHON_RPM_BUILD=1 %{__make} -j1 test \
+WITHIN_PYTHON_RPM_BUILD=1 %{__make} test \
TESTOPTS="%{test_flags} %{test_list}"
%endif
%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*
%files modules
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/python*-modules*
-%attr(755,root,root) %{_bindir}/pyvenv
-%attr(755,root,root) %{_bindir}/pyvenv-%{py_ver}
%{py_libdir}/__future__.py
%{py_libdir}/__phello__.foo.py
%{py_libdir}/_bootlocale.py
%{py_libdir}/inspect.py
%{py_libdir}/ipaddress.py
%{py_libdir}/lzma.py
-%{py_libdir}/macpath.py
%{py_libdir}/mailbox.py
%{py_libdir}/mailcap.py
%{py_libdir}/mimetypes.py
%{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__/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__/mailbox.cpython-*.py[co]
%{py_libdir}/__pycache__/mailcap.cpython-*.py[co]
%{py_libdir}/__pycache__/mimetypes.cpython-*.py[co]
%{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}/_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}/_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
%{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.csh
%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
+%{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
%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