3 %bcond_with info # info pages (requires emacs)
4 %bcond_without system_mpdecimal # system libmpdec library
5 %bcond_without tkinter # disables tkinter module building
6 %bcond_with tests # disables Python testing
7 %bcond_with verbose_tests # runs tests in verbose mode
9 # tests which will not work on 64-bit platforms
10 %define no64bit_tests test_audioop test_rgbimg test_imageop
11 # tests which may fail because of builder environment limitations (no /proc or /dev/pts)
12 %define nobuilder_tests test_resource test_openpty test_socket test_nis test_posix test_locale test_pty
14 # tests which fail because of some unknown/unresolved reason (this list should be empty)
15 # test_site: fails because our site.py is patched to include both /usr/share/... and /usr/lib...
16 # test_gdb: fails, as the gdb uses old python version
17 %define broken_tests test_httpservers test_distutils test_cmd_line test_pydoc test_telnetlib test_zlib test_gdb test_site
20 %define py_abi %{py_ver}m
21 %define py_prefix %{_prefix}
22 %define py_libdir %{py_prefix}/%{_lib}/python%{py_ver}
23 %define py_incdir %{_includedir}/python%{py_abi}
24 %define py_sitedir %{py_libdir}/site-packages
25 %define py_dyndir %{py_libdir}/lib-dynload
27 Summary: Very high level scripting language with X interface
28 Summary(es.UTF-8): Lenguaje script de alto nivel con interfaz X
29 Summary(fr.UTF-8): Langage de script de très haut niveau avec interface X
30 Summary(pl.UTF-8): Python - język obiektowy wysokiego poziomu
31 Summary(pt_BR.UTF-8): Linguagem de programação interpretada de alto nível
32 Summary(ru.UTF-8): Язык программирования очень высокого уровня с X-интерфейсом
33 Summary(tr.UTF-8): X arayüzlü, yüksek düzeyli, kabuk yorumlayıcı dili
34 Summary(uk.UTF-8): Мова програмування дуже високого рівня з X-інтерфейсом
41 Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
42 # Source0-md5: d149d2812f10cbe04c042232e7964171
43 Source1: pyconfig.h.in
44 Patch0: %{name}-pythonpath.patch
45 Patch1: %{name}-ac_fixes.patch
46 Patch2: %{name}-multilib.patch
47 Patch3: %{name}-no_cmdline_tests.patch
48 Patch4: %{name}-makefile-location.patch
49 Patch5: python3-atomic.patch
50 Patch6: python-distro.patch
51 Patch7: %{name}-db.patch
52 Patch8: %{name}-install_prefix.patch
53 Patch9: %{name}-tests_with_pythonpath.patch
54 URL: http://www.python.org/
55 BuildRequires: autoconf >= 2.65
56 BuildRequires: automake
57 BuildRequires: bluez-libs-devel
58 BuildRequires: bzip2-devel
59 BuildRequires: db-devel >= 4
60 %{?with_info:BuildRequires: emacs >= 21}
61 BuildRequires: expat-devel >= 1:1.95.7
63 BuildRequires: gdbm-devel >= 1.8.3
64 BuildRequires: gmp-devel >= 4.0
65 BuildRequires: libffi-devel
66 BuildRequires: libstdc++-devel
67 %{?with_system_mpdecimal:BuildRequires: mpdecimal-devel >= 2.4.1}
68 BuildRequires: ncurses-ext-devel >= 5.2
69 BuildRequires: openssl-devel >= 0.9.7
70 BuildRequires: pkgconfig
71 BuildRequires: readline-devel >= 5.0
72 BuildRequires: rpm-pythonprov
73 BuildRequires: sed >= 4.0
74 BuildRequires: sqlite3-devel >= 3.3.5
75 BuildRequires: tar >= 1:1.22
76 %{?with_info:BuildRequires: tetex-makeindex}
77 %{?with_tkinter:BuildRequires: tix-devel >= 1:8.1.4-4}
78 %{?with_tkinter:BuildRequires: tk-devel >= 8.4.3}
79 BuildRequires: xz-devel
80 BuildRequires: zlib-devel
81 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
83 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
85 %define specflags_ppc -D__ppc__=1
86 %define specflags_ppc64 -D__ppc64__=1
88 %if %{with verbose_tests}
89 %define test_flags -v -x
91 %define test_flags -w -x
94 %ifarch alpha ia64 ppc64 sparc64 ppc64 %{x8664}
95 %define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests}
97 %define test_list %{nobuilder_tests} %{broken_tests}
101 %define test_list %{nobuilder_tests} %{broken_tests} test_fcntl test_ioctl
105 Python is an interpreted, interactive, object-oriented programming
106 language. It incorporates modules, exceptions, dynamic typing, very
107 high level dynamic data types, and classes. Python combines remarkable
108 power with very clear syntax. It has interfaces to many system calls
109 and libraries, as well as to various window systems, and is extensible
110 in C or C++. It is also usable as an extension language for
111 applications that need a programmable interface. Finally, Python is
112 portable: it runs on many brands of UNIX, on the Mac, and on PCs under
113 MS-DOS, Windows, Windows NT, and OS/2.
115 This package contains the Python binary.
117 %description -l de.UTF-8
118 Python ist eine interpretierte, interaktive, objektorientierte
119 Programmiersprache, vergleichbar zu Tcl, Perl, Scheme oder Java.
120 Python enthält Module, Klassen, Exceptions, High-Level dynamische
121 Datentypen und dynamisches Typisieren. Python unterstützt Interfaces
122 zu vielen Systemaufrufen und Libraries, sowie verschiedene
123 Fenstersysteme (X11, Motif, Tk, Mac und MFC)
125 Programmierer können neue built-in-Module für Python in C oder C++
126 schreiben. Python kann auch als Erweiterungssprache für Applikationen
127 benutzt werden, die ein programmierbares Interface brauchen. Dieses
128 Paket enthält die meisten Standard-Python-Module, und Module zum
129 Ansprechen von Tix (Tk-widget set) und RPM.
131 %description -l es.UTF-8
132 Python es un lenguaje de scripts interpretado orientado a objetos.
133 Contiene soporte para carga dinámica de objetos, clases, módulos y
136 Es sencillo adicionar interfaces para nuevos sistemas de biblioteca a
137 través de código C, tornando Python fácil de usar en ambientes
138 particulares/personalizados. Este paquete Python incluye la mayoría de
139 los módulos padrón Python, junto con módulos para crear interfaces
140 para el conjunto de componentes Tix para Tk y RPM.
142 %description -l fr.UTF-8
143 Python est un langage de script interprété et orienté objet. Il gère
144 le chargement dynamique des objets, les classes, les modules et les
145 exceptions. L'ajout d'interfaces aux nouvelles bibliothèques systèmes
146 avec du code C est simple, ce qui rend Python facile à utiliser dans
147 des configs personnalisées.
149 Ce paquetage Python contient la plupart des modules Python standards,
150 ainsi que ceux permettant l'interfaçage avec les widgets Tix pour Tk
153 %description -l pl.UTF-8
154 Python jest interpretowanym, interaktywnym i zorientowanym obiektowo
155 językiem programowania. Jest modularny, obsługuje wyjątki, dynamiczne
156 typy, zaawansowane dynamiczne struktury danych i klasy. Python łączy w
157 sobie duże możliwości i przejrzystą składnię. Posiada interfejsy do
158 wielu wywołań systemowych i bibliotek, w tym również do różnych
159 bibliotek okienkowych. Możliwości jego można jeszcze rozszerzać
160 poprzez odpowiednie moduły pisane w C lub C++. Python może być również
161 użyty jako element aplikacji, którym potrzebny jest interpreter do
162 skryptów. I wreszcie, Python jest wieloplatformowy, działa na wielu
163 odmianach UNIX-a, Macu oraz PC pod DOS-em, Windows, WindowsNT oraz
166 Ten pakiet zawiera binarkę Pythona.
168 %description -l pt_BR.UTF-8
169 Python é uma linguagem de scripts interpretada orientada a objetos.
170 Contém suporte para carga dinâmica de objetos, classes, módulos e
171 exceções. Adicionar interfaces para novos sistemas de biblioteca
172 através de código C é simples, tornando Python fácil de usar em
173 ambientes particulares/personalizados.
175 Este pacote Python inclui a maioria do módulos padrão Python, junto
176 com módulos para interfaceamento para o conjunto de componentes Tix
179 %description -l ru.UTF-8
180 Python - это интерпретируемый, объектно-ориентированный язык
181 программирования. Он поддерживает динамическую загрузку объектов,
182 классы, модули и обработку исключительных ситуаций (exceptions).
183 Простота добавления интерфейсов к новым системным библиотекам через
184 код на языке C делает Python хорошим выбором для использования в
185 специальных конфигурациях.
187 %description -l tr.UTF-8
188 Python, nesneye yönelik bir kabuk yorumlayıcıdır. Nesnelerin,
189 sınıfların, modüllerin ve aykırı durumların dinamik yüklenmelerine
190 destek verir. C koduyla birlikte kullanımı son derece kolaydır. Bu
191 paket, standart Python birimlerinin çoğunun yanısıra Tk ve RPM için
192 arayüz birimlerini de içerir.
194 %description -l uk.UTF-8
195 Python - це інтерпретована, об'єктно-орієнтована мова програмування.
196 Він підтримує динамічну загрузку об'єктів, класи, модулі та обробку
197 виключних ситуацій (exceptions). Простота додавання інтерфейсів для
198 нових системних бібліотек через код на мові C робить Python добрим
199 вибором для використання в спеціальних конфігураціях.
202 Summary: Python library
203 Summary(pl.UTF-8): Biblioteka języka Python
204 Group: Libraries/Python
205 # broken detection in rpm/pythondeps.sh
206 Provides: python(abi) = %{py_ver}
207 # for compatibility with existing Ac packages
208 Provides: python(bytecode) = %{py_ver}
209 %{!?with_info:Obsoletes: python3-doc-info}
212 Python shared library and very essental modules for Python binary.
214 %description libs -l pl.UTF-8
215 Biblioteka współdzielona języka Python oraz bardzo podstawowe moduły
219 Summary: Python modules
220 Summary(pl.UTF-8): Moduły języka Python
221 Group: Libraries/Python
222 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
223 %{?with_system_mpdecimal:Requires: mpdecimal >= 2.4.1}
224 Obsoletes: python3-modules-sqlite
225 Obsoletes: python3-enum
226 Provides: python3-enum
229 Python officially distributed modules.
231 %description modules -l pl.UTF-8
232 Oficjalnie rozprowadzane moduły języka Python.
235 Summary: Python interactive module documentation access support
236 Summary(pl.UTF-8): Interaktywne korzystanie z dokumentacji modułów języka Python
238 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
240 %description -n pydoc3
241 Python interactive module documentation access support.
243 %description -n pydoc3 -l pl.UTF-8
244 Interaktywne korzystanie z dokumentacji modułów języka Python.
247 Summary: IDE for Python language
248 Summary(pl.UTF-8): IDE dla języka Python
250 Requires: %{name}-tkinter = %{epoch}:%{version}-%{release}
252 %description -n idle3
253 IDE for Python language.
255 %description -n idle3 -l pl.UTF-8
256 IDE dla języka Python.
259 Summary: Libraries and header files for building python code
260 Summary(de.UTF-8): Libraries und Header-Dateien zum Erstellen von Python-Code
261 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para construir programas en python
262 Summary(fr.UTF-8): Bibliothèques et en-têtes pour construire du code python
263 Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki Pythona
264 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para o Python
265 Summary(ru.UTF-8): Библиотеки и хедеры для построения кода на языке Python
266 Summary(tr.UTF-8): Python ile geliştirme yapmak için gerekli dosyalar
267 Summary(uk.UTF-8): Бібліотеки та хедери для програмування на мові Python
268 Group: Development/Languages/Python
269 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
272 The Python interpreter is relatively easy to extend with dynamically
273 loaded extensions and to embed in other programs. This package
274 contains the header files and libraries which are needed to do both of
277 %description devel -l de.UTF-8
278 Der Python-Interpretierer ist relativ einfach anhand von dynamisch
279 ladbaren Erweiterungen auszubauen und läßt sich in andere Programme
280 integrieren. Dieses Paket enthält die Header-Dateien und Libraries,
281 die für beide Aufgaben erforderlich sind.
283 %description devel -l es.UTF-8
284 El interpretador Python permite incluir con facilidad extensiones
285 cargadas dinámicamente. Python es también fácil de ser empotrado en
286 otros programas. Este paquete contiene los archivos de inclusión y
287 bibliotecas necesarios para estas dos tareas.
289 %description devel -l fr.UTF-8
290 L'interpréteur Python est relativement facile à étendre avec des
291 extensions chargées dynamiquement et à insérer dans d'autres
292 programmes. Ce paquetage contient les en-têtes et les bibliothèques
293 nécessaires à ces deux tâches.
295 %description devel -l pl.UTF-8
296 Interpreter Pythona jest w miarę łatwy do rozszerzania przy pomocy
297 dynamicznie ładowanych rozszerzeń napisanych w C lub C++ oraz
298 osadzania w innych programach. Ten pakiet zawiera pliki nagłówkowe i
299 wszystko inne co potrzebne do tych celów.
301 %description devel -l pt_BR.UTF-8
302 O interpretador Python permite incluir com facilidade extensões
303 carregadas dinamicamente. Python é também fácil de ser embutido em
304 outros programas. Este pacote contém os arquivos de inclusão e
305 bibliotecas necessários para estas duas tarefas.
307 %description devel -l ru.UTF-8
308 Интерпретатор Python относительно легко расширяется при помощи
309 динамически загружаемых расширений и встраивается в другие программы.
310 Этот пакет содержит хедеры и библиотеки, необходимые для обеих этих
313 %description devel -l tr.UTF-8
314 Bu paket, Python ile geliştirme yapılabilmesi için gerekli başlık
315 dosyalarını ve kitaplıkları içerir.
317 %description devel -l uk.UTF-8
318 Інтерпретатор Python відносно легко розширюється за допомогою
319 розширень з динамічною загрузкою та вбудовується в інші програми. Цей
320 пакет містить хедери та бібліотеки, необхідні для обох цих задач.
323 Summary: Python module sources
324 Summary(pl.UTF-8): Pliki źródłowe modułów Pythona
325 Group: Development/Languages/Python
326 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
328 %description devel-src
329 Python module sources.
331 %description devel-src -l pl.UTF-8
332 Pliki źródłowe modułów Pythona.
335 Summary: Python development tools
336 Summary(pl.UTF-8): Narzędzia programistyczne języka Python
337 Group: Development/Languages/Python
338 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
340 %description devel-tools
341 Python development tools such as profilers and debugger.
343 %description devel-tools -l pl.UTF-8
344 Narzędzia programistyczne języka Python takie jak profiler oraz
348 Summary: Automated Python 2 to 3 code translation
349 Summary(pl.UTF-8): Automatyczne tłumaczenie kodu Pythona 2 do 3
350 Group: Development/Languages/Pythona
353 2to3 is a Python program that reads Python 2.x source code and applies
354 a series of fixers to transform it into valid Python 3.x code. The
355 standard library contains a rich set of fixers that will handle almost
356 all code. 2to3 supporting library lib2to3 is, however, a flexible and
357 generic library, so it is possible to write your own fixers for 2to3.
358 lib2to3 could also be adapted to custom applications in which Python
359 code needs to be edited automatically.
361 %description 2to3 -l pl.UTF-8
362 2to3 to program w Pythonie czytający od źródłowy w Pythonie 2.x i
363 aplikujący serię poprawek przekształcających go w poprawny kod w
364 Pythonie 3.x. Biblioteka standardowa zawiera duży zbiór poprawek
365 obsługujących większość kodu. Biblioteka wspierająca 2to3 (lib2to3)
366 jest jednak elastyczną i ogólną biblioteką, więc można pisać własne
367 poprawki dla 2to3. lib2to3 można także zaadaptować na potrzeby
368 własnych zastosowań, w których kod w Pythonie musi być modyfikowany
372 Summary: Static python library
373 Summary(pl.UTF-8): Statyczna biblioteka Pythona
374 Group: Development/Languages/Python
375 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
378 Static python library.
380 %description static -l pl.UTF-8
381 Statyczna biblioteka Pythona.
384 Summary: Documentation on Python in texinfo format
385 Summary(pl.UTF-8): Dokumentacja do Pythona w formacie texinfo
388 %description doc-info
389 Documentation on Python in texinfo format.
391 %description doc-info -l pl.UTF-8
392 Dokumentacja do Pythona w formacie texinfo.
395 Summary: Standard Python interface to the Tk GUI toolkit
396 Summary(de.UTF-8): Grafische Tk-Schnittstelle für Python
397 Summary(es.UTF-8): Interfaz de GUI Tk para Python
398 Summary(fr.UTF-8): Interface graphique Tk pour Python
399 Summary(pl.UTF-8): Standardowy interfejs Pythona do biblioteki Tk
400 Summary(pt_BR.UTF-8): Interface GUI Tk para Phyton
401 Summary(tr.UTF-8): Python için grafik kullanıcı arayüzü
402 Group: Libraries/Python
403 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
404 Requires: tcl >= 8.4.3
405 Requires: tix >= 1:8.1.4-4
406 Requires: tk >= 8.4.3
409 Standard Python interface to the Tk GUI toolkit.
411 %description tkinter -l de.UTF-8
412 Eine grafische Schnittstelle für Python, basierend auf Tcl/Tk, und von
413 vielen Konfigurations-Tools genutzt.
415 %description tkinter -l es.UTF-8
416 Una interfaz gráfica para Python, basada en Tcl/Tk, y usada por muchas
417 herramientas de configuración.
419 %description tkinter -l fr.UTF-8
420 Interface graphique pour Python, basée sur Tcl/Tk et utilisée par
421 beaucoup des outils de configuration.
423 %description tkinter -l pl.UTF-8
424 Standardowy interfejs Pythona do biblioteki Tk.
426 %description tkinter -l pt_BR.UTF-8
427 Uma interface gráfica para Python, baseada em Tcl/Tk, e usada por
428 muitas ferramentas de configuração.
430 %description tkinter -l ru.UTF-8
431 Графический интерфейс (GUI) для Python, построенный на Tcl/Tk.
433 %description tkinter -l tr.UTF-8
434 Python için Tcl/Tk'ye dayalı ve pek çok ayarlama aracı tarafından
435 kullanılan grafik bir arayüzdür.
437 %description tkinter -l uk.UTF-8
438 Графічний інтерфейс (GUI) для Python, побудований на Tcl/Tk.
441 Summary: Example programs in Python
442 Summary(pl.UTF-8): Przykładowe programy w Pythonie
443 Group: Development/Languages/Python
445 %description examples
446 Example programs in Python.
448 These are for Python 2.3.4, not %{version}.
450 %description examples -l pl.UTF-8
451 Przykładowe programy w Pythonie.
453 Przykłady te są dla Pythona 2.3.4, nie %{version}.
456 Summary: Test modules for Python
457 Summary(pl.UTF-8): Moduły testowe dla Pythona
458 Group: Development/Languages/Python
461 Test modules for Python.
463 %description test -l pl.UTF-8
464 Moduły testowe dla Pythona.
467 %setup -q -n Python-%{version}
479 %{__rm} -r Modules/zlib
480 %{__rm} -r Modules/expat
482 for SUBDIR in darwin libffi libffi_arm_wince libffi_msvc libffi_osx; do
483 %{__rm} -r Modules/_ctypes/$SUBDIR/*
486 %if "%{pld_release}" == "ac"
487 files="md5module.c sha1module.c"
488 files="$files sha256module.c sha512module.c"
494 find . -name '*.py' | xargs -r grep -El '^#! */usr/bin/env python3?' | xargs %{__sed} -i -e '1s,^#! */usr/bin/env python3\?,#!/usr/bin/python3,'
497 if ! grep -q "tmpfs" /proc/self/mounts; then
498 echo "You need to have /dev/shm mounted in order to build this package!" >&2
499 echo "(Or any other tmpfs mounted and accessible to the rpmbuild process)" >&2
507 OPT="%{rpmcflags} -fno-caller-saves" \
508 CPPFLAGS="%{rpmcppflags}" \
509 LDFLAGS="%{rpmldflags}" \
510 ac_cv_posix_semaphores_enabled=yes \
511 ac_cv_broken_sem_getvalue=no \
514 --with-computed-gotos \
515 --with-dbmliborder=gdbm:bdb \
517 --without-ensurepip \
519 %{?with_debug:--with-pydebug} \
520 --with-signal-module \
521 --with-system-expat \
523 %{?with_system_mpdecimal:--with-system-libmpdec} \
525 %ifarch %{ix86} %{x8664} ppc ppc64
529 %{__make} 2>&1 | awk '
530 BEGIN { fail = 0; logmsg = ""; }
532 if ($0 ~ /\*\*\* WARNING:/) {
538 END { if (fail) { print "\nPROBLEMS FOUND:"; print logmsg; exit(1); } }'
543 binlibdir=`echo build/lib.*`
544 # -l and -j don't go together! and -j is brought up by Tools/scripts/run_tests.py
546 TESTOPTS="%{test_flags} %{test_list}" \
547 TESTPYTHON="LD_LIBRARY_PATH=`pwd` PYTHONHOME=`pwd` PYTHONPATH=`pwd`/Lib:`pwd`/$binlibdir ./python -tt"
551 rm -rf $RPM_BUILD_ROOT
552 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_pkgconfigdir}} \
553 $RPM_BUILD_ROOT{%{py_sitedir},%{py_sitescriptdir}}/__pycache__ \
554 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
555 $RPM_BUILD_ROOT{%{_infodir},%{_mandir}/man1} \
556 $RPM_BUILD_ROOT/etc/shrc.d
559 DESTDIR=$RPM_BUILD_ROOT
562 %{__make} -C Doc/info
563 cp -p Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
566 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
567 cp -a Tools $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
569 # make libpython3.so simply symlink to real lib
570 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libpython3.so
571 ln -s libpython%{py_abi}.so $RPM_BUILD_ROOT%{_libdir}/libpython3.so
574 # create several useful aliases, such as timeit.py, profile.py, pdb.py, smtpd.py
577 # for python devel tools
578 for script in timeit profile pdb pstats; do
579 echo "alias ${script}%{py_ver}.py='python%{py_ver} -m ${script}'"
580 done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh
582 echo "alias pygettext%{py_ver}.py='pygettext%{py_ver}'" \
583 >> $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh
586 < $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh \
587 > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.csh
590 for script in smtpd webbrowser; do
591 echo "alias ${script}%{py_ver}.py='python%{py_ver} -m ${script}'"
592 done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh
595 < $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh \
596 > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.csh
598 # xgettext specific for Python code
600 # we will have two commands: pygettext.py (an alias) and pygettext;
601 # this way there are no import (which is impossible now) conflicts and
602 # pygettext.py is provided for compatibility
603 install -p Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver}
605 # reindent python code
606 install -p Tools/scripts/reindent.py $RPM_BUILD_ROOT%{_bindir}/pyreindent%{py_ver}
608 # just to cut the noise, as they are not packaged (now)
609 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/plat-*/regen
610 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/ctypes/macholib/fetch_macholib*
611 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/site-packages/README
612 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/distutils/command/wininst*.exe
613 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/*.bat
614 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/*.pyw
616 # currently provided by python-2to3, consider switching to this one
617 %{__rm} $RPM_BUILD_ROOT%{_bindir}/2to3
619 # that seems to be only an empty extension template,
620 # which seems to be built only {with tests}
621 %{__rm} -f $RPM_BUILD_ROOT%{py_dyndir}/xxlimited.*.so
624 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/LICENSE.txt
626 mv $RPM_BUILD_ROOT%{py_incdir}/pyconfig.h $RPM_BUILD_ROOT%{py_libdir}/config-%{py_abi}/pyconfig.h
627 sed -e's#@PREFIX@#%{_prefix}#g;s#@PY_VER@#%{py_ver}#g;s#@PY_ABI@#%{py_abi}#g' %{SOURCE1} > $RPM_BUILD_ROOT%{py_incdir}/pyconfig.h
630 rm -rf $RPM_BUILD_ROOT
632 %post libs -p /sbin/ldconfig
633 %postun libs -p /sbin/ldconfig
635 %post doc-info -p /sbin/postshell
636 -/usr/sbin/fix-info-dir -c %{_infodir}
638 %postun doc-info -p /sbin/postshell
639 -/usr/sbin/fix-info-dir -c %{_infodir}
642 %defattr(644,root,root,755)
643 %attr(755,root,root) %{_bindir}/python%{py_ver}
644 %attr(755,root,root) %{_bindir}/python%{py_abi}
645 %attr(755,root,root) %{_bindir}/python3
646 %{_mandir}/man1/python%{py_ver}.1*
647 %{_mandir}/man1/python3.1*
650 %defattr(644,root,root,755)
652 %attr(755,root,root) %{_libdir}/libpython%{py_abi}.so.*.*
655 %{py_incdir}/pyconfig.h
660 %dir %{py_sitedir}/__pycache__
661 %dir %{py_libdir}/__pycache__
663 %dir %{py_sitescriptdir}
664 %dir %{py_sitescriptdir}/__pycache__
666 # shared modules required by python library
667 %attr(755,root,root) %{py_dyndir}/_struct.cpython-*.so
669 # modules required by python library
670 %{py_libdir}/_collections_abc.py
671 %{py_libdir}/_sitebuiltins.py
672 %{py_libdir}/_sysconfigdata.py
673 %{py_libdir}/_weakrefset.py
675 %{py_libdir}/bisect.py
676 %{py_libdir}/codecs.py
677 %{py_libdir}/copyreg.py
678 %{py_libdir}/functools.py
679 %{py_libdir}/genericpath.py
680 %{py_libdir}/heapq.py
681 %{py_libdir}/keyword.py
682 %{py_libdir}/linecache.py
683 %{py_libdir}/locale.py
685 %{py_libdir}/posixpath.py
687 %{py_libdir}/reprlib.py
689 %{py_libdir}/sre_*.py
691 %{py_libdir}/sysconfig.py
692 %{py_libdir}/token.py
693 %{py_libdir}/tokenize.py
694 %{py_libdir}/traceback.py
695 %{py_libdir}/weakref.py
697 # needed by the dynamic sys.lib patch
698 %{py_libdir}/types.py
699 %{py_libdir}/__pycache__/_sitebuiltins.cpython-*.py[co]
700 %{py_libdir}/__pycache__/_sysconfigdata.cpython-*.py[co]
701 %{py_libdir}/__pycache__/_weakrefset.cpython-*.py[co]
702 %{py_libdir}/__pycache__/abc.cpython-*.py[co]
703 %{py_libdir}/__pycache__/bisect.cpython-*.py[co]
704 %{py_libdir}/__pycache__/codecs.cpython-*.py[co]
705 %{py_libdir}/__pycache__/_collections_abc.cpython-*.py[co]
706 %{py_libdir}/__pycache__/copyreg.cpython-*.py[co]
707 %{py_libdir}/__pycache__/functools.cpython-*.py[co]
708 %{py_libdir}/__pycache__/genericpath.cpython-*.py[co]
709 %{py_libdir}/__pycache__/heapq.cpython-*.py[co]
710 %{py_libdir}/__pycache__/keyword.cpython-*.py[co]
711 %{py_libdir}/__pycache__/linecache.cpython-*.py[co]
712 %{py_libdir}/__pycache__/locale.cpython-*.py[co]
713 %{py_libdir}/__pycache__/io.cpython-*.py[co]
714 %{py_libdir}/__pycache__/posixpath.cpython-*.py[co]
715 %{py_libdir}/__pycache__/re.cpython-*.py[co]
716 %{py_libdir}/__pycache__/reprlib.cpython-*.py[co]
717 %{py_libdir}/__pycache__/site.cpython-*.py[co]
718 %{py_libdir}/__pycache__/sre_*.cpython-*.py[co]
719 %{py_libdir}/__pycache__/stat.cpython-*.py[co]
720 %{py_libdir}/__pycache__/sysconfig.cpython-*.py[co]
721 %{py_libdir}/__pycache__/token.cpython-*.py[co]
722 %{py_libdir}/__pycache__/tokenize.cpython-*.py[co]
723 %{py_libdir}/__pycache__/traceback.cpython-*.py[co]
724 %{py_libdir}/__pycache__/weakref.cpython-*.py[co]
725 %{py_libdir}/__pycache__/os.cpython-*.py[co]
726 %{py_libdir}/__pycache__/types.cpython-*.py[co]
728 %{py_libdir}/collections
730 # encodings required by python library
731 %dir %{py_libdir}/encodings
732 %{py_libdir}/encodings/__pycache__
733 %{py_libdir}/encodings/*.py
735 %dir %{py_libdir}/config-%{py_abi}
736 %{py_libdir}/config-%{py_abi}/Makefile
737 %{py_libdir}/config-%{py_abi}/Setup
738 %{py_libdir}/config-%{py_abi}/Setup.config
739 %{py_libdir}/config-%{py_abi}/Setup.local
740 %{py_libdir}/config-%{py_abi}/pyconfig.h
743 %defattr(644,root,root,755)
744 /etc/shrc.d/python*-modules*
745 %attr(755,root,root) %{_bindir}/pyvenv
746 %attr(755,root,root) %{_bindir}/pyvenv-%{py_ver}
747 %{py_libdir}/__future__.py
748 %{py_libdir}/__phello__.foo.py
749 %{py_libdir}/_bootlocale.py
750 %{py_libdir}/_compat_pickle.py
751 %{py_libdir}/_compression.py
752 %{py_libdir}/_dummy_thread.py
753 %{py_libdir}/_markupbase.py
754 %{py_libdir}/_osx_support.py
755 %{py_libdir}/_pydecimal.py
756 %{py_libdir}/_pyio.py
757 %{py_libdir}/_strptime.py
758 %{py_libdir}/_threading_local.py
760 %{py_libdir}/antigravity.py
761 %{py_libdir}/argparse.py
763 %{py_libdir}/asynchat.py
764 %{py_libdir}/asyncore.py
765 %{py_libdir}/base64.py
767 %{py_libdir}/binhex.py
769 %{py_libdir}/cProfile.py
770 %{py_libdir}/calendar.py
772 %{py_libdir}/cgitb.py
773 %{py_libdir}/chunk.py
776 %{py_libdir}/codeop.py
777 %{py_libdir}/colorsys.py
778 %{py_libdir}/compileall.py
779 %{py_libdir}/configparser.py
780 %{py_libdir}/contextlib.py
782 %{py_libdir}/crypt.py
784 %{py_libdir}/datetime.py
785 %{py_libdir}/decimal.py
786 %{py_libdir}/difflib.py
788 %{py_libdir}/doctest.py
789 %{py_libdir}/dummy_threading.py
791 %{py_libdir}/filecmp.py
792 %{py_libdir}/fileinput.py
793 %{py_libdir}/fnmatch.py
794 %{py_libdir}/formatter.py
795 %{py_libdir}/fractions.py
796 %{py_libdir}/ftplib.py
797 %{py_libdir}/getopt.py
798 %{py_libdir}/getpass.py
799 %{py_libdir}/gettext.py
802 %{py_libdir}/hashlib.py
804 %{py_libdir}/imaplib.py
805 %{py_libdir}/imghdr.py
807 %{py_libdir}/inspect.py
808 %{py_libdir}/ipaddress.py
810 %{py_libdir}/macpath.py
811 %{py_libdir}/macurl2path.py
812 %{py_libdir}/mailbox.py
813 %{py_libdir}/mailcap.py
814 %{py_libdir}/mimetypes.py
815 %{py_libdir}/modulefinder.py
816 %{py_libdir}/netrc.py
817 %{py_libdir}/nntplib.py
818 %{py_libdir}/ntpath.py
819 %{py_libdir}/nturl2path.py
820 %{py_libdir}/numbers.py
821 %{py_libdir}/opcode.py
822 %{py_libdir}/operator.py
823 %{py_libdir}/optparse.py
824 %{py_libdir}/pathlib.py
825 %{py_libdir}/pickle.py
826 %{py_libdir}/pickletools.py
827 %{py_libdir}/pipes.py
828 %{py_libdir}/pkgutil.py
829 %{py_libdir}/platform.py
830 %{py_libdir}/plistlib.py
831 %{py_libdir}/poplib.py
832 %{py_libdir}/pprint.py
834 %{py_libdir}/py_compile.py
835 %{py_libdir}/pyclbr.py
836 %{py_libdir}/queue.py
837 %{py_libdir}/quopri.py
838 %{py_libdir}/random.py
839 %{py_libdir}/rlcompleter.py
840 %{py_libdir}/runpy.py
841 %{py_libdir}/signal.py
842 %{py_libdir}/sched.py
843 %{py_libdir}/selectors.py
844 %{py_libdir}/shelve.py
845 %{py_libdir}/shlex.py
846 %{py_libdir}/shutil.py
847 %{py_libdir}/smtpd.py
848 %{py_libdir}/smtplib.py
849 %{py_libdir}/sndhdr.py
850 %{py_libdir}/socket.py
851 %{py_libdir}/socketserver.py
853 %{py_libdir}/statistics.py
854 %{py_libdir}/string.py
855 %{py_libdir}/stringprep.py
856 %{py_libdir}/struct.py
857 %{py_libdir}/subprocess.py
858 %{py_libdir}/sunau.py
859 %{py_libdir}/symbol.py
860 %{py_libdir}/symtable.py
861 %{py_libdir}/tabnanny.py
862 %{py_libdir}/tarfile.py
863 %{py_libdir}/telnetlib.py
864 %{py_libdir}/tempfile.py
865 %{py_libdir}/textwrap.py
867 %{py_libdir}/threading.py
868 %{py_libdir}/trace.py
869 %{py_libdir}/tracemalloc.py
871 %{py_libdir}/turtle.py
872 %{py_libdir}/typing.py
875 %{py_libdir}/warnings.py
877 %{py_libdir}/webbrowser.py
878 %{py_libdir}/xdrlib.py
879 %{py_libdir}/zipapp.py
880 %{py_libdir}/zipfile.py
881 %{py_libdir}/__pycache__/__future__.cpython-*.py[co]
882 %{py_libdir}/__pycache__/__phello__.foo.cpython-*.py[co]
883 %{py_libdir}/__pycache__/_bootlocale.cpython-*.py[co]
884 %{py_libdir}/__pycache__/_compat_pickle.cpython-*.py[co]
885 %{py_libdir}/__pycache__/_compression.cpython-*.py[co]
886 %{py_libdir}/__pycache__/_dummy_thread.cpython-*.py[co]
887 %{py_libdir}/__pycache__/_markupbase.cpython-*.py[co]
888 %{py_libdir}/__pycache__/_osx_support.cpython-*.py[co]
889 %{py_libdir}/__pycache__/_pydecimal.cpython-*.py[co]
890 %{py_libdir}/__pycache__/_pyio.cpython-*.py[co]
891 %{py_libdir}/__pycache__/_strptime.cpython-*.py[co]
892 %{py_libdir}/__pycache__/_threading_local.cpython-*.py[co]
893 %{py_libdir}/__pycache__/aifc.cpython-*.py[co]
894 %{py_libdir}/__pycache__/antigravity.cpython-*.py[co]
895 %{py_libdir}/__pycache__/argparse.cpython-*.py[co]
896 %{py_libdir}/__pycache__/ast.cpython-*.py[co]
897 %{py_libdir}/__pycache__/asynchat.cpython-*.py[co]
898 %{py_libdir}/__pycache__/asyncore.cpython-*.py[co]
899 %{py_libdir}/__pycache__/base64.cpython-*.py[co]
900 %{py_libdir}/__pycache__/bdb.cpython-*.py[co]
901 %{py_libdir}/__pycache__/binhex.cpython-*.py[co]
902 %{py_libdir}/__pycache__/bz2.cpython-*.py[co]
903 %{py_libdir}/__pycache__/cProfile.cpython-*.py[co]
904 %{py_libdir}/__pycache__/calendar.cpython-*.py[co]
905 %{py_libdir}/__pycache__/cgi.cpython-*.py[co]
906 %{py_libdir}/__pycache__/cgitb.cpython-*.py[co]
907 %{py_libdir}/__pycache__/chunk.cpython-*.py[co]
908 %{py_libdir}/__pycache__/cmd.cpython-*.py[co]
909 %{py_libdir}/__pycache__/code.cpython-*.py[co]
910 %{py_libdir}/__pycache__/codeop.cpython-*.py[co]
911 %{py_libdir}/__pycache__/colorsys.cpython-*.py[co]
912 %{py_libdir}/__pycache__/compileall.cpython-*.py[co]
913 %{py_libdir}/__pycache__/configparser.cpython-*.py[co]
914 %{py_libdir}/__pycache__/contextlib.cpython-*.py[co]
915 %{py_libdir}/__pycache__/copy.cpython-*.py[co]
916 %{py_libdir}/__pycache__/crypt.cpython-*.py[co]
917 %{py_libdir}/__pycache__/csv.cpython-*.py[co]
918 %{py_libdir}/__pycache__/datetime.cpython-*.py[co]
919 %{py_libdir}/__pycache__/decimal.cpython-*.py[co]
920 %{py_libdir}/__pycache__/difflib.cpython-*.py[co]
921 %{py_libdir}/__pycache__/dis.cpython-*.py[co]
922 %{py_libdir}/__pycache__/doctest.cpython-*.py[co]
923 %{py_libdir}/__pycache__/dummy_threading.cpython-*.py[co]
924 %{py_libdir}/__pycache__/enum.cpython-*.py[co]
925 %{py_libdir}/__pycache__/filecmp.cpython-*.py[co]
926 %{py_libdir}/__pycache__/fileinput.cpython-*.py[co]
927 %{py_libdir}/__pycache__/fnmatch.cpython-*.py[co]
928 %{py_libdir}/__pycache__/formatter.cpython-*.py[co]
929 %{py_libdir}/__pycache__/fractions.cpython-*.py[co]
930 %{py_libdir}/__pycache__/ftplib.cpython-*.py[co]
931 %{py_libdir}/__pycache__/getopt.cpython-*.py[co]
932 %{py_libdir}/__pycache__/getpass.cpython-*.py[co]
933 %{py_libdir}/__pycache__/gettext.cpython-*.py[co]
934 %{py_libdir}/__pycache__/glob.cpython-*.py[co]
935 %{py_libdir}/__pycache__/gzip.cpython-*.py[co]
936 %{py_libdir}/__pycache__/hashlib.cpython-*.py[co]
937 %{py_libdir}/__pycache__/hmac.cpython-*.py[co]
938 %{py_libdir}/__pycache__/imaplib.cpython-*.py[co]
939 %{py_libdir}/__pycache__/imghdr.cpython-*.py[co]
940 %{py_libdir}/__pycache__/imp.cpython-*.py[co]
941 %{py_libdir}/__pycache__/inspect.cpython-*.py[co]
942 %{py_libdir}/__pycache__/ipaddress.cpython-*.py[co]
943 %{py_libdir}/__pycache__/lzma.cpython-*.py[co]
944 %{py_libdir}/__pycache__/macpath.cpython-*.py[co]
945 %{py_libdir}/__pycache__/macurl2path.cpython-*.py[co]
946 %{py_libdir}/__pycache__/mailbox.cpython-*.py[co]
947 %{py_libdir}/__pycache__/mailcap.cpython-*.py[co]
948 %{py_libdir}/__pycache__/mimetypes.cpython-*.py[co]
949 %{py_libdir}/__pycache__/modulefinder.cpython-*.py[co]
950 %{py_libdir}/__pycache__/netrc.cpython-*.py[co]
951 %{py_libdir}/__pycache__/nntplib.cpython-*.py[co]
952 %{py_libdir}/__pycache__/ntpath.cpython-*.py[co]
953 %{py_libdir}/__pycache__/nturl2path.cpython-*.py[co]
954 %{py_libdir}/__pycache__/numbers.cpython-*.py[co]
955 %{py_libdir}/__pycache__/opcode.cpython-*.py[co]
956 %{py_libdir}/__pycache__/operator.cpython-*.py[co]
957 %{py_libdir}/__pycache__/optparse.cpython-*.py[co]
958 %{py_libdir}/__pycache__/pathlib.cpython-*.py[co]
959 %{py_libdir}/__pycache__/pickle.cpython-*.py[co]
960 %{py_libdir}/__pycache__/pickletools.cpython-*.py[co]
961 %{py_libdir}/__pycache__/pipes.cpython-*.py[co]
962 %{py_libdir}/__pycache__/pkgutil.cpython-*.py[co]
963 %{py_libdir}/__pycache__/platform.cpython-*.py[co]
964 %{py_libdir}/__pycache__/plistlib.cpython-*.py[co]
965 %{py_libdir}/__pycache__/poplib.cpython-*.py[co]
966 %{py_libdir}/__pycache__/pprint.cpython-*.py[co]
967 %{py_libdir}/__pycache__/pty.cpython-*.py[co]
968 %{py_libdir}/__pycache__/py_compile.cpython-*.py[co]
969 %{py_libdir}/__pycache__/pyclbr.cpython-*.py[co]
970 %{py_libdir}/__pycache__/queue.cpython-*.py[co]
971 %{py_libdir}/__pycache__/quopri.cpython-*.py[co]
972 %{py_libdir}/__pycache__/random.cpython-*.py[co]
973 %{py_libdir}/__pycache__/rlcompleter.cpython-*.py[co]
974 %{py_libdir}/__pycache__/runpy.cpython-*.py[co]
975 %{py_libdir}/__pycache__/sched.cpython-*.py[co]
976 %{py_libdir}/__pycache__/selectors.cpython-*.py[co]
977 %{py_libdir}/__pycache__/shelve.cpython-*.py[co]
978 %{py_libdir}/__pycache__/shlex.cpython-*.py[co]
979 %{py_libdir}/__pycache__/shutil.cpython-*.py[co]
980 %{py_libdir}/__pycache__/signal.cpython-*.py[co]
981 %{py_libdir}/__pycache__/smtpd.cpython-*.py[co]
982 %{py_libdir}/__pycache__/smtplib.cpython-*.py[co]
983 %{py_libdir}/__pycache__/sndhdr.cpython-*.py[co]
984 %{py_libdir}/__pycache__/socket.cpython-*.py[co]
985 %{py_libdir}/__pycache__/socketserver.cpython-*.py[co]
986 %{py_libdir}/__pycache__/ssl.cpython-*.py[co]
987 %{py_libdir}/__pycache__/statistics.cpython-*.py[co]
988 %{py_libdir}/__pycache__/string.cpython-*.py[co]
989 %{py_libdir}/__pycache__/stringprep.cpython-*.py[co]
990 %{py_libdir}/__pycache__/struct.cpython-*.py[co]
991 %{py_libdir}/__pycache__/subprocess.cpython-*.py[co]
992 %{py_libdir}/__pycache__/sunau.cpython-*.py[co]
993 %{py_libdir}/__pycache__/symbol.cpython-*.py[co]
994 %{py_libdir}/__pycache__/symtable.cpython-*.py[co]
995 %{py_libdir}/__pycache__/tabnanny.cpython-*.py[co]
996 %{py_libdir}/__pycache__/tarfile.cpython-*.py[co]
997 %{py_libdir}/__pycache__/telnetlib.cpython-*.py[co]
998 %{py_libdir}/__pycache__/tempfile.cpython-*.py[co]
999 %{py_libdir}/__pycache__/textwrap.cpython-*.py[co]
1000 %{py_libdir}/__pycache__/this.cpython-*.py[co]
1001 %{py_libdir}/__pycache__/threading.cpython-*.py[co]
1002 %{py_libdir}/__pycache__/trace.cpython-*.py[co]
1003 %{py_libdir}/__pycache__/tracemalloc.cpython-*.py[co]
1004 %{py_libdir}/__pycache__/tty.cpython-*.py[co]
1005 %{py_libdir}/__pycache__/turtle.cpython-*.py[co]
1006 %{py_libdir}/__pycache__/typing.cpython-*.py[co]
1007 %{py_libdir}/__pycache__/uu.cpython-*.py[co]
1008 %{py_libdir}/__pycache__/uuid.cpython-*.py[co]
1009 %{py_libdir}/__pycache__/warnings.cpython-*.py[co]
1010 %{py_libdir}/__pycache__/wave.cpython-*.py[co]
1011 %{py_libdir}/__pycache__/webbrowser.cpython-*.py[co]
1012 %{py_libdir}/__pycache__/xdrlib.cpython-*.py[co]
1013 %{py_libdir}/__pycache__/zipapp.cpython-*.py[co]
1014 %{py_libdir}/__pycache__/zipfile.cpython-*.py[co]
1017 # list .so modules to be sure that all of them are built
1020 %attr(755,root,root) %{py_dyndir}/_bisect.cpython-*.so
1021 %attr(755,root,root) %{py_dyndir}/_bz2.cpython-*.so
1022 %attr(755,root,root) %{py_dyndir}/_codecs_cn.cpython-*.so
1023 %attr(755,root,root) %{py_dyndir}/_codecs_hk.cpython-*.so
1024 %attr(755,root,root) %{py_dyndir}/_codecs_iso2022.cpython-*.so
1025 %attr(755,root,root) %{py_dyndir}/_codecs_jp.cpython-*.so
1026 %attr(755,root,root) %{py_dyndir}/_codecs_kr.cpython-*.so
1027 %attr(755,root,root) %{py_dyndir}/_codecs_tw.cpython-*.so
1028 %attr(755,root,root) %{py_dyndir}/_crypt.cpython-*.so
1029 %attr(755,root,root) %{py_dyndir}/_csv.cpython-*.so
1030 %attr(755,root,root) %{py_dyndir}/_ctypes*.cpython-*.so
1031 %attr(755,root,root) %{py_dyndir}/_curses_panel.cpython-*.so
1032 %attr(755,root,root) %{py_dyndir}/_curses.cpython-*.so
1033 %attr(755,root,root) %{py_dyndir}/_datetime.cpython-*.so
1035 %attr(755,root,root) %{py_dyndir}/_dbm.cpython-*.so
1037 %attr(755,root,root) %{py_dyndir}/_decimal.cpython-*.so
1038 %attr(755,root,root) %{py_dyndir}/_elementtree.cpython-*.so
1039 %attr(755,root,root) %{py_dyndir}/_gdbm.cpython-*.so
1040 %attr(755,root,root) %{py_dyndir}/_hashlib.cpython-*.so
1041 %attr(755,root,root) %{py_dyndir}/_heapq.cpython-*.so
1042 %attr(755,root,root) %{py_dyndir}/_json.cpython-*.so
1043 %attr(755,root,root) %{py_dyndir}/_lsprof.cpython-*.so
1044 %attr(755,root,root) %{py_dyndir}/_lzma.cpython-*.so
1045 %attr(755,root,root) %{py_dyndir}/_md5.cpython-*.so
1046 %attr(755,root,root) %{py_dyndir}/_multibytecodec.cpython-*.so
1047 %attr(755,root,root) %{py_dyndir}/_multiprocessing.cpython-*.so
1048 %attr(755,root,root) %{py_dyndir}/_opcode.cpython-*.so
1049 %attr(755,root,root) %{py_dyndir}/_pickle.cpython-*.so
1050 %attr(755,root,root) %{py_dyndir}/_posixsubprocess.cpython-*.so
1051 %attr(755,root,root) %{py_dyndir}/_random.cpython-*.so
1052 %attr(755,root,root) %{py_dyndir}/_sha1.cpython-*.so
1053 %attr(755,root,root) %{py_dyndir}/_socket.cpython-*.so
1054 %attr(755,root,root) %{py_dyndir}/_ssl.cpython-*.so
1055 %attr(755,root,root) %{py_dyndir}/_testbuffer.cpython-*.so
1056 %attr(755,root,root) %{py_dyndir}/_testcapi.cpython-*.so
1057 %attr(755,root,root) %{py_dyndir}/_testimportmultiple.cpython-*.so
1058 %attr(755,root,root) %{py_dyndir}/_testmultiphase.cpython-*.so
1060 # for openssl < 0.9.8 package sha256 and sha512 modules
1061 %if "%{pld_release}" != "ac"
1062 %attr(755,root,root) %{py_dyndir}/_sha256.cpython-*.so
1063 %attr(755,root,root) %{py_dyndir}/_sha512.cpython-*.so
1066 %attr(755,root,root) %{py_dyndir}/array.cpython-*.so
1067 %attr(755,root,root) %{py_dyndir}/audioop.cpython-*.so
1068 %attr(755,root,root) %{py_dyndir}/binascii.cpython-*.so
1069 %attr(755,root,root) %{py_dyndir}/cmath.cpython-*.so
1070 %attr(755,root,root) %{py_dyndir}/fcntl.cpython-*.so
1071 %attr(755,root,root) %{py_dyndir}/grp.cpython-*.so
1072 %attr(755,root,root) %{py_dyndir}/math.cpython-*.so
1073 %attr(755,root,root) %{py_dyndir}/mmap.cpython-*.so
1074 %attr(755,root,root) %{py_dyndir}/nis.cpython-*.so
1075 %attr(755,root,root) %{py_dyndir}/ossaudiodev.cpython-*.so
1076 %attr(755,root,root) %{py_dyndir}/parser.cpython-*.so
1077 %attr(755,root,root) %{py_dyndir}/pyexpat.cpython-*.so
1078 %attr(755,root,root) %{py_dyndir}/readline.cpython-*.so
1079 %attr(755,root,root) %{py_dyndir}/resource.cpython-*.so
1080 %attr(755,root,root) %{py_dyndir}/select.cpython-*.so
1081 %attr(755,root,root) %{py_dyndir}/syslog.cpython-*.so
1082 %attr(755,root,root) %{py_dyndir}/termios.cpython-*.so
1083 %attr(755,root,root) %{py_dyndir}/spwd.cpython-*.so
1084 %attr(755,root,root) %{py_dyndir}/unicodedata.cpython-*.so
1085 %attr(755,root,root) %{py_dyndir}/zlib.cpython-*.so
1087 %dir %{py_libdir}/plat-*
1088 %{py_libdir}/plat-*/__pycache__
1089 %{py_libdir}/plat-*/*.py
1091 %dir %{py_libdir}/asyncio
1092 %{py_libdir}/asyncio/__pycache__
1093 %{py_libdir}/asyncio/*.py
1095 %{py_libdir}/concurrent
1097 %dir %{py_libdir}/ctypes
1098 %dir %{py_libdir}/ctypes/macholib
1099 %{py_libdir}/ctypes/__pycache__
1100 %{py_libdir}/ctypes/macholib/__pycache__
1102 %{py_libdir}/ctypes/*.py
1103 %{py_libdir}/ctypes/macholib/*.py
1104 %doc %{py_libdir}/ctypes/macholib/README.ctypes
1106 %dir %{py_libdir}/curses
1107 %{py_libdir}/curses/__pycache__
1108 %{py_libdir}/curses/*.py
1110 %dir %{py_libdir}/dbm
1111 %{py_libdir}/dbm/__pycache__
1112 %{py_libdir}/dbm/*.py
1114 %dir %{py_libdir}/distutils
1115 %dir %{py_libdir}/distutils/command
1116 %doc %{py_libdir}/distutils/README
1117 %{py_libdir}/distutils/__pycache__
1118 %{py_libdir}/distutils/command/__pycache__
1119 %{py_libdir}/distutils/*.py
1120 %{py_libdir}/distutils/command/*.py
1121 %{py_libdir}/distutils/command/command_template
1123 %dir %{py_libdir}/email
1124 %dir %{py_libdir}/email/mime
1125 %{py_libdir}/email/__pycache__
1126 %{py_libdir}/email/mime/__pycache__
1127 %{py_libdir}/email/architecture.rst
1128 %{py_libdir}/email/*.py
1129 %{py_libdir}/email/mime/*.py
1131 %dir %{py_libdir}/ensurepip
1132 %{py_libdir}/ensurepip/__pycache__
1133 %{py_libdir}/ensurepip/*.py
1134 %{py_libdir}/ensurepip/_bundled
1136 %dir %{py_libdir}/html
1137 %{py_libdir}/html/*.py
1138 %{py_libdir}/html/__pycache__
1140 %dir %{py_libdir}/http
1141 %{py_libdir}/http/__pycache__
1142 %{py_libdir}/http/*.py
1144 %dir %{py_libdir}/idlelib
1146 %dir %{py_libdir}/importlib
1147 %{py_libdir}/importlib/__pycache__
1148 %{py_libdir}/importlib/*.py
1150 %dir %{py_libdir}/json
1151 %{py_libdir}/json/__pycache__
1152 %{py_libdir}/json/*.py
1154 %dir %{py_libdir}/logging
1155 %{py_libdir}/logging/__pycache__
1156 %{py_libdir}/logging/*.py
1158 %dir %{py_libdir}/multiprocessing
1159 %{py_libdir}/multiprocessing/__pycache__
1160 %{py_libdir}/multiprocessing/*.py
1161 %dir %{py_libdir}/multiprocessing/dummy
1162 %{py_libdir}/multiprocessing/dummy/__pycache__
1163 %{py_libdir}/multiprocessing/dummy/*.py
1165 %{py_libdir}/turtledemo
1167 %dir %{py_libdir}/unittest
1168 %{py_libdir}/unittest/__pycache__
1169 %{py_libdir}/unittest/*.py
1171 %dir %{py_libdir}/urllib
1172 %{py_libdir}/urllib/__pycache__
1173 %{py_libdir}/urllib/*.py
1175 %dir %{py_libdir}/venv
1176 %{py_libdir}/venv/__pycache__
1177 %{py_libdir}/venv/*.py
1178 %dir %{py_libdir}/venv/scripts
1179 %dir %{py_libdir}/venv/scripts/posix
1180 %{py_libdir}/venv/scripts/posix/activate
1181 %{py_libdir}/venv/scripts/posix/activate.csh
1182 %{py_libdir}/venv/scripts/posix/activate.fish
1184 %dir %{py_libdir}/wsgiref
1185 %{py_libdir}/wsgiref/__pycache__
1186 %{py_libdir}/wsgiref/*.py
1188 %dir %{py_libdir}/xml
1189 %dir %{py_libdir}/xml/dom
1190 %dir %{py_libdir}/xml/etree
1191 %dir %{py_libdir}/xml/parsers
1192 %dir %{py_libdir}/xml/sax
1193 %{py_libdir}/xml/__pycache__
1194 %{py_libdir}/xml/dom/__pycache__
1195 %{py_libdir}/xml/etree/__pycache__
1196 %{py_libdir}/xml/parsers/__pycache__
1197 %{py_libdir}/xml/sax/__pycache__
1198 %{py_libdir}/xml/*.py
1199 %{py_libdir}/xml/dom/*.py
1200 %{py_libdir}/xml/etree/*.py
1201 %{py_libdir}/xml/parsers/*.py
1202 %{py_libdir}/xml/sax/*.py
1204 %dir %{py_libdir}/xmlrpc
1205 %{py_libdir}/xmlrpc/__pycache__
1206 %{py_libdir}/xmlrpc/*.py
1208 %attr(755,root,root) %{py_dyndir}/_sqlite3.cpython-*.so
1209 %dir %{py_libdir}/sqlite3
1210 %{py_libdir}/sqlite3/__pycache__
1211 %{py_libdir}/sqlite3/*.py
1214 %defattr(644,root,root,755)
1215 %attr(755,root,root) %{_bindir}/pydoc3
1216 %attr(755,root,root) %{_bindir}/pydoc3.5
1217 %{py_libdir}/pydoc.py
1218 %{py_libdir}/__pycache__/pydoc.cpython-*.py[co]
1219 %dir %{py_libdir}/pydoc_data
1220 %{py_libdir}/pydoc_data/__pycache__
1221 %{py_libdir}/pydoc_data/*.py
1222 %{py_libdir}/pydoc_data/*.css
1225 %defattr(644,root,root,755)
1226 %attr(755,root,root) %{_bindir}/idle3
1227 %attr(755,root,root) %{_bindir}/idle3.5
1228 %dir %{py_libdir}/idlelib/Icons
1229 %{py_libdir}/idlelib/__pycache__
1230 %{py_libdir}/idlelib/*.py
1231 %doc %{py_libdir}/idlelib/*.txt
1232 %doc %{py_libdir}/idlelib/ChangeLog
1233 %{py_libdir}/idlelib/Icons/*
1234 %{py_libdir}/idlelib/*.def
1237 %defattr(644,root,root,755)
1238 %doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp}
1239 %attr(755,root,root) %{_bindir}/python%{py_ver}-config
1240 %attr(755,root,root) %{_bindir}/python%{py_abi}-config
1241 %attr(755,root,root) %{_bindir}/python3-config
1242 %attr(755,root,root) %{_libdir}/libpython%{py_abi}.so
1243 %attr(755,root,root) %{_libdir}/libpython3.so
1245 %exclude %{py_incdir}/pyconfig.h
1246 %attr(755,root,root) %{py_libdir}/config-%{py_abi}/makesetup
1247 %attr(755,root,root) %{py_libdir}/config-%{py_abi}/install-sh
1248 %{py_libdir}/config-%{py_abi}/config.c
1249 %{py_libdir}/config-%{py_abi}/config.c.in
1250 %{py_libdir}/config-%{py_abi}/python.o
1251 %{py_libdir}/config-%{py_abi}/python-config.py
1252 %dir %{py_libdir}/config-%{py_abi}/__pycache__
1253 %{py_libdir}/config-%{py_abi}/__pycache__/python-config.*
1254 %{_pkgconfigdir}/python-%{py_ver}.pc
1255 %{_pkgconfigdir}/python-%{py_abi}.pc
1256 %{_pkgconfigdir}/python3.pc
1259 %defattr(644,root,root,755)
1260 /etc/shrc.d/python*-devel*
1261 %attr(755,root,root) %{_bindir}/pygettext%{py_ver}
1262 %attr(755,root,root) %{_bindir}/pyreindent%{py_ver}
1264 %{py_libdir}/profile.py
1265 %{py_libdir}/pstats.py
1266 %{py_libdir}/timeit.py
1267 %{py_libdir}/__pycache__/pdb.cpython-*.py[co]
1268 %{py_libdir}/__pycache__/profile.cpython-*.py[co]
1269 %{py_libdir}/__pycache__/pstats.cpython-*.py[co]
1270 %{py_libdir}/__pycache__/timeit.cpython-*.py[co]
1273 %attr(755,root,root) %{_bindir}/2to3-%{py_ver}
1274 %dir %{py_libdir}/lib2to3
1275 %{py_libdir}/lib2to3/__pycache__
1276 %{py_libdir}/lib2to3/*.txt
1277 %{py_libdir}/lib2to3/*.pickle
1278 %{py_libdir}/lib2to3/*.py
1279 %dir %{py_libdir}/lib2to3/fixes
1280 %{py_libdir}/lib2to3/fixes/__pycache__
1281 %{py_libdir}/lib2to3/fixes/*.py
1282 %dir %{py_libdir}/lib2to3/pgen2
1283 %{py_libdir}/lib2to3/pgen2/__pycache__
1284 %{py_libdir}/lib2to3/pgen2/*.py
1287 %defattr(644,root,root,755)
1288 %{_libdir}/libpython%{py_abi}.a
1291 %defattr(644,root,root,755)
1292 %{_examplesdir}/%{name}-%{version}
1295 %{py_libdir}/idlelib/idle_test
1297 %{py_libdir}/ctypes/test
1298 %{py_libdir}/distutils/tests
1299 %{py_libdir}/lib2to3/tests
1300 %{py_libdir}/sqlite3/test
1301 %{py_libdir}/tkinter/test
1302 %{py_libdir}/unittest/test
1306 %defattr(644,root,root,755)
1312 %defattr(644,root,root,755)
1313 %dir %{py_libdir}/tkinter
1314 %{py_libdir}/tkinter/__pycache__
1315 %{py_libdir}/tkinter/*.py
1316 %attr(755,root,root) %{py_dyndir}/_tkinter.cpython-*.so