]> git.pld-linux.org Git - packages/python3.git/blame - python3.spec
- purelib: directory for non-platform-specific files, rel 5
[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
7ff5f06e 50Version: %{py_ver}.4
b852622f 51Release: 5
9416f74d
AM
52Epoch: 1
53License: PSF
4f91790c
JB
54Group: Development/Languages/Python
55Source0: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
7ff5f06e 56# Source0-md5: 21f2e113e087083a1e8cf10553d93599
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
8d01f992 62
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
8d01f992 487
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
6c32bfd4 534%{__aclocal}
9416f74d 535%{__autoconf}
9416f74d 536%configure \
58274b36 537 CC="%{__cc}" \
520f15b4 538 OPT="%{rpmcflags}" \
04b427b2
AM
539 CPPFLAGS="%{rpmcppflags}" \
540 LDFLAGS="%{rpmldflags}" \
6e46332d 541 LDFLAGS_NODIST="%{debuginfocflags}" \
1254741f
ER
542 ac_cv_posix_semaphores_enabled=yes \
543 ac_cv_broken_sem_getvalue=no \
9416f74d 544 --enable-ipv6 \
cab985ca
JB
545 --enable-shared \
546 --with-computed-gotos \
d1a550a0 547 --with-dbmliborder=gdbm:ndbm:bdb \
9416f74d 548 --with-doc-strings \
4f87a49d 549 --without-ensurepip \
f31061ec 550 --with-platlibdir="%{_lib}" \
cab985ca 551 %{?with_debug:--with-pydebug} \
520f15b4 552 --with-ssl-default-suites=openssl \
91f8e48f 553 --with-system-expat \
3ba70ac2 554 --with-system-ffi \
b592c0a2
AM
555 %{?with_system_mpdecimal:--with-system-libmpdec} \
556%if %{with optimizations}
557 --enable-optimizations \
558 --with-lto
559%endif
9416f74d 560
81d56a2b
AM
561if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
562 echo "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." >&2
563 exit 1
564fi
565
bebf9cf2 566%{__make} \
520f15b4 567 TESTOPTS="%{_smp_mflags} %{test_list}" \
bebf9cf2 568 2>&1 | awk '
9416f74d
AM
569BEGIN { fail = 0; logmsg = ""; }
570{
76c5116a
JK
571 if ($0 ~ /\*\*\* WARNING:/) {
572 fail = 1;
573 logmsg = logmsg $0;
574 }
575 print $0;
9416f74d
AM
576}
577END { if (fail) { print "\nPROBLEMS FOUND:"; print logmsg; exit(1); } }'
578
d47b1d9a 579LC_ALL=C.UTF-8
9416f74d
AM
580export LC_ALL
581%if %{with tests}
520f15b4 582WITHIN_PYTHON_RPM_BUILD=1 %{__make} test \
a2b17ec1 583 TESTOPTS="%{test_flags} %{test_list}"
9416f74d
AM
584%endif
585
703efa4d
JB
586%if %{with info}
587%{__make} -C Doc texinfo
588%{__make} -C Doc/build/texinfo info
589%endif
590
9416f74d
AM
591%install
592rm -rf $RPM_BUILD_ROOT
9adbfa17 593install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_pkgconfigdir}} \
12ba957c 594 $RPM_BUILD_ROOT{%{py_sitedir},%{py_sitescriptdir}}/__pycache__ \
9416f74d 595 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
12ba957c 596 $RPM_BUILD_ROOT{%{_infodir},%{_mandir}/man1} \
edb753bc
AM
597 $RPM_BUILD_ROOT/etc/shrc.d \
598 $RPM_BUILD_ROOT%{_prefix}/lib/debug/%{_libdir}
9416f74d
AM
599
600%{__make} install \
601 DESTDIR=$RPM_BUILD_ROOT
602
603%if %{with info}
703efa4d 604cp -p Doc/build/texinfo/python*info* $RPM_BUILD_ROOT%{_infodir}
9416f74d
AM
605%endif
606
9416f74d 607install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
4449431f 608cp -a Tools $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
9416f74d 609
ac600e00
AF
610# make libpython3.so simply symlink to real lib
611%{__rm} $RPM_BUILD_ROOT%{_libdir}/libpython3.so
612ln -s libpython%{py_abi}.so $RPM_BUILD_ROOT%{_libdir}/libpython3.so
613
edb753bc
AM
614# gdb helper that will end up in -debuginfo package
615soname=$(ls -1d $RPM_BUILD_ROOT%{_libdir}/libpython%{py_abi}.so.*.* | sed -e "s#^$RPM_BUILD_ROOT##g")
616cp -a Tools/gdb/libpython.py "$RPM_BUILD_ROOT%{_prefix}/lib/debug/$soname-gdb.py"
617
9416f74d
AM
618#
619# create several useful aliases, such as timeit.py, profile.py, pdb.py, smtpd.py
620#
621
622# for python devel tools
623for script in timeit profile pdb pstats; do
31f22d7c 624 echo "#alias ${script}%{py_ver}.py='python%{py_ver} -m ${script}'"
24586eb0 625done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh
9416f74d 626
31f22d7c 627echo "#alias pygettext%{py_ver}.py='pygettext%{py_ver}'" \
24586eb0 628 >> $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh
9416f74d
AM
629
630sed 's/=/ /' \
24586eb0
AM
631 < $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh \
632 > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.csh
9416f74d
AM
633
634# for python modules
635for script in smtpd webbrowser; do
31f22d7c 636 echo "#alias ${script}%{py_ver}.py='python%{py_ver} -m ${script}'"
24586eb0 637done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh
9416f74d
AM
638
639sed 's/=/ /' \
24586eb0
AM
640 < $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh \
641 > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.csh
9416f74d
AM
642
643# xgettext specific for Python code
644#
645# we will have two commands: pygettext.py (an alias) and pygettext;
646# this way there are no import (which is impossible now) conflicts and
647# pygettext.py is provided for compatibility
1254741f 648install -p Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver}
24586eb0 649
25e3a83c
AM
650# reindent python code
651install -p Tools/scripts/reindent.py $RPM_BUILD_ROOT%{_bindir}/pyreindent%{py_ver}
652
9416f74d 653# just to cut the noise, as they are not packaged (now)
902c69ef 654%{__rm} $RPM_BUILD_ROOT%{py_libdir}/ctypes/macholib/fetch_macholib*
902c69ef
JK
655%{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/*.bat
656%{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/*.pyw
4f91790c 657%{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/help.html
69cd33fe 658%{__rm} $RPM_BUILD_ROOT%{py_libdir}/site-packages/README.txt
1843c435
JK
659
660# currently provided by python-2to3, consider switching to this one
661%{__rm} $RPM_BUILD_ROOT%{_bindir}/2to3
662
5d1aec43 663# that seems to be only an empty extension template,
664# which seems to be built only {with tests}
91530447 665%{__rm} $RPM_BUILD_ROOT%{py_dyndir}/xxlimited*.*.so
1843c435 666
acd14a9e 667# already in %%doc
902c69ef 668%{__rm} $RPM_BUILD_ROOT%{py_libdir}/LICENSE.txt
9416f74d 669
80febf2a
AM
670%{__mv} $RPM_BUILD_ROOT%{py_incdir}/pyconfig.h $RPM_BUILD_ROOT%{py_libdir}/config-%{py_platform}/pyconfig.h
671%{__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 672
9416f74d
AM
673%clean
674rm -rf $RPM_BUILD_ROOT
675
676%post libs -p /sbin/ldconfig
677%postun libs -p /sbin/ldconfig
678
e3852288 679%post doc-info -p /sbin/postshell
a20bb9dc 680-/usr/sbin/fix-info-dir -c %{_infodir}
9416f74d 681
e3852288 682%postun doc-info -p /sbin/postshell
a20bb9dc 683-/usr/sbin/fix-info-dir -c %{_infodir}
9416f74d
AM
684
685%files
686%defattr(644,root,root,755)
24586eb0 687%attr(755,root,root) %{_bindir}/python%{py_ver}
3e35963a 688%if "%{py_ver}" != "%{py_abi}"
c7fdbe10 689%attr(755,root,root) %{_bindir}/python%{py_abi}
3e35963a 690%endif
306c0f2d 691%attr(755,root,root) %{_bindir}/python3
91530447 692%{_mandir}/man1/python3*.1*
c7fdbe10
JB
693
694%files libs
695%defattr(644,root,root,755)
696%doc LICENSE
697%attr(755,root,root) %{_libdir}/libpython%{py_abi}.so.*.*
698
002ac285
AM
699%dir %{py_incdir}
700%{py_incdir}/pyconfig.h
701
c7fdbe10
JB
702%dir %{py_libdir}
703%dir %{py_dyndir}
704%dir %{py_sitedir}
12ba957c 705%dir %{py_sitedir}/__pycache__
902c69ef 706%dir %{py_libdir}/__pycache__
c7fdbe10
JB
707%dir %{py_scriptdir}
708%dir %{py_sitescriptdir}
12ba957c 709%dir %{py_sitescriptdir}/__pycache__
c7fdbe10
JB
710
711# shared modules required by python library
712%attr(755,root,root) %{py_dyndir}/_struct.cpython-*.so
713
714# modules required by python library
902c69ef
JK
715%{py_libdir}/_collections_abc.py
716%{py_libdir}/_sitebuiltins.py
80febf2a 717%{py_libdir}/_sysconfigdata_*.py
902c69ef
JK
718%{py_libdir}/_weakrefset.py
719%{py_libdir}/abc.py
720%{py_libdir}/bisect.py
721%{py_libdir}/codecs.py
722%{py_libdir}/copyreg.py
f3feeafe 723%{py_libdir}/enum.py
902c69ef
JK
724%{py_libdir}/functools.py
725%{py_libdir}/genericpath.py
726%{py_libdir}/heapq.py
727%{py_libdir}/keyword.py
728%{py_libdir}/linecache.py
729%{py_libdir}/locale.py
730%{py_libdir}/io.py
32d9814d 731%{py_libdir}/operator.py
902c69ef
JK
732%{py_libdir}/posixpath.py
733%{py_libdir}/re.py
734%{py_libdir}/reprlib.py
735%{py_libdir}/site.py
736%{py_libdir}/sre_*.py
737%{py_libdir}/stat.py
738%{py_libdir}/sysconfig.py
739%{py_libdir}/token.py
740%{py_libdir}/tokenize.py
741%{py_libdir}/traceback.py
742%{py_libdir}/weakref.py
743%{py_libdir}/os.py
c7fdbe10 744# needed by the dynamic sys.lib patch
902c69ef
JK
745%{py_libdir}/types.py
746%{py_libdir}/__pycache__/_sitebuiltins.cpython-*.py[co]
80febf2a 747%{py_libdir}/__pycache__/_sysconfigdata_*.cpython-*.py[co]
902c69ef
JK
748%{py_libdir}/__pycache__/_weakrefset.cpython-*.py[co]
749%{py_libdir}/__pycache__/abc.cpython-*.py[co]
750%{py_libdir}/__pycache__/bisect.cpython-*.py[co]
751%{py_libdir}/__pycache__/codecs.cpython-*.py[co]
752%{py_libdir}/__pycache__/_collections_abc.cpython-*.py[co]
753%{py_libdir}/__pycache__/copyreg.cpython-*.py[co]
f3feeafe 754%{py_libdir}/__pycache__/enum.cpython-*.py[co]
902c69ef
JK
755%{py_libdir}/__pycache__/functools.cpython-*.py[co]
756%{py_libdir}/__pycache__/genericpath.cpython-*.py[co]
757%{py_libdir}/__pycache__/heapq.cpython-*.py[co]
758%{py_libdir}/__pycache__/keyword.cpython-*.py[co]
759%{py_libdir}/__pycache__/linecache.cpython-*.py[co]
760%{py_libdir}/__pycache__/locale.cpython-*.py[co]
761%{py_libdir}/__pycache__/io.cpython-*.py[co]
32d9814d 762%{py_libdir}/__pycache__/operator.cpython-*.py[co]
902c69ef
JK
763%{py_libdir}/__pycache__/posixpath.cpython-*.py[co]
764%{py_libdir}/__pycache__/re.cpython-*.py[co]
765%{py_libdir}/__pycache__/reprlib.cpython-*.py[co]
766%{py_libdir}/__pycache__/site.cpython-*.py[co]
767%{py_libdir}/__pycache__/sre_*.cpython-*.py[co]
768%{py_libdir}/__pycache__/stat.cpython-*.py[co]
769%{py_libdir}/__pycache__/sysconfig.cpython-*.py[co]
770%{py_libdir}/__pycache__/token.cpython-*.py[co]
771%{py_libdir}/__pycache__/tokenize.cpython-*.py[co]
772%{py_libdir}/__pycache__/traceback.cpython-*.py[co]
773%{py_libdir}/__pycache__/weakref.cpython-*.py[co]
774%{py_libdir}/__pycache__/os.cpython-*.py[co]
775%{py_libdir}/__pycache__/types.cpython-*.py[co]
776
777%{py_libdir}/collections
dfcf7c51 778
c7fdbe10 779# encodings required by python library
902c69ef
JK
780%dir %{py_libdir}/encodings
781%{py_libdir}/encodings/__pycache__
782%{py_libdir}/encodings/*.py
9416f74d 783
80febf2a
AM
784%dir %{py_libdir}/config-%{py_platform}
785%{py_libdir}/config-%{py_platform}/Makefile
786%{py_libdir}/config-%{py_platform}/Setup
80febf2a
AM
787%{py_libdir}/config-%{py_platform}/Setup.local
788%{py_libdir}/config-%{py_platform}/pyconfig.h
d91cfa38 789
9416f74d
AM
790%files modules
791%defattr(644,root,root,755)
40197233 792%config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/python*-modules*
902c69ef
JK
793%{py_libdir}/__future__.py
794%{py_libdir}/__phello__.foo.py
f31061ec 795%{py_libdir}/_aix_support.py
f31061ec 796%{py_libdir}/_bootsubprocess.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
902c69ef
JK
803%{py_libdir}/_pyio.py
804%{py_libdir}/_strptime.py
805%{py_libdir}/_threading_local.py
806%{py_libdir}/aifc.py
807%{py_libdir}/antigravity.py
808%{py_libdir}/argparse.py
809%{py_libdir}/ast.py
810%{py_libdir}/asynchat.py
811%{py_libdir}/asyncore.py
812%{py_libdir}/base64.py
813%{py_libdir}/bdb.py
814%{py_libdir}/binhex.py
815%{py_libdir}/bz2.py
816%{py_libdir}/cProfile.py
817%{py_libdir}/calendar.py
818%{py_libdir}/cgi.py
819%{py_libdir}/cgitb.py
820%{py_libdir}/chunk.py
821%{py_libdir}/cmd.py
822%{py_libdir}/code.py
823%{py_libdir}/codeop.py
824%{py_libdir}/colorsys.py
825%{py_libdir}/compileall.py
826%{py_libdir}/configparser.py
827%{py_libdir}/contextlib.py
b592c0a2 828%{py_libdir}/contextvars.py
902c69ef
JK
829%{py_libdir}/copy.py
830%{py_libdir}/crypt.py
831%{py_libdir}/csv.py
b592c0a2 832%{py_libdir}/dataclasses.py
902c69ef
JK
833%{py_libdir}/datetime.py
834%{py_libdir}/decimal.py
835%{py_libdir}/difflib.py
836%{py_libdir}/dis.py
837%{py_libdir}/doctest.py
902c69ef
JK
838%{py_libdir}/filecmp.py
839%{py_libdir}/fileinput.py
840%{py_libdir}/fnmatch.py
902c69ef
JK
841%{py_libdir}/fractions.py
842%{py_libdir}/ftplib.py
843%{py_libdir}/getopt.py
844%{py_libdir}/getpass.py
845%{py_libdir}/gettext.py
846%{py_libdir}/glob.py
f31061ec 847%{py_libdir}/graphlib.py
902c69ef
JK
848%{py_libdir}/gzip.py
849%{py_libdir}/hashlib.py
850%{py_libdir}/hmac.py
851%{py_libdir}/imaplib.py
852%{py_libdir}/imghdr.py
853%{py_libdir}/imp.py
854%{py_libdir}/inspect.py
855%{py_libdir}/ipaddress.py
856%{py_libdir}/lzma.py
902c69ef
JK
857%{py_libdir}/mailbox.py
858%{py_libdir}/mailcap.py
859%{py_libdir}/mimetypes.py
860%{py_libdir}/modulefinder.py
861%{py_libdir}/netrc.py
862%{py_libdir}/nntplib.py
863%{py_libdir}/ntpath.py
864%{py_libdir}/nturl2path.py
865%{py_libdir}/numbers.py
866%{py_libdir}/opcode.py
902c69ef
JK
867%{py_libdir}/optparse.py
868%{py_libdir}/pathlib.py
869%{py_libdir}/pickle.py
870%{py_libdir}/pickletools.py
871%{py_libdir}/pipes.py
872%{py_libdir}/pkgutil.py
873%{py_libdir}/platform.py
874%{py_libdir}/plistlib.py
875%{py_libdir}/poplib.py
876%{py_libdir}/pprint.py
877%{py_libdir}/pty.py
878%{py_libdir}/py_compile.py
879%{py_libdir}/pyclbr.py
880%{py_libdir}/queue.py
881%{py_libdir}/quopri.py
882%{py_libdir}/random.py
883%{py_libdir}/rlcompleter.py
884%{py_libdir}/runpy.py
80febf2a 885%{py_libdir}/secrets.py
902c69ef
JK
886%{py_libdir}/signal.py
887%{py_libdir}/sched.py
888%{py_libdir}/selectors.py
889%{py_libdir}/shelve.py
890%{py_libdir}/shlex.py
891%{py_libdir}/shutil.py
892%{py_libdir}/smtpd.py
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
924%{py_libdir}/zipfile.py
3e35963a 925%{py_libdir}/zipimport.py
902c69ef
JK
926%{py_libdir}/__pycache__/__future__.cpython-*.py[co]
927%{py_libdir}/__pycache__/__phello__.foo.cpython-*.py[co]
f31061ec 928%{py_libdir}/__pycache__/_aix_support.cpython-*.py[co]
f31061ec 929%{py_libdir}/__pycache__/_bootsubprocess.cpython-*.py[co]
902c69ef
JK
930%{py_libdir}/__pycache__/_compat_pickle.cpython-*.py[co]
931%{py_libdir}/__pycache__/_compression.cpython-*.py[co]
902c69ef
JK
932%{py_libdir}/__pycache__/_markupbase.cpython-*.py[co]
933%{py_libdir}/__pycache__/_osx_support.cpython-*.py[co]
934%{py_libdir}/__pycache__/_pydecimal.cpython-*.py[co]
b592c0a2 935%{py_libdir}/__pycache__/_py_abc.cpython-*.py[co]
902c69ef
JK
936%{py_libdir}/__pycache__/_pyio.cpython-*.py[co]
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]
943%{py_libdir}/__pycache__/asynchat.cpython-*.py[co]
944%{py_libdir}/__pycache__/asyncore.cpython-*.py[co]
945%{py_libdir}/__pycache__/base64.cpython-*.py[co]
946%{py_libdir}/__pycache__/bdb.cpython-*.py[co]
947%{py_libdir}/__pycache__/binhex.cpython-*.py[co]
948%{py_libdir}/__pycache__/bz2.cpython-*.py[co]
949%{py_libdir}/__pycache__/cProfile.cpython-*.py[co]
950%{py_libdir}/__pycache__/calendar.cpython-*.py[co]
951%{py_libdir}/__pycache__/cgi.cpython-*.py[co]
952%{py_libdir}/__pycache__/cgitb.cpython-*.py[co]
953%{py_libdir}/__pycache__/chunk.cpython-*.py[co]
954%{py_libdir}/__pycache__/cmd.cpython-*.py[co]
b592c0a2 955%{py_libdir}/__pycache__/contextvars.cpython-*.py[co]
902c69ef
JK
956%{py_libdir}/__pycache__/code.cpython-*.py[co]
957%{py_libdir}/__pycache__/codeop.cpython-*.py[co]
958%{py_libdir}/__pycache__/colorsys.cpython-*.py[co]
959%{py_libdir}/__pycache__/compileall.cpython-*.py[co]
960%{py_libdir}/__pycache__/configparser.cpython-*.py[co]
961%{py_libdir}/__pycache__/contextlib.cpython-*.py[co]
962%{py_libdir}/__pycache__/copy.cpython-*.py[co]
963%{py_libdir}/__pycache__/crypt.cpython-*.py[co]
964%{py_libdir}/__pycache__/csv.cpython-*.py[co]
b592c0a2 965%{py_libdir}/__pycache__/dataclasses.cpython-*.py[co]
902c69ef
JK
966%{py_libdir}/__pycache__/datetime.cpython-*.py[co]
967%{py_libdir}/__pycache__/decimal.cpython-*.py[co]
968%{py_libdir}/__pycache__/difflib.cpython-*.py[co]
969%{py_libdir}/__pycache__/dis.cpython-*.py[co]
970%{py_libdir}/__pycache__/doctest.cpython-*.py[co]
902c69ef
JK
971%{py_libdir}/__pycache__/filecmp.cpython-*.py[co]
972%{py_libdir}/__pycache__/fileinput.cpython-*.py[co]
973%{py_libdir}/__pycache__/fnmatch.cpython-*.py[co]
902c69ef
JK
974%{py_libdir}/__pycache__/fractions.cpython-*.py[co]
975%{py_libdir}/__pycache__/ftplib.cpython-*.py[co]
976%{py_libdir}/__pycache__/getopt.cpython-*.py[co]
977%{py_libdir}/__pycache__/getpass.cpython-*.py[co]
978%{py_libdir}/__pycache__/gettext.cpython-*.py[co]
979%{py_libdir}/__pycache__/glob.cpython-*.py[co]
f31061ec 980%{py_libdir}/__pycache__/graphlib.cpython-*.py[co]
902c69ef
JK
981%{py_libdir}/__pycache__/gzip.cpython-*.py[co]
982%{py_libdir}/__pycache__/hashlib.cpython-*.py[co]
983%{py_libdir}/__pycache__/hmac.cpython-*.py[co]
984%{py_libdir}/__pycache__/imaplib.cpython-*.py[co]
985%{py_libdir}/__pycache__/imghdr.cpython-*.py[co]
986%{py_libdir}/__pycache__/imp.cpython-*.py[co]
987%{py_libdir}/__pycache__/inspect.cpython-*.py[co]
988%{py_libdir}/__pycache__/ipaddress.cpython-*.py[co]
989%{py_libdir}/__pycache__/lzma.cpython-*.py[co]
902c69ef
JK
990%{py_libdir}/__pycache__/mailbox.cpython-*.py[co]
991%{py_libdir}/__pycache__/mailcap.cpython-*.py[co]
992%{py_libdir}/__pycache__/mimetypes.cpython-*.py[co]
993%{py_libdir}/__pycache__/modulefinder.cpython-*.py[co]
994%{py_libdir}/__pycache__/netrc.cpython-*.py[co]
995%{py_libdir}/__pycache__/nntplib.cpython-*.py[co]
996%{py_libdir}/__pycache__/ntpath.cpython-*.py[co]
997%{py_libdir}/__pycache__/nturl2path.cpython-*.py[co]
998%{py_libdir}/__pycache__/numbers.cpython-*.py[co]
999%{py_libdir}/__pycache__/opcode.cpython-*.py[co]
902c69ef
JK
1000%{py_libdir}/__pycache__/optparse.cpython-*.py[co]
1001%{py_libdir}/__pycache__/pathlib.cpython-*.py[co]
1002%{py_libdir}/__pycache__/pickle.cpython-*.py[co]
1003%{py_libdir}/__pycache__/pickletools.cpython-*.py[co]
1004%{py_libdir}/__pycache__/pipes.cpython-*.py[co]
1005%{py_libdir}/__pycache__/pkgutil.cpython-*.py[co]
1006%{py_libdir}/__pycache__/platform.cpython-*.py[co]
1007%{py_libdir}/__pycache__/plistlib.cpython-*.py[co]
1008%{py_libdir}/__pycache__/poplib.cpython-*.py[co]
1009%{py_libdir}/__pycache__/pprint.cpython-*.py[co]
1010%{py_libdir}/__pycache__/pty.cpython-*.py[co]
1011%{py_libdir}/__pycache__/py_compile.cpython-*.py[co]
1012%{py_libdir}/__pycache__/pyclbr.cpython-*.py[co]
1013%{py_libdir}/__pycache__/queue.cpython-*.py[co]
1014%{py_libdir}/__pycache__/quopri.cpython-*.py[co]
1015%{py_libdir}/__pycache__/random.cpython-*.py[co]
1016%{py_libdir}/__pycache__/rlcompleter.cpython-*.py[co]
1017%{py_libdir}/__pycache__/runpy.cpython-*.py[co]
1018%{py_libdir}/__pycache__/sched.cpython-*.py[co]
80febf2a 1019%{py_libdir}/__pycache__/secrets.cpython-*.py[co]
902c69ef
JK
1020%{py_libdir}/__pycache__/selectors.cpython-*.py[co]
1021%{py_libdir}/__pycache__/shelve.cpython-*.py[co]
1022%{py_libdir}/__pycache__/shlex.cpython-*.py[co]
1023%{py_libdir}/__pycache__/shutil.cpython-*.py[co]
1024%{py_libdir}/__pycache__/signal.cpython-*.py[co]
1025%{py_libdir}/__pycache__/smtpd.cpython-*.py[co]
1026%{py_libdir}/__pycache__/smtplib.cpython-*.py[co]
1027%{py_libdir}/__pycache__/sndhdr.cpython-*.py[co]
1028%{py_libdir}/__pycache__/socket.cpython-*.py[co]
1029%{py_libdir}/__pycache__/socketserver.cpython-*.py[co]
1030%{py_libdir}/__pycache__/ssl.cpython-*.py[co]
1031%{py_libdir}/__pycache__/statistics.cpython-*.py[co]
1032%{py_libdir}/__pycache__/string.cpython-*.py[co]
1033%{py_libdir}/__pycache__/stringprep.cpython-*.py[co]
1034%{py_libdir}/__pycache__/struct.cpython-*.py[co]
1035%{py_libdir}/__pycache__/subprocess.cpython-*.py[co]
1036%{py_libdir}/__pycache__/sunau.cpython-*.py[co]
902c69ef
JK
1037%{py_libdir}/__pycache__/symtable.cpython-*.py[co]
1038%{py_libdir}/__pycache__/tabnanny.cpython-*.py[co]
1039%{py_libdir}/__pycache__/tarfile.cpython-*.py[co]
1040%{py_libdir}/__pycache__/telnetlib.cpython-*.py[co]
1041%{py_libdir}/__pycache__/tempfile.cpython-*.py[co]
1042%{py_libdir}/__pycache__/textwrap.cpython-*.py[co]
1043%{py_libdir}/__pycache__/this.cpython-*.py[co]
1044%{py_libdir}/__pycache__/threading.cpython-*.py[co]
1045%{py_libdir}/__pycache__/trace.cpython-*.py[co]
1046%{py_libdir}/__pycache__/tracemalloc.cpython-*.py[co]
1047%{py_libdir}/__pycache__/tty.cpython-*.py[co]
1048%{py_libdir}/__pycache__/turtle.cpython-*.py[co]
1049%{py_libdir}/__pycache__/typing.cpython-*.py[co]
1050%{py_libdir}/__pycache__/uu.cpython-*.py[co]
1051%{py_libdir}/__pycache__/uuid.cpython-*.py[co]
1052%{py_libdir}/__pycache__/warnings.cpython-*.py[co]
1053%{py_libdir}/__pycache__/wave.cpython-*.py[co]
1054%{py_libdir}/__pycache__/webbrowser.cpython-*.py[co]
1055%{py_libdir}/__pycache__/xdrlib.cpython-*.py[co]
1056%{py_libdir}/__pycache__/zipapp.cpython-*.py[co]
1057%{py_libdir}/__pycache__/zipfile.cpython-*.py[co]
3e35963a 1058%{py_libdir}/__pycache__/zipimport.cpython-*.py[co]
9416f74d
AM
1059
1060#
1061# list .so modules to be sure that all of them are built
1062#
1063
80febf2a 1064%attr(755,root,root) %{py_dyndir}/_asyncio.cpython-*.so
c7fdbe10 1065%attr(755,root,root) %{py_dyndir}/_bisect.cpython-*.so
80febf2a 1066%attr(755,root,root) %{py_dyndir}/_blake2.cpython-*.so
dfcf7c51 1067%attr(755,root,root) %{py_dyndir}/_bz2.cpython-*.so
c7fdbe10
JB
1068%attr(755,root,root) %{py_dyndir}/_codecs_cn.cpython-*.so
1069%attr(755,root,root) %{py_dyndir}/_codecs_hk.cpython-*.so
1070%attr(755,root,root) %{py_dyndir}/_codecs_iso2022.cpython-*.so
1071%attr(755,root,root) %{py_dyndir}/_codecs_jp.cpython-*.so
1072%attr(755,root,root) %{py_dyndir}/_codecs_kr.cpython-*.so
1073%attr(755,root,root) %{py_dyndir}/_codecs_tw.cpython-*.so
b592c0a2 1074%attr(755,root,root) %{py_dyndir}/_contextvars.cpython-*.so
dfcf7c51 1075%attr(755,root,root) %{py_dyndir}/_crypt.cpython-*.so
c7fdbe10
JB
1076%attr(755,root,root) %{py_dyndir}/_csv.cpython-*.so
1077%attr(755,root,root) %{py_dyndir}/_ctypes*.cpython-*.so
1078%attr(755,root,root) %{py_dyndir}/_curses_panel.cpython-*.so
1079%attr(755,root,root) %{py_dyndir}/_curses.cpython-*.so
1080%attr(755,root,root) %{py_dyndir}/_datetime.cpython-*.so
9416f74d 1081%ifnarch sparc64
c7fdbe10 1082%attr(755,root,root) %{py_dyndir}/_dbm.cpython-*.so
9416f74d 1083%endif
dfcf7c51 1084%attr(755,root,root) %{py_dyndir}/_decimal.cpython-*.so
c7fdbe10
JB
1085%attr(755,root,root) %{py_dyndir}/_elementtree.cpython-*.so
1086%attr(755,root,root) %{py_dyndir}/_gdbm.cpython-*.so
1087%attr(755,root,root) %{py_dyndir}/_hashlib.cpython-*.so
1088%attr(755,root,root) %{py_dyndir}/_heapq.cpython-*.so
1089%attr(755,root,root) %{py_dyndir}/_json.cpython-*.so
1090%attr(755,root,root) %{py_dyndir}/_lsprof.cpython-*.so
dfcf7c51 1091%attr(755,root,root) %{py_dyndir}/_lzma.cpython-*.so
38874ce8 1092%attr(755,root,root) %{py_dyndir}/_md5.cpython-*.so
c7fdbe10
JB
1093%attr(755,root,root) %{py_dyndir}/_multibytecodec.cpython-*.so
1094%attr(755,root,root) %{py_dyndir}/_multiprocessing.cpython-*.so
38874ce8 1095%attr(755,root,root) %{py_dyndir}/_opcode.cpython-*.so
c7fdbe10 1096%attr(755,root,root) %{py_dyndir}/_pickle.cpython-*.so
3e35963a 1097%attr(755,root,root) %{py_dyndir}/_posixshmem.cpython-*.so
dceb7408 1098%attr(755,root,root) %{py_dyndir}/_posixsubprocess.cpython-*.so
b592c0a2 1099%attr(755,root,root) %{py_dyndir}/_queue.cpython-*.so
c7fdbe10 1100%attr(755,root,root) %{py_dyndir}/_random.cpython-*.so
38874ce8 1101%attr(755,root,root) %{py_dyndir}/_sha1.cpython-*.so
80febf2a 1102%attr(755,root,root) %{py_dyndir}/_sha3.cpython-*.so
c7fdbe10
JB
1103%attr(755,root,root) %{py_dyndir}/_socket.cpython-*.so
1104%attr(755,root,root) %{py_dyndir}/_ssl.cpython-*.so
3e35963a 1105%attr(755,root,root) %{py_dyndir}/_statistics.cpython-*.so
dfcf7c51 1106%attr(755,root,root) %{py_dyndir}/_testbuffer.cpython-*.so
c7fdbe10 1107%attr(755,root,root) %{py_dyndir}/_testcapi.cpython-*.so
3e35963a 1108%attr(755,root,root) %{py_dyndir}/_testinternalcapi.cpython-*.so
38874ce8 1109%attr(755,root,root) %{py_dyndir}/_testimportmultiple.cpython-*.so
ac674191 1110%attr(755,root,root) %{py_dyndir}/_testmultiphase.cpython-*.so
b592c0a2 1111%attr(755,root,root) %{py_dyndir}/_uuid.cpython-*.so
3e35963a 1112%attr(755,root,root) %{py_dyndir}/_xxsubinterpreters.cpython-*.so
b592c0a2 1113%attr(755,root,root) %{py_dyndir}/_xxtestfuzz.cpython-*.so
b6994eba
ER
1114
1115# for openssl < 0.9.8 package sha256 and sha512 modules
38874ce8 1116%if "%{pld_release}" != "ac"
b6994eba
ER
1117%attr(755,root,root) %{py_dyndir}/_sha256.cpython-*.so
1118%attr(755,root,root) %{py_dyndir}/_sha512.cpython-*.so
1119%endif
1120
c7fdbe10 1121%attr(755,root,root) %{py_dyndir}/array.cpython-*.so
dceb7408 1122%attr(755,root,root) %{py_dyndir}/audioop.cpython-*.so
c7fdbe10 1123%attr(755,root,root) %{py_dyndir}/binascii.cpython-*.so
c7fdbe10 1124%attr(755,root,root) %{py_dyndir}/cmath.cpython-*.so
c7fdbe10
JB
1125%attr(755,root,root) %{py_dyndir}/fcntl.cpython-*.so
1126%attr(755,root,root) %{py_dyndir}/grp.cpython-*.so
1127%attr(755,root,root) %{py_dyndir}/math.cpython-*.so
1128%attr(755,root,root) %{py_dyndir}/mmap.cpython-*.so
1129%attr(755,root,root) %{py_dyndir}/nis.cpython-*.so
1130%attr(755,root,root) %{py_dyndir}/ossaudiodev.cpython-*.so
c7fdbe10
JB
1131%attr(755,root,root) %{py_dyndir}/pyexpat.cpython-*.so
1132%attr(755,root,root) %{py_dyndir}/readline.cpython-*.so
1133%attr(755,root,root) %{py_dyndir}/resource.cpython-*.so
1134%attr(755,root,root) %{py_dyndir}/select.cpython-*.so
1135%attr(755,root,root) %{py_dyndir}/syslog.cpython-*.so
1136%attr(755,root,root) %{py_dyndir}/termios.cpython-*.so
c7fdbe10
JB
1137%attr(755,root,root) %{py_dyndir}/spwd.cpython-*.so
1138%attr(755,root,root) %{py_dyndir}/unicodedata.cpython-*.so
1139%attr(755,root,root) %{py_dyndir}/zlib.cpython-*.so
9416f74d 1140
902c69ef
JK
1141%dir %{py_libdir}/asyncio
1142%{py_libdir}/asyncio/__pycache__
1143%{py_libdir}/asyncio/*.py
1144
1145%{py_libdir}/concurrent
1146
1147%dir %{py_libdir}/ctypes
1148%dir %{py_libdir}/ctypes/macholib
1149%{py_libdir}/ctypes/__pycache__
1150%{py_libdir}/ctypes/macholib/__pycache__
1151
1152%{py_libdir}/ctypes/*.py
1153%{py_libdir}/ctypes/macholib/*.py
1154%doc %{py_libdir}/ctypes/macholib/README.ctypes
1155
1156%dir %{py_libdir}/curses
1157%{py_libdir}/curses/__pycache__
1158%{py_libdir}/curses/*.py
1159
1160%dir %{py_libdir}/dbm
1161%{py_libdir}/dbm/__pycache__
1162%{py_libdir}/dbm/*.py
1163
1164%dir %{py_libdir}/distutils
1165%dir %{py_libdir}/distutils/command
1166%doc %{py_libdir}/distutils/README
1167%{py_libdir}/distutils/__pycache__
1168%{py_libdir}/distutils/command/__pycache__
1169%{py_libdir}/distutils/*.py
1170%{py_libdir}/distutils/command/*.py
1171%{py_libdir}/distutils/command/command_template
1172
1173%dir %{py_libdir}/email
1174%dir %{py_libdir}/email/mime
1175%{py_libdir}/email/__pycache__
1176%{py_libdir}/email/mime/__pycache__
1177%{py_libdir}/email/architecture.rst
1178%{py_libdir}/email/*.py
1179%{py_libdir}/email/mime/*.py
1180
1181%dir %{py_libdir}/ensurepip
1182%{py_libdir}/ensurepip/__pycache__
1183%{py_libdir}/ensurepip/*.py
1184%{py_libdir}/ensurepip/_bundled
1185
1186%dir %{py_libdir}/html
1187%{py_libdir}/html/*.py
1188%{py_libdir}/html/__pycache__
1189
1190%dir %{py_libdir}/http
1191%{py_libdir}/http/__pycache__
1192%{py_libdir}/http/*.py
1193
1194%dir %{py_libdir}/idlelib
1195
1196%dir %{py_libdir}/importlib
1197%{py_libdir}/importlib/__pycache__
1198%{py_libdir}/importlib/*.py
91530447
JR
1199%dir %{py_libdir}/importlib/metadata
1200%{py_libdir}/importlib/metadata/__pycache__
1201%{py_libdir}/importlib/metadata/*.py
902c69ef
JK
1202
1203%dir %{py_libdir}/json
1204%{py_libdir}/json/__pycache__
1205%{py_libdir}/json/*.py
1206
1207%dir %{py_libdir}/logging
1208%{py_libdir}/logging/__pycache__
1209%{py_libdir}/logging/*.py
1210
1211%dir %{py_libdir}/multiprocessing
1212%{py_libdir}/multiprocessing/__pycache__
1213%{py_libdir}/multiprocessing/*.py
1214%dir %{py_libdir}/multiprocessing/dummy
1215%{py_libdir}/multiprocessing/dummy/__pycache__
1216%{py_libdir}/multiprocessing/dummy/*.py
1217
1218%{py_libdir}/turtledemo
1219
1220%dir %{py_libdir}/unittest
1221%{py_libdir}/unittest/__pycache__
1222%{py_libdir}/unittest/*.py
1223
1224%dir %{py_libdir}/urllib
1225%{py_libdir}/urllib/__pycache__
1226%{py_libdir}/urllib/*.py
1227
1228%dir %{py_libdir}/venv
1229%{py_libdir}/venv/__pycache__
1230%{py_libdir}/venv/*.py
1231%dir %{py_libdir}/venv/scripts
69cd33fe 1232%dir %{py_libdir}/venv/scripts/common
3e35963a 1233%{py_libdir}/venv/scripts/common/Activate.ps1
69cd33fe 1234%{py_libdir}/venv/scripts/common/activate
902c69ef 1235%dir %{py_libdir}/venv/scripts/posix
902c69ef
JK
1236%{py_libdir}/venv/scripts/posix/activate.csh
1237%{py_libdir}/venv/scripts/posix/activate.fish
1238
1239%dir %{py_libdir}/wsgiref
1240%{py_libdir}/wsgiref/__pycache__
1241%{py_libdir}/wsgiref/*.py
1242
1243%dir %{py_libdir}/xml
1244%dir %{py_libdir}/xml/dom
1245%dir %{py_libdir}/xml/etree
1246%dir %{py_libdir}/xml/parsers
1247%dir %{py_libdir}/xml/sax
1248%{py_libdir}/xml/__pycache__
1249%{py_libdir}/xml/dom/__pycache__
1250%{py_libdir}/xml/etree/__pycache__
1251%{py_libdir}/xml/parsers/__pycache__
1252%{py_libdir}/xml/sax/__pycache__
1253%{py_libdir}/xml/*.py
1254%{py_libdir}/xml/dom/*.py
1255%{py_libdir}/xml/etree/*.py
1256%{py_libdir}/xml/parsers/*.py
1257%{py_libdir}/xml/sax/*.py
1258
1259%dir %{py_libdir}/xmlrpc
1260%{py_libdir}/xmlrpc/__pycache__
1261%{py_libdir}/xmlrpc/*.py
acd14a9e 1262
c7fdbe10 1263%attr(755,root,root) %{py_dyndir}/_sqlite3.cpython-*.so
902c69ef
JK
1264%dir %{py_libdir}/sqlite3
1265%{py_libdir}/sqlite3/__pycache__
1266%{py_libdir}/sqlite3/*.py
9416f74d 1267
f31061ec
AM
1268%attr(755,root,root) %{py_dyndir}/_zoneinfo.cpython-*.so
1269%dir %{py_libdir}/zoneinfo
1270%{py_libdir}/zoneinfo/__pycache__
1271%{py_libdir}/zoneinfo/*.py
1272
2072c60e 1273%files -n pydoc3
9416f74d 1274%defattr(644,root,root,755)
19221b23 1275%attr(755,root,root) %{_bindir}/pydoc3
80febf2a 1276%attr(755,root,root) %{_bindir}/pydoc%{py_ver}
902c69ef
JK
1277%{py_libdir}/pydoc.py
1278%{py_libdir}/__pycache__/pydoc.cpython-*.py[co]
1279%dir %{py_libdir}/pydoc_data
1280%{py_libdir}/pydoc_data/__pycache__
1281%{py_libdir}/pydoc_data/*.py
1282%{py_libdir}/pydoc_data/*.css
9416f74d 1283
2072c60e 1284%files -n idle3
9416f74d 1285%defattr(644,root,root,755)
19221b23 1286%attr(755,root,root) %{_bindir}/idle3
80febf2a 1287%attr(755,root,root) %{_bindir}/idle%{py_ver}
902c69ef
JK
1288%dir %{py_libdir}/idlelib/Icons
1289%{py_libdir}/idlelib/__pycache__
1290%{py_libdir}/idlelib/*.py
1291%doc %{py_libdir}/idlelib/*.txt
1292%doc %{py_libdir}/idlelib/ChangeLog
1293%{py_libdir}/idlelib/Icons/*
1294%{py_libdir}/idlelib/*.def
9416f74d
AM
1295
1296%files devel
1297%defattr(644,root,root,755)
1298%doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp}
c7fdbe10 1299%attr(755,root,root) %{_bindir}/python%{py_ver}-config
3e35963a 1300%if "%{py_ver}" != "%{py_abi}"
c7fdbe10 1301%attr(755,root,root) %{_bindir}/python%{py_abi}-config
3e35963a 1302%endif
c7fdbe10
JB
1303%attr(755,root,root) %{_bindir}/python3-config
1304%attr(755,root,root) %{_libdir}/libpython%{py_abi}.so
1305%attr(755,root,root) %{_libdir}/libpython3.so
9416f74d 1306%{py_incdir}/*.h
002ac285 1307%exclude %{py_incdir}/pyconfig.h
3e35963a 1308%{py_incdir}/cpython
9b97d583 1309%{py_incdir}/internal
80febf2a
AM
1310%attr(755,root,root) %{py_libdir}/config-%{py_platform}/makesetup
1311%attr(755,root,root) %{py_libdir}/config-%{py_platform}/install-sh
1312%{py_libdir}/config-%{py_platform}/config.c
1313%{py_libdir}/config-%{py_platform}/config.c.in
1314%{py_libdir}/config-%{py_platform}/python.o
1315%{py_libdir}/config-%{py_platform}/python-config.py
1316%dir %{py_libdir}/config-%{py_platform}/__pycache__
1317%{py_libdir}/config-%{py_platform}/__pycache__/python-config.*
c7fdbe10 1318%{_pkgconfigdir}/python-%{py_ver}.pc
3e35963a
AM
1319%{_pkgconfigdir}/python-%{py_ver}-embed.pc
1320%{_pkgconfigdir}/python3-embed.pc
1321%if "%{py_ver}" != "%{py_abi}"
d0324804 1322%{_pkgconfigdir}/python-%{py_abi}.pc
3e35963a 1323%endif
d0324804 1324%{_pkgconfigdir}/python3.pc
c7fdbe10 1325
9416f74d
AM
1326%files devel-tools
1327%defattr(644,root,root,755)
40197233 1328%config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/python*-devel*
24586eb0 1329%attr(755,root,root) %{_bindir}/pygettext%{py_ver}
25e3a83c 1330%attr(755,root,root) %{_bindir}/pyreindent%{py_ver}
902c69ef
JK
1331%{py_libdir}/pdb.py
1332%{py_libdir}/profile.py
1333%{py_libdir}/pstats.py
1334%{py_libdir}/timeit.py
1335%{py_libdir}/__pycache__/pdb.cpython-*.py[co]
1336%{py_libdir}/__pycache__/profile.cpython-*.py[co]
1337%{py_libdir}/__pycache__/pstats.cpython-*.py[co]
1338%{py_libdir}/__pycache__/timeit.cpython-*.py[co]
9416f74d 1339
30b0ff7b 1340%files 2to3
76c5116a 1341%defattr(644,root,root,755)
eb7b678c 1342%attr(755,root,root) %{_bindir}/2to3-%{py_ver}
902c69ef
JK
1343%dir %{py_libdir}/lib2to3
1344%{py_libdir}/lib2to3/__pycache__
1345%{py_libdir}/lib2to3/*.txt
1346%{py_libdir}/lib2to3/*.pickle
1347%{py_libdir}/lib2to3/*.py
1348%dir %{py_libdir}/lib2to3/fixes
1349%{py_libdir}/lib2to3/fixes/__pycache__
1350%{py_libdir}/lib2to3/fixes/*.py
1351%dir %{py_libdir}/lib2to3/pgen2
1352%{py_libdir}/lib2to3/pgen2/__pycache__
1353%{py_libdir}/lib2to3/pgen2/*.py
30b0ff7b 1354
9416f74d
AM
1355%files static
1356%defattr(644,root,root,755)
520f15b4 1357%{_libdir}/libpython%{py_abi}.a
9416f74d
AM
1358
1359%files examples
1360%defattr(644,root,root,755)
1361%{_examplesdir}/%{name}-%{version}
1362
9a22bc7d 1363%files test
76c5116a 1364%defattr(644,root,root,755)
902c69ef
JK
1365%{py_libdir}/idlelib/idle_test
1366%{py_libdir}/test
1367%{py_libdir}/ctypes/test
1368%{py_libdir}/distutils/tests
1369%{py_libdir}/lib2to3/tests
1370%{py_libdir}/sqlite3/test
1371%{py_libdir}/tkinter/test
1372%{py_libdir}/unittest/test
9a22bc7d 1373
9416f74d
AM
1374%if %{with info}
1375%files doc-info
1376%defattr(644,root,root,755)
703efa4d 1377%{_infodir}/python.info*
9416f74d
AM
1378%endif
1379
1380%if %{with tkinter}
1381%files tkinter
1382%defattr(644,root,root,755)
902c69ef
JK
1383%dir %{py_libdir}/tkinter
1384%{py_libdir}/tkinter/__pycache__
1385%{py_libdir}/tkinter/*.py
c7fdbe10 1386%attr(755,root,root) %{py_dyndir}/_tkinter.cpython-*.so
9416f74d 1387%endif
This page took 0.443031 seconds and 4 git commands to generate.