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