X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=python3.spec;h=0fcc90ea54cc92a1d8d1db54950002ef1a613985;hb=b852622fccb775108ed9d1a2197fed8f2d5a08fb;hp=47e6c0d10e34a134dd27b271fea38f03883e4985;hpb=902c69efd275761f8c5c9bf5651fa3999abaacab;p=packages%2Fpython3.git diff --git a/python3.spec b/python3.spec index 47e6c0d..0fcc90e 100644 --- a/python3.spec +++ b/python3.spec @@ -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}