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