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