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