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