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