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