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