X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=python3.spec;h=62720ba9ac4a25db81858ce53d3abb0594a82b30;hb=cab985caccf132f796bd291870b96d5c6d355f20;hp=6575e5a682d819080293fde7fea4c7d862fd0ccc;hpb=8a0bfdee90ac8e4e3009a8b510f50702685149b0;p=packages%2Fpython3.git diff --git a/python3.spec b/python3.spec index 6575e5a..62720ba 100644 --- a/python3.spec +++ b/python3.spec @@ -1,27 +1,30 @@ -# # TODO: -# - fix tests -# - check unpackaged files - +# - fix lib64 and noarch/datadir patches as the 2nd one overrides some +# changes made by the first one; propose patches to python team as they +# seem to be duplicated by fedora as well +# # Conditional build: %bcond_with info # info pages (requires emacs) +%bcond_without system_mpdecimal # system libmpdec library %bcond_without tkinter # disables tkinter module building -%bcond_without tests # disables Python testing +%bcond_with 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 -# tests which fail because of some unknown/unresolved reason (this list should be empty) -%define broken_tests test_httpservers test_distutils test_cmd_line -%define beta %{nil} +# tests which fail because of some unknown/unresolved reason (this list should be empty) +# 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 py_ver 3.1 +%define py_ver 3.4 +%define py_abi %{py_ver}m %define py_prefix %{_prefix} %define py_libdir %{py_prefix}/%{_lib}/python%{py_ver} -%define py_incdir %{_includedir}/python%{py_ver} +%define py_incdir %{_includedir}/python%{py_abi} %define py_sitedir %{py_libdir}/site-packages %define py_dyndir %{py_libdir}/lib-dynload @@ -34,20 +37,24 @@ 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} +Version: %{py_ver}.2 Release: 1 Epoch: 1 License: PSF Group: Applications -Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}%{beta}.tar.bz2 -# Source0-md5: f64437a24d39f1917aa1878cc70621f6 +Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz +# Source0-md5: 36fc7327c02c6f12fa24fc9ba78039e3 Patch0: %{name}-pythonpath.patch Patch1: %{name}-ac_fixes.patch Patch2: %{name}-lib64.patch Patch3: %{name}-noarch_to_datadir.patch -Patch4: %{name}-cast-fix.patch +Patch4: %{name}-no_cmdline_tests.patch +Patch5: %{name}-makefile-location.patch + +Patch7: python-distro.patch +Patch8: %{name}-db.patch URL: http://www.python.org/ -BuildRequires: autoconf +BuildRequires: autoconf >= 2.65 BuildRequires: bluez-libs-devel BuildRequires: bzip2-devel BuildRequires: db-devel >= 4 @@ -58,12 +65,14 @@ BuildRequires: gdbm-devel >= 1.8.3 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: readline-devel >= 5.0 BuildRequires: rpm-pythonprov BuildRequires: sed >= 4.0 BuildRequires: sqlite3-devel >= 3.3.5 +BuildRequires: tar >= 1:1.22 %{?with_info:BuildRequires: tetex-makeindex} %{?with_tkinter:BuildRequires: tix-devel >= 1:8.1.4-4} %{?with_tkinter:BuildRequires: tk-devel >= 8.4.3} @@ -75,9 +84,9 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %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} @@ -209,6 +218,8 @@ 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 %description modules Python officially distributed modules. @@ -216,18 +227,6 @@ Python officially distributed modules. %description modules -l pl.UTF-8 Oficjalnie rozprowadzane moduły języka Python. -%package modules-sqlite -Summary: Python SQLite modules -Summary(pl.UTF-8): Moduły SQLite języka Python -Group: Libraries/Python -Requires: %{name}-modules = %{epoch}:%{version}-%{release} - -%description modules-sqlite -Python officially distributed sqlite module. - -%description modules-sqlite -l pl.UTF-8 -Oficjalnie rozprowadzany moduł sqlite języka Python. - %package -n pydoc3 Summary: Python interactive module documentation access support Summary(pl.UTF-8): Interaktywne korzystanie z dokumentacji modułów języka Python @@ -343,16 +342,27 @@ debugger. %package 2to3 Summary: Automated Python 2 to 3 code translation -Summary(pl.UTF-8): Automatyczne tłumaczenie kody Pythona 2 do 3 +Summary(pl.UTF-8): Automatyczne tłumaczenie kodu Pythona 2 do 3 Group: Development/Languages/Pythona %description 2to3 -2to3 is a Python program that reads Python 2.x source code and applies a series -of fixers to transform it into valid Python 3.x code. The standard library -contains a rich set of fixers that will handle almost all code. 2to3 supporting -library lib2to3 is, however, a flexible and generic library, so it is possible -to write your own fixers for 2to3. lib2to3 could also be adapted to custom -applications in which Python code needs to be edited automatically. +2to3 is a Python program that reads Python 2.x source code and applies +a series of fixers to transform it into valid Python 3.x code. The +standard library contains a rich set of fixers that will handle almost +all code. 2to3 supporting library lib2to3 is, however, a flexible and +generic library, so it is possible to write your own fixers for 2to3. +lib2to3 could also be adapted to custom applications in which Python +code needs to be edited automatically. + +%description 2to3 -l pl.UTF-8 +2to3 to program w Pythonie czytający od źródłowy w Pythonie 2.x i +aplikujący serię poprawek przekształcających go w poprawny kod w +Pythonie 3.x. Biblioteka standardowa zawiera duży zbiór poprawek +obsługujących większość kodu. Biblioteka wspierająca 2to3 (lib2to3) +jest jednak elastyczną i ogólną biblioteką, więc można pisać własne +poprawki dla 2to3. lib2to3 można także zaadaptować na potrzeby +własnych zastosowań, w których kod w Pythonie musi być modyfikowany +automatycznie. %package static Summary: Static python library @@ -366,59 +376,6 @@ Static python library. %description static -l pl.UTF-8 Statyczna biblioteka Pythona. -%package doc -Summary: Documentation on Python -Summary(de.UTF-8): Dokumentation zu Python -Summary(es.UTF-8): Documentación para Python -Summary(fr.UTF-8): Documentation sur Python -Summary(pl.UTF-8): Dokumentacja do Pythona -Summary(pt_BR.UTF-8): Documentação para a linguagem de programação Python -Summary(ru.UTF-8): Документация по языку Python -Summary(tr.UTF-8): Python belgeleri -Summary(uk.UTF-8): Документація по мові Python -Group: Documentation - -%description doc -This package contains documentation on the Python language and -interpretor as a mix of plain ASCII files and LaTeX sources. - -%description doc -l de.UTF-8 -Dieses Paket enthält Dokumentationen zu Python (Sprache und -Interpreter) in Form von einfachen ASCII-Dateien und LaTeX-Quellen. - -%description doc -l es.UTF-8 -Documentación para Python. Contiene archivos en texto y PostScript. - -%description doc -l fr.UTF-8 -Ce paquetage contient la documentation sur le langage python et sur -son interpréteur sous forme de fichiers ASCII et LaTeX. - -%description doc -l pl.UTF-8 -Oficjalna dokumentacja do Pythona. Zawiera przykładowe programy, -narzędzia i dokumentację. Strony podręcznika man znajdują się w -głównym pakiecie. Ten pakiet nie zawiera źródeł dokumentacji -napisanych w LaTeXu, tylko gotowe do wykorzystania pliki postscriptowe -i HTML. - -%description doc -l pt_BR.UTF-8 -O pacote python-doc contém documentação para a linguagem de -programação e para o interpretador Python. Fornecida em arquivos texto -e Postcript. - -%description doc -l ru.UTF-8 -Этот пакет содержит документацию по собственно языку Python и по -исполняющему его интерпретатору в виде набора текстовых файлов и -исходных текстов в формате LaTeX. - -%description doc -l tr.UTF-8 -Bu paket, Python dili ile ilgili belgeleri ve düz ASCII dosyaları ve -LaTeX kaynaklarının bir karışımı olan yorumlayıcıyı içerir. - -%description doc -l uk.UTF-8 -Цей пакет містить документацію по власне мові Python та по виконуючому -її інтерпретатору у вигляді набора текстових файлів та вихідних -текстів у форматі LaTeX. - %package doc-info Summary: Documentation on Python in texinfo format Summary(pl.UTF-8): Dokumentacja do Pythona w formacie texinfo @@ -491,38 +448,76 @@ Przykładowe programy w Pythonie. 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}%{beta} +%setup -q -n Python-%{version} %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 -sed -i -e 's=@EXENAME@=%{_bindir}/python3=' Misc/python-config.in +%patch5 -p1 + +%patch7 -p1 +%patch8 -p1 + +%{__rm} -r Modules/zlib +%{__rm} -r Modules/expat + +for SUBDIR in darwin libffi libffi_arm_wince 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 %build -sed -i -e 's#-ltermcap#-ltinfo#g' configure* +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 + %{__autoconf} -CPPFLAGS="-I/usr/include/ncursesw"; export CPPFLAGS %configure \ - --with-cxx-main="%{__cxx}" \ - --enable-shared \ + 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-cxx-main="%{__cxx}" \ --with-dbmliborder=gdbm:bdb \ - --with-wide-unicode \ - --with-signal-module \ - --with-tsc \ - --with-threads \ --with-doc-strings \ --with-fpectl \ + %{?with_debug:--with-pydebug} \ + --with-signal-module \ + --with-system-expat \ --with-system-ffi \ - 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}" 2>&1 | awk ' +%{__make} 2>&1 | awk ' BEGIN { fail = 0; logmsg = ""; } { if ($0 ~ /\*\*\* WARNING:/) { @@ -537,17 +532,18 @@ LC_ALL=C 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:$binlibdir ./python -tt" + 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}} \ - $RPM_BUILD_ROOT{%{py_sitedir},%{_mandir}/man1} \ +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} \ + $RPM_BUILD_ROOT{%{_infodir},%{_mandir}/man1} \ $RPM_BUILD_ROOT/etc/shrc.d %{__make} install \ @@ -555,17 +551,15 @@ install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}} \ %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 Makefile.pre.in $RPM_BUILD_ROOT%{py_libdir}/config - -mv $RPM_BUILD_ROOT{%{py_libdir}/config,%{_libdir}}/libpython%{py_ver}.a -ln -sf libpython%{py_ver}.a $RPM_BUILD_ROOT%{_libdir}/libpython.a -ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython%{py_ver}.so - install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} -cp -a Tools Demo $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 @@ -573,10 +567,10 @@ cp -a Tools Demo $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} # 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/=/ /' \ @@ -585,7 +579,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/=/ /' \ @@ -597,30 +591,35 @@ 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} # just to cut the noise, as they are not packaged (now) -# first tests -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/test -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/bsddb/test -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/test -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/distutils/tests -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/email/test -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/sqlite3/test -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/json/tests -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/lib2to3/tests - -# other files -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/plat-*/regen -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/macholib/fetch_macholib* -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/site-packages/README -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/distutils/command/wininst*.exe -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/idlelib/*.bat -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/idlelib/*.pyw -rm -rf $RPM_BUILD_ROOT%{_bindir}/smtpd.py +%{__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 + +# currently provided by python-2to3, consider switching to this one +%{__rm} $RPM_BUILD_ROOT%{_bindir}/2to3 + +# packaged separately (python-setuptools.spec) +%{__rm} $RPM_BUILD_ROOT%{_bindir}/easy_install-3.4 \ + $RPM_BUILD_ROOT%{py_sitescriptdir}/{easy_install.py,pkg_resources.py} \ + $RPM_BUILD_ROOT%{py_sitescriptdir}/__pycache__/{easy_install,pkg_resources}.*.pyc +%{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/{_markerlib,setuptools,setuptools-2.1.dist-info} + +# packaged separately (python-pip.spec) +%{__rm} $RPM_BUILD_ROOT%{_bindir}/{pip3,pip3.4} +%{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/{pip,pip-1.5.6.dist-info} + +# 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 -rf $RPM_BUILD_ROOT%{py_scriptdir}/pdb.doc -rm -rf $RPM_BUILD_ROOT%{py_scriptdir}/LICENSE.txt +%{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/LICENSE.txt %clean rm -rf $RPM_BUILD_ROOT @@ -628,230 +627,589 @@ rm -rf $RPM_BUILD_ROOT %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig -%post doc-info -p /sbin/postshell +%post doc-info -p /sbin/postshell -/usr/sbin/fix-info-dir -c %{_infodir} -%postun doc-info -p /sbin/postshell +%postun doc-info -p /sbin/postshell -/usr/sbin/fix-info-dir -c %{_infodir} %files %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/python%{py_ver} +%attr(755,root,root) %{_bindir}/python%{py_abi} %attr(755,root,root) %{_bindir}/python3 -%{_mandir}/man1/python*.1* +%{_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_scriptdir} +%dir %{py_scriptdir}/__pycache__ +%dir %{py_sitescriptdir} +%dir %{py_sitescriptdir}/__pycache__ + +# shared modules required by python library +%attr(755,root,root) %{py_dyndir}/_struct.cpython-*.so + +# modules required by python library +%{py_scriptdir}/_collections_abc.py +%{py_scriptdir}/_sitebuiltins.py +%{py_scriptdir}/_sysconfigdata.py +%{py_scriptdir}/_weakrefset.py +%{py_scriptdir}/abc.py +%{py_scriptdir}/bisect.py +%{py_scriptdir}/codecs.py +%{py_scriptdir}/copyreg.py +%{py_scriptdir}/functools.py +%{py_scriptdir}/genericpath.py +%{py_scriptdir}/heapq.py +%{py_scriptdir}/keyword.py +%{py_scriptdir}/linecache.py +%{py_scriptdir}/locale.py +%{py_scriptdir}/io.py +%{py_scriptdir}/posixpath.py +%{py_scriptdir}/re.py +%{py_scriptdir}/reprlib.py +%{py_scriptdir}/site.py +%{py_scriptdir}/sre_*.py +%{py_scriptdir}/stat.py +%{py_scriptdir}/sysconfig.py +%{py_scriptdir}/token.py +%{py_scriptdir}/tokenize.py +%{py_scriptdir}/traceback.py +%{py_scriptdir}/weakref.py +%{py_scriptdir}/os.py +# needed by the dynamic sys.lib patch +%{py_scriptdir}/types.py +%{py_scriptdir}/__pycache__/_sitebuiltins.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_sysconfigdata.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_weakrefset.cpython-*.py[co] +%{py_scriptdir}/__pycache__/abc.cpython-*.py[co] +%{py_scriptdir}/__pycache__/bisect.cpython-*.py[co] +%{py_scriptdir}/__pycache__/codecs.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_collections_abc.cpython-*.py[co] +%{py_scriptdir}/__pycache__/copyreg.cpython-*.py[co] +%{py_scriptdir}/__pycache__/functools.cpython-*.py[co] +%{py_scriptdir}/__pycache__/genericpath.cpython-*.py[co] +%{py_scriptdir}/__pycache__/heapq.cpython-*.py[co] +%{py_scriptdir}/__pycache__/keyword.cpython-*.py[co] +%{py_scriptdir}/__pycache__/linecache.cpython-*.py[co] +%{py_scriptdir}/__pycache__/locale.cpython-*.py[co] +%{py_scriptdir}/__pycache__/io.cpython-*.py[co] +%{py_scriptdir}/__pycache__/posixpath.cpython-*.py[co] +%{py_scriptdir}/__pycache__/re.cpython-*.py[co] +%{py_scriptdir}/__pycache__/reprlib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/site.cpython-*.py[co] +%{py_scriptdir}/__pycache__/sre_*.cpython-*.py[co] +%{py_scriptdir}/__pycache__/stat.cpython-*.py[co] +%{py_scriptdir}/__pycache__/sysconfig.cpython-*.py[co] +%{py_scriptdir}/__pycache__/token.cpython-*.py[co] +%{py_scriptdir}/__pycache__/tokenize.cpython-*.py[co] +%{py_scriptdir}/__pycache__/traceback.cpython-*.py[co] +%{py_scriptdir}/__pycache__/weakref.cpython-*.py[co] +%{py_scriptdir}/__pycache__/os.cpython-*.py[co] +%{py_scriptdir}/__pycache__/types.cpython-*.py[co] + +%{py_scriptdir}/collections + +# encodings required by python library +%dir %{py_scriptdir}/encodings +%{py_scriptdir}/encodings/__pycache__ +%{py_scriptdir}/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 %files modules %defattr(644,root,root,755) /etc/shrc.d/python*-modules* -%exclude %{py_scriptdir}/_abcoll.py[co] -%exclude %{py_scriptdir}/_weakrefset.py[co] -%exclude %{py_scriptdir}/abc.py[co] -%exclude %{py_scriptdir}/codecs.py[co] -%exclude %{py_scriptdir}/copyreg.py[co] -%exclude %{py_scriptdir}/genericpath.py[co] -%exclude %{py_scriptdir}/io.py[co] -%exclude %{py_scriptdir}/locale.py[co] -%exclude %{py_scriptdir}/posixpath.py[co] -%exclude %{py_scriptdir}/pdb.py[co] -%exclude %{py_scriptdir}/profile.py[co] -%exclude %{py_scriptdir}/pstats.py[co] -%exclude %{py_scriptdir}/pydoc.py[co] -%exclude %{py_scriptdir}/site.py[co] -%exclude %{py_scriptdir}/stat.py[co] -%exclude %{py_scriptdir}/timeit.py[co] -%exclude %{py_scriptdir}/os.py[co] -%exclude %{py_scriptdir}/encodings/*.py[co] -%exclude %{py_scriptdir}/types.py[co] - -%{py_scriptdir}/*.py[co] - -%{py_dyndir}/*.egg-info +%attr(755,root,root) %{_bindir}/pyvenv +%attr(755,root,root) %{_bindir}/pyvenv-3.4 +%{py_scriptdir}/__future__.py +%{py_scriptdir}/__phello__.foo.py +%{py_scriptdir}/_bootlocale.py +%{py_scriptdir}/_compat_pickle.py +%{py_scriptdir}/_dummy_thread.py +%{py_scriptdir}/_markupbase.py +%{py_scriptdir}/_osx_support.py +%{py_scriptdir}/_pyio.py +%{py_scriptdir}/_strptime.py +%{py_scriptdir}/_threading_local.py +%{py_scriptdir}/aifc.py +%{py_scriptdir}/antigravity.py +%{py_scriptdir}/argparse.py +%{py_scriptdir}/ast.py +%{py_scriptdir}/asynchat.py +%{py_scriptdir}/asyncore.py +%{py_scriptdir}/base64.py +%{py_scriptdir}/bdb.py +%{py_scriptdir}/binhex.py +%{py_scriptdir}/bz2.py +%{py_scriptdir}/cProfile.py +%{py_scriptdir}/calendar.py +%{py_scriptdir}/cgi.py +%{py_scriptdir}/cgitb.py +%{py_scriptdir}/chunk.py +%{py_scriptdir}/cmd.py +%{py_scriptdir}/code.py +%{py_scriptdir}/codeop.py +%{py_scriptdir}/colorsys.py +%{py_scriptdir}/compileall.py +%{py_scriptdir}/configparser.py +%{py_scriptdir}/contextlib.py +%{py_scriptdir}/copy.py +%{py_scriptdir}/crypt.py +%{py_scriptdir}/csv.py +%{py_scriptdir}/datetime.py +%{py_scriptdir}/decimal.py +%{py_scriptdir}/difflib.py +%{py_scriptdir}/dis.py +%{py_scriptdir}/doctest.py +%{py_scriptdir}/dummy_threading.py +%{py_scriptdir}/enum.py +%{py_scriptdir}/filecmp.py +%{py_scriptdir}/fileinput.py +%{py_scriptdir}/fnmatch.py +%{py_scriptdir}/formatter.py +%{py_scriptdir}/fractions.py +%{py_scriptdir}/ftplib.py +%{py_scriptdir}/getopt.py +%{py_scriptdir}/getpass.py +%{py_scriptdir}/gettext.py +%{py_scriptdir}/glob.py +%{py_scriptdir}/gzip.py +%{py_scriptdir}/hashlib.py +%{py_scriptdir}/hmac.py +%{py_scriptdir}/imaplib.py +%{py_scriptdir}/imghdr.py +%{py_scriptdir}/imp.py +%{py_scriptdir}/inspect.py +%{py_scriptdir}/ipaddress.py +%{py_scriptdir}/lzma.py +%{py_scriptdir}/macpath.py +%{py_scriptdir}/macurl2path.py +%{py_scriptdir}/mailbox.py +%{py_scriptdir}/mailcap.py +%{py_scriptdir}/mimetypes.py +%{py_scriptdir}/modulefinder.py +%{py_scriptdir}/netrc.py +%{py_scriptdir}/nntplib.py +%{py_scriptdir}/ntpath.py +%{py_scriptdir}/nturl2path.py +%{py_scriptdir}/numbers.py +%{py_scriptdir}/opcode.py +%{py_scriptdir}/operator.py +%{py_scriptdir}/optparse.py +%{py_scriptdir}/pathlib.py +%{py_scriptdir}/pickle.py +%{py_scriptdir}/pickletools.py +%{py_scriptdir}/pipes.py +%{py_scriptdir}/pkgutil.py +%{py_scriptdir}/platform.py +%{py_scriptdir}/plistlib.py +%{py_scriptdir}/poplib.py +%{py_scriptdir}/pprint.py +%{py_scriptdir}/pty.py +%{py_scriptdir}/py_compile.py +%{py_scriptdir}/pyclbr.py +%{py_scriptdir}/queue.py +%{py_scriptdir}/quopri.py +%{py_scriptdir}/random.py +%{py_scriptdir}/rlcompleter.py +%{py_scriptdir}/runpy.py +%{py_scriptdir}/sched.py +%{py_scriptdir}/selectors.py +%{py_scriptdir}/shelve.py +%{py_scriptdir}/shlex.py +%{py_scriptdir}/shutil.py +%{py_scriptdir}/smtpd.py +%{py_scriptdir}/smtplib.py +%{py_scriptdir}/sndhdr.py +%{py_scriptdir}/socket.py +%{py_scriptdir}/socketserver.py +%{py_scriptdir}/ssl.py +%{py_scriptdir}/statistics.py +%{py_scriptdir}/string.py +%{py_scriptdir}/stringprep.py +%{py_scriptdir}/struct.py +%{py_scriptdir}/subprocess.py +%{py_scriptdir}/sunau.py +%{py_scriptdir}/symbol.py +%{py_scriptdir}/symtable.py +%{py_scriptdir}/tabnanny.py +%{py_scriptdir}/tarfile.py +%{py_scriptdir}/telnetlib.py +%{py_scriptdir}/tempfile.py +%{py_scriptdir}/textwrap.py +%{py_scriptdir}/this.py +%{py_scriptdir}/threading.py +%{py_scriptdir}/trace.py +%{py_scriptdir}/tracemalloc.py +%{py_scriptdir}/tty.py +%{py_scriptdir}/turtle.py +%{py_scriptdir}/uu.py +%{py_scriptdir}/uuid.py +%{py_scriptdir}/warnings.py +%{py_scriptdir}/wave.py +%{py_scriptdir}/webbrowser.py +%{py_scriptdir}/xdrlib.py +%{py_scriptdir}/zipfile.py +%{py_scriptdir}/__pycache__/__future__.cpython-*.py[co] +%{py_scriptdir}/__pycache__/__phello__.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_bootlocale.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_compat_pickle.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_dummy_thread.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_markupbase.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_osx_support.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_pyio.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_strptime.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_threading_local.cpython-*.py[co] +%{py_scriptdir}/__pycache__/aifc.cpython-*.py[co] +%{py_scriptdir}/__pycache__/antigravity.cpython-*.py[co] +%{py_scriptdir}/__pycache__/argparse.cpython-*.py[co] +%{py_scriptdir}/__pycache__/ast.cpython-*.py[co] +%{py_scriptdir}/__pycache__/asynchat.cpython-*.py[co] +%{py_scriptdir}/__pycache__/asyncore.cpython-*.py[co] +%{py_scriptdir}/__pycache__/base64.cpython-*.py[co] +%{py_scriptdir}/__pycache__/bdb.cpython-*.py[co] +%{py_scriptdir}/__pycache__/binhex.cpython-*.py[co] +%{py_scriptdir}/__pycache__/bz2.cpython-*.py[co] +%{py_scriptdir}/__pycache__/cProfile.cpython-*.py[co] +%{py_scriptdir}/__pycache__/calendar.cpython-*.py[co] +%{py_scriptdir}/__pycache__/cgi.cpython-*.py[co] +%{py_scriptdir}/__pycache__/cgitb.cpython-*.py[co] +%{py_scriptdir}/__pycache__/chunk.cpython-*.py[co] +%{py_scriptdir}/__pycache__/cmd.cpython-*.py[co] +%{py_scriptdir}/__pycache__/code.cpython-*.py[co] +%{py_scriptdir}/__pycache__/codeop.cpython-*.py[co] +%{py_scriptdir}/__pycache__/colorsys.cpython-*.py[co] +%{py_scriptdir}/__pycache__/compileall.cpython-*.py[co] +%{py_scriptdir}/__pycache__/configparser.cpython-*.py[co] +%{py_scriptdir}/__pycache__/contextlib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/copy.cpython-*.py[co] +%{py_scriptdir}/__pycache__/crypt.cpython-*.py[co] +%{py_scriptdir}/__pycache__/csv.cpython-*.py[co] +%{py_scriptdir}/__pycache__/datetime.cpython-*.py[co] +%{py_scriptdir}/__pycache__/decimal.cpython-*.py[co] +%{py_scriptdir}/__pycache__/difflib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/dis.cpython-*.py[co] +%{py_scriptdir}/__pycache__/doctest.cpython-*.py[co] +%{py_scriptdir}/__pycache__/dummy_threading.cpython-*.py[co] +%{py_scriptdir}/__pycache__/enum.cpython-*.py[co] +%{py_scriptdir}/__pycache__/filecmp.cpython-*.py[co] +%{py_scriptdir}/__pycache__/fileinput.cpython-*.py[co] +%{py_scriptdir}/__pycache__/fnmatch.cpython-*.py[co] +%{py_scriptdir}/__pycache__/formatter.cpython-*.py[co] +%{py_scriptdir}/__pycache__/fractions.cpython-*.py[co] +%{py_scriptdir}/__pycache__/ftplib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/getopt.cpython-*.py[co] +%{py_scriptdir}/__pycache__/getpass.cpython-*.py[co] +%{py_scriptdir}/__pycache__/gettext.cpython-*.py[co] +%{py_scriptdir}/__pycache__/glob.cpython-*.py[co] +%{py_scriptdir}/__pycache__/gzip.cpython-*.py[co] +%{py_scriptdir}/__pycache__/hashlib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/hmac.cpython-*.py[co] +%{py_scriptdir}/__pycache__/imaplib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/imghdr.cpython-*.py[co] +%{py_scriptdir}/__pycache__/imp.cpython-*.py[co] +%{py_scriptdir}/__pycache__/inspect.cpython-*.py[co] +%{py_scriptdir}/__pycache__/ipaddress.cpython-*.py[co] +%{py_scriptdir}/__pycache__/lzma.cpython-*.py[co] +%{py_scriptdir}/__pycache__/macpath.cpython-*.py[co] +%{py_scriptdir}/__pycache__/macurl2path.cpython-*.py[co] +%{py_scriptdir}/__pycache__/mailbox.cpython-*.py[co] +%{py_scriptdir}/__pycache__/mailcap.cpython-*.py[co] +%{py_scriptdir}/__pycache__/mimetypes.cpython-*.py[co] +%{py_scriptdir}/__pycache__/modulefinder.cpython-*.py[co] +%{py_scriptdir}/__pycache__/netrc.cpython-*.py[co] +%{py_scriptdir}/__pycache__/nntplib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/ntpath.cpython-*.py[co] +%{py_scriptdir}/__pycache__/nturl2path.cpython-*.py[co] +%{py_scriptdir}/__pycache__/numbers.cpython-*.py[co] +%{py_scriptdir}/__pycache__/opcode.cpython-*.py[co] +%{py_scriptdir}/__pycache__/operator.cpython-*.py[co] +%{py_scriptdir}/__pycache__/optparse.cpython-*.py[co] +%{py_scriptdir}/__pycache__/pathlib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/pickle.cpython-*.py[co] +%{py_scriptdir}/__pycache__/pickletools.cpython-*.py[co] +%{py_scriptdir}/__pycache__/pipes.cpython-*.py[co] +%{py_scriptdir}/__pycache__/pkgutil.cpython-*.py[co] +%{py_scriptdir}/__pycache__/platform.cpython-*.py[co] +%{py_scriptdir}/__pycache__/plistlib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/poplib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/pprint.cpython-*.py[co] +%{py_scriptdir}/__pycache__/pty.cpython-*.py[co] +%{py_scriptdir}/__pycache__/py_compile.cpython-*.py[co] +%{py_scriptdir}/__pycache__/pyclbr.cpython-*.py[co] +%{py_scriptdir}/__pycache__/queue.cpython-*.py[co] +%{py_scriptdir}/__pycache__/quopri.cpython-*.py[co] +%{py_scriptdir}/__pycache__/random.cpython-*.py[co] +%{py_scriptdir}/__pycache__/rlcompleter.cpython-*.py[co] +%{py_scriptdir}/__pycache__/runpy.cpython-*.py[co] +%{py_scriptdir}/__pycache__/sched.cpython-*.py[co] +%{py_scriptdir}/__pycache__/selectors.cpython-*.py[co] +%{py_scriptdir}/__pycache__/shelve.cpython-*.py[co] +%{py_scriptdir}/__pycache__/shlex.cpython-*.py[co] +%{py_scriptdir}/__pycache__/shutil.cpython-*.py[co] +%{py_scriptdir}/__pycache__/smtpd.cpython-*.py[co] +%{py_scriptdir}/__pycache__/smtplib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/sndhdr.cpython-*.py[co] +%{py_scriptdir}/__pycache__/socket.cpython-*.py[co] +%{py_scriptdir}/__pycache__/socketserver.cpython-*.py[co] +%{py_scriptdir}/__pycache__/ssl.cpython-*.py[co] +%{py_scriptdir}/__pycache__/statistics.cpython-*.py[co] +%{py_scriptdir}/__pycache__/string.cpython-*.py[co] +%{py_scriptdir}/__pycache__/stringprep.cpython-*.py[co] +%{py_scriptdir}/__pycache__/struct.cpython-*.py[co] +%{py_scriptdir}/__pycache__/subprocess.cpython-*.py[co] +%{py_scriptdir}/__pycache__/sunau.cpython-*.py[co] +%{py_scriptdir}/__pycache__/symbol.cpython-*.py[co] +%{py_scriptdir}/__pycache__/symtable.cpython-*.py[co] +%{py_scriptdir}/__pycache__/tabnanny.cpython-*.py[co] +%{py_scriptdir}/__pycache__/tarfile.cpython-*.py[co] +%{py_scriptdir}/__pycache__/telnetlib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/tempfile.cpython-*.py[co] +%{py_scriptdir}/__pycache__/textwrap.cpython-*.py[co] +%{py_scriptdir}/__pycache__/this.cpython-*.py[co] +%{py_scriptdir}/__pycache__/threading.cpython-*.py[co] +%{py_scriptdir}/__pycache__/trace.cpython-*.py[co] +%{py_scriptdir}/__pycache__/tracemalloc.cpython-*.py[co] +%{py_scriptdir}/__pycache__/tty.cpython-*.py[co] +%{py_scriptdir}/__pycache__/turtle.cpython-*.py[co] +%{py_scriptdir}/__pycache__/uu.cpython-*.py[co] +%{py_scriptdir}/__pycache__/uuid.cpython-*.py[co] +%{py_scriptdir}/__pycache__/warnings.cpython-*.py[co] +%{py_scriptdir}/__pycache__/wave.cpython-*.py[co] +%{py_scriptdir}/__pycache__/webbrowser.cpython-*.py[co] +%{py_scriptdir}/__pycache__/xdrlib.cpython-*.py[co] +%{py_scriptdir}/__pycache__/zipfile.cpython-*.py[co] # # list .so modules to be sure that all of them are built # -# modules below do not work on 64-bit architectures -# see Python README file for explanation -%ifnarch alpha ia64 ppc64 sparc64 %{x8664} -%attr(755,root,root) %{py_dyndir}/audioop.so -%endif - -%attr(755,root,root) %{py_dyndir}/array.so -%attr(755,root,root) %{py_dyndir}/atexit.so -%attr(755,root,root) %{py_dyndir}/audioop.so -%attr(755,root,root) %{py_dyndir}/binascii.so -%attr(755,root,root) %{py_dyndir}/_bisect.so -%attr(755,root,root) %{py_dyndir}/bz2.so -%attr(755,root,root) %{py_dyndir}/cmath.so -%attr(755,root,root) %{py_dyndir}/_codecs_cn.so -%attr(755,root,root) %{py_dyndir}/_codecs_hk.so -%attr(755,root,root) %{py_dyndir}/_codecs_iso2022.so -%attr(755,root,root) %{py_dyndir}/_codecs_jp.so -%attr(755,root,root) %{py_dyndir}/_codecs_kr.so -%attr(755,root,root) %{py_dyndir}/_codecs_tw.so -%attr(755,root,root) %{py_dyndir}/_collections.so -%attr(755,root,root) %{py_dyndir}/crypt.so -%attr(755,root,root) %{py_dyndir}/_csv.so -%attr(755,root,root) %{py_dyndir}/_ctypes*.so -%attr(755,root,root) %{py_dyndir}/_curses_panel.so -%attr(755,root,root) %{py_dyndir}/_curses.so -%attr(755,root,root) %{py_dyndir}/datetime.so -%attr(755,root,root) %{py_dyndir}/_elementtree.so -#%attr(755,root,root) %{py_dyndir}/_functools.so -%attr(755,root,root) %{py_dyndir}/_hashlib.so -%attr(755,root,root) %{py_dyndir}/_heapq.so -%attr(755,root,root) %{py_dyndir}/_json.so -#%attr(755,root,root) %{py_dyndir}/_locale.so -%attr(755,root,root) %{py_dyndir}/_lsprof.so -%attr(755,root,root) %{py_dyndir}/_multibytecodec.so -%attr(755,root,root) %{py_dyndir}/_multiprocessing.so -%attr(755,root,root) %{py_dyndir}/_pickle.so -%attr(755,root,root) %{py_dyndir}/_random.so -%attr(755,root,root) %{py_dyndir}/_socket.so -%attr(755,root,root) %{py_dyndir}/_ssl.so -%attr(755,root,root) %{py_dyndir}/_testcapi.so +%attr(755,root,root) %{py_dyndir}/_bisect.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 +%attr(755,root,root) %{py_dyndir}/_curses.cpython-*.so +%attr(755,root,root) %{py_dyndir}/_datetime.cpython-*.so %ifnarch sparc64 -%attr(755,root,root) %{py_dyndir}/_dbm.so +%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}/_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 + +# 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}/fcntl.so -%attr(755,root,root) %{py_dyndir}/_gdbm.so -%attr(755,root,root) %{py_dyndir}/grp.so -%attr(755,root,root) %{py_dyndir}/itertools.so -%attr(755,root,root) %{py_dyndir}/math.so -%attr(755,root,root) %{py_dyndir}/mmap.so -%attr(755,root,root) %{py_dyndir}/nis.so -%attr(755,root,root) %{py_dyndir}/operator.so -%attr(755,root,root) %{py_dyndir}/ossaudiodev.so -%attr(755,root,root) %{py_dyndir}/parser.so -%attr(755,root,root) %{py_dyndir}/pyexpat.so -%attr(755,root,root) %{py_dyndir}/readline.so -%attr(755,root,root) %{py_dyndir}/resource.so -%attr(755,root,root) %{py_dyndir}/select.so -%attr(755,root,root) %{py_dyndir}/syslog.so -%attr(755,root,root) %{py_dyndir}/termios.so -%attr(755,root,root) %{py_dyndir}/time.so -%attr(755,root,root) %{py_dyndir}/spwd.so -%attr(755,root,root) %{py_dyndir}/unicodedata.so -%attr(755,root,root) %{py_dyndir}/zlib.so + +%attr(755,root,root) %{py_dyndir}/array.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}/cmath.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}/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 +%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-*/*.py[co] +%{py_scriptdir}/plat-*/__pycache__ +%{py_scriptdir}/plat-*/*.py + +%dir %{py_scriptdir}/asyncio +%{py_scriptdir}/asyncio/__pycache__ +%{py_scriptdir}/asyncio/*.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[co] -%{py_scriptdir}/ctypes/macholib/*.py[co] +%{py_scriptdir}/ctypes/*.py +%{py_scriptdir}/ctypes/macholib/*.py %doc %{py_scriptdir}/ctypes/macholib/README.ctypes %dir %{py_scriptdir}/curses -%{py_scriptdir}/curses/*.py[co] +%{py_scriptdir}/curses/__pycache__ +%{py_scriptdir}/curses/*.py %dir %{py_scriptdir}/dbm -%{py_scriptdir}/dbm/*.py[co] +%{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/*.py[co] -%{py_scriptdir}/distutils/command/*.py[co] +%{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/*.py[co] -%{py_scriptdir}/email/mime/*.py[co] +%{py_scriptdir}/email/__pycache__ +%{py_scriptdir}/email/mime/__pycache__ +%{py_scriptdir}/email/architecture.rst +%{py_scriptdir}/email/*.py +%{py_scriptdir}/email/mime/*.py + +%dir %{py_scriptdir}/ensurepip +%{py_scriptdir}/ensurepip/__pycache__ +%{py_scriptdir}/ensurepip/*.py +%{py_scriptdir}/ensurepip/_bundled %dir %{py_scriptdir}/html -%{py_scriptdir}/html/*.py[co] +%{py_scriptdir}/html/*.py +%{py_scriptdir}/html/__pycache__ %dir %{py_scriptdir}/http -%{py_scriptdir}/http/*.py[co] +%{py_scriptdir}/http/__pycache__ +%{py_scriptdir}/http/*.py + +%dir %{py_scriptdir}/idlelib + +%dir %{py_scriptdir}/importlib +%{py_scriptdir}/importlib/__pycache__ +%{py_scriptdir}/importlib/*.py %dir %{py_scriptdir}/json -%{py_scriptdir}/json/*.py[co] +%{py_scriptdir}/json/__pycache__ +%{py_scriptdir}/json/*.py %dir %{py_scriptdir}/logging -%{py_scriptdir}/logging/*.py[co] +%{py_scriptdir}/logging/__pycache__ +%{py_scriptdir}/logging/*.py %dir %{py_scriptdir}/multiprocessing -%{py_scriptdir}/multiprocessing/*.py[co] +%{py_scriptdir}/multiprocessing/__pycache__ +%{py_scriptdir}/multiprocessing/*.py %dir %{py_scriptdir}/multiprocessing/dummy -%{py_scriptdir}/multiprocessing/dummy/*.py[co] +%{py_scriptdir}/multiprocessing/dummy/__pycache__ +%{py_scriptdir}/multiprocessing/dummy/*.py + +%{py_scriptdir}/turtledemo + +%dir %{py_scriptdir}/unittest +%{py_scriptdir}/unittest/__pycache__ +%{py_scriptdir}/unittest/*.py %dir %{py_scriptdir}/urllib -%{py_scriptdir}/urllib/*.py[co] +%{py_scriptdir}/urllib/__pycache__ +%{py_scriptdir}/urllib/*.py + +%dir %{py_scriptdir}/venv +%{py_scriptdir}/venv/__pycache__ +%{py_scriptdir}/venv/*.py +%dir %{py_scriptdir}/venv/scripts +%dir %{py_scriptdir}/venv/scripts/posix +%{py_scriptdir}/venv/scripts/posix/activate %dir %{py_scriptdir}/wsgiref -%{py_scriptdir}/wsgiref/*.py[co] -%{py_scriptdir}/wsgiref.egg-info +%{py_scriptdir}/wsgiref/__pycache__ +%{py_scriptdir}/wsgiref/*.py %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/*.py[co] -%{py_scriptdir}/xml/dom/*.py[co] -%{py_scriptdir}/xml/etree/*.py[co] -%{py_scriptdir}/xml/parsers/*.py[co] -%{py_scriptdir}/xml/sax/*.py[co] +%{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/*.py[co] +%{py_scriptdir}/xmlrpc/__pycache__ +%{py_scriptdir}/xmlrpc/*.py -%files modules-sqlite -%defattr(644,root,root,755) -%attr(755,root,root) %{py_dyndir}/_sqlite3.so +%attr(755,root,root) %{py_dyndir}/_sqlite3.cpython-*.so %dir %{py_scriptdir}/sqlite3 -%{py_scriptdir}/sqlite3/*.py[co] - -%files libs -%defattr(644,root,root,755) -%doc LICENSE -%attr(755,root,root) %{_libdir}/libpython*.so.* - -%dir %{py_dyndir} -%dir %{py_scriptdir} -%dir %{py_libdir} -%dir %{py_sitescriptdir} -%dir %{py_sitedir} - -# shared modules required by python library -%attr(755,root,root) %{py_dyndir}/_struct.so - -# modules required by python library -%{py_scriptdir}/_abcoll.py[co] -%{py_scriptdir}/_weakrefset.py[co] -%{py_scriptdir}/abc.py[co] -%{py_scriptdir}/codecs.py[co] -%{py_scriptdir}/copyreg.py[co] -%{py_scriptdir}/genericpath.py[co] -%{py_scriptdir}/locale.py[co] -%{py_scriptdir}/io.py[co] -%{py_scriptdir}/posixpath.py[co] -%{py_scriptdir}/site.py[co] -%{py_scriptdir}/stat.py[co] -%{py_scriptdir}/os.py[co] -# needed by the dynamic sys.lib patch -%{py_scriptdir}/types.py[co] - -# encodings required by python library -%dir %{py_scriptdir}/encodings -%{py_scriptdir}/encodings/*.py[co] +%{py_scriptdir}/sqlite3/__pycache__ +%{py_scriptdir}/sqlite3/*.py %files -n pydoc3 %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/pydoc3 -%{py_scriptdir}/pydoc.py[co] +%attr(755,root,root) %{_bindir}/pydoc3.4 +%{py_scriptdir}/pydoc.py +%{py_scriptdir}/__pycache__/pydoc.cpython-*.py[co] +%dir %{py_scriptdir}/pydoc_data +%{py_scriptdir}/pydoc_data/__pycache__ +%{py_scriptdir}/pydoc_data/*.py +%{py_scriptdir}/pydoc_data/*.css %files -n idle3 %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/idle3 -%dir %{py_scriptdir}/idlelib +%attr(755,root,root) %{_bindir}/idle3.4 %dir %{py_scriptdir}/idlelib/Icons -%{py_scriptdir}/idlelib/*.py[co] +%{py_scriptdir}/idlelib/__pycache__ +%{py_scriptdir}/idlelib/*.py %doc %{py_scriptdir}/idlelib/*.txt %doc %{py_scriptdir}/idlelib/ChangeLog %{py_scriptdir}/idlelib/Icons/* @@ -860,88 +1218,68 @@ rm -rf $RPM_BUILD_ROOT %files devel %defattr(644,root,root,755) %doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp} -%attr(755,root,root) %{_bindir}/python*-config -%attr(755,root,root) %{_libdir}/lib*.so -%dir %{py_incdir} +%attr(755,root,root) %{_bindir}/python%{py_ver}-config +%attr(755,root,root) %{_bindir}/python%{py_abi}-config +%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 - -%dir %{py_libdir}/config -%attr(755,root,root) %{py_libdir}/config/makesetup -%attr(755,root,root) %{py_libdir}/config/install-sh -%{py_libdir}/config/Makefile -%{py_libdir}/config/Makefile.pre.in -%{py_libdir}/config/Setup -%{py_libdir}/config/Setup.config -%{py_libdir}/config/Setup.local -%{py_libdir}/config/config.c -%{py_libdir}/config/config.c.in -%{py_libdir}/config/python.o - -%files devel-src -%defattr(644,root,root,755) -%attr(-,root,root) %{py_scriptdir}/*.py -%{py_scriptdir}/plat-*/*.py -%{py_scriptdir}/ctypes/*.py -%{py_scriptdir}/ctypes/macholib/*.py -%{py_scriptdir}/curses/*.py -%{py_scriptdir}/dbm/*.py -%{py_scriptdir}/distutils/*.py -%{py_scriptdir}/distutils/command/*.py -%{py_scriptdir}/email/*.py -%{py_scriptdir}/email/mime/*.py -%{py_scriptdir}/html/*.py -%{py_scriptdir}/http/*.py -%{py_scriptdir}/json/*.py -%{py_scriptdir}/lib2to3/*.py -%{py_scriptdir}/lib2to3/fixes/*.py -%{py_scriptdir}/lib2to3/pgen2/*.py -%{py_scriptdir}/logging/*.py -%{py_scriptdir}/multiprocessing/*.py -%{py_scriptdir}/multiprocessing/dummy/*.py -%{py_scriptdir}/sqlite3/*.py -%{py_scriptdir}/urllib/*.py -%{py_scriptdir}/wsgiref/*.py -%{py_scriptdir}/tkinter/*.py -%{py_scriptdir}/xml/*.py -%{py_scriptdir}/xml/dom/*.py -%{py_scriptdir}/xml/etree/*.py -%{py_scriptdir}/xml/parsers/*.py -%{py_scriptdir}/xml/sax/*.py -%{py_scriptdir}/xmlrpc/*.py -%{py_scriptdir}/encodings/*.py -%{py_scriptdir}/idlelib/*.py +%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 +%{_pkgconfigdir}/python-%{py_ver}.pc +%{_pkgconfigdir}/python-%{py_abi}.pc +%{_pkgconfigdir}/python3.pc %files devel-tools %defattr(644,root,root,755) -%doc Lib/pdb.doc /etc/shrc.d/python*-devel* - %attr(755,root,root) %{_bindir}/pygettext%{py_ver} - -%{py_scriptdir}/pdb.py[co] -%{py_scriptdir}/profile.py[co] -%{py_scriptdir}/pstats.py[co] -%{py_scriptdir}/timeit.py[co] +%{py_scriptdir}/pdb.py +%{py_scriptdir}/profile.py +%{py_scriptdir}/pstats.py +%{py_scriptdir}/timeit.py +%{py_scriptdir}/__pycache__/pdb.cpython-*.py[co] +%{py_scriptdir}/__pycache__/profile.cpython-*.py[co] +%{py_scriptdir}/__pycache__/pstats.cpython-*.py[co] +%{py_scriptdir}/__pycache__/timeit.cpython-*.py[co] %files 2to3 -%attr(755,root,root) %{_bindir}/2to3 +%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[co] +%{py_scriptdir}/lib2to3/*.py %dir %{py_scriptdir}/lib2to3/fixes -%{py_scriptdir}/lib2to3/fixes/*.py[co] +%{py_scriptdir}/lib2to3/fixes/__pycache__ +%{py_scriptdir}/lib2to3/fixes/*.py %dir %{py_scriptdir}/lib2to3/pgen2 -%{py_scriptdir}/lib2to3/pgen2/*.py[co] +%{py_scriptdir}/lib2to3/pgen2/__pycache__ +%{py_scriptdir}/lib2to3/pgen2/*.py %files static %defattr(644,root,root,755) -%{_libdir}/lib*.a +%{_libdir}/libpython%{py_abi}.a %files examples %defattr(644,root,root,755) %{_examplesdir}/%{name}-%{version} +%files test +%{py_scriptdir}/idlelib/idle_test +%{py_scriptdir}/test +%{py_scriptdir}/ctypes/test +%{py_scriptdir}/distutils/tests +%{py_scriptdir}/lib2to3/tests +%{py_scriptdir}/sqlite3/test +%{py_scriptdir}/tkinter/test +%{py_scriptdir}/unittest/test + %if %{with info} %files doc-info %defattr(644,root,root,755) @@ -952,6 +1290,7 @@ rm -rf $RPM_BUILD_ROOT %files tkinter %defattr(644,root,root,755) %dir %{py_scriptdir}/tkinter -%{py_scriptdir}/tkinter/*.py[co] -%attr(755,root,root) %{py_dyndir}/_tkinter.so +%{py_scriptdir}/tkinter/__pycache__ +%{py_scriptdir}/tkinter/*.py +%attr(755,root,root) %{py_dyndir}/_tkinter.cpython-*.so %endif