# tests which will not work on 64-bit platforms
%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 -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
+%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 %{nil})
# test_site: fails because our site.py is patched to include both /usr/share/... and /usr/lib...
%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}
-%define py_ver 3.8
+%ifarch armv6hl armv7hl armv7hnl
+%define _python_target_abi %{?_gnu}hf
+%else
+%define _python_target_abi %{?_gnu}
+%endif
+
+%define py_ver 3.9
%define py_abi %{py_ver}
-%define py_platform %{py_abi}-%{_target_base_arch}-%{_target_os}%{?_gnu}
+%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}
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}.1
+Version: %{py_ver}.2
Release: 2
Epoch: 1
License: PSF
Group: Development/Languages/Python
Source0: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
-# Source0-md5: b3fb85fd479c0bf950c626ef80cacb57
+# Source0-md5: f0dc9000312abeb16de4eccce9a870ab
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: %{name}-BLDLIBRARY.patch
Patch7: %{name}-db.patch
Patch8: %{name}-install_prefix.patch
Patch9: %{name}-tests_with_pythonpath.patch
Patch10: %{name}-bdist_rpm.patch
Patch11: %{name}-installcompile.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
%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
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
%patch3 -p1
%patch4 -p1
%patch5 -p1
-
+%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
-%patch12 -p1
+
%patch13 -p1
%patch14 -p1
%patch15 -p1
done
%endif
-sed -E -i -e '1s,#![[:space:]]*/usr/bin/env[[:space:]]+python2,#!%{__python},' -e '1s,#![[:space:]]*/usr/bin/env[[:space:]]+python,#!%{__python},' -e '1s,#![[:space:]]*/usr/bin/python,#!%{__python},' \
- Lib/encodings/rot_13.py \
- Lib/lib2to3/tests/data/different_encoding.py \
- Lib/lib2to3/tests/data/false_encoding.py \
- Tools/gdb/libpython.py \
- Tools/pynche/pynche \
- Tools/pynche/pynche.pyw \
- Tools/scripts/2to3 \
- Tools/scripts/smelly.py
+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,#![[:space:]]*/usr/bin/env[[:space:]]+python3,#!%{__python3},' \
- Tools/scripts/idle3 \
- Tools/scripts/pydoc3
+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,'
%{__autoconf}
%configure \
CC="%{__cc}" \
- OPT="%{rpmcflags} -fno-caller-saves" \
+ OPT="%{rpmcflags}" \
CPPFLAGS="%{rpmcppflags}" \
LDFLAGS="%{rpmldflags}" \
ac_cv_posix_semaphores_enabled=yes \
--with-dbmliborder=gdbm:ndbm:bdb \
--with-doc-strings \
--without-ensurepip \
+ --with-platlibdir="%{_lib}" \
%{?with_debug:--with-pydebug} \
+ --with-ssl-default-suites=openssl \
--with-system-expat \
--with-system-ffi \
%{?with_system_mpdecimal:--with-system-libmpdec} \
--with-lto
%endif
+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="%{test_list}" \
+ TESTOPTS="%{_smp_mflags} %{test_list}" \
2>&1 | awk '
BEGIN { fail = 0; logmsg = ""; }
{
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
# just to cut the noise, as they are not packaged (now)
%{__rm} $RPM_BUILD_ROOT%{py_libdir}/ctypes/macholib/fetch_macholib*
-%{__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
%config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/python*-modules*
%{py_libdir}/__future__.py
%{py_libdir}/__phello__.foo.py
+%{py_libdir}/_aix_support.py
%{py_libdir}/_bootlocale.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}/difflib.py
%{py_libdir}/dis.py
%{py_libdir}/doctest.py
-%{py_libdir}/dummy_threading.py
%{py_libdir}/filecmp.py
%{py_libdir}/fileinput.py
%{py_libdir}/fnmatch.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
%{py_libdir}/zipimport.py
%{py_libdir}/__pycache__/__future__.cpython-*.py[co]
%{py_libdir}/__pycache__/__phello__.foo.cpython-*.py[co]
+%{py_libdir}/__pycache__/_aix_support.cpython-*.py[co]
%{py_libdir}/__pycache__/_bootlocale.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__/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__/filecmp.cpython-*.py[co]
%{py_libdir}/__pycache__/fileinput.cpython-*.py[co]
%{py_libdir}/__pycache__/fnmatch.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]
%{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