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