+# NOTE: tests require processes limit >128 (256 is sufficient)
#
# Conditional build:
%bcond_with info # info pages (requires emacs)
%bcond_without tkinter # disables tkinter module building
%bcond_without tests # disables Python testing
%bcond_with verbose_tests # runs tests in verbose mode
-%bcond_without optimizations # optimitations
+%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
# test_time: test_AsTimeval (test.test_time.TestCPyTime), rounding error
%ifarch x32
%define broken_tests_x32 test_time
+%undefine with_optimizations
%endif
-%define broken_tests test_nntplib test_gdb test_site test_ssl %{?broken_tests_x32}
+%define broken_tests test_nntplib test_gdb test_site test_distutils test_bdist_rpm test_ssl %{?broken_tests_x32}
%define py_ver 3.7
%define py_abi %{py_ver}m
Summary(uk.UTF-8): Мова програмування дуже високого рівня з X-інтерфейсом
Name: python3
Version: %{py_ver}.0
-Release: 0.1
+Release: 4
Epoch: 1
License: PSF
Group: Development/Languages/Python
Patch9: %{name}-tests_with_pythonpath.patch
Patch10: %{name}-bdist_rpm.patch
Patch11: %{name}-installcompile.patch
-Patch12: https://bugs.python.org/file21896/nonexistent_user.patch
-# Patch12-md5: db706fbe6de467c6e4c97c675eddf29a
+# https://bugs.python.org/file21896/nonexistent_user.patch
+Patch12: nonexistent_user.patch
+Patch13: %{name}-no-randomize-tests.patch
+# https://github.com/python/cpython/commit/c919252a28f4e9dd326dc2c703b4eee6e247be83.patch
+Patch14: %{name}-redundant_declaration.patch
URL: https://www.python.org/
BuildRequires: autoconf >= 2.65
BuildRequires: automake
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: libstdc++-devel
%if %{with verbose_tests}
%define test_flags -v -x
%else
-%define test_flags -w -x
+%define test_flags -wW -x
%endif
%ifarch alpha ia64 ppc64 sparc64 ppc64 %{x8664}
%patch10 -p1
%patch11 -p1
%patch12 -p1
+%patch13 -p1
+%patch14 -p1
%{__rm} -r Modules/expat
}
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
-WITHIN_PYTHON_RPM_BUILD=1 %{__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} -j1 test \
+ TESTOPTS="%{test_flags} %{test_list}"
%endif
%install