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