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