# 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 test_asyncio test_os
+%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
# 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_nntplib test_gdb test_site
+# test_time: test_AsTimeval (test.test_time.TestCPyTime), rounding error
+%ifarch x32
+%define broken_tests_x32 test_time
+%endif
+%define broken_tests test_nntplib test_gdb test_site test_ssl %{?broken_tests_x32}
-%define py_ver 3.5
+%define py_ver 3.6
%define py_abi %{py_ver}m
+%define py_platform %{py_abi}-%{_target_base_arch}-%{_target_os}%{?_gnu}
%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
-Release: 2
+Version: %{py_ver}.4
+Release: 1
Epoch: 1
License: PSF
Group: Development/Languages/Python
Source0: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
-# Source0-md5: e9ea6f2623fffcdd871b7b19113fde80
+# Source0-md5: 1325134dd525b4a2c3272a1a0214dd54
Source1: pyconfig.h.in
Patch0: %{name}-pythonpath.patch
Patch1: %{name}-ac_fixes.patch
Patch10: %{name}-bdist_rpm.patch
Patch11: %{name}-installcompile.patch
Patch12: https://bugs.python.org/file21896/nonexistent_user.patch
-# Patch12-md5: db706fbe6de467c6e4c97c675eddf29a
+# Patch12-md5: db706fbe6de467c6e4c97c675eddf29a
URL: https://www.python.org/
BuildRequires: autoconf >= 2.65
BuildRequires: automake
Provides: python3-enum
Obsoletes: python3-enum
Obsoletes: python3-modules-sqlite
-%requires_eq_to openssl openssl-devel
+%requires_ge_to openssl openssl-devel
%description modules
Python officially distributed modules.
%{__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 libffi_msvc libffi_osx; do
%{__rm} -r Modules/_ctypes/$SUBDIR/*
done
--enable-ipv6 \
--enable-shared \
--with-computed-gotos \
- --with-dbmliborder=gdbm:bdb \
+ --with-dbmliborder=gdbm:ndbm:bdb \
--with-doc-strings \
--without-ensurepip \
--with-fpectl \
%{?with_debug:--with-pydebug} \
- --with-signal-module \
--with-system-expat \
--with-system-ffi \
%{?with_system_mpdecimal:--with-system-libmpdec} \
- --with-threads \
-%ifarch %{ix86} %{x8664} ppc ppc64
- --with-tsc
-%endif
+ --with-threads
%{__make} 2>&1 | awk '
BEGIN { fail = 0; logmsg = ""; }
%{__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}/plat-*/regen
-%{__rm} $RPM_BUILD_ROOT%{py_libdir}/site-packages/README
+%{__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
# 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_abi}/pyconfig.h
-%{__sed} -e's#@PREFIX@#%{_prefix}#g;s#@PY_VER@#%{py_ver}#g;s#@PY_ABI@#%{py_abi}#g' %{SOURCE1} > $RPM_BUILD_ROOT%{py_incdir}/pyconfig.h
+%{__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
# 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}/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
# 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__/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]
%{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
-%{py_libdir}/config-%{py_abi}/pyconfig.h
+%dir %{py_libdir}/config-%{py_platform}
+%{py_libdir}/config-%{py_platform}/Makefile
+%{py_libdir}/config-%{py_platform}/Setup
+%{py_libdir}/config-%{py_platform}/Setup.config
+%{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*
+%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}/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
%{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
%{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]
%{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]
# 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
%attr(755,root,root) %{py_dyndir}/_posixsubprocess.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}/_testbuffer.cpython-*.so
%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
%{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
%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
%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
%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
%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
-%dir %{py_libdir}/config-%{py_abi}/__pycache__
-%{py_libdir}/config-%{py_abi}/__pycache__/python-config.*
+%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_abi}.pc
%{_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