#
-
# 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
#
# 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
+%define nobuilder_tests test_resource test_openpty test_socket test_nis test_posix test_locale test_pty test_asyncio test_os
-# 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
+%define broken_tests test_nntplib test_gdb test_site
-%define py_ver 3.2
-%define py_abi %{py_ver}mu
+%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: 4
+Version: %{py_ver}.0
+Release: 1
Epoch: 1
License: PSF
-Group: Applications
-Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
-# Source0-md5: 2cf014296afc18897daa7b79414ad773
+Group: Development/Languages/Python
+Source0: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
+# Source0-md5: 82b143ebbf4514d7e05876bed7a6b1f5
+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}-bug11254.patch
-Patch5: %{name}-no_cmdline_tests.patch
-URL: http://www.python.org/
+Patch2: %{name}-multilib.patch
+Patch3: %{name}-no_cmdline_tests.patch
+Patch4: %{name}-makefile-location.patch
+Patch6: python-distro.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
+Patch12: https://bugs.python.org/file21896/nonexistent_user.patch
+# Patch12-md5: db706fbe6de467c6e4c97c675eddf29a
+URL: https://www.python.org/
BuildRequires: autoconf >= 2.65
+BuildRequires: automake
BuildRequires: bluez-libs-devel
BuildRequires: bzip2-devel
BuildRequires: db-devel >= 4
BuildRequires: gmp-devel >= 4.0
BuildRequires: libffi-devel
BuildRequires: libstdc++-devel
+%{?with_system_mpdecimal:BuildRequires: mpdecimal-devel >= 2.4.1}
BuildRequires: ncurses-ext-devel >= 5.2
-BuildRequires: openssl-devel >= 0.9.8
+BuildRequires: openssl-devel >= 0.9.7
+BuildRequires: pkgconfig
BuildRequires: readline-devel >= 5.0
BuildRequires: rpm-pythonprov
BuildRequires: sed >= 4.0
%{?with_info:BuildRequires: tetex-makeindex}
%{?with_tkinter:BuildRequires: tix-devel >= 1:8.1.4-4}
%{?with_tkinter:BuildRequires: tk-devel >= 8.4.3}
+BuildRequires: xz-devel
BuildRequires: zlib-devel
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
+Suggests: pip
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define specflags_ppc -D__ppc__=1
%define specflags_ppc64 -D__ppc64__=1
%if %{with verbose_tests}
-%define test_flags -v -l -x
+%define test_flags -v -x
%else
-%define test_flags -w -l -x
+%define test_flags -w -x
%endif
%ifarch alpha ia64 ppc64 sparc64 ppc64 %{x8664}
Provides: python(abi) = %{py_ver}
# for compatibility with existing Ac packages
Provides: python(bytecode) = %{py_ver}
-%{!?with_info:Obsoletes: python3-doc-info}
+%{!?with_info:Obsoletes: python3-doc-info}
%description libs
Python shared library and very essental modules for Python binary.
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}
+Provides: python3-enum
+Obsoletes: python3-enum
Obsoletes: python3-modules-sqlite
+%requires_ge_to openssl openssl-devel
%description modules
Python officially distributed modules.
%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
Przykłady te są dla Pythona 2.3.4, nie %{version}.
+%package test
+Summary: Test modules for Python
+Summary(pl.UTF-8): Moduły testowe dla Pythona
+Group: Development/Languages/Python
+
+%description test
+Test modules for Python.
+
+%description test -l pl.UTF-8
+Moduły testowe dla Pythona.
+
%prep
%setup -q -n Python-%{version}
%patch0 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+
+%{__rm} -r Modules/zlib
+%{__rm} -r Modules/expat
+
+for SUBDIR in darwin libffi libffi_msvc libffi_osx; do
+ %{__rm} -r Modules/_ctypes/$SUBDIR/*
+done
+
+%if "%{pld_release}" == "ac"
+files="md5module.c sha1module.c"
+files="$files sha256module.c sha512module.c"
+for f in $files; do
+ %{__rm} Modules/$f
+done
+%endif
+
+find . -name '*.py' | xargs -r grep -El '^#! */usr/bin/env python3?' | xargs %{__sed} -i -e '1s,^#! */usr/bin/env python3\?,#!/usr/bin/python3,'
%build
+if ! grep -q "tmpfs" /proc/self/mounts; then
+ echo "You need to have /dev/shm mounted in order to build this package!" >&2
+ echo "(Or any other tmpfs mounted and accessible to the rpmbuild process)" >&2
+ exit 1
+fi
+
+%{__aclocal}
%{__autoconf}
-CPPFLAGS="-I/usr/include/ncursesw %{rpmcppflags}"; export CPPFLAGS
%configure \
- --with-cxx-main="%{__cxx}" \
- --enable-shared \
+ CC="%{__cc}" \
+ OPT="%{rpmcflags} -fno-caller-saves" \
+ CPPFLAGS="%{rpmcppflags}" \
+ LDFLAGS="%{rpmldflags}" \
+ ac_cv_posix_semaphores_enabled=yes \
+ ac_cv_broken_sem_getvalue=no \
--enable-ipv6 \
+ --enable-shared \
+ --with-computed-gotos \
--with-dbmliborder=gdbm:bdb \
- --with-wide-unicode \
- --with-signal-module \
- --with-tsc \
- --with-threads \
--with-doc-strings \
+ --without-ensurepip \
--with-fpectl \
+ %{?with_debug:--with-pydebug} \
+ --with-signal-module \
+ --with-system-expat \
--with-system-ffi \
- --with-computed-gotos \
- LINKCC='$(PURIFY) $(CXX)' \
- LDSHARED='$(CC) $(CFLAGS) -shared' \
- BLDSHARED='$(CC) $(CFLAGS) -shared' \
- LDFLAGS="%{rpmcflags} %{rpmldflags}"
+ %{?with_system_mpdecimal:--with-system-libmpdec} \
+ --with-threads \
+%ifarch %{ix86} %{x8664} ppc ppc64
+ --with-tsc
+%endif
-%{__make} \
- OPT="%{rpmcflags} -fno-caller-saves" 2>&1 | awk '
+%{__make} 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); } }'
export LC_ALL
%if %{with tests}
binlibdir=`echo build/lib.*`
-%{__make} test \
+# -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"
%endif
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}} \
+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} \
%if %{with info}
%{__make} -C Doc/info
-install Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
+cp -p Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
%endif
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
cp -a Tools $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+# make libpython3.so simply symlink to real lib
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libpython3.so
+ln -s libpython%{py_abi}.so $RPM_BUILD_ROOT%{_libdir}/libpython3.so
+
#
# 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/=/ /' \
# 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/=/ /' \
# we will have two commands: pygettext.py (an alias) and pygettext;
# this way there are no import (which is impossible now) conflicts and
# pygettext.py is provided for compatibility
-install Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver}
+install -p Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver}
+
+# reindent python code
+install -p Tools/scripts/reindent.py $RPM_BUILD_ROOT%{_bindir}/pyreindent%{py_ver}
# just to cut the noise, as they are not packaged (now)
-# first tests (probably could be packaged)
-%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/test
-%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/test
-%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/distutils/tests
-%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/email/test
-%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/importlib/test
-%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/lib2to3/tests
-%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/sqlite3/test
-%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/tkinter/test
-%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/unittest/test
-
-# other files
-%{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/plat-*/regen
-%{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/macholib/fetch_macholib*
-%{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/site-packages/README
-%{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/distutils/command/wininst*.exe
-%{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/idlelib/*.bat
-%{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/idlelib/*.pyw
+%{__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
+%{__rm} $RPM_BUILD_ROOT%{py_libdir}/site-packages/README
# 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
-%{__rm} $RPM_BUILD_ROOT%{py_dyndir}/xxlimited.*.so
+# 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
# already in %%doc
-%{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/LICENSE.txt
+%{__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
%attr(755,root,root) %{_bindir}/python%{py_abi}
%attr(755,root,root) %{_bindir}/python3
%{_mandir}/man1/python%{py_ver}.1*
+%{_mandir}/man1/python3.1*
%files libs
%defattr(644,root,root,755)
%doc LICENSE
%attr(755,root,root) %{_libdir}/libpython%{py_abi}.so.*.*
+%dir %{py_incdir}
+%{py_incdir}/pyconfig.h
+
%dir %{py_libdir}
%dir %{py_dyndir}
%dir %{py_sitedir}
%dir %{py_sitedir}/__pycache__
+%dir %{py_libdir}/__pycache__
%dir %{py_scriptdir}
%dir %{py_sitescriptdir}
%dir %{py_sitescriptdir}/__pycache__
-%{py_scriptdir}/__pycache__
# shared modules required by python library
%attr(755,root,root) %{py_dyndir}/_struct.cpython-*.so
# modules required by python library
-%{py_scriptdir}/_abcoll.py
-%{py_scriptdir}/_weakrefset.py
-%{py_scriptdir}/abc.py
-%{py_scriptdir}/codecs.py
-%{py_scriptdir}/copyreg.py
-%{py_scriptdir}/genericpath.py
-%{py_scriptdir}/locale.py
-%{py_scriptdir}/io.py
-%{py_scriptdir}/posixpath.py
-%{py_scriptdir}/site.py
-%{py_scriptdir}/stat.py
-%{py_scriptdir}/os.py
+%{py_libdir}/_collections_abc.py
+%{py_libdir}/_sitebuiltins.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}/functools.py
+%{py_libdir}/genericpath.py
+%{py_libdir}/heapq.py
+%{py_libdir}/keyword.py
+%{py_libdir}/linecache.py
+%{py_libdir}/locale.py
+%{py_libdir}/io.py
+%{py_libdir}/posixpath.py
+%{py_libdir}/re.py
+%{py_libdir}/reprlib.py
+%{py_libdir}/site.py
+%{py_libdir}/sre_*.py
+%{py_libdir}/stat.py
+%{py_libdir}/sysconfig.py
+%{py_libdir}/token.py
+%{py_libdir}/tokenize.py
+%{py_libdir}/traceback.py
+%{py_libdir}/weakref.py
+%{py_libdir}/os.py
# needed by the dynamic sys.lib patch
-%{py_scriptdir}/types.py
+%{py_libdir}/types.py
+%{py_libdir}/__pycache__/_sitebuiltins.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__/functools.cpython-*.py[co]
+%{py_libdir}/__pycache__/genericpath.cpython-*.py[co]
+%{py_libdir}/__pycache__/heapq.cpython-*.py[co]
+%{py_libdir}/__pycache__/keyword.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__/posixpath.cpython-*.py[co]
+%{py_libdir}/__pycache__/re.cpython-*.py[co]
+%{py_libdir}/__pycache__/reprlib.cpython-*.py[co]
+%{py_libdir}/__pycache__/site.cpython-*.py[co]
+%{py_libdir}/__pycache__/sre_*.cpython-*.py[co]
+%{py_libdir}/__pycache__/stat.cpython-*.py[co]
+%{py_libdir}/__pycache__/sysconfig.cpython-*.py[co]
+%{py_libdir}/__pycache__/token.cpython-*.py[co]
+%{py_libdir}/__pycache__/tokenize.cpython-*.py[co]
+%{py_libdir}/__pycache__/traceback.cpython-*.py[co]
+%{py_libdir}/__pycache__/weakref.cpython-*.py[co]
+%{py_libdir}/__pycache__/os.cpython-*.py[co]
+%{py_libdir}/__pycache__/types.cpython-*.py[co]
+
+%{py_libdir}/collections
# encodings required by python library
-%dir %{py_scriptdir}/encodings
-%{py_scriptdir}/encodings/__pycache__
-%{py_scriptdir}/encodings/*.py
-
-%dir %{py_libdir}/config-%{py_abi}
-%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}/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}/config.c
-%{py_libdir}/config-%{py_abi}/config.c.in
-%{py_libdir}/config-%{py_abi}/python.o
+%dir %{py_libdir}/encodings
+%{py_libdir}/encodings/__pycache__
+%{py_libdir}/encodings/*.py
+
+%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*
-%exclude %{py_scriptdir}/_abcoll.py
-%exclude %{py_scriptdir}/_weakrefset.py
-%exclude %{py_scriptdir}/abc.py
-%exclude %{py_scriptdir}/codecs.py
-%exclude %{py_scriptdir}/copyreg.py
-%exclude %{py_scriptdir}/genericpath.py
-%exclude %{py_scriptdir}/io.py
-%exclude %{py_scriptdir}/locale.py
-%exclude %{py_scriptdir}/posixpath.py
-%exclude %{py_scriptdir}/pdb.py
-%exclude %{py_scriptdir}/profile.py
-%exclude %{py_scriptdir}/pstats.py
-%exclude %{py_scriptdir}/pydoc.py
-%exclude %{py_scriptdir}/site.py
-%exclude %{py_scriptdir}/stat.py
-%exclude %{py_scriptdir}/timeit.py
-%exclude %{py_scriptdir}/os.py
-%exclude %{py_scriptdir}/encodings/*.py
-%exclude %{py_scriptdir}/types.py
-
-%{py_scriptdir}/*.py
-
-%{py_dyndir}/Python-%{version}-py*.egg-info
+%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}/_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}/_pyio.py
+%{py_libdir}/_strptime.py
+%{py_libdir}/_threading_local.py
+%{py_libdir}/aifc.py
+%{py_libdir}/antigravity.py
+%{py_libdir}/argparse.py
+%{py_libdir}/ast.py
+%{py_libdir}/asynchat.py
+%{py_libdir}/asyncore.py
+%{py_libdir}/base64.py
+%{py_libdir}/bdb.py
+%{py_libdir}/binhex.py
+%{py_libdir}/bz2.py
+%{py_libdir}/cProfile.py
+%{py_libdir}/calendar.py
+%{py_libdir}/cgi.py
+%{py_libdir}/cgitb.py
+%{py_libdir}/chunk.py
+%{py_libdir}/cmd.py
+%{py_libdir}/code.py
+%{py_libdir}/codeop.py
+%{py_libdir}/colorsys.py
+%{py_libdir}/compileall.py
+%{py_libdir}/configparser.py
+%{py_libdir}/contextlib.py
+%{py_libdir}/copy.py
+%{py_libdir}/crypt.py
+%{py_libdir}/csv.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}/gzip.py
+%{py_libdir}/hashlib.py
+%{py_libdir}/hmac.py
+%{py_libdir}/imaplib.py
+%{py_libdir}/imghdr.py
+%{py_libdir}/imp.py
+%{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
+%{py_libdir}/modulefinder.py
+%{py_libdir}/netrc.py
+%{py_libdir}/nntplib.py
+%{py_libdir}/ntpath.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}/pickletools.py
+%{py_libdir}/pipes.py
+%{py_libdir}/pkgutil.py
+%{py_libdir}/platform.py
+%{py_libdir}/plistlib.py
+%{py_libdir}/poplib.py
+%{py_libdir}/pprint.py
+%{py_libdir}/pty.py
+%{py_libdir}/py_compile.py
+%{py_libdir}/pyclbr.py
+%{py_libdir}/queue.py
+%{py_libdir}/quopri.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}/shelve.py
+%{py_libdir}/shlex.py
+%{py_libdir}/shutil.py
+%{py_libdir}/smtpd.py
+%{py_libdir}/smtplib.py
+%{py_libdir}/sndhdr.py
+%{py_libdir}/socket.py
+%{py_libdir}/socketserver.py
+%{py_libdir}/ssl.py
+%{py_libdir}/statistics.py
+%{py_libdir}/string.py
+%{py_libdir}/stringprep.py
+%{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
+%{py_libdir}/telnetlib.py
+%{py_libdir}/tempfile.py
+%{py_libdir}/textwrap.py
+%{py_libdir}/this.py
+%{py_libdir}/threading.py
+%{py_libdir}/trace.py
+%{py_libdir}/tracemalloc.py
+%{py_libdir}/tty.py
+%{py_libdir}/turtle.py
+%{py_libdir}/typing.py
+%{py_libdir}/uu.py
+%{py_libdir}/uuid.py
+%{py_libdir}/warnings.py
+%{py_libdir}/wave.py
+%{py_libdir}/webbrowser.py
+%{py_libdir}/xdrlib.py
+%{py_libdir}/zipapp.py
+%{py_libdir}/zipfile.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__/_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__/_pyio.cpython-*.py[co]
+%{py_libdir}/__pycache__/_strptime.cpython-*.py[co]
+%{py_libdir}/__pycache__/_threading_local.cpython-*.py[co]
+%{py_libdir}/__pycache__/aifc.cpython-*.py[co]
+%{py_libdir}/__pycache__/antigravity.cpython-*.py[co]
+%{py_libdir}/__pycache__/argparse.cpython-*.py[co]
+%{py_libdir}/__pycache__/ast.cpython-*.py[co]
+%{py_libdir}/__pycache__/asynchat.cpython-*.py[co]
+%{py_libdir}/__pycache__/asyncore.cpython-*.py[co]
+%{py_libdir}/__pycache__/base64.cpython-*.py[co]
+%{py_libdir}/__pycache__/bdb.cpython-*.py[co]
+%{py_libdir}/__pycache__/binhex.cpython-*.py[co]
+%{py_libdir}/__pycache__/bz2.cpython-*.py[co]
+%{py_libdir}/__pycache__/cProfile.cpython-*.py[co]
+%{py_libdir}/__pycache__/calendar.cpython-*.py[co]
+%{py_libdir}/__pycache__/cgi.cpython-*.py[co]
+%{py_libdir}/__pycache__/cgitb.cpython-*.py[co]
+%{py_libdir}/__pycache__/chunk.cpython-*.py[co]
+%{py_libdir}/__pycache__/cmd.cpython-*.py[co]
+%{py_libdir}/__pycache__/code.cpython-*.py[co]
+%{py_libdir}/__pycache__/codeop.cpython-*.py[co]
+%{py_libdir}/__pycache__/colorsys.cpython-*.py[co]
+%{py_libdir}/__pycache__/compileall.cpython-*.py[co]
+%{py_libdir}/__pycache__/configparser.cpython-*.py[co]
+%{py_libdir}/__pycache__/contextlib.cpython-*.py[co]
+%{py_libdir}/__pycache__/copy.cpython-*.py[co]
+%{py_libdir}/__pycache__/crypt.cpython-*.py[co]
+%{py_libdir}/__pycache__/csv.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__/gzip.cpython-*.py[co]
+%{py_libdir}/__pycache__/hashlib.cpython-*.py[co]
+%{py_libdir}/__pycache__/hmac.cpython-*.py[co]
+%{py_libdir}/__pycache__/imaplib.cpython-*.py[co]
+%{py_libdir}/__pycache__/imghdr.cpython-*.py[co]
+%{py_libdir}/__pycache__/imp.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__/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]
+%{py_libdir}/__pycache__/modulefinder.cpython-*.py[co]
+%{py_libdir}/__pycache__/netrc.cpython-*.py[co]
+%{py_libdir}/__pycache__/nntplib.cpython-*.py[co]
+%{py_libdir}/__pycache__/ntpath.cpython-*.py[co]
+%{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__/pickletools.cpython-*.py[co]
+%{py_libdir}/__pycache__/pipes.cpython-*.py[co]
+%{py_libdir}/__pycache__/pkgutil.cpython-*.py[co]
+%{py_libdir}/__pycache__/platform.cpython-*.py[co]
+%{py_libdir}/__pycache__/plistlib.cpython-*.py[co]
+%{py_libdir}/__pycache__/poplib.cpython-*.py[co]
+%{py_libdir}/__pycache__/pprint.cpython-*.py[co]
+%{py_libdir}/__pycache__/pty.cpython-*.py[co]
+%{py_libdir}/__pycache__/py_compile.cpython-*.py[co]
+%{py_libdir}/__pycache__/pyclbr.cpython-*.py[co]
+%{py_libdir}/__pycache__/queue.cpython-*.py[co]
+%{py_libdir}/__pycache__/quopri.cpython-*.py[co]
+%{py_libdir}/__pycache__/random.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]
+%{py_libdir}/__pycache__/shutil.cpython-*.py[co]
+%{py_libdir}/__pycache__/signal.cpython-*.py[co]
+%{py_libdir}/__pycache__/smtpd.cpython-*.py[co]
+%{py_libdir}/__pycache__/smtplib.cpython-*.py[co]
+%{py_libdir}/__pycache__/sndhdr.cpython-*.py[co]
+%{py_libdir}/__pycache__/socket.cpython-*.py[co]
+%{py_libdir}/__pycache__/socketserver.cpython-*.py[co]
+%{py_libdir}/__pycache__/ssl.cpython-*.py[co]
+%{py_libdir}/__pycache__/statistics.cpython-*.py[co]
+%{py_libdir}/__pycache__/string.cpython-*.py[co]
+%{py_libdir}/__pycache__/stringprep.cpython-*.py[co]
+%{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]
+%{py_libdir}/__pycache__/telnetlib.cpython-*.py[co]
+%{py_libdir}/__pycache__/tempfile.cpython-*.py[co]
+%{py_libdir}/__pycache__/textwrap.cpython-*.py[co]
+%{py_libdir}/__pycache__/this.cpython-*.py[co]
+%{py_libdir}/__pycache__/threading.cpython-*.py[co]
+%{py_libdir}/__pycache__/trace.cpython-*.py[co]
+%{py_libdir}/__pycache__/tracemalloc.cpython-*.py[co]
+%{py_libdir}/__pycache__/tty.cpython-*.py[co]
+%{py_libdir}/__pycache__/turtle.cpython-*.py[co]
+%{py_libdir}/__pycache__/typing.cpython-*.py[co]
+%{py_libdir}/__pycache__/uu.cpython-*.py[co]
+%{py_libdir}/__pycache__/uuid.cpython-*.py[co]
+%{py_libdir}/__pycache__/warnings.cpython-*.py[co]
+%{py_libdir}/__pycache__/wave.cpython-*.py[co]
+%{py_libdir}/__pycache__/webbrowser.cpython-*.py[co]
+%{py_libdir}/__pycache__/xdrlib.cpython-*.py[co]
+%{py_libdir}/__pycache__/zipapp.cpython-*.py[co]
+%{py_libdir}/__pycache__/zipfile.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}/_codecs_iso2022.cpython-*.so
%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}/_crypt.cpython-*.so
%attr(755,root,root) %{py_dyndir}/_csv.cpython-*.so
%attr(755,root,root) %{py_dyndir}/_ctypes*.cpython-*.so
%attr(755,root,root) %{py_dyndir}/_curses_panel.cpython-*.so
%ifnarch sparc64
%attr(755,root,root) %{py_dyndir}/_dbm.cpython-*.so
%endif
+%attr(755,root,root) %{py_dyndir}/_decimal.cpython-*.so
%attr(755,root,root) %{py_dyndir}/_elementtree.cpython-*.so
%attr(755,root,root) %{py_dyndir}/_gdbm.cpython-*.so
%attr(755,root,root) %{py_dyndir}/_hashlib.cpython-*.so
%attr(755,root,root) %{py_dyndir}/_heapq.cpython-*.so
%attr(755,root,root) %{py_dyndir}/_json.cpython-*.so
%attr(755,root,root) %{py_dyndir}/_lsprof.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_lzma.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_md5.cpython-*.so
%attr(755,root,root) %{py_dyndir}/_multibytecodec.cpython-*.so
%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}/_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}/_testcapi.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_testimportmultiple.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_testmultiphase.cpython-*.so
+
+# for openssl < 0.9.8 package sha256 and sha512 modules
+%if "%{pld_release}" != "ac"
+%attr(755,root,root) %{py_dyndir}/_sha256.cpython-*.so
+%attr(755,root,root) %{py_dyndir}/_sha512.cpython-*.so
+%endif
+
%attr(755,root,root) %{py_dyndir}/array.cpython-*.so
-%attr(755,root,root) %{py_dyndir}/atexit.cpython-*.so
%attr(755,root,root) %{py_dyndir}/audioop.cpython-*.so
%attr(755,root,root) %{py_dyndir}/binascii.cpython-*.so
-%attr(755,root,root) %{py_dyndir}/bz2.cpython-*.so
%attr(755,root,root) %{py_dyndir}/cmath.cpython-*.so
-%attr(755,root,root) %{py_dyndir}/crypt.cpython-*.so
%attr(755,root,root) %{py_dyndir}/fcntl.cpython-*.so
%attr(755,root,root) %{py_dyndir}/grp.cpython-*.so
%attr(755,root,root) %{py_dyndir}/math.cpython-*.so
%attr(755,root,root) %{py_dyndir}/select.cpython-*.so
%attr(755,root,root) %{py_dyndir}/syslog.cpython-*.so
%attr(755,root,root) %{py_dyndir}/termios.cpython-*.so
-%attr(755,root,root) %{py_dyndir}/time.cpython-*.so
%attr(755,root,root) %{py_dyndir}/spwd.cpython-*.so
%attr(755,root,root) %{py_dyndir}/unicodedata.cpython-*.so
%attr(755,root,root) %{py_dyndir}/zlib.cpython-*.so
-%dir %{py_scriptdir}/plat-*
-%{py_scriptdir}/plat-*/__pycache__
-%{py_scriptdir}/plat-*/*.py
-
-%{py_scriptdir}/concurrent
-
-%dir %{py_scriptdir}/ctypes
-%dir %{py_scriptdir}/ctypes/macholib
-%{py_scriptdir}/ctypes/__pycache__
-%{py_scriptdir}/ctypes/macholib/__pycache__
-
-%{py_scriptdir}/ctypes/*.py
-%{py_scriptdir}/ctypes/macholib/*.py
-%doc %{py_scriptdir}/ctypes/macholib/README.ctypes
-
-%dir %{py_scriptdir}/curses
-%{py_scriptdir}/curses/__pycache__
-%{py_scriptdir}/curses/*.py
-
-%dir %{py_scriptdir}/dbm
-%{py_scriptdir}/dbm/__pycache__
-%{py_scriptdir}/dbm/*.py
-
-%dir %{py_scriptdir}/distutils
-%dir %{py_scriptdir}/distutils/command
-%doc %{py_scriptdir}/distutils/README
-%{py_scriptdir}/distutils/__pycache__
-%{py_scriptdir}/distutils/command/__pycache__
-%{py_scriptdir}/distutils/*.py
-%{py_scriptdir}/distutils/command/*.py
-%{py_scriptdir}/distutils/command/command_template
-
-%dir %{py_scriptdir}/email
-%dir %{py_scriptdir}/email/mime
-%{py_scriptdir}/email/__pycache__
-%{py_scriptdir}/email/mime/__pycache__
-%{py_scriptdir}/email/*.py
-%{py_scriptdir}/email/mime/*.py
-
-%dir %{py_scriptdir}/html
-%{py_scriptdir}/html/*.py
-%{py_scriptdir}/html/__pycache__
-
-%dir %{py_scriptdir}/http
-%{py_scriptdir}/http/__pycache__
-%{py_scriptdir}/http/*.py
-
-%dir %{py_scriptdir}/importlib
-%{py_scriptdir}/importlib/__pycache__
-%{py_scriptdir}/importlib/*.py
-
-%dir %{py_scriptdir}/json
-%{py_scriptdir}/json/__pycache__
-%{py_scriptdir}/json/*.py
-
-%dir %{py_scriptdir}/logging
-%{py_scriptdir}/logging/__pycache__
-%{py_scriptdir}/logging/*.py
-
-%dir %{py_scriptdir}/multiprocessing
-%{py_scriptdir}/multiprocessing/__pycache__
-%{py_scriptdir}/multiprocessing/*.py
-%dir %{py_scriptdir}/multiprocessing/dummy
-%{py_scriptdir}/multiprocessing/dummy/__pycache__
-%{py_scriptdir}/multiprocessing/dummy/*.py
-
-%{py_scriptdir}/turtledemo
-%{py_scriptdir}/unittest
-
-%dir %{py_scriptdir}/urllib
-%{py_scriptdir}/urllib/__pycache__
-%{py_scriptdir}/urllib/*.py
-
-%dir %{py_scriptdir}/wsgiref
-%{py_scriptdir}/wsgiref/__pycache__
-%{py_scriptdir}/wsgiref/*.py
-%{py_scriptdir}/wsgiref.egg-info
-
-%dir %{py_scriptdir}/xml
-%dir %{py_scriptdir}/xml/dom
-%dir %{py_scriptdir}/xml/etree
-%dir %{py_scriptdir}/xml/parsers
-%dir %{py_scriptdir}/xml/sax
-%{py_scriptdir}/xml/__pycache__
-%{py_scriptdir}/xml/dom/__pycache__
-%{py_scriptdir}/xml/etree/__pycache__
-%{py_scriptdir}/xml/parsers/__pycache__
-%{py_scriptdir}/xml/sax/__pycache__
-%{py_scriptdir}/xml/*.py
-%{py_scriptdir}/xml/dom/*.py
-%{py_scriptdir}/xml/etree/*.py
-%{py_scriptdir}/xml/parsers/*.py
-%{py_scriptdir}/xml/sax/*.py
-
-%dir %{py_scriptdir}/xmlrpc
-%{py_scriptdir}/xmlrpc/__pycache__
-%{py_scriptdir}/xmlrpc/*.py
+%dir %{py_libdir}/asyncio
+%{py_libdir}/asyncio/__pycache__
+%{py_libdir}/asyncio/*.py
+
+%{py_libdir}/concurrent
+
+%dir %{py_libdir}/ctypes
+%dir %{py_libdir}/ctypes/macholib
+%{py_libdir}/ctypes/__pycache__
+%{py_libdir}/ctypes/macholib/__pycache__
+
+%{py_libdir}/ctypes/*.py
+%{py_libdir}/ctypes/macholib/*.py
+%doc %{py_libdir}/ctypes/macholib/README.ctypes
+
+%dir %{py_libdir}/curses
+%{py_libdir}/curses/__pycache__
+%{py_libdir}/curses/*.py
+
+%dir %{py_libdir}/dbm
+%{py_libdir}/dbm/__pycache__
+%{py_libdir}/dbm/*.py
+
+%dir %{py_libdir}/distutils
+%dir %{py_libdir}/distutils/command
+%doc %{py_libdir}/distutils/README
+%{py_libdir}/distutils/__pycache__
+%{py_libdir}/distutils/command/__pycache__
+%{py_libdir}/distutils/*.py
+%{py_libdir}/distutils/command/*.py
+%{py_libdir}/distutils/command/command_template
+
+%dir %{py_libdir}/email
+%dir %{py_libdir}/email/mime
+%{py_libdir}/email/__pycache__
+%{py_libdir}/email/mime/__pycache__
+%{py_libdir}/email/architecture.rst
+%{py_libdir}/email/*.py
+%{py_libdir}/email/mime/*.py
+
+%dir %{py_libdir}/ensurepip
+%{py_libdir}/ensurepip/__pycache__
+%{py_libdir}/ensurepip/*.py
+%{py_libdir}/ensurepip/_bundled
+
+%dir %{py_libdir}/html
+%{py_libdir}/html/*.py
+%{py_libdir}/html/__pycache__
+
+%dir %{py_libdir}/http
+%{py_libdir}/http/__pycache__
+%{py_libdir}/http/*.py
+
+%dir %{py_libdir}/idlelib
+
+%dir %{py_libdir}/importlib
+%{py_libdir}/importlib/__pycache__
+%{py_libdir}/importlib/*.py
+
+%dir %{py_libdir}/json
+%{py_libdir}/json/__pycache__
+%{py_libdir}/json/*.py
+
+%dir %{py_libdir}/logging
+%{py_libdir}/logging/__pycache__
+%{py_libdir}/logging/*.py
+
+%dir %{py_libdir}/multiprocessing
+%{py_libdir}/multiprocessing/__pycache__
+%{py_libdir}/multiprocessing/*.py
+%dir %{py_libdir}/multiprocessing/dummy
+%{py_libdir}/multiprocessing/dummy/__pycache__
+%{py_libdir}/multiprocessing/dummy/*.py
+
+%{py_libdir}/turtledemo
+
+%dir %{py_libdir}/unittest
+%{py_libdir}/unittest/__pycache__
+%{py_libdir}/unittest/*.py
+
+%dir %{py_libdir}/urllib
+%{py_libdir}/urllib/__pycache__
+%{py_libdir}/urllib/*.py
+
+%dir %{py_libdir}/venv
+%{py_libdir}/venv/__pycache__
+%{py_libdir}/venv/*.py
+%dir %{py_libdir}/venv/scripts
+%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
+
+%dir %{py_libdir}/wsgiref
+%{py_libdir}/wsgiref/__pycache__
+%{py_libdir}/wsgiref/*.py
+
+%dir %{py_libdir}/xml
+%dir %{py_libdir}/xml/dom
+%dir %{py_libdir}/xml/etree
+%dir %{py_libdir}/xml/parsers
+%dir %{py_libdir}/xml/sax
+%{py_libdir}/xml/__pycache__
+%{py_libdir}/xml/dom/__pycache__
+%{py_libdir}/xml/etree/__pycache__
+%{py_libdir}/xml/parsers/__pycache__
+%{py_libdir}/xml/sax/__pycache__
+%{py_libdir}/xml/*.py
+%{py_libdir}/xml/dom/*.py
+%{py_libdir}/xml/etree/*.py
+%{py_libdir}/xml/parsers/*.py
+%{py_libdir}/xml/sax/*.py
+
+%dir %{py_libdir}/xmlrpc
+%{py_libdir}/xmlrpc/__pycache__
+%{py_libdir}/xmlrpc/*.py
%attr(755,root,root) %{py_dyndir}/_sqlite3.cpython-*.so
-%dir %{py_scriptdir}/sqlite3
-%{py_scriptdir}/sqlite3/__pycache__
-%{py_scriptdir}/sqlite3/*.py
+%dir %{py_libdir}/sqlite3
+%{py_libdir}/sqlite3/__pycache__
+%{py_libdir}/sqlite3/*.py
%files -n pydoc3
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/pydoc3
-%attr(755,root,root) %{_bindir}/pydoc3.2
-%{py_scriptdir}/pydoc.py
-%dir %{py_scriptdir}/pydoc_data
-%{py_scriptdir}/pydoc_data/__pycache__
-%{py_scriptdir}/pydoc_data/*.py
-%{py_scriptdir}/pydoc_data/*.css
+%attr(755,root,root) %{_bindir}/pydoc%{py_ver}
+%{py_libdir}/pydoc.py
+%{py_libdir}/__pycache__/pydoc.cpython-*.py[co]
+%dir %{py_libdir}/pydoc_data
+%{py_libdir}/pydoc_data/__pycache__
+%{py_libdir}/pydoc_data/*.py
+%{py_libdir}/pydoc_data/*.css
%files -n idle3
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/idle3
-%attr(755,root,root) %{_bindir}/idle3.2
-%dir %{py_scriptdir}/idlelib
-%dir %{py_scriptdir}/idlelib/Icons
-%{py_scriptdir}/idlelib/__pycache__
-%{py_scriptdir}/idlelib/*.py
-%doc %{py_scriptdir}/idlelib/*.txt
-%doc %{py_scriptdir}/idlelib/ChangeLog
-%{py_scriptdir}/idlelib/Icons/*
-%{py_scriptdir}/idlelib/*.def
+%attr(755,root,root) %{_bindir}/idle%{py_ver}
+%dir %{py_libdir}/idlelib/Icons
+%{py_libdir}/idlelib/__pycache__
+%{py_libdir}/idlelib/*.py
+%doc %{py_libdir}/idlelib/*.txt
+%doc %{py_libdir}/idlelib/ChangeLog
+%{py_libdir}/idlelib/Icons/*
+%{py_libdir}/idlelib/*.def
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/python3-config
%attr(755,root,root) %{_libdir}/libpython%{py_abi}.so
%attr(755,root,root) %{_libdir}/libpython3.so
-%dir %{py_incdir}
%{py_incdir}/*.h
+%exclude %{py_incdir}/pyconfig.h
+%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*
-
%attr(755,root,root) %{_bindir}/pygettext%{py_ver}
-
-%{py_scriptdir}/pdb.py
-%{py_scriptdir}/profile.py
-%{py_scriptdir}/pstats.py
-%{py_scriptdir}/timeit.py
+%attr(755,root,root) %{_bindir}/pyreindent%{py_ver}
+%{py_libdir}/pdb.py
+%{py_libdir}/profile.py
+%{py_libdir}/pstats.py
+%{py_libdir}/timeit.py
+%{py_libdir}/__pycache__/pdb.cpython-*.py[co]
+%{py_libdir}/__pycache__/profile.cpython-*.py[co]
+%{py_libdir}/__pycache__/pstats.cpython-*.py[co]
+%{py_libdir}/__pycache__/timeit.cpython-*.py[co]
%files 2to3
+%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/2to3-%{py_ver}
-%dir %{py_scriptdir}/lib2to3
-%{py_scriptdir}/lib2to3/__pycache__
-%{py_scriptdir}/lib2to3/*.txt
-%{py_scriptdir}/lib2to3/*.pickle
-%{py_scriptdir}/lib2to3/*.py
-%dir %{py_scriptdir}/lib2to3/fixes
-%{py_scriptdir}/lib2to3/fixes/__pycache__
-%{py_scriptdir}/lib2to3/fixes/*.py
-%dir %{py_scriptdir}/lib2to3/pgen2
-%{py_scriptdir}/lib2to3/pgen2/__pycache__
-%{py_scriptdir}/lib2to3/pgen2/*.py
+%dir %{py_libdir}/lib2to3
+%{py_libdir}/lib2to3/__pycache__
+%{py_libdir}/lib2to3/*.txt
+%{py_libdir}/lib2to3/*.pickle
+%{py_libdir}/lib2to3/*.py
+%dir %{py_libdir}/lib2to3/fixes
+%{py_libdir}/lib2to3/fixes/__pycache__
+%{py_libdir}/lib2to3/fixes/*.py
+%dir %{py_libdir}/lib2to3/pgen2
+%{py_libdir}/lib2to3/pgen2/__pycache__
+%{py_libdir}/lib2to3/pgen2/*.py
%files static
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%{_examplesdir}/%{name}-%{version}
+%files test
+%defattr(644,root,root,755)
+%{py_libdir}/idlelib/idle_test
+%{py_libdir}/test
+%{py_libdir}/ctypes/test
+%{py_libdir}/distutils/tests
+%{py_libdir}/lib2to3/tests
+%{py_libdir}/sqlite3/test
+%{py_libdir}/tkinter/test
+%{py_libdir}/unittest/test
+
%if %{with info}
%files doc-info
%defattr(644,root,root,755)
%if %{with tkinter}
%files tkinter
%defattr(644,root,root,755)
-%dir %{py_scriptdir}/tkinter
-%{py_scriptdir}/tkinter/__pycache__
-%{py_scriptdir}/tkinter/*.py
+%dir %{py_libdir}/tkinter
+%{py_libdir}/tkinter/__pycache__
+%{py_libdir}/tkinter/*.py
%attr(755,root,root) %{py_dyndir}/_tkinter.cpython-*.so
%endif