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