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