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