]> git.pld-linux.org Git - packages/python3.git/blame - python3.spec
Up to 3.9.11 (fixes: CVE-2021-28363)
[packages/python3.git] / python3.spec
CommitLineData
16d2c1b7 1# NOTE: tests require processes limit >128 (256 is sufficient)
19221b23 2#
9416f74d
AM
3# Conditional build:
4%bcond_with info # info pages (requires emacs)
cab985ca 5%bcond_without system_mpdecimal # system libmpdec library
9416f74d 6%bcond_without tkinter # disables tkinter module building
7fbb63b9 7%bcond_without tests # disables Python testing
9416f74d 8%bcond_with verbose_tests # runs tests in verbose mode
16d2c1b7 9%bcond_without optimizations # expensive, stable optimizations (PGO etc.) + LTO
3696f31b 10%bcond_with semantic_interposition # build without \-fno-semantic-interposition
9416f74d
AM
11#
12# tests which will not work on 64-bit platforms
bebf9cf2 13%define no64bit_tests -x test_audioop -x test_rgbimg -x test_imageop
9416f74d 14# tests which may fail because of builder environment limitations (no /proc or /dev/pts)
81d56a2b 15%define nobuilder_tests -u-network -x test_resource -x test_openpty -x test_socket -x test_nis -x test_posix -x test_locale -x test_pty -x test_asyncio -x test_os -x test_readline -x test_normalization
48e785bb 16
7fbb63b9 17# tests which fail because of some unknown/unresolved reason (this list should be %{nil})
48e785bb
JK
18# test_site: fails because our site.py is patched to include both /usr/share/... and /usr/lib...
19# test_gdb: fails, as the gdb uses old python version
59a34e48 20# test_time: test_AsTimeval (test.test_time.TestCPyTime), rounding error
59a34e48 21%ifarch x32
bebf9cf2 22%define broken_tests_x32 -x test_time
ae91e2fb 23%undefine with_optimizations
59a34e48 24%endif
3e35963a 25%define broken_tests -x test_embed -x test_nntplib -x test_gdb -x test_site -x test_distutils -x test_bdist_rpm -x test_ssl %{?broken_tests_x32}
9416f74d 26
08df40de
JP
27%ifarch armv6hl armv7hl armv7hnl
28%define _python_target_abi %{?_gnu}hf
29%else
30%define _python_target_abi %{?_gnu}
31%endif
32
f31061ec 33%define py_ver 3.9
3e35963a 34%define py_abi %{py_ver}
08df40de 35%define py_platform %{py_abi}-%{_target_base_arch}-%{_target_os}%{?_python_target_abi}
9416f74d
AM
36%define py_prefix %{_prefix}
37%define py_libdir %{py_prefix}/%{_lib}/python%{py_ver}
c7fdbe10 38%define py_incdir %{_includedir}/python%{py_abi}
9416f74d
AM
39%define py_sitedir %{py_libdir}/site-packages
40%define py_dyndir %{py_libdir}/lib-dynload
41
42Summary: Very high level scripting language with X interface
43Summary(es.UTF-8): Lenguaje script de alto nivel con interfaz X
44Summary(fr.UTF-8): Langage de script de très haut niveau avec interface X
45Summary(pl.UTF-8): Python - język obiektowy wysokiego poziomu
46Summary(pt_BR.UTF-8): Linguagem de programação interpretada de alto nível
47Summary(ru.UTF-8): Язык программирования очень высокого уровня с X-интерфейсом
48Summary(tr.UTF-8): X arayüzlü, yüksek düzeyli, kabuk yorumlayıcı dili
49Summary(uk.UTF-8): Мова програмування дуже високого рівня з X-інтерфейсом
2072c60e 50Name: python3
dc9971a8 51Version: %{py_ver}.11
da589001 52Release: 1
9416f74d
AM
53Epoch: 1
54License: PSF
4f91790c
JB
55Group: Development/Languages/Python
56Source0: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
dc9971a8 57# Source0-md5: 3c8dde3ebd6da005e969b83b5f0c1886
a033b415 58Source1: pyconfig.h.in
a20e3138
AG
59Patch0: %{name}-pythonpath.patch
60Patch1: %{name}-ac_fixes.patch
ea93f05f
JK
61Patch2: %{name}-multilib.patch
62Patch3: %{name}-no_cmdline_tests.patch
63Patch4: %{name}-makefile-location.patch
12fdf48e 64Patch5: %{name}-config.patch
49e8feb6 65Patch6: %{name}-BLDLIBRARY.patch
ea93f05f
JK
66Patch7: %{name}-db.patch
67Patch8: %{name}-install_prefix.patch
3efd6e92 68Patch9: %{name}-tests_with_pythonpath.patch
572e2465 69Patch10: %{name}-bdist_rpm.patch
da213b19 70Patch11: %{name}-installcompile.patch
689d42a2 71
0c593ec9 72Patch13: %{name}-no-randomize-tests.patch
bebf9cf2 73Patch14: python3-profile-tests.patch
1b1a21d4 74Patch15: python3-tests.patch
4f91790c 75URL: https://www.python.org/
7daf2f83 76BuildRequires: autoconf >= 2.65
51826d16 77BuildRequires: autoconf-archive
6c32bfd4 78BuildRequires: automake
9416f74d
AM
79BuildRequires: bluez-libs-devel
80BuildRequires: bzip2-devel
81BuildRequires: db-devel >= 4
82%{?with_info:BuildRequires: emacs >= 21}
83BuildRequires: expat-devel >= 1:1.95.7
84BuildRequires: file
85BuildRequires: gdbm-devel >= 1.8.3
16d2c1b7
JB
86%if %(locale -a | grep -q '^C\.utf8$'; echo $?)
87BuildRequires: glibc-localedb-all
88%endif
9416f74d 89BuildRequires: gmp-devel >= 4.0
3ba70ac2 90BuildRequires: libffi-devel
0d7215c9 91BuildRequires: libnsl-devel
9416f74d 92BuildRequires: libstdc++-devel
0d7215c9 93BuildRequires: libtirpc-devel
f31061ec 94%{?with_system_mpdecimal:BuildRequires: mpdecimal-devel >= 2.5.0}
9416f74d 95BuildRequires: ncurses-ext-devel >= 5.2
1254741f 96BuildRequires: openssl-devel >= 0.9.7
6c32bfd4 97BuildRequires: pkgconfig
9416f74d
AM
98BuildRequires: readline-devel >= 5.0
99BuildRequires: rpm-pythonprov
100BuildRequires: sed >= 4.0
101BuildRequires: sqlite3-devel >= 3.3.5
91e93ac7 102BuildRequires: tar >= 1:1.22
9416f74d
AM
103%{?with_info:BuildRequires: tetex-makeindex}
104%{?with_tkinter:BuildRequires: tix-devel >= 1:8.1.4-4}
105%{?with_tkinter:BuildRequires: tk-devel >= 8.4.3}
58274b36 106BuildRequires: xz-devel
9416f74d
AM
107BuildRequires: zlib-devel
108Requires: %{name}-libs = %{epoch}:%{version}-%{release}
2a80ebbf 109Suggests: pip
9416f74d 110BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
34dfde61 111
8d0b0882 112%define specflags_ppc -D__ppc__=1
34dfde61 113%define specflags_ppc64 -D__ppc64__=1
9416f74d
AM
114
115%if %{with verbose_tests}
bebf9cf2 116%define test_flags -v
9416f74d 117%else
bebf9cf2 118%define test_flags -wW
9416f74d
AM
119%endif
120
121%ifarch alpha ia64 ppc64 sparc64 ppc64 %{x8664}
122%define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests}
123%else
124%define test_list %{nobuilder_tests} %{broken_tests}
125%endif
126
127%ifarch sparc
bebf9cf2 128%define test_list %{nobuilder_tests} %{broken_tests} -x test_fcntl -x test_ioctl
9416f74d
AM
129%endif
130
131%description
132Python is an interpreted, interactive, object-oriented programming
133language. It incorporates modules, exceptions, dynamic typing, very
134high level dynamic data types, and classes. Python combines remarkable
135power with very clear syntax. It has interfaces to many system calls
136and libraries, as well as to various window systems, and is extensible
137in C or C++. It is also usable as an extension language for
138applications that need a programmable interface. Finally, Python is
139portable: it runs on many brands of UNIX, on the Mac, and on PCs under
140MS-DOS, Windows, Windows NT, and OS/2.
141
142This package contains the Python binary.
143
144%description -l de.UTF-8
145Python ist eine interpretierte, interaktive, objektorientierte
146Programmiersprache, vergleichbar zu Tcl, Perl, Scheme oder Java.
147Python enthält Module, Klassen, Exceptions, High-Level dynamische
148Datentypen und dynamisches Typisieren. Python unterstützt Interfaces
149zu vielen Systemaufrufen und Libraries, sowie verschiedene
150Fenstersysteme (X11, Motif, Tk, Mac und MFC)
151
152Programmierer können neue built-in-Module für Python in C oder C++
153schreiben. Python kann auch als Erweiterungssprache für Applikationen
154benutzt werden, die ein programmierbares Interface brauchen. Dieses
155Paket enthält die meisten Standard-Python-Module, und Module zum
156Ansprechen von Tix (Tk-widget set) und RPM.
157
158%description -l es.UTF-8
159Python es un lenguaje de scripts interpretado orientado a objetos.
160Contiene soporte para carga dinámica de objetos, clases, módulos y
161excepciones.
162
163Es sencillo adicionar interfaces para nuevos sistemas de biblioteca a
164través de código C, tornando Python fácil de usar en ambientes
165particulares/personalizados. Este paquete Python incluye la mayoría de
166los módulos padrón Python, junto con módulos para crear interfaces
167para el conjunto de componentes Tix para Tk y RPM.
168
169%description -l fr.UTF-8
170Python est un langage de script interprété et orienté objet. Il gère
171le chargement dynamique des objets, les classes, les modules et les
172exceptions. L'ajout d'interfaces aux nouvelles bibliothèques systèmes
173avec du code C est simple, ce qui rend Python facile à utiliser dans
174des configs personnalisées.
175
176Ce paquetage Python contient la plupart des modules Python standards,
177ainsi que ceux permettant l'interfaçage avec les widgets Tix pour Tk
178et RPM.
179
180%description -l pl.UTF-8
181Python jest interpretowanym, interaktywnym i zorientowanym obiektowo
182językiem programowania. Jest modularny, obsługuje wyjątki, dynamiczne
183typy, zaawansowane dynamiczne struktury danych i klasy. Python łączy w
184sobie duże możliwości i przejrzystą składnię. Posiada interfejsy do
185wielu wywołań systemowych i bibliotek, w tym również do różnych
186bibliotek okienkowych. Możliwości jego można jeszcze rozszerzać
187poprzez odpowiednie moduły pisane w C lub C++. Python może być również
188użyty jako element aplikacji, którym potrzebny jest interpreter do
189skryptów. I wreszcie, Python jest wieloplatformowy, działa na wielu
190odmianach UNIX-a, Macu oraz PC pod DOS-em, Windows, WindowsNT oraz
191OS/2.
192
193Ten pakiet zawiera binarkę Pythona.
194
195%description -l pt_BR.UTF-8
196Python é uma linguagem de scripts interpretada orientada a objetos.
197Contém suporte para carga dinâmica de objetos, classes, módulos e
198exceções. Adicionar interfaces para novos sistemas de biblioteca
199através de código C é simples, tornando Python fácil de usar em
200ambientes particulares/personalizados.
201
202Este pacote Python inclui a maioria do módulos padrão Python, junto
203com módulos para interfaceamento para o conjunto de componentes Tix
204para Tk e RPM.
205
206%description -l ru.UTF-8
207Python - это интерпретируемый, объектно-ориентированный язык
208программирования. Он поддерживает динамическую загрузку объектов,
209классы, модули и обработку исключительных ситуаций (exceptions).
210Простота добавления интерфейсов к новым системным библиотекам через
211код на языке C делает Python хорошим выбором для использования в
212специальных конфигурациях.
213
214%description -l tr.UTF-8
215Python, nesneye yönelik bir kabuk yorumlayıcıdır. Nesnelerin,
216sınıfların, modüllerin ve aykırı durumların dinamik yüklenmelerine
217destek verir. C koduyla birlikte kullanımı son derece kolaydır. Bu
218paket, standart Python birimlerinin çoğunun yanısıra Tk ve RPM için
219arayüz birimlerini de içerir.
220
221%description -l uk.UTF-8
222Python - це інтерпретована, об'єктно-орієнтована мова програмування.
223Він підтримує динамічну загрузку об'єктів, класи, модулі та обробку
224виключних ситуацій (exceptions). Простота додавання інтерфейсів для
225нових системних бібліотек через код на мові C робить Python добрим
226вибором для використання в спеціальних конфігураціях.
227
228%package libs
229Summary: Python library
230Summary(pl.UTF-8): Biblioteka języka Python
231Group: Libraries/Python
232# broken detection in rpm/pythondeps.sh
233Provides: python(abi) = %{py_ver}
234# for compatibility with existing Ac packages
235Provides: python(bytecode) = %{py_ver}
f3feeafe 236Provides: python3-enum
db379ec1
JB
237Obsoletes: python3-enum < 0.5
238%{!?with_info:Obsoletes: python3-doc-info < %{epoch}:%{version}-%{release}}
9416f74d
AM
239
240%description libs
241Python shared library and very essental modules for Python binary.
242
243%description libs -l pl.UTF-8
244Biblioteka współdzielona języka Python oraz bardzo podstawowe moduły
245dla Pythona.
246
247%package modules
248Summary: Python modules
249Summary(pl.UTF-8): Moduły języka Python
250Group: Libraries/Python
251Requires: %{name}-libs = %{epoch}:%{version}-%{release}
e0400659 252%{?with_system_mpdecimal:Requires: mpdecimal >= 2.4.2-2}
db379ec1 253Obsoletes: python3-modules-sqlite < 1:3.1-2
7e9f7d57 254%requires_ge_to openssl openssl-devel
9416f74d
AM
255
256%description modules
257Python officially distributed modules.
258
259%description modules -l pl.UTF-8
260Oficjalnie rozprowadzane moduły języka Python.
261
2072c60e 262%package -n pydoc3
9416f74d
AM
263Summary: Python interactive module documentation access support
264Summary(pl.UTF-8): Interaktywne korzystanie z dokumentacji modułów języka Python
265Group: Applications
266Requires: %{name}-modules = %{epoch}:%{version}-%{release}
267
2072c60e 268%description -n pydoc3
9416f74d
AM
269Python interactive module documentation access support.
270
2072c60e 271%description -n pydoc3 -l pl.UTF-8
9416f74d
AM
272Interaktywne korzystanie z dokumentacji modułów języka Python.
273
2072c60e 274%package -n idle3
9416f74d
AM
275Summary: IDE for Python language
276Summary(pl.UTF-8): IDE dla języka Python
277Group: Applications
278Requires: %{name}-tkinter = %{epoch}:%{version}-%{release}
279
2072c60e 280%description -n idle3
9416f74d
AM
281IDE for Python language.
282
2072c60e 283%description -n idle3 -l pl.UTF-8
9416f74d
AM
284IDE dla języka Python.
285
286%package devel
287Summary: Libraries and header files for building python code
288Summary(de.UTF-8): Libraries und Header-Dateien zum Erstellen von Python-Code
289Summary(es.UTF-8): Bibliotecas y archivos de inclusión para construir programas en python
290Summary(fr.UTF-8): Bibliothèques et en-têtes pour construire du code python
291Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki Pythona
292Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para o Python
293Summary(ru.UTF-8): Библиотеки и хедеры для построения кода на языке Python
294Summary(tr.UTF-8): Python ile geliştirme yapmak için gerekli dosyalar
295Summary(uk.UTF-8): Бібліотеки та хедери для програмування на мові Python
296Group: Development/Languages/Python
297Requires: %{name}-libs = %{epoch}:%{version}-%{release}
db379ec1 298Obsoletes: python3-devel-src < 1:3.2-1
9416f74d
AM
299
300%description devel
301The Python interpreter is relatively easy to extend with dynamically
302loaded extensions and to embed in other programs. This package
303contains the header files and libraries which are needed to do both of
304these tasks.
305
306%description devel -l de.UTF-8
307Der Python-Interpretierer ist relativ einfach anhand von dynamisch
308ladbaren Erweiterungen auszubauen und läßt sich in andere Programme
309integrieren. Dieses Paket enthält die Header-Dateien und Libraries,
310die für beide Aufgaben erforderlich sind.
311
312%description devel -l es.UTF-8
313El interpretador Python permite incluir con facilidad extensiones
314cargadas dinámicamente. Python es también fácil de ser empotrado en
315otros programas. Este paquete contiene los archivos de inclusión y
316bibliotecas necesarios para estas dos tareas.
317
318%description devel -l fr.UTF-8
319L'interpréteur Python est relativement facile à étendre avec des
320extensions chargées dynamiquement et à insérer dans d'autres
321programmes. Ce paquetage contient les en-têtes et les bibliothèques
322nécessaires à ces deux tâches.
323
324%description devel -l pl.UTF-8
325Interpreter Pythona jest w miarę łatwy do rozszerzania przy pomocy
326dynamicznie ładowanych rozszerzeń napisanych w C lub C++ oraz
327osadzania w innych programach. Ten pakiet zawiera pliki nagłówkowe i
328wszystko inne co potrzebne do tych celów.
329
330%description devel -l pt_BR.UTF-8
331O interpretador Python permite incluir com facilidade extensões
332carregadas dinamicamente. Python é também fácil de ser embutido em
333outros programas. Este pacote contém os arquivos de inclusão e
334bibliotecas necessários para estas duas tarefas.
335
336%description devel -l ru.UTF-8
337Интерпретатор Python относительно легко расширяется при помощи
338динамически загружаемых расширений и встраивается в другие программы.
339Этот пакет содержит хедеры и библиотеки, необходимые для обеих этих
340задач.
341
342%description devel -l tr.UTF-8
343Bu paket, Python ile geliştirme yapılabilmesi için gerekli başlık
344dosyalarını ve kitaplıkları içerir.
345
346%description devel -l uk.UTF-8
347Інтерпретатор Python відносно легко розширюється за допомогою
348розширень з динамічною загрузкою та вбудовується в інші програми. Цей
349пакет містить хедери та бібліотеки, необхідні для обох цих задач.
350
9416f74d
AM
351%package devel-tools
352Summary: Python development tools
353Summary(pl.UTF-8): Narzędzia programistyczne języka Python
354Group: Development/Languages/Python
355Requires: %{name}-modules = %{epoch}:%{version}-%{release}
356
357%description devel-tools
358Python development tools such as profilers and debugger.
359
360%description devel-tools -l pl.UTF-8
361Narzędzia programistyczne języka Python takie jak profiler oraz
362debugger.
363
30b0ff7b
AF
364%package 2to3
365Summary: Automated Python 2 to 3 code translation
0cf503a8 366Summary(pl.UTF-8): Automatyczne tłumaczenie kodu Pythona 2 do 3
76c5116a 367Group: Development/Languages/Python
30b0ff7b
AF
368
369%description 2to3
0cf503a8
JB
3702to3 is a Python program that reads Python 2.x source code and applies
371a series of fixers to transform it into valid Python 3.x code. The
372standard library contains a rich set of fixers that will handle almost
373all code. 2to3 supporting library lib2to3 is, however, a flexible and
374generic library, so it is possible to write your own fixers for 2to3.
375lib2to3 could also be adapted to custom applications in which Python
376code needs to be edited automatically.
377
378%description 2to3 -l pl.UTF-8
3792to3 to program w Pythonie czytający od źródłowy w Pythonie 2.x i
380aplikujący serię poprawek przekształcających go w poprawny kod w
381Pythonie 3.x. Biblioteka standardowa zawiera duży zbiór poprawek
382obsługujących większość kodu. Biblioteka wspierająca 2to3 (lib2to3)
383jest jednak elastyczną i ogólną biblioteką, więc można pisać własne
384poprawki dla 2to3. lib2to3 można także zaadaptować na potrzeby
385własnych zastosowań, w których kod w Pythonie musi być modyfikowany
386automatycznie.
30b0ff7b 387
9416f74d
AM
388%package static
389Summary: Static python library
390Summary(pl.UTF-8): Statyczna biblioteka Pythona
391Group: Development/Languages/Python
392Requires: %{name}-devel = %{epoch}:%{version}-%{release}
393
394%description static
395Static python library.
396
397%description static -l pl.UTF-8
398Statyczna biblioteka Pythona.
399
9416f74d
AM
400%package doc-info
401Summary: Documentation on Python in texinfo format
402Summary(pl.UTF-8): Dokumentacja do Pythona w formacie texinfo
403Group: Documentation
404
405%description doc-info
406Documentation on Python in texinfo format.
407
408%description doc-info -l pl.UTF-8
409Dokumentacja do Pythona w formacie texinfo.
410
411%package tkinter
412Summary: Standard Python interface to the Tk GUI toolkit
413Summary(de.UTF-8): Grafische Tk-Schnittstelle für Python
414Summary(es.UTF-8): Interfaz de GUI Tk para Python
415Summary(fr.UTF-8): Interface graphique Tk pour Python
416Summary(pl.UTF-8): Standardowy interfejs Pythona do biblioteki Tk
417Summary(pt_BR.UTF-8): Interface GUI Tk para Phyton
418Summary(tr.UTF-8): Python için grafik kullanıcı arayüzü
419Group: Libraries/Python
420Requires: %{name}-modules = %{epoch}:%{version}-%{release}
421Requires: tcl >= 8.4.3
422Requires: tix >= 1:8.1.4-4
423Requires: tk >= 8.4.3
424
425%description tkinter
426Standard Python interface to the Tk GUI toolkit.
427
428%description tkinter -l de.UTF-8
429Eine grafische Schnittstelle für Python, basierend auf Tcl/Tk, und von
430vielen Konfigurations-Tools genutzt.
431
432%description tkinter -l es.UTF-8
433Una interfaz gráfica para Python, basada en Tcl/Tk, y usada por muchas
434herramientas de configuración.
435
436%description tkinter -l fr.UTF-8
437Interface graphique pour Python, basée sur Tcl/Tk et utilisée par
438beaucoup des outils de configuration.
439
440%description tkinter -l pl.UTF-8
441Standardowy interfejs Pythona do biblioteki Tk.
442
443%description tkinter -l pt_BR.UTF-8
444Uma interface gráfica para Python, baseada em Tcl/Tk, e usada por
445muitas ferramentas de configuração.
446
447%description tkinter -l ru.UTF-8
448Графический интерфейс (GUI) для Python, построенный на Tcl/Tk.
449
450%description tkinter -l tr.UTF-8
451Python için Tcl/Tk'ye dayalı ve pek çok ayarlama aracı tarafından
452kullanılan grafik bir arayüzdür.
453
454%description tkinter -l uk.UTF-8
455Графічний інтерфейс (GUI) для Python, побудований на Tcl/Tk.
456
457%package examples
458Summary: Example programs in Python
459Summary(pl.UTF-8): Przykładowe programy w Pythonie
460Group: Development/Languages/Python
385ad89c 461BuildArch: noarch
9416f74d
AM
462
463%description examples
464Example programs in Python.
465
466These are for Python 2.3.4, not %{version}.
467
468%description examples -l pl.UTF-8
469Przykładowe programy w Pythonie.
470
471Przykłady te są dla Pythona 2.3.4, nie %{version}.
472
9a22bc7d
JK
473%package test
474Summary: Test modules for Python
475Summary(pl.UTF-8): Moduły testowe dla Pythona
476Group: Development/Languages/Python
477
478%description test
479Test modules for Python.
480
481%description test -l pl.UTF-8
482Moduły testowe dla Pythona.
483
9416f74d 484%prep
0cf503a8 485%setup -q -n Python-%{version}
a20e3138 486%patch0 -p1
30b0ff7b 487%patch1 -p1
e3852288
JB
488%patch2 -p1
489%patch3 -p1
7dd2ca46 490%patch4 -p1
12fdf48e 491%patch5 -p1
49e8feb6 492%patch6 -p1
af6f018f 493%patch7 -p1
7bc67fbf 494%patch8 -p1
3efd6e92 495%patch9 -p1
572e2465 496%patch10 -p1
da213b19 497%patch11 -p1
689d42a2 498
a2b17ec1 499%patch13 -p1
bebf9cf2 500%patch14 -p1
1b1a21d4 501%patch15 -p1
9416f74d 502
91f8e48f 503%{__rm} -r Modules/expat
f4282245 504
3e35963a 505for SUBDIR in darwin libffi_osx; do
34c3e9e3 506 %{__rm} -r Modules/_ctypes/$SUBDIR/*
f4282245
ER
507done
508
38874ce8 509%if "%{pld_release}" == "ac"
f4282245 510files="md5module.c sha1module.c"
f4282245 511files="$files sha256module.c sha512module.c"
f4282245
ER
512for f in $files; do
513 %{__rm} Modules/$f
514done
38874ce8 515%endif
f4282245 516
50df40d5
AM
517sed -E -i -e '1s,#!\s*/usr/bin/env\s+python2(\s|$),#!%{__python}\1,' -e '1s,#!\s*/usr/bin/env\s+python(\s|$),#!%{__python}\1,' -e '1s,#!\s*/usr/bin/python(\s|$),#!%{__python}\1,' \
518 Tools/gdb/libpython.py \
519 Tools/pynche/pynche \
520 Tools/pynche/pynche.pyw \
521 Tools/scripts/2to3
522
523sed -E -i -e '1s,#!\s*/usr/bin/env\s+python3(\s|$),#!%{__python3}\1,' \
524 Tools/scripts/idle3 \
525 Tools/scripts/pydoc3
59758f4d 526
6e059f2e
JB
527find . -name '*.py' | xargs -r grep -El '^#! */usr/bin/env python3?' | xargs %{__sed} -i -e '1s,^#! */usr/bin/env python3\?,#!/usr/bin/python3,'
528
1254741f 529%build
2906feef
AM
530if ! grep -q "tmpfs" /proc/self/mounts; then
531 echo "You need to have /dev/shm mounted in order to build this package!" >&2
532 echo "(Or any other tmpfs mounted and accessible to the rpmbuild process)" >&2
533 exit 1
534fi
535
6c32bfd4 536%{__aclocal}
9416f74d 537%{__autoconf}
9416f74d 538%configure \
58274b36 539 CC="%{__cc}" \
520f15b4 540 OPT="%{rpmcflags}" \
3696f31b 541 CFLAGS_NODIST="%{!?with_semantic_interposition: -fno-semantic-interposition}" \
04b427b2
AM
542 CPPFLAGS="%{rpmcppflags}" \
543 LDFLAGS="%{rpmldflags}" \
7ed9eac5 544 LDFLAGS_NODIST="%{debuginfocflags}%{!?with_semantic_interposition: -fno-semantic-interposition}" \
1254741f
ER
545 ac_cv_posix_semaphores_enabled=yes \
546 ac_cv_broken_sem_getvalue=no \
9416f74d 547 --enable-ipv6 \
cab985ca
JB
548 --enable-shared \
549 --with-computed-gotos \
d1a550a0 550 --with-dbmliborder=gdbm:ndbm:bdb \
9416f74d 551 --with-doc-strings \
4f87a49d 552 --without-ensurepip \
f31061ec 553 --with-platlibdir="%{_lib}" \
cab985ca 554 %{?with_debug:--with-pydebug} \
520f15b4 555 --with-ssl-default-suites=openssl \
91f8e48f 556 --with-system-expat \
3ba70ac2 557 --with-system-ffi \
b592c0a2
AM
558 %{?with_system_mpdecimal:--with-system-libmpdec} \
559%if %{with optimizations}
560 --enable-optimizations \
561 --with-lto
562%endif
9416f74d 563
81d56a2b
AM
564if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
565 echo "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." >&2
566 exit 1
567fi
568
bebf9cf2 569%{__make} \
520f15b4 570 TESTOPTS="%{_smp_mflags} %{test_list}" \
bebf9cf2 571 2>&1 | awk '
9416f74d
AM
572BEGIN { fail = 0; logmsg = ""; }
573{
76c5116a
JK
574 if ($0 ~ /\*\*\* WARNING:/) {
575 fail = 1;
576 logmsg = logmsg $0;
577 }
578 print $0;
9416f74d
AM
579}
580END { if (fail) { print "\nPROBLEMS FOUND:"; print logmsg; exit(1); } }'
581
d47b1d9a 582LC_ALL=C.UTF-8
9416f74d
AM
583export LC_ALL
584%if %{with tests}
520f15b4 585WITHIN_PYTHON_RPM_BUILD=1 %{__make} test \
a2b17ec1 586 TESTOPTS="%{test_flags} %{test_list}"
9416f74d
AM
587%endif
588
db379ec1
JB
589%if %{with info}
590%{__make} -C Doc texinfo
591%{__make} -C Doc/build/texinfo info
592%endif
593
9416f74d
AM
594%install
595rm -rf $RPM_BUILD_ROOT
9adbfa17 596install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_pkgconfigdir}} \
12ba957c 597 $RPM_BUILD_ROOT{%{py_sitedir},%{py_sitescriptdir}}/__pycache__ \
9416f74d 598 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
12ba957c 599 $RPM_BUILD_ROOT{%{_infodir},%{_mandir}/man1} \
edb753bc
AM
600 $RPM_BUILD_ROOT/etc/shrc.d \
601 $RPM_BUILD_ROOT%{_prefix}/lib/debug/%{_libdir}
9416f74d
AM
602
603%{__make} install \
604 DESTDIR=$RPM_BUILD_ROOT
605
606%if %{with info}
db379ec1 607cp -p Doc/build/texinfo/python*info* $RPM_BUILD_ROOT%{_infodir}
9416f74d
AM
608%endif
609
9416f74d 610install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
4449431f 611cp -a Tools $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
9416f74d 612
ac600e00
AF
613# make libpython3.so simply symlink to real lib
614%{__rm} $RPM_BUILD_ROOT%{_libdir}/libpython3.so
615ln -s libpython%{py_abi}.so $RPM_BUILD_ROOT%{_libdir}/libpython3.so
616
edb753bc
AM
617# gdb helper that will end up in -debuginfo package
618soname=$(ls -1d $RPM_BUILD_ROOT%{_libdir}/libpython%{py_abi}.so.*.* | sed -e "s#^$RPM_BUILD_ROOT##g")
619cp -a Tools/gdb/libpython.py "$RPM_BUILD_ROOT%{_prefix}/lib/debug/$soname-gdb.py"
620
9416f74d
AM
621#
622# create several useful aliases, such as timeit.py, profile.py, pdb.py, smtpd.py
623#
624
625# for python devel tools
626for script in timeit profile pdb pstats; do
31f22d7c 627 echo "#alias ${script}%{py_ver}.py='python%{py_ver} -m ${script}'"
24586eb0 628done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh
9416f74d 629
31f22d7c 630echo "#alias pygettext%{py_ver}.py='pygettext%{py_ver}'" \
24586eb0 631 >> $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh
9416f74d
AM
632
633sed 's/=/ /' \
24586eb0
AM
634 < $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh \
635 > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.csh
9416f74d
AM
636
637# for python modules
638for script in smtpd webbrowser; do
31f22d7c 639 echo "#alias ${script}%{py_ver}.py='python%{py_ver} -m ${script}'"
24586eb0 640done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh
9416f74d
AM
641
642sed 's/=/ /' \
24586eb0
AM
643 < $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh \
644 > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.csh
9416f74d
AM
645
646# xgettext specific for Python code
647#
648# we will have two commands: pygettext.py (an alias) and pygettext;
649# this way there are no import (which is impossible now) conflicts and
650# pygettext.py is provided for compatibility
1254741f 651install -p Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver}
24586eb0 652
25e3a83c
AM
653# reindent python code
654install -p Tools/scripts/reindent.py $RPM_BUILD_ROOT%{_bindir}/pyreindent%{py_ver}
655
9416f74d 656# just to cut the noise, as they are not packaged (now)
902c69ef 657%{__rm} $RPM_BUILD_ROOT%{py_libdir}/ctypes/macholib/fetch_macholib*
902c69ef
JK
658%{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/*.bat
659%{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/*.pyw
4f91790c 660%{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/help.html
69cd33fe 661%{__rm} $RPM_BUILD_ROOT%{py_libdir}/site-packages/README.txt
1843c435
JK
662
663# currently provided by python-2to3, consider switching to this one
664%{__rm} $RPM_BUILD_ROOT%{_bindir}/2to3
665
5d1aec43 666# that seems to be only an empty extension template,
667# which seems to be built only {with tests}
668%{__rm} -f $RPM_BUILD_ROOT%{py_dyndir}/xxlimited.*.so
1843c435 669
acd14a9e 670# already in %%doc
902c69ef 671%{__rm} $RPM_BUILD_ROOT%{py_libdir}/LICENSE.txt
9416f74d 672
80febf2a
AM
673%{__mv} $RPM_BUILD_ROOT%{py_incdir}/pyconfig.h $RPM_BUILD_ROOT%{py_libdir}/config-%{py_platform}/pyconfig.h
674%{__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
a033b415 675
9416f74d
AM
676%clean
677rm -rf $RPM_BUILD_ROOT
678
679%post libs -p /sbin/ldconfig
680%postun libs -p /sbin/ldconfig
681
e3852288 682%post doc-info -p /sbin/postshell
a20bb9dc 683-/usr/sbin/fix-info-dir -c %{_infodir}
9416f74d 684
e3852288 685%postun doc-info -p /sbin/postshell
a20bb9dc 686-/usr/sbin/fix-info-dir -c %{_infodir}
9416f74d
AM
687
688%files
689%defattr(644,root,root,755)
24586eb0 690%attr(755,root,root) %{_bindir}/python%{py_ver}
3e35963a 691%if "%{py_ver}" != "%{py_abi}"
c7fdbe10 692%attr(755,root,root) %{_bindir}/python%{py_abi}
3e35963a 693%endif
306c0f2d 694%attr(755,root,root) %{_bindir}/python3
c7fdbe10 695%{_mandir}/man1/python%{py_ver}.1*
57557e58 696%{_mandir}/man1/python3.1*
c7fdbe10
JB
697
698%files libs
699%defattr(644,root,root,755)
700%doc LICENSE
701%attr(755,root,root) %{_libdir}/libpython%{py_abi}.so.*.*
702
002ac285
AM
703%dir %{py_incdir}
704%{py_incdir}/pyconfig.h
705
c7fdbe10
JB
706%dir %{py_libdir}
707%dir %{py_dyndir}
708%dir %{py_sitedir}
12ba957c 709%dir %{py_sitedir}/__pycache__
902c69ef 710%dir %{py_libdir}/__pycache__
c7fdbe10
JB
711%dir %{py_scriptdir}
712%dir %{py_sitescriptdir}
12ba957c 713%dir %{py_sitescriptdir}/__pycache__
c7fdbe10
JB
714
715# shared modules required by python library
716%attr(755,root,root) %{py_dyndir}/_struct.cpython-*.so
717
718# modules required by python library
902c69ef
JK
719%{py_libdir}/_collections_abc.py
720%{py_libdir}/_sitebuiltins.py
80febf2a 721%{py_libdir}/_sysconfigdata_*.py
902c69ef
JK
722%{py_libdir}/_weakrefset.py
723%{py_libdir}/abc.py
724%{py_libdir}/bisect.py
725%{py_libdir}/codecs.py
726%{py_libdir}/copyreg.py
f3feeafe 727%{py_libdir}/enum.py
902c69ef
JK
728%{py_libdir}/functools.py
729%{py_libdir}/genericpath.py
730%{py_libdir}/heapq.py
731%{py_libdir}/keyword.py
732%{py_libdir}/linecache.py
733%{py_libdir}/locale.py
734%{py_libdir}/io.py
32d9814d 735%{py_libdir}/operator.py
902c69ef
JK
736%{py_libdir}/posixpath.py
737%{py_libdir}/re.py
738%{py_libdir}/reprlib.py
739%{py_libdir}/site.py
740%{py_libdir}/sre_*.py
741%{py_libdir}/stat.py
742%{py_libdir}/sysconfig.py
743%{py_libdir}/token.py
744%{py_libdir}/tokenize.py
745%{py_libdir}/traceback.py
746%{py_libdir}/weakref.py
747%{py_libdir}/os.py
c7fdbe10 748# needed by the dynamic sys.lib patch
902c69ef
JK
749%{py_libdir}/types.py
750%{py_libdir}/__pycache__/_sitebuiltins.cpython-*.py[co]
80febf2a 751%{py_libdir}/__pycache__/_sysconfigdata_*.cpython-*.py[co]
902c69ef
JK
752%{py_libdir}/__pycache__/_weakrefset.cpython-*.py[co]
753%{py_libdir}/__pycache__/abc.cpython-*.py[co]
754%{py_libdir}/__pycache__/bisect.cpython-*.py[co]
755%{py_libdir}/__pycache__/codecs.cpython-*.py[co]
756%{py_libdir}/__pycache__/_collections_abc.cpython-*.py[co]
757%{py_libdir}/__pycache__/copyreg.cpython-*.py[co]
f3feeafe 758%{py_libdir}/__pycache__/enum.cpython-*.py[co]
902c69ef
JK
759%{py_libdir}/__pycache__/functools.cpython-*.py[co]
760%{py_libdir}/__pycache__/genericpath.cpython-*.py[co]
761%{py_libdir}/__pycache__/heapq.cpython-*.py[co]
762%{py_libdir}/__pycache__/keyword.cpython-*.py[co]
763%{py_libdir}/__pycache__/linecache.cpython-*.py[co]
764%{py_libdir}/__pycache__/locale.cpython-*.py[co]
765%{py_libdir}/__pycache__/io.cpython-*.py[co]
32d9814d 766%{py_libdir}/__pycache__/operator.cpython-*.py[co]
902c69ef
JK
767%{py_libdir}/__pycache__/posixpath.cpython-*.py[co]
768%{py_libdir}/__pycache__/re.cpython-*.py[co]
769%{py_libdir}/__pycache__/reprlib.cpython-*.py[co]
770%{py_libdir}/__pycache__/site.cpython-*.py[co]
771%{py_libdir}/__pycache__/sre_*.cpython-*.py[co]
772%{py_libdir}/__pycache__/stat.cpython-*.py[co]
773%{py_libdir}/__pycache__/sysconfig.cpython-*.py[co]
774%{py_libdir}/__pycache__/token.cpython-*.py[co]
775%{py_libdir}/__pycache__/tokenize.cpython-*.py[co]
776%{py_libdir}/__pycache__/traceback.cpython-*.py[co]
777%{py_libdir}/__pycache__/weakref.cpython-*.py[co]
778%{py_libdir}/__pycache__/os.cpython-*.py[co]
779%{py_libdir}/__pycache__/types.cpython-*.py[co]
780
781%{py_libdir}/collections
dfcf7c51 782
c7fdbe10 783# encodings required by python library
902c69ef
JK
784%dir %{py_libdir}/encodings
785%{py_libdir}/encodings/__pycache__
786%{py_libdir}/encodings/*.py
9416f74d 787
80febf2a
AM
788%dir %{py_libdir}/config-%{py_platform}
789%{py_libdir}/config-%{py_platform}/Makefile
790%{py_libdir}/config-%{py_platform}/Setup
80febf2a
AM
791%{py_libdir}/config-%{py_platform}/Setup.local
792%{py_libdir}/config-%{py_platform}/pyconfig.h
d91cfa38 793
9416f74d
AM
794%files modules
795%defattr(644,root,root,755)
40197233 796%config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/python*-modules*
902c69ef
JK
797%{py_libdir}/__future__.py
798%{py_libdir}/__phello__.foo.py
f31061ec 799%{py_libdir}/_aix_support.py
902c69ef 800%{py_libdir}/_bootlocale.py
f31061ec 801%{py_libdir}/_bootsubprocess.py
902c69ef
JK
802%{py_libdir}/_compat_pickle.py
803%{py_libdir}/_compression.py
902c69ef
JK
804%{py_libdir}/_markupbase.py
805%{py_libdir}/_osx_support.py
806%{py_libdir}/_pydecimal.py
b592c0a2 807%{py_libdir}/_py_abc.py
902c69ef
JK
808%{py_libdir}/_pyio.py
809%{py_libdir}/_strptime.py
810%{py_libdir}/_threading_local.py
811%{py_libdir}/aifc.py
812%{py_libdir}/antigravity.py
813%{py_libdir}/argparse.py
814%{py_libdir}/ast.py
815%{py_libdir}/asynchat.py
816%{py_libdir}/asyncore.py
817%{py_libdir}/base64.py
818%{py_libdir}/bdb.py
819%{py_libdir}/binhex.py
820%{py_libdir}/bz2.py
821%{py_libdir}/cProfile.py
822%{py_libdir}/calendar.py
823%{py_libdir}/cgi.py
824%{py_libdir}/cgitb.py
825%{py_libdir}/chunk.py
826%{py_libdir}/cmd.py
827%{py_libdir}/code.py
828%{py_libdir}/codeop.py
829%{py_libdir}/colorsys.py
830%{py_libdir}/compileall.py
831%{py_libdir}/configparser.py
832%{py_libdir}/contextlib.py
b592c0a2 833%{py_libdir}/contextvars.py
902c69ef
JK
834%{py_libdir}/copy.py
835%{py_libdir}/crypt.py
836%{py_libdir}/csv.py
b592c0a2 837%{py_libdir}/dataclasses.py
902c69ef
JK
838%{py_libdir}/datetime.py
839%{py_libdir}/decimal.py
840%{py_libdir}/difflib.py
841%{py_libdir}/dis.py
842%{py_libdir}/doctest.py
902c69ef
JK
843%{py_libdir}/filecmp.py
844%{py_libdir}/fileinput.py
845%{py_libdir}/fnmatch.py
846%{py_libdir}/formatter.py
847%{py_libdir}/fractions.py
848%{py_libdir}/ftplib.py
849%{py_libdir}/getopt.py
850%{py_libdir}/getpass.py
851%{py_libdir}/gettext.py
852%{py_libdir}/glob.py
f31061ec 853%{py_libdir}/graphlib.py
902c69ef
JK
854%{py_libdir}/gzip.py
855%{py_libdir}/hashlib.py
856%{py_libdir}/hmac.py
857%{py_libdir}/imaplib.py
858%{py_libdir}/imghdr.py
859%{py_libdir}/imp.py
860%{py_libdir}/inspect.py
861%{py_libdir}/ipaddress.py
862%{py_libdir}/lzma.py
902c69ef
JK
863%{py_libdir}/mailbox.py
864%{py_libdir}/mailcap.py
865%{py_libdir}/mimetypes.py
866%{py_libdir}/modulefinder.py
867%{py_libdir}/netrc.py
868%{py_libdir}/nntplib.py
869%{py_libdir}/ntpath.py
870%{py_libdir}/nturl2path.py
871%{py_libdir}/numbers.py
872%{py_libdir}/opcode.py
902c69ef
JK
873%{py_libdir}/optparse.py
874%{py_libdir}/pathlib.py
875%{py_libdir}/pickle.py
876%{py_libdir}/pickletools.py
877%{py_libdir}/pipes.py
878%{py_libdir}/pkgutil.py
879%{py_libdir}/platform.py
880%{py_libdir}/plistlib.py
881%{py_libdir}/poplib.py
882%{py_libdir}/pprint.py
883%{py_libdir}/pty.py
884%{py_libdir}/py_compile.py
885%{py_libdir}/pyclbr.py
886%{py_libdir}/queue.py
887%{py_libdir}/quopri.py
888%{py_libdir}/random.py
889%{py_libdir}/rlcompleter.py
890%{py_libdir}/runpy.py
80febf2a 891%{py_libdir}/secrets.py
902c69ef
JK
892%{py_libdir}/signal.py
893%{py_libdir}/sched.py
894%{py_libdir}/selectors.py
895%{py_libdir}/shelve.py
896%{py_libdir}/shlex.py
897%{py_libdir}/shutil.py
898%{py_libdir}/smtpd.py
899%{py_libdir}/smtplib.py
900%{py_libdir}/sndhdr.py
901%{py_libdir}/socket.py
902%{py_libdir}/socketserver.py
903%{py_libdir}/ssl.py
904%{py_libdir}/statistics.py
905%{py_libdir}/string.py
906%{py_libdir}/stringprep.py
907%{py_libdir}/struct.py
908%{py_libdir}/subprocess.py
909%{py_libdir}/sunau.py
910%{py_libdir}/symbol.py
911%{py_libdir}/symtable.py
912%{py_libdir}/tabnanny.py
913%{py_libdir}/tarfile.py
914%{py_libdir}/telnetlib.py
915%{py_libdir}/tempfile.py
916%{py_libdir}/textwrap.py
917%{py_libdir}/this.py
918%{py_libdir}/threading.py
919%{py_libdir}/trace.py
920%{py_libdir}/tracemalloc.py
921%{py_libdir}/tty.py
922%{py_libdir}/turtle.py
923%{py_libdir}/typing.py
924%{py_libdir}/uu.py
925%{py_libdir}/uuid.py
926%{py_libdir}/warnings.py
927%{py_libdir}/wave.py
928%{py_libdir}/webbrowser.py
929%{py_libdir}/xdrlib.py
930%{py_libdir}/zipapp.py
931%{py_libdir}/zipfile.py
3e35963a 932%{py_libdir}/zipimport.py
902c69ef
JK
933%{py_libdir}/__pycache__/__future__.cpython-*.py[co]
934%{py_libdir}/__pycache__/__phello__.foo.cpython-*.py[co]
f31061ec 935%{py_libdir}/__pycache__/_aix_support.cpython-*.py[co]
902c69ef 936%{py_libdir}/__pycache__/_bootlocale.cpython-*.py[co]
f31061ec 937%{py_libdir}/__pycache__/_bootsubprocess.cpython-*.py[co]
902c69ef
JK
938%{py_libdir}/__pycache__/_compat_pickle.cpython-*.py[co]
939%{py_libdir}/__pycache__/_compression.cpython-*.py[co]
902c69ef
JK
940%{py_libdir}/__pycache__/_markupbase.cpython-*.py[co]
941%{py_libdir}/__pycache__/_osx_support.cpython-*.py[co]
942%{py_libdir}/__pycache__/_pydecimal.cpython-*.py[co]
b592c0a2 943%{py_libdir}/__pycache__/_py_abc.cpython-*.py[co]
902c69ef
JK
944%{py_libdir}/__pycache__/_pyio.cpython-*.py[co]
945%{py_libdir}/__pycache__/_strptime.cpython-*.py[co]
946%{py_libdir}/__pycache__/_threading_local.cpython-*.py[co]
947%{py_libdir}/__pycache__/aifc.cpython-*.py[co]
948%{py_libdir}/__pycache__/antigravity.cpython-*.py[co]
949%{py_libdir}/__pycache__/argparse.cpython-*.py[co]
950%{py_libdir}/__pycache__/ast.cpython-*.py[co]
951%{py_libdir}/__pycache__/asynchat.cpython-*.py[co]
952%{py_libdir}/__pycache__/asyncore.cpython-*.py[co]
953%{py_libdir}/__pycache__/base64.cpython-*.py[co]
954%{py_libdir}/__pycache__/bdb.cpython-*.py[co]
955%{py_libdir}/__pycache__/binhex.cpython-*.py[co]
956%{py_libdir}/__pycache__/bz2.cpython-*.py[co]
957%{py_libdir}/__pycache__/cProfile.cpython-*.py[co]
958%{py_libdir}/__pycache__/calendar.cpython-*.py[co]
959%{py_libdir}/__pycache__/cgi.cpython-*.py[co]
960%{py_libdir}/__pycache__/cgitb.cpython-*.py[co]
961%{py_libdir}/__pycache__/chunk.cpython-*.py[co]
962%{py_libdir}/__pycache__/cmd.cpython-*.py[co]
b592c0a2 963%{py_libdir}/__pycache__/contextvars.cpython-*.py[co]
902c69ef
JK
964%{py_libdir}/__pycache__/code.cpython-*.py[co]
965%{py_libdir}/__pycache__/codeop.cpython-*.py[co]
966%{py_libdir}/__pycache__/colorsys.cpython-*.py[co]
967%{py_libdir}/__pycache__/compileall.cpython-*.py[co]
968%{py_libdir}/__pycache__/configparser.cpython-*.py[co]
969%{py_libdir}/__pycache__/contextlib.cpython-*.py[co]
970%{py_libdir}/__pycache__/copy.cpython-*.py[co]
971%{py_libdir}/__pycache__/crypt.cpython-*.py[co]
972%{py_libdir}/__pycache__/csv.cpython-*.py[co]
b592c0a2 973%{py_libdir}/__pycache__/dataclasses.cpython-*.py[co]
902c69ef
JK
974%{py_libdir}/__pycache__/datetime.cpython-*.py[co]
975%{py_libdir}/__pycache__/decimal.cpython-*.py[co]
976%{py_libdir}/__pycache__/difflib.cpython-*.py[co]
977%{py_libdir}/__pycache__/dis.cpython-*.py[co]
978%{py_libdir}/__pycache__/doctest.cpython-*.py[co]
902c69ef
JK
979%{py_libdir}/__pycache__/filecmp.cpython-*.py[co]
980%{py_libdir}/__pycache__/fileinput.cpython-*.py[co]
981%{py_libdir}/__pycache__/fnmatch.cpython-*.py[co]
982%{py_libdir}/__pycache__/formatter.cpython-*.py[co]
983%{py_libdir}/__pycache__/fractions.cpython-*.py[co]
984%{py_libdir}/__pycache__/ftplib.cpython-*.py[co]
985%{py_libdir}/__pycache__/getopt.cpython-*.py[co]
986%{py_libdir}/__pycache__/getpass.cpython-*.py[co]
987%{py_libdir}/__pycache__/gettext.cpython-*.py[co]
988%{py_libdir}/__pycache__/glob.cpython-*.py[co]
f31061ec 989%{py_libdir}/__pycache__/graphlib.cpython-*.py[co]
902c69ef
JK
990%{py_libdir}/__pycache__/gzip.cpython-*.py[co]
991%{py_libdir}/__pycache__/hashlib.cpython-*.py[co]
992%{py_libdir}/__pycache__/hmac.cpython-*.py[co]
993%{py_libdir}/__pycache__/imaplib.cpython-*.py[co]
994%{py_libdir}/__pycache__/imghdr.cpython-*.py[co]
995%{py_libdir}/__pycache__/imp.cpython-*.py[co]
996%{py_libdir}/__pycache__/inspect.cpython-*.py[co]
997%{py_libdir}/__pycache__/ipaddress.cpython-*.py[co]
998%{py_libdir}/__pycache__/lzma.cpython-*.py[co]
902c69ef
JK
999%{py_libdir}/__pycache__/mailbox.cpython-*.py[co]
1000%{py_libdir}/__pycache__/mailcap.cpython-*.py[co]
1001%{py_libdir}/__pycache__/mimetypes.cpython-*.py[co]
1002%{py_libdir}/__pycache__/modulefinder.cpython-*.py[co]
1003%{py_libdir}/__pycache__/netrc.cpython-*.py[co]
1004%{py_libdir}/__pycache__/nntplib.cpython-*.py[co]
1005%{py_libdir}/__pycache__/ntpath.cpython-*.py[co]
1006%{py_libdir}/__pycache__/nturl2path.cpython-*.py[co]
1007%{py_libdir}/__pycache__/numbers.cpython-*.py[co]
1008%{py_libdir}/__pycache__/opcode.cpython-*.py[co]
902c69ef
JK
1009%{py_libdir}/__pycache__/optparse.cpython-*.py[co]
1010%{py_libdir}/__pycache__/pathlib.cpython-*.py[co]
1011%{py_libdir}/__pycache__/pickle.cpython-*.py[co]
1012%{py_libdir}/__pycache__/pickletools.cpython-*.py[co]
1013%{py_libdir}/__pycache__/pipes.cpython-*.py[co]
1014%{py_libdir}/__pycache__/pkgutil.cpython-*.py[co]
1015%{py_libdir}/__pycache__/platform.cpython-*.py[co]
1016%{py_libdir}/__pycache__/plistlib.cpython-*.py[co]
1017%{py_libdir}/__pycache__/poplib.cpython-*.py[co]
1018%{py_libdir}/__pycache__/pprint.cpython-*.py[co]
1019%{py_libdir}/__pycache__/pty.cpython-*.py[co]
1020%{py_libdir}/__pycache__/py_compile.cpython-*.py[co]
1021%{py_libdir}/__pycache__/pyclbr.cpython-*.py[co]
1022%{py_libdir}/__pycache__/queue.cpython-*.py[co]
1023%{py_libdir}/__pycache__/quopri.cpython-*.py[co]
1024%{py_libdir}/__pycache__/random.cpython-*.py[co]
1025%{py_libdir}/__pycache__/rlcompleter.cpython-*.py[co]
1026%{py_libdir}/__pycache__/runpy.cpython-*.py[co]
1027%{py_libdir}/__pycache__/sched.cpython-*.py[co]
80febf2a 1028%{py_libdir}/__pycache__/secrets.cpython-*.py[co]
902c69ef
JK
1029%{py_libdir}/__pycache__/selectors.cpython-*.py[co]
1030%{py_libdir}/__pycache__/shelve.cpython-*.py[co]
1031%{py_libdir}/__pycache__/shlex.cpython-*.py[co]
1032%{py_libdir}/__pycache__/shutil.cpython-*.py[co]
1033%{py_libdir}/__pycache__/signal.cpython-*.py[co]
1034%{py_libdir}/__pycache__/smtpd.cpython-*.py[co]
1035%{py_libdir}/__pycache__/smtplib.cpython-*.py[co]
1036%{py_libdir}/__pycache__/sndhdr.cpython-*.py[co]
1037%{py_libdir}/__pycache__/socket.cpython-*.py[co]
1038%{py_libdir}/__pycache__/socketserver.cpython-*.py[co]
1039%{py_libdir}/__pycache__/ssl.cpython-*.py[co]
1040%{py_libdir}/__pycache__/statistics.cpython-*.py[co]
1041%{py_libdir}/__pycache__/string.cpython-*.py[co]
1042%{py_libdir}/__pycache__/stringprep.cpython-*.py[co]
1043%{py_libdir}/__pycache__/struct.cpython-*.py[co]
1044%{py_libdir}/__pycache__/subprocess.cpython-*.py[co]
1045%{py_libdir}/__pycache__/sunau.cpython-*.py[co]
1046%{py_libdir}/__pycache__/symbol.cpython-*.py[co]
1047%{py_libdir}/__pycache__/symtable.cpython-*.py[co]
1048%{py_libdir}/__pycache__/tabnanny.cpython-*.py[co]
1049%{py_libdir}/__pycache__/tarfile.cpython-*.py[co]
1050%{py_libdir}/__pycache__/telnetlib.cpython-*.py[co]
1051%{py_libdir}/__pycache__/tempfile.cpython-*.py[co]
1052%{py_libdir}/__pycache__/textwrap.cpython-*.py[co]
1053%{py_libdir}/__pycache__/this.cpython-*.py[co]
1054%{py_libdir}/__pycache__/threading.cpython-*.py[co]
1055%{py_libdir}/__pycache__/trace.cpython-*.py[co]
1056%{py_libdir}/__pycache__/tracemalloc.cpython-*.py[co]
1057%{py_libdir}/__pycache__/tty.cpython-*.py[co]
1058%{py_libdir}/__pycache__/turtle.cpython-*.py[co]
1059%{py_libdir}/__pycache__/typing.cpython-*.py[co]
1060%{py_libdir}/__pycache__/uu.cpython-*.py[co]
1061%{py_libdir}/__pycache__/uuid.cpython-*.py[co]
1062%{py_libdir}/__pycache__/warnings.cpython-*.py[co]
1063%{py_libdir}/__pycache__/wave.cpython-*.py[co]
1064%{py_libdir}/__pycache__/webbrowser.cpython-*.py[co]
1065%{py_libdir}/__pycache__/xdrlib.cpython-*.py[co]
1066%{py_libdir}/__pycache__/zipapp.cpython-*.py[co]
1067%{py_libdir}/__pycache__/zipfile.cpython-*.py[co]
3e35963a 1068%{py_libdir}/__pycache__/zipimport.cpython-*.py[co]
9416f74d
AM
1069
1070#
1071# list .so modules to be sure that all of them are built
1072#
1073
80febf2a 1074%attr(755,root,root) %{py_dyndir}/_asyncio.cpython-*.so
c7fdbe10 1075%attr(755,root,root) %{py_dyndir}/_bisect.cpython-*.so
80febf2a 1076%attr(755,root,root) %{py_dyndir}/_blake2.cpython-*.so
dfcf7c51 1077%attr(755,root,root) %{py_dyndir}/_bz2.cpython-*.so
c7fdbe10
JB
1078%attr(755,root,root) %{py_dyndir}/_codecs_cn.cpython-*.so
1079%attr(755,root,root) %{py_dyndir}/_codecs_hk.cpython-*.so
1080%attr(755,root,root) %{py_dyndir}/_codecs_iso2022.cpython-*.so
1081%attr(755,root,root) %{py_dyndir}/_codecs_jp.cpython-*.so
1082%attr(755,root,root) %{py_dyndir}/_codecs_kr.cpython-*.so
1083%attr(755,root,root) %{py_dyndir}/_codecs_tw.cpython-*.so
b592c0a2 1084%attr(755,root,root) %{py_dyndir}/_contextvars.cpython-*.so
dfcf7c51 1085%attr(755,root,root) %{py_dyndir}/_crypt.cpython-*.so
c7fdbe10
JB
1086%attr(755,root,root) %{py_dyndir}/_csv.cpython-*.so
1087%attr(755,root,root) %{py_dyndir}/_ctypes*.cpython-*.so
1088%attr(755,root,root) %{py_dyndir}/_curses_panel.cpython-*.so
1089%attr(755,root,root) %{py_dyndir}/_curses.cpython-*.so
1090%attr(755,root,root) %{py_dyndir}/_datetime.cpython-*.so
9416f74d 1091%ifnarch sparc64
c7fdbe10 1092%attr(755,root,root) %{py_dyndir}/_dbm.cpython-*.so
9416f74d 1093%endif
dfcf7c51 1094%attr(755,root,root) %{py_dyndir}/_decimal.cpython-*.so
c7fdbe10
JB
1095%attr(755,root,root) %{py_dyndir}/_elementtree.cpython-*.so
1096%attr(755,root,root) %{py_dyndir}/_gdbm.cpython-*.so
1097%attr(755,root,root) %{py_dyndir}/_hashlib.cpython-*.so
1098%attr(755,root,root) %{py_dyndir}/_heapq.cpython-*.so
1099%attr(755,root,root) %{py_dyndir}/_json.cpython-*.so
1100%attr(755,root,root) %{py_dyndir}/_lsprof.cpython-*.so
dfcf7c51 1101%attr(755,root,root) %{py_dyndir}/_lzma.cpython-*.so
38874ce8 1102%attr(755,root,root) %{py_dyndir}/_md5.cpython-*.so
c7fdbe10
JB
1103%attr(755,root,root) %{py_dyndir}/_multibytecodec.cpython-*.so
1104%attr(755,root,root) %{py_dyndir}/_multiprocessing.cpython-*.so
38874ce8 1105%attr(755,root,root) %{py_dyndir}/_opcode.cpython-*.so
c7fdbe10 1106%attr(755,root,root) %{py_dyndir}/_pickle.cpython-*.so
3e35963a 1107%attr(755,root,root) %{py_dyndir}/_posixshmem.cpython-*.so
dceb7408 1108%attr(755,root,root) %{py_dyndir}/_posixsubprocess.cpython-*.so
b592c0a2 1109%attr(755,root,root) %{py_dyndir}/_queue.cpython-*.so
c7fdbe10 1110%attr(755,root,root) %{py_dyndir}/_random.cpython-*.so
38874ce8 1111%attr(755,root,root) %{py_dyndir}/_sha1.cpython-*.so
80febf2a 1112%attr(755,root,root) %{py_dyndir}/_sha3.cpython-*.so
c7fdbe10
JB
1113%attr(755,root,root) %{py_dyndir}/_socket.cpython-*.so
1114%attr(755,root,root) %{py_dyndir}/_ssl.cpython-*.so
3e35963a 1115%attr(755,root,root) %{py_dyndir}/_statistics.cpython-*.so
dfcf7c51 1116%attr(755,root,root) %{py_dyndir}/_testbuffer.cpython-*.so
c7fdbe10 1117%attr(755,root,root) %{py_dyndir}/_testcapi.cpython-*.so
3e35963a 1118%attr(755,root,root) %{py_dyndir}/_testinternalcapi.cpython-*.so
38874ce8 1119%attr(755,root,root) %{py_dyndir}/_testimportmultiple.cpython-*.so
ac674191 1120%attr(755,root,root) %{py_dyndir}/_testmultiphase.cpython-*.so
b592c0a2 1121%attr(755,root,root) %{py_dyndir}/_uuid.cpython-*.so
3e35963a 1122%attr(755,root,root) %{py_dyndir}/_xxsubinterpreters.cpython-*.so
b592c0a2 1123%attr(755,root,root) %{py_dyndir}/_xxtestfuzz.cpython-*.so
b6994eba
ER
1124
1125# for openssl < 0.9.8 package sha256 and sha512 modules
38874ce8 1126%if "%{pld_release}" != "ac"
b6994eba
ER
1127%attr(755,root,root) %{py_dyndir}/_sha256.cpython-*.so
1128%attr(755,root,root) %{py_dyndir}/_sha512.cpython-*.so
1129%endif
1130
c7fdbe10 1131%attr(755,root,root) %{py_dyndir}/array.cpython-*.so
dceb7408 1132%attr(755,root,root) %{py_dyndir}/audioop.cpython-*.so
c7fdbe10 1133%attr(755,root,root) %{py_dyndir}/binascii.cpython-*.so
c7fdbe10 1134%attr(755,root,root) %{py_dyndir}/cmath.cpython-*.so
c7fdbe10
JB
1135%attr(755,root,root) %{py_dyndir}/fcntl.cpython-*.so
1136%attr(755,root,root) %{py_dyndir}/grp.cpython-*.so
1137%attr(755,root,root) %{py_dyndir}/math.cpython-*.so
1138%attr(755,root,root) %{py_dyndir}/mmap.cpython-*.so
1139%attr(755,root,root) %{py_dyndir}/nis.cpython-*.so
1140%attr(755,root,root) %{py_dyndir}/ossaudiodev.cpython-*.so
1141%attr(755,root,root) %{py_dyndir}/parser.cpython-*.so
1142%attr(755,root,root) %{py_dyndir}/pyexpat.cpython-*.so
1143%attr(755,root,root) %{py_dyndir}/readline.cpython-*.so
1144%attr(755,root,root) %{py_dyndir}/resource.cpython-*.so
1145%attr(755,root,root) %{py_dyndir}/select.cpython-*.so
1146%attr(755,root,root) %{py_dyndir}/syslog.cpython-*.so
1147%attr(755,root,root) %{py_dyndir}/termios.cpython-*.so
c7fdbe10
JB
1148%attr(755,root,root) %{py_dyndir}/spwd.cpython-*.so
1149%attr(755,root,root) %{py_dyndir}/unicodedata.cpython-*.so
1150%attr(755,root,root) %{py_dyndir}/zlib.cpython-*.so
9416f74d 1151
902c69ef
JK
1152%dir %{py_libdir}/asyncio
1153%{py_libdir}/asyncio/__pycache__
1154%{py_libdir}/asyncio/*.py
1155
1156%{py_libdir}/concurrent
1157
1158%dir %{py_libdir}/ctypes
1159%dir %{py_libdir}/ctypes/macholib
1160%{py_libdir}/ctypes/__pycache__
1161%{py_libdir}/ctypes/macholib/__pycache__
1162
1163%{py_libdir}/ctypes/*.py
1164%{py_libdir}/ctypes/macholib/*.py
1165%doc %{py_libdir}/ctypes/macholib/README.ctypes
1166
1167%dir %{py_libdir}/curses
1168%{py_libdir}/curses/__pycache__
1169%{py_libdir}/curses/*.py
1170
1171%dir %{py_libdir}/dbm
1172%{py_libdir}/dbm/__pycache__
1173%{py_libdir}/dbm/*.py
1174
1175%dir %{py_libdir}/distutils
1176%dir %{py_libdir}/distutils/command
1177%doc %{py_libdir}/distutils/README
1178%{py_libdir}/distutils/__pycache__
1179%{py_libdir}/distutils/command/__pycache__
1180%{py_libdir}/distutils/*.py
1181%{py_libdir}/distutils/command/*.py
1182%{py_libdir}/distutils/command/command_template
1183
1184%dir %{py_libdir}/email
1185%dir %{py_libdir}/email/mime
1186%{py_libdir}/email/__pycache__
1187%{py_libdir}/email/mime/__pycache__
1188%{py_libdir}/email/architecture.rst
1189%{py_libdir}/email/*.py
1190%{py_libdir}/email/mime/*.py
1191
1192%dir %{py_libdir}/ensurepip
1193%{py_libdir}/ensurepip/__pycache__
1194%{py_libdir}/ensurepip/*.py
1195%{py_libdir}/ensurepip/_bundled
1196
1197%dir %{py_libdir}/html
1198%{py_libdir}/html/*.py
1199%{py_libdir}/html/__pycache__
1200
1201%dir %{py_libdir}/http
1202%{py_libdir}/http/__pycache__
1203%{py_libdir}/http/*.py
1204
1205%dir %{py_libdir}/idlelib
1206
1207%dir %{py_libdir}/importlib
1208%{py_libdir}/importlib/__pycache__
1209%{py_libdir}/importlib/*.py
1210
1211%dir %{py_libdir}/json
1212%{py_libdir}/json/__pycache__
1213%{py_libdir}/json/*.py
1214
1215%dir %{py_libdir}/logging
1216%{py_libdir}/logging/__pycache__
1217%{py_libdir}/logging/*.py
1218
1219%dir %{py_libdir}/multiprocessing
1220%{py_libdir}/multiprocessing/__pycache__
1221%{py_libdir}/multiprocessing/*.py
1222%dir %{py_libdir}/multiprocessing/dummy
1223%{py_libdir}/multiprocessing/dummy/__pycache__
1224%{py_libdir}/multiprocessing/dummy/*.py
1225
1226%{py_libdir}/turtledemo
1227
1228%dir %{py_libdir}/unittest
1229%{py_libdir}/unittest/__pycache__
1230%{py_libdir}/unittest/*.py
1231
1232%dir %{py_libdir}/urllib
1233%{py_libdir}/urllib/__pycache__
1234%{py_libdir}/urllib/*.py
1235
1236%dir %{py_libdir}/venv
1237%{py_libdir}/venv/__pycache__
1238%{py_libdir}/venv/*.py
1239%dir %{py_libdir}/venv/scripts
69cd33fe 1240%dir %{py_libdir}/venv/scripts/common
3e35963a 1241%{py_libdir}/venv/scripts/common/Activate.ps1
69cd33fe 1242%{py_libdir}/venv/scripts/common/activate
902c69ef 1243%dir %{py_libdir}/venv/scripts/posix
902c69ef
JK
1244%{py_libdir}/venv/scripts/posix/activate.csh
1245%{py_libdir}/venv/scripts/posix/activate.fish
1246
1247%dir %{py_libdir}/wsgiref
1248%{py_libdir}/wsgiref/__pycache__
1249%{py_libdir}/wsgiref/*.py
1250
1251%dir %{py_libdir}/xml
1252%dir %{py_libdir}/xml/dom
1253%dir %{py_libdir}/xml/etree
1254%dir %{py_libdir}/xml/parsers
1255%dir %{py_libdir}/xml/sax
1256%{py_libdir}/xml/__pycache__
1257%{py_libdir}/xml/dom/__pycache__
1258%{py_libdir}/xml/etree/__pycache__
1259%{py_libdir}/xml/parsers/__pycache__
1260%{py_libdir}/xml/sax/__pycache__
1261%{py_libdir}/xml/*.py
1262%{py_libdir}/xml/dom/*.py
1263%{py_libdir}/xml/etree/*.py
1264%{py_libdir}/xml/parsers/*.py
1265%{py_libdir}/xml/sax/*.py
1266
1267%dir %{py_libdir}/xmlrpc
1268%{py_libdir}/xmlrpc/__pycache__
1269%{py_libdir}/xmlrpc/*.py
acd14a9e 1270
c7fdbe10 1271%attr(755,root,root) %{py_dyndir}/_sqlite3.cpython-*.so
902c69ef
JK
1272%dir %{py_libdir}/sqlite3
1273%{py_libdir}/sqlite3/__pycache__
1274%{py_libdir}/sqlite3/*.py
9416f74d 1275
f31061ec
AM
1276%attr(755,root,root) %{py_dyndir}/_zoneinfo.cpython-*.so
1277%dir %{py_libdir}/zoneinfo
1278%{py_libdir}/zoneinfo/__pycache__
1279%{py_libdir}/zoneinfo/*.py
1280
2072c60e 1281%files -n pydoc3
9416f74d 1282%defattr(644,root,root,755)
19221b23 1283%attr(755,root,root) %{_bindir}/pydoc3
80febf2a 1284%attr(755,root,root) %{_bindir}/pydoc%{py_ver}
902c69ef
JK
1285%{py_libdir}/pydoc.py
1286%{py_libdir}/__pycache__/pydoc.cpython-*.py[co]
1287%dir %{py_libdir}/pydoc_data
1288%{py_libdir}/pydoc_data/__pycache__
1289%{py_libdir}/pydoc_data/*.py
1290%{py_libdir}/pydoc_data/*.css
9416f74d 1291
2072c60e 1292%files -n idle3
9416f74d 1293%defattr(644,root,root,755)
19221b23 1294%attr(755,root,root) %{_bindir}/idle3
80febf2a 1295%attr(755,root,root) %{_bindir}/idle%{py_ver}
902c69ef
JK
1296%dir %{py_libdir}/idlelib/Icons
1297%{py_libdir}/idlelib/__pycache__
1298%{py_libdir}/idlelib/*.py
1299%doc %{py_libdir}/idlelib/*.txt
1300%doc %{py_libdir}/idlelib/ChangeLog
1301%{py_libdir}/idlelib/Icons/*
1302%{py_libdir}/idlelib/*.def
9416f74d
AM
1303
1304%files devel
1305%defattr(644,root,root,755)
1306%doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp}
c7fdbe10 1307%attr(755,root,root) %{_bindir}/python%{py_ver}-config
3e35963a 1308%if "%{py_ver}" != "%{py_abi}"
c7fdbe10 1309%attr(755,root,root) %{_bindir}/python%{py_abi}-config
3e35963a 1310%endif
c7fdbe10
JB
1311%attr(755,root,root) %{_bindir}/python3-config
1312%attr(755,root,root) %{_libdir}/libpython%{py_abi}.so
1313%attr(755,root,root) %{_libdir}/libpython3.so
9416f74d 1314%{py_incdir}/*.h
002ac285 1315%exclude %{py_incdir}/pyconfig.h
3e35963a 1316%{py_incdir}/cpython
9b97d583 1317%{py_incdir}/internal
80febf2a
AM
1318%attr(755,root,root) %{py_libdir}/config-%{py_platform}/makesetup
1319%attr(755,root,root) %{py_libdir}/config-%{py_platform}/install-sh
1320%{py_libdir}/config-%{py_platform}/config.c
1321%{py_libdir}/config-%{py_platform}/config.c.in
1322%{py_libdir}/config-%{py_platform}/python.o
1323%{py_libdir}/config-%{py_platform}/python-config.py
1324%dir %{py_libdir}/config-%{py_platform}/__pycache__
1325%{py_libdir}/config-%{py_platform}/__pycache__/python-config.*
c7fdbe10 1326%{_pkgconfigdir}/python-%{py_ver}.pc
3e35963a
AM
1327%{_pkgconfigdir}/python-%{py_ver}-embed.pc
1328%{_pkgconfigdir}/python3-embed.pc
1329%if "%{py_ver}" != "%{py_abi}"
d0324804 1330%{_pkgconfigdir}/python-%{py_abi}.pc
3e35963a 1331%endif
d0324804 1332%{_pkgconfigdir}/python3.pc
c7fdbe10 1333
9416f74d
AM
1334%files devel-tools
1335%defattr(644,root,root,755)
40197233 1336%config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/python*-devel*
24586eb0 1337%attr(755,root,root) %{_bindir}/pygettext%{py_ver}
25e3a83c 1338%attr(755,root,root) %{_bindir}/pyreindent%{py_ver}
902c69ef
JK
1339%{py_libdir}/pdb.py
1340%{py_libdir}/profile.py
1341%{py_libdir}/pstats.py
1342%{py_libdir}/timeit.py
1343%{py_libdir}/__pycache__/pdb.cpython-*.py[co]
1344%{py_libdir}/__pycache__/profile.cpython-*.py[co]
1345%{py_libdir}/__pycache__/pstats.cpython-*.py[co]
1346%{py_libdir}/__pycache__/timeit.cpython-*.py[co]
9416f74d 1347
30b0ff7b 1348%files 2to3
76c5116a 1349%defattr(644,root,root,755)
eb7b678c 1350%attr(755,root,root) %{_bindir}/2to3-%{py_ver}
902c69ef
JK
1351%dir %{py_libdir}/lib2to3
1352%{py_libdir}/lib2to3/__pycache__
1353%{py_libdir}/lib2to3/*.txt
1354%{py_libdir}/lib2to3/*.pickle
1355%{py_libdir}/lib2to3/*.py
1356%dir %{py_libdir}/lib2to3/fixes
1357%{py_libdir}/lib2to3/fixes/__pycache__
1358%{py_libdir}/lib2to3/fixes/*.py
1359%dir %{py_libdir}/lib2to3/pgen2
1360%{py_libdir}/lib2to3/pgen2/__pycache__
1361%{py_libdir}/lib2to3/pgen2/*.py
30b0ff7b 1362
9416f74d
AM
1363%files static
1364%defattr(644,root,root,755)
520f15b4 1365%{_libdir}/libpython%{py_abi}.a
9416f74d
AM
1366
1367%files examples
1368%defattr(644,root,root,755)
1369%{_examplesdir}/%{name}-%{version}
1370
9a22bc7d 1371%files test
76c5116a 1372%defattr(644,root,root,755)
902c69ef
JK
1373%{py_libdir}/idlelib/idle_test
1374%{py_libdir}/test
1375%{py_libdir}/ctypes/test
1376%{py_libdir}/distutils/tests
1377%{py_libdir}/lib2to3/tests
1378%{py_libdir}/sqlite3/test
1379%{py_libdir}/tkinter/test
1380%{py_libdir}/unittest/test
9a22bc7d 1381
9416f74d
AM
1382%if %{with info}
1383%files doc-info
1384%defattr(644,root,root,755)
db379ec1 1385%{_infodir}/python.info*
9416f74d
AM
1386%endif
1387
1388%if %{with tkinter}
1389%files tkinter
1390%defattr(644,root,root,755)
902c69ef
JK
1391%dir %{py_libdir}/tkinter
1392%{py_libdir}/tkinter/__pycache__
1393%{py_libdir}/tkinter/*.py
c7fdbe10 1394%attr(755,root,root) %{py_dyndir}/_tkinter.cpython-*.so
9416f74d 1395%endif
This page took 3.179222 seconds and 4 git commands to generate.