3 # - test_pydoc fails because of PYTHONPATH override
4 # - change searchpath order so /usr/lib* is before /usr/share
5 # - kill lib-tk from searchpath
6 # - kill BR: file requirement from lib64 patch
7 # - security(CVE-2008-4108)
8 # http://securitytracker.com/alerts/2008/Sep/1020904.html
11 %bcond_with info # build info pages (requires emacs, fails in python-2.5.0)
12 %bcond_without tkinter # disables tkinter module building
13 %bcond_without tests # disables Python testing
14 %bcond_with verbose_tests # runs tests in verbose mode
15 %bcond_with openssl097 # build for openssl < 0.9.8
17 # tests which will not work on 64-bit platforms
18 %define no64bit_tests test_audioop test_rgbimg test_imageop
19 # tests which may fail because of builder environment limitations (no /proc or /dev/pts)
20 %define nobuilder_tests test_resource test_openpty test_socket test_nis test_posix test_locale test_pty test_urllib2
21 # tests which fail because of some unknown/unresolved reason (this list should be ideally just %{nil})
22 %define broken_tests test_doctest test_pydoc test_distutils test_gdb
25 %define py_prefix %{_prefix}
26 %define py_libdir %{py_prefix}/%{_lib}/python%{py_ver}
27 %define py_incdir %{_includedir}/python%{py_ver}
28 %define py_sitedir %{py_libdir}/site-packages
29 %define py_sitescriptdir %{_datadir}/python%{py_ver}/site-packages
30 %define py_dyndir %{py_libdir}/lib-dynload
32 Summary: Very high level scripting language with X interface
33 Summary(es.UTF-8): Lenguaje script de alto nivel con interfaz X
34 Summary(fr.UTF-8): Langage de script de très haut niveau avec interface X
35 Summary(pl.UTF-8): Python - język obiektowy wysokiego poziomu
36 Summary(pt_BR.UTF-8): Linguagem de programação interpretada de alto nível
37 Summary(ru.UTF-8): Язык программирования очень высокого уровня с X-интерфейсом
38 Summary(tr.UTF-8): X arayüzlü, yüksek düzeyli, kabuk yorumlayıcı dili
39 Summary(uk.UTF-8): Мова програмування дуже високого рівня з X-інтерфейсом
45 Group: Development/Languages/Python
46 Source0: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
47 # Source0-md5: fd6cc8ec0a78c44036f825e739f36e5a
48 Source1: https://www.python.org/ftp/python/doc/%{version}/%{name}-%{version}-docs-html.tar.bz2
49 # Source1-md5: de2e764e4fda62e61af49df3e640fcba
50 Source2: pyconfig.h.in
51 Patch0: %{name}-db.patch
52 Patch1: %{name}-pythonpath.patch
53 Patch2: %{name}-ac_fixes.patch
54 Patch3: %{name}-multilib.patch
55 Patch4: %{name}-verbose.patch
56 Patch5: %{name}-distro.patch
57 Patch6: %{name}-DNStests.patch
58 Patch7: %{name}-install_prefix.patch
59 Patch8: %{name}-bdist_rpm.patch
60 # https://bugs.python.org/issue10496
61 Patch9: https://bugs.python.org/file21896/nonexistent_user.patch
62 Patch10: %{name}-BLDLIBRARY.patch
63 Patch11: openssl3.patch
64 # Patch9-md5: db706fbe6de467c6e4c97c675eddf29a
65 URL: https://www.python.org/
66 BuildRequires: autoconf >= 2.65
67 BuildRequires: automake
68 BuildRequires: bluez-libs-devel
69 BuildRequires: bzip2-devel
70 BuildRequires: db-devel >= 4
71 %{?with_info:BuildRequires: emacs >= 21}
72 BuildRequires: expat-devel >= 1:1.95.7
74 BuildRequires: gdbm-devel >= 1.8.3
75 BuildRequires: gmp-devel >= 4.0
76 BuildRequires: libnsl-devel
77 BuildRequires: libstdc++-devel
78 BuildRequires: libtirpc-devel
79 BuildRequires: ncurses-ext-devel >= 5.2
80 %if %{with openssl097}
81 BuildRequires: openssl-devel < 0.9.8
83 BuildRequires: openssl-devel >= 0.9.8
85 BuildRequires: pkgconfig
86 BuildRequires: readline-devel >= 5.0
87 BuildRequires: rpm-build >= 4.6
88 BuildRequires: rpm-pythonprov
89 BuildRequires: sed >= 4.0
90 BuildRequires: sqlite3-devel >= 3.3.5
91 %{?with_info:BuildRequires: tetex-makeindex}
92 #%{?with_tkinter:BuildRequires: tix-devel >= 1:8.1.4-4}
93 %{?with_tkinter:BuildRequires: tk-devel >= 8.4.3}
94 BuildRequires: zlib-devel
95 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
97 Obsoletes: python2 < 2.7
99 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
101 %if %{with verbose_tests}
102 %define test_flags -v -l -x
104 %define test_flags -w -l -x
107 %ifarch alpha ia64 ppc64 ppc64 %{x8664}
108 %define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests}
110 %define test_list %{nobuilder_tests} %{broken_tests}
113 %ifarch sparc sparcv9
114 %define test_list %{nobuilder_tests} %{broken_tests} test_fcntl test_ioctl
118 %define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests} test_fcntl test_ioctl
122 Python is an interpreted, interactive, object-oriented programming
123 language. It incorporates modules, exceptions, dynamic typing, very
124 high level dynamic data types, and classes. Python combines remarkable
125 power with very clear syntax. It has interfaces to many system calls
126 and libraries, as well as to various window systems, and is extensible
127 in C or C++. It is also usable as an extension language for
128 applications that need a programmable interface. Finally, Python is
129 portable: it runs on many brands of UNIX, on the Mac, and on PCs under
130 MS-DOS, Windows, Windows NT, and OS/2.
132 This package contains the Python binary.
134 %description -l de.UTF-8
135 Python ist eine interpretierte, interaktive, objektorientierte
136 Programmiersprache, vergleichbar zu Tcl, Perl, Scheme oder Java.
137 Python enthält Module, Klassen, Exceptions, High-Level dynamische
138 Datentypen und dynamisches Typisieren. Python unterstützt Interfaces
139 zu vielen Systemaufrufen und Libraries, sowie verschiedene
140 Fenstersysteme (X11, Motif, Tk, Mac und MFC)
142 Programmierer können neue built-in-Module für Python in C oder C++
143 schreiben. Python kann auch als Erweiterungssprache für Applikationen
144 benutzt werden, die ein programmierbares Interface brauchen. Dieses
145 Paket enthält die meisten Standard-Python-Module, und Module zum
146 Ansprechen von Tix (Tk-widget set) und RPM.
148 %description -l es.UTF-8
149 Python es un lenguaje de scripts interpretado orientado a objetos.
150 Contiene soporte para carga dinámica de objetos, clases, módulos y
153 Es sencillo adicionar interfaces para nuevos sistemas de biblioteca a
154 través de código C, tornando Python fácil de usar en ambientes
155 particulares/personalizados. Este paquete Python incluye la mayoría de
156 los módulos padrón Python, junto con módulos para crear interfaces
157 para el conjunto de componentes Tix para Tk y RPM.
159 %description -l fr.UTF-8
160 Python est un langage de script interprété et orienté objet. Il gère
161 le chargement dynamique des objets, les classes, les modules et les
162 exceptions. L'ajout d'interfaces aux nouvelles bibliothèques systèmes
163 avec du code C est simple, ce qui rend Python facile à utiliser dans
164 des configs personnalisées.
166 Ce paquetage Python contient la plupart des modules Python standards,
167 ainsi que ceux permettant l'interfaçage avec les widgets Tix pour Tk
170 %description -l pl.UTF-8
171 Python jest interpretowanym, interaktywnym i zorientowanym obiektowo
172 językiem programowania. Jest modularny, obsługuje wyjątki, dynamiczne
173 typy, zaawansowane dynamiczne struktury danych i klasy. Python łączy w
174 sobie duże możliwości i przejrzystą składnię. Posiada interfejsy do
175 wielu wywołań systemowych i bibliotek, w tym również do różnych
176 bibliotek okienkowych. Możliwości jego można jeszcze rozszerzać
177 poprzez odpowiednie moduły pisane w C lub C++. Python może być również
178 użyty jako element aplikacji, którym potrzebny jest interpreter do
179 skryptów. I wreszcie, Python jest wieloplatformowy, działa na wielu
180 odmianach UNIX-a, Macu oraz PC pod DOS-em, Windows, WindowsNT oraz
183 Ten pakiet zawiera binarkę Pythona.
185 %description -l pt_BR.UTF-8
186 Python é uma linguagem de scripts interpretada orientada a objetos.
187 Contém suporte para carga dinâmica de objetos, classes, módulos e
188 exceções. Adicionar interfaces para novos sistemas de biblioteca
189 através de código C é simples, tornando Python fácil de usar em
190 ambientes particulares/personalizados.
192 Este pacote Python inclui a maioria do módulos padrão Python, junto
193 com módulos para interfaceamento para o conjunto de componentes Tix
196 %description -l ru.UTF-8
197 Python - это интерпретируемый, объектно-ориентированный язык
198 программирования. Он поддерживает динамическую загрузку объектов,
199 классы, модули и обработку исключительных ситуаций (exceptions).
200 Простота добавления интерфейсов к новым системным библиотекам через
201 код на языке C делает Python хорошим выбором для использования в
202 специальных конфигурациях.
204 %description -l tr.UTF-8
205 Python, nesneye yönelik bir kabuk yorumlayıcıdır. Nesnelerin,
206 sınıfların, modüllerin ve aykırı durumların dinamik yüklenmelerine
207 destek verir. C koduyla birlikte kullanımı son derece kolaydır. Bu
208 paket, standart Python birimlerinin çoğunun yanısıra Tk ve RPM için
209 arayüz birimlerini de içerir.
211 %description -l uk.UTF-8
212 Python - це інтерпретована, об'єктно-орієнтована мова програмування.
213 Він підтримує динамічну загрузку об'єктів, класи, модулі та обробку
214 виключних ситуацій (exceptions). Простота додавання інтерфейсів для
215 нових системних бібліотек через код на мові C робить Python добрим
216 вибором для використання в спеціальних конфігураціях.
219 Summary: Python library
220 Summary(pl.UTF-8): Biblioteka języka Python
221 Group: Libraries/Python
222 # broken detection in rpm/pythondeps.sh
223 Provides: python(abi) = %{py_ver}
224 # for compatibility with existing Ac packages
225 Provides: python(bytecode) = %{py_ver}
226 %{!?with_info:Obsoletes: python-doc-info < %{epoch}:%{version}-%{release}}
227 Obsoletes: python-intl
230 Python shared library and very essental modules for Python binary.
232 %description libs -l pl.UTF-8
233 Biblioteka współdzielona języka Python oraz bardzo podstawowe moduły
237 Summary: Python modules
238 Summary(pl.UTF-8): Moduły języka Python
239 Group: Libraries/Python
240 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
241 Provides: python-argparse = 1.1
242 Provides: python-cElementTree = 1.0.6
243 Provides: python-elementtree
244 Provides: pythonegg(argparse) = 1.1
245 Obsoletes: python-argparse < 1.1.99
246 Obsoletes: python-cElementTree < 1.0.7
247 Obsoletes: python-ctypes < 1.0.3
248 Obsoletes: python-curses
249 Obsoletes: python-elementtree < 1.2.7
250 Obsoletes: python-gdbm
251 Obsoletes: python-hashlib < 20081120
252 Obsoletes: python-logging < 0.5
253 Obsoletes: python-old < 1:2.5
254 # just dropped module? 1.5 is on pypi now
255 Obsoletes: python-optik < 1.5
256 Obsoletes: python-ssl < 1.17
257 Obsoletes: python-xml
258 Obsoletes: python-xmlrpc <= 1.0.1
259 Obsoletes: python-zlib <= 1.0
260 %requires_ge_to openssl openssl-devel
263 Python officially distributed modules.
265 %description modules -l pl.UTF-8
266 Oficjalnie rozprowadzane moduły języka Python.
268 %package modules-sqlite
269 Summary: Python SQLite modules
270 Summary(pl.UTF-8): Moduły SQLite języka Python
271 Group: Libraries/Python
272 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
273 Provides: python(sqlite)
275 %description modules-sqlite
276 Python officially distributed sqlite module.
278 %description modules-sqlite -l pl.UTF-8
279 Oficjalnie rozprowadzany moduł sqlite języka Python.
282 Summary: Python interactive module documentation access support
283 Summary(pl.UTF-8): Interaktywne korzystanie z dokumentacji modułów języka Python
285 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
286 Obsoletes: python-pydoc < 1:2.3-2
288 %description -n pydoc
289 Python interactive module documentation access support.
291 %description -n pydoc -l pl.UTF-8
292 Interaktywne korzystanie z dokumentacji modułów języka Python.
295 Summary: IDE for Python language
296 Summary(pl.UTF-8): IDE dla języka Python
297 Group: Applications/Editors
298 Requires: %{name}-tkinter = %{epoch}:%{version}-%{release}
299 Obsoletes: python-idle < 1:2.3-2
302 IDE for Python language.
304 %description -n idle -l pl.UTF-8
305 IDE dla języka Python.
308 Summary: Libraries and header files for building python code
309 Summary(de.UTF-8): Libraries und Header-Dateien zum Erstellen von Python-Code
310 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para construir programas en python
311 Summary(fr.UTF-8): Bibliothèques et en-têtes pour construire du code python
312 Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki Pythona
313 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para o Python
314 Summary(ru.UTF-8): Библиотеки и хедеры для построения кода на языке Python
315 Summary(tr.UTF-8): Python ile geliştirme yapmak için gerekli dosyalar
316 Summary(uk.UTF-8): Бібліотеки та хедери для програмування на мові Python
317 Group: Development/Languages/Python
318 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
319 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
320 Obsoletes: python2-devel < 2.7
323 The Python interpreter is relatively easy to extend with dynamically
324 loaded extensions and to embed in other programs. This package
325 contains the header files and libraries which are needed to do both of
328 %description devel -l de.UTF-8
329 Der Python-Interpretierer ist relativ einfach anhand von dynamisch
330 ladbaren Erweiterungen auszubauen und läßt sich in andere Programme
331 integrieren. Dieses Paket enthält die Header-Dateien und Libraries,
332 die für beide Aufgaben erforderlich sind.
334 %description devel -l es.UTF-8
335 El interpretador Python permite incluir con facilidad extensiones
336 cargadas dinámicamente. Python es también fácil de ser empotrado en
337 otros programas. Este paquete contiene los archivos de inclusión y
338 bibliotecas necesarios para estas dos tareas.
340 %description devel -l fr.UTF-8
341 L'interpréteur Python est relativement facile à étendre avec des
342 extensions chargées dynamiquement et à insérer dans d'autres
343 programmes. Ce paquetage contient les en-têtes et les bibliothèques
344 nécessaires à ces deux tâches.
346 %description devel -l pl.UTF-8
347 Interpreter Pythona jest w miarę łatwy do rozszerzania przy pomocy
348 dynamicznie ładowanych rozszerzeń napisanych w C lub C++ oraz
349 osadzania w innych programach. Ten pakiet zawiera pliki nagłówkowe i
350 wszystko inne co potrzebne do tych celów.
352 %description devel -l pt_BR.UTF-8
353 O interpretador Python permite incluir com facilidade extensões
354 carregadas dinamicamente. Python é também fácil de ser embutido em
355 outros programas. Este pacote contém os arquivos de inclusão e
356 bibliotecas necessários para estas duas tarefas.
358 %description devel -l ru.UTF-8
359 Интерпретатор Python относительно легко расширяется при помощи
360 динамически загружаемых расширений и встраивается в другие программы.
361 Этот пакет содержит хедеры и библиотеки, необходимые для обеих этих
364 %description devel -l tr.UTF-8
365 Bu paket, Python ile geliştirme yapılabilmesi için gerekli başlık
366 dosyalarını ve kitaplıkları içerir.
368 %description devel -l uk.UTF-8
369 Інтерпретатор Python відносно легко розширюється за допомогою
370 розширень з динамічною загрузкою та вбудовується в інші програми. Цей
371 пакет містить хедери та бібліотеки, необхідні для обох цих задач.
374 Summary: Python module sources
375 Summary(pl.UTF-8): Pliki źródłowe modułów Pythona
376 Group: Development/Languages/Python
377 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
379 %description devel-src
380 Python module sources.
382 %description devel-src -l pl.UTF-8
383 Pliki źródłowe modułów Pythona.
386 Summary: Python development tools
387 Summary(pl.UTF-8): Narzędzia programistyczne języka Python
388 Group: Development/Languages/Python
389 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
391 %description devel-tools
392 Python development tools such as profilers and debugger.
394 %description devel-tools -l pl.UTF-8
395 Narzędzia programistyczne języka Python takie jak profiler oraz
399 Summary: Automated Python 2 to 3 code translation
400 Summary(pl.UTF-8): Automatyczne tłumaczenie kodu Pythona 2 na 3
401 Group: Development/Languages/Python
404 2to3 is a Python program that reads Python 2.x source code and applies
405 a series of fixers to transform it into valid Python 3.x code. The
406 standard library contains a rich set of fixers that will handle almost
407 all code. 2to3 supporting library lib2to3 is, however, a flexible and
408 generic library, so it is possible to write your own fixers for 2to3.
409 lib2to3 could also be adapted to custom applications in which Python
410 code needs to be edited automatically.
412 %description 2to3 -l pl.UTF-8
413 2to3 to program w Pythonie czytający od źródłowy w Pythonie 2.x i
414 aplikujący serię poprawek przekształcających go w poprawny kod w
415 Pythonie 3.x. Biblioteka standardowa zawiera duży zbiór poprawek
416 obsługujących większość kodu. Biblioteka wspierająca 2to3 (lib2to3)
417 jest jednak elastyczną i ogólną biblioteką, więc można pisać własne
418 poprawki dla 2to3. lib2to3 można także zaadaptować na potrzeby
419 własnych zastosowań, w których kod w Pythonie musi być modyfikowany
423 Summary: Static python library
424 Summary(pl.UTF-8): Statyczna biblioteka Pythona
425 Group: Development/Languages/Python
426 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
429 Static python library.
431 %description static -l pl.UTF-8
432 Statyczna biblioteka Pythona.
435 Summary: Documentation on Python
436 Summary(de.UTF-8): Dokumentation zu Python
437 Summary(es.UTF-8): Documentación para Python
438 Summary(fr.UTF-8): Documentation sur Python
439 Summary(pl.UTF-8): Dokumentacja do Pythona
440 Summary(pt_BR.UTF-8): Documentação para a linguagem de programação Python
441 Summary(ru.UTF-8): Документация по языку Python
442 Summary(tr.UTF-8): Python belgeleri
443 Summary(uk.UTF-8): Документація по мові Python
445 Obsoletes: python-docs < 1.5.2-18
449 This package contains documentation on the Python language and
450 interpretor as a mix of plain ASCII files and LaTeX sources.
452 %description doc -l de.UTF-8
453 Dieses Paket enthält Dokumentationen zu Python (Sprache und
454 Interpreter) in Form von einfachen ASCII-Dateien und LaTeX-Quellen.
456 %description doc -l es.UTF-8
457 Documentación para Python. Contiene archivos en texto y PostScript.
459 %description doc -l fr.UTF-8
460 Ce paquetage contient la documentation sur le langage python et sur
461 son interpréteur sous forme de fichiers ASCII et LaTeX.
463 %description doc -l pl.UTF-8
464 Oficjalna dokumentacja do Pythona. Zawiera przykładowe programy,
465 narzędzia i dokumentację. Strony podręcznika man znajdują się w
466 głównym pakiecie. Ten pakiet nie zawiera źródeł dokumentacji
467 napisanych w LaTeXu, tylko gotowe do wykorzystania pliki postscriptowe
470 %description doc -l pt_BR.UTF-8
471 O pacote python-doc contém documentação para a linguagem de
472 programação e para o interpretador Python. Fornecida em arquivos texto
475 %description doc -l ru.UTF-8
476 Этот пакет содержит документацию по собственно языку Python и по
477 исполняющему его интерпретатору в виде набора текстовых файлов и
478 исходных текстов в формате LaTeX.
480 %description doc -l tr.UTF-8
481 Bu paket, Python dili ile ilgili belgeleri ve düz ASCII dosyaları ve
482 LaTeX kaynaklarının bir karışımı olan yorumlayıcıyı içerir.
484 %description doc -l uk.UTF-8
485 Цей пакет містить документацію по власне мові Python та по виконуючому
486 її інтерпретатору у вигляді набора текстових файлів та вихідних
487 текстів у форматі LaTeX.
490 Summary: Documentation on Python in texinfo format
491 Summary(pl.UTF-8): Dokumentacja do Pythona w formacie texinfo
494 %description doc-info
495 Documentation on Python in texinfo format.
497 %description doc-info -l pl.UTF-8
498 Dokumentacja do Pythona w formacie texinfo.
501 Summary: Standard Python interface to the Tk GUI toolkit
502 Summary(de.UTF-8): Grafische Tk-Schnittstelle für Python
503 Summary(es.UTF-8): Interfaz de GUI Tk para Python
504 Summary(fr.UTF-8): Interface graphique Tk pour Python
505 Summary(pl.UTF-8): Standardowy interfejs Pythona do biblioteki Tk
506 Summary(pt_BR.UTF-8): Interface GUI Tk para Phyton
507 Summary(tr.UTF-8): Python için grafik kullanıcı arayüzü
508 Group: Libraries/Python
509 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
510 Requires: tcl >= 8.4.3
511 Requires: tix >= 1:8.1.4-4
512 Requires: tk >= 8.4.3
513 Obsoletes: tkinter < 1:2.3-2
516 Standard Python interface to the Tk GUI toolkit.
518 %description tkinter -l de.UTF-8
519 Eine grafische Schnittstelle für Python, basierend auf Tcl/Tk, und von
520 vielen Konfigurations-Tools genutzt.
522 %description tkinter -l es.UTF-8
523 Una interfaz gráfica para Python, basada en Tcl/Tk, y usada por muchas
524 herramientas de configuración.
526 %description tkinter -l fr.UTF-8
527 Interface graphique pour Python, basée sur Tcl/Tk et utilisée par
528 beaucoup des outils de configuration.
530 %description tkinter -l pl.UTF-8
531 Standardowy interfejs Pythona do biblioteki Tk.
533 %description tkinter -l pt_BR.UTF-8
534 Uma interface gráfica para Python, baseada em Tcl/Tk, e usada por
535 muitas ferramentas de configuração.
537 %description tkinter -l ru.UTF-8
538 Графический интерфейс (GUI) для Python, построенный на Tcl/Tk.
540 %description tkinter -l tr.UTF-8
541 Python için Tcl/Tk'ye dayalı ve pek çok ayarlama aracı tarafından
542 kullanılan grafik bir arayüzdür.
544 %description tkinter -l uk.UTF-8
545 Графічний інтерфейс (GUI) для Python, побудований на Tcl/Tk.
548 Summary: Example programs in Python
549 Summary(pl.UTF-8): Przykładowe programy w Pythonie
550 Group: Development/Languages/Python
551 Obsoletes: python-tools < 2.2
554 %description examples
555 Example programs in Python.
557 These are for Python 2.3.4, not %{version}.
559 %description examples -l pl.UTF-8
560 Przykładowe programy w Pythonie.
562 Przykłady te są dla Pythona 2.3.4, nie %{version}.
565 Summary: Python test modules
566 Summary(pl.UTF-8): Moduły testowe Pythona
567 Group: Development/Languages/Python
568 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
569 Suggests: %{name}-devel-src = %{epoch}:%{version}-%{release}
574 Unit tests for Python, some may be reused for testing other Python
577 %description test -l pl.UTF-8
578 Moduły testowe Pythona.
580 Niektóre z nich mogą być używane do testowania oprogramowania
581 napisanego w Pythonie.
584 %setup -q -n Python-%{version}
600 sed -i -e 's#db_setup_debug = False#db_setup_debug = True#g' setup.py
602 # remove if Lib/plat-linux3 exists
603 [ -d Lib/plat-linux3 ] && exit 1
604 cp -a Lib/plat-linux2 Lib/plat-linux3
606 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' Lib/cgi.py
607 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' Lib/{UserString,base64,cProfile,keyword,mimify,pdb,platform,profile,pydoc,quopri,smtpd,smtplib,symbol,tabnanny,timeit,trace,uu,webbrowser}.py
608 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' Lib/encodings/rot_13.py
609 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' Lib/idlelib/PyShell.py
610 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' Lib/lib2to3/pgen2/token.py
611 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' Lib/lib2to3/tests/{pytree_idempotency,data/different_encoding,data/false_encoding}.py
612 %{__sed} -i -e '1s,/usr/bin/env python2,%{__python},' Lib/test/bisect_cmd.py
613 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' Lib/test/{curses_tests,pystone,re_tests,regrtest}.py
614 %{__sed} -i -e '1s,@EXENAME@,%{__python},' Misc/python-config.in
615 %{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' Tools/ssl/make_ssl_data.py
616 %{__sed} -i -e '1s,/usr/bin/python\>,%{__python},' Tools/{gdb/libpython,pybench/pybench}.py
617 grep -l '/usr/bin/env python' -r Demo Tools | xargs %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},'
625 CPPFLAGS="%{rpmcppflags}" \
626 LDFLAGS="%{rpmldflags}" \
627 ac_cv_posix_semaphores_enabled=yes \
628 ac_cv_broken_sem_getvalue=no \
629 %{?with_debug:--with-pydebug} \
633 --enable-unicode=ucs4 \
635 --with-dbmliborder=gdbm:bdb \
638 %{__make} 2>&1 | awk '
639 BEGIN { fail = 0; logmsg = ""; }
641 if ($0 ~ /\*\*\* WARNING:/) {
647 END { if (fail) { print "\nPROBLEMS FOUND:"; print logmsg; exit(1); } }'
651 WITHIN_PYTHON_RPM_BUILD=1 %{__make} -j1 test \
652 TESTOPTS="%{test_flags} %{test_list}" \
653 TESTPYTHON="LD_LIBRARY_PATH=`pwd` PYTHONHOME=`pwd` PYTHONPATH=`pwd`/Lib:`pwd`/Lib/lib-tk:`pwd`/build/lib.linux-`uname -m`-%{py_ver} ./python -tt"
657 rm -rf $RPM_BUILD_ROOT
658 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}} \
659 $RPM_BUILD_ROOT{%{py_sitedir},%{_mandir}/man1} \
660 $RPM_BUILD_ROOT%{_prefix}/local/%{_lib}/python%{py_ver}/site-packages \
661 $RPM_BUILD_ROOT%{py_sitescriptdir} \
662 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
663 $RPM_BUILD_ROOT%{_infodir} \
664 $RPM_BUILD_ROOT%{_docdir} \
665 $RPM_BUILD_ROOT/etc/shrc.d
668 DESTDIR=$RPM_BUILD_ROOT
670 # docs in constant location
671 ln -sf python-doc-%{version} $RPM_BUILD_ROOT%{_docdir}/python-doc
674 %{__make} -C Doc/info
675 cp -p Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
678 cp -p Makefile.pre.in $RPM_BUILD_ROOT%{py_libdir}/config
680 %{__mv} $RPM_BUILD_ROOT{%{py_libdir}/config,%{_libdir}}/libpython%{py_ver}.a
681 ln -sf libpython%{py_ver}.a $RPM_BUILD_ROOT%{_libdir}/libpython.a
682 ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython.so
683 ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython%{py_ver}.so
685 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
686 cp -a Tools Demo $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
689 # create several useful aliases, such as timeit.py, profile.py, pdb.py, smtpd.py
692 # for python devel tools
693 for script in timeit profile pdb pstats; do
694 echo alias $script.py=\"python -m ${script}\"
695 done > $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh
698 < $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh \
699 > $RPM_BUILD_ROOT/etc/shrc.d/python-devel.csh
702 for script in smtpd webbrowser; do
703 echo alias $script.py=\"python -m ${script}\"
704 done > $RPM_BUILD_ROOT/etc/shrc.d/python-modules.sh
705 %{__rm} $RPM_BUILD_ROOT%{_bindir}/smtpd.py
708 < $RPM_BUILD_ROOT/etc/shrc.d/python-modules.sh \
709 > $RPM_BUILD_ROOT/etc/shrc.d/python-modules.csh
711 # just to cut the noise, as they are not packaged (now)
712 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/ctypes/macholib/fetch_macholib
713 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/distutils/command/command_template
714 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/distutils/command/wininst-*.exe
715 %{__rm} -r $RPM_BUILD_ROOT%{py_libdir}/idlelib/idle_test
716 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/ChangeLog
717 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/help.html
718 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/idlelib/idle.pyw
719 %{__rm} -r $RPM_BUILD_ROOT%{py_libdir}/plat-*/regen
721 %{__rm} $RPM_BUILD_ROOT%{py_libdir}/pdb.doc
723 find $RPM_BUILD_ROOT%{py_libdir} -name \*.bat -exec rm {} \;
724 find $RPM_BUILD_ROOT%{py_libdir} -name \*.txt -exec rm {} \;
725 find $RPM_BUILD_ROOT%{py_libdir} -name README\* -exec rm {} \;
727 %{__mv} $RPM_BUILD_ROOT%{py_incdir}/pyconfig.h $RPM_BUILD_ROOT%{py_libdir}/config/pyconfig.h
728 sed -e's#@PREFIX@#%{_prefix}#g;s#@PY_VER@#%{py_ver}#g' %{SOURCE2} > $RPM_BUILD_ROOT%{py_incdir}/pyconfig.h
731 rm -rf $RPM_BUILD_ROOT
733 %post libs -p /sbin/ldconfig
735 %postun libs -p /sbin/ldconfig
737 %post doc-info -p /sbin/postshell
738 -/usr/sbin/fix-info-dir -c %{_infodir}
740 %postun doc-info -p /sbin/postshell
741 -/usr/sbin/fix-info-dir -c %{_infodir}
744 %defattr(644,root,root,755)
745 %attr(755,root,root) %{_bindir}/python
746 %attr(755,root,root) %{_bindir}/python2
747 %attr(755,root,root) %{_bindir}/python%{py_ver}
748 %{_mandir}/man1/python.1*
749 %{_mandir}/man1/python2.1*
752 %defattr(644,root,root,755)
754 %config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/python-modules*
755 %exclude %{py_libdir}/_abcoll.py[co]
756 %exclude %{py_libdir}/abc.py[co]
757 %exclude %{py_libdir}/UserDict.py[co]
758 %exclude %{py_libdir}/codecs.py[co]
759 %exclude %{py_libdir}/copy_reg.py[co]
760 %exclude %{py_libdir}/genericpath.py[co]
761 %exclude %{py_libdir}/linecache.py[co]
762 %exclude %{py_libdir}/locale.py[co]
763 %exclude %{py_libdir}/posixpath.py[co]
764 %exclude %{py_libdir}/profile.py[co]
765 %exclude %{py_libdir}/pstats.py[co]
766 %exclude %{py_libdir}/pydoc.py[co]
767 %exclude %{py_libdir}/re.py[co]
768 %exclude %{py_libdir}/site.py[co]
769 %exclude %{py_libdir}/sre_*.py[co]
770 %exclude %{py_libdir}/stat.py[co]
771 %exclude %{py_libdir}/sysconfig.py[co]
772 %exclude %{py_libdir}/_sysconfigdata.py[co]
773 %exclude %{py_libdir}/timeit.py[co]
774 %exclude %{py_libdir}/os.py[co]
775 %exclude %{py_libdir}/_weakrefset.py[co]
776 %exclude %{py_libdir}/encodings/*.py[co]
777 %exclude %{py_libdir}/traceback.py[co]
778 %exclude %{py_libdir}/types.py[co]
779 %exclude %{py_libdir}/warnings.py[co]
781 %{py_libdir}/*.py[co]
783 %{py_dyndir}/Python-%{version}-py%{py_ver}.egg-info
786 # list .so modules to be sure that all of them are built
789 # three modules below do not work on 64-bit architectures
790 # see Python README file for explanation
791 %ifnarch alpha ia64 ppc64 sparc64 %{x8664} aarch64
792 %attr(755,root,root) %{py_dyndir}/imageop.so
793 # sizeof(long) != sizeof(int), so dl module will not be built on 64-bit
795 %attr(755,root,root) %{py_dyndir}/dl.so
798 %attr(755,root,root) %{py_dyndir}/audioop.so
799 %attr(755,root,root) %{py_dyndir}/array.so
800 %attr(755,root,root) %{py_dyndir}/binascii.so
801 %attr(755,root,root) %{py_dyndir}/_bisect.so
802 %attr(755,root,root) %{py_dyndir}/_bsddb.so
803 %attr(755,root,root) %{py_dyndir}/bz2.so
804 %attr(755,root,root) %{py_dyndir}/cmath.so
805 %attr(755,root,root) %{py_dyndir}/_codecs_cn.so
806 %attr(755,root,root) %{py_dyndir}/_codecs_hk.so
807 %attr(755,root,root) %{py_dyndir}/_codecs_iso2022.so
808 %attr(755,root,root) %{py_dyndir}/_codecs_jp.so
809 %attr(755,root,root) %{py_dyndir}/_codecs_kr.so
810 %attr(755,root,root) %{py_dyndir}/_codecs_tw.so
811 %attr(755,root,root) %{py_dyndir}/_collections.so
812 %attr(755,root,root) %{py_dyndir}/cPickle.so
813 %attr(755,root,root) %{py_dyndir}/crypt.so
814 %attr(755,root,root) %{py_dyndir}/cStringIO.so
815 %attr(755,root,root) %{py_dyndir}/_csv.so
816 %attr(755,root,root) %{py_dyndir}/_ctypes*.so
817 %attr(755,root,root) %{py_dyndir}/_curses_panel.so
818 %attr(755,root,root) %{py_dyndir}/_curses.so
819 %attr(755,root,root) %{py_dyndir}/datetime.so
820 %attr(755,root,root) %{py_dyndir}/_elementtree.so
821 %attr(755,root,root) %{py_dyndir}/_functools.so
822 %attr(755,root,root) %{py_dyndir}/_hashlib.so
823 %attr(755,root,root) %{py_dyndir}/_heapq.so
824 %attr(755,root,root) %{py_dyndir}/_io.so
825 %attr(755,root,root) %{py_dyndir}/_json.so
826 %attr(755,root,root) %{py_dyndir}/_locale.so
827 %attr(755,root,root) %{py_dyndir}/_lsprof.so
828 %attr(755,root,root) %{py_dyndir}/_multibytecodec.so
829 %attr(755,root,root) %{py_dyndir}/_multiprocessing.so
830 %attr(755,root,root) %{py_dyndir}/_random.so
831 %{?with_openssl097:%attr(755,root,root) %{py_dyndir}/_sha*.so}
832 %attr(755,root,root) %{py_dyndir}/_socket.so
833 %attr(755,root,root) %{py_dyndir}/_ssl.so
834 %attr(755,root,root) %{py_dyndir}/_testcapi.so
836 %attr(755,root,root) %{py_dyndir}/dbm.so
838 %attr(755,root,root) %{py_dyndir}/fcntl.so
839 %attr(755,root,root) %{py_dyndir}/future_builtins.so
840 %attr(755,root,root) %{py_dyndir}/gdbm.so
841 %attr(755,root,root) %{py_dyndir}/grp.so
842 %attr(755,root,root) %{py_dyndir}/itertools.so
843 %attr(755,root,root) %{py_dyndir}/linuxaudiodev.so
844 %attr(755,root,root) %{py_dyndir}/math.so
845 %attr(755,root,root) %{py_dyndir}/mmap.so
846 %attr(755,root,root) %{py_dyndir}/nis.so
847 %attr(755,root,root) %{py_dyndir}/operator.so
848 %attr(755,root,root) %{py_dyndir}/ossaudiodev.so
849 %attr(755,root,root) %{py_dyndir}/parser.so
850 %attr(755,root,root) %{py_dyndir}/pyexpat.so
851 %attr(755,root,root) %{py_dyndir}/readline.so
852 %attr(755,root,root) %{py_dyndir}/resource.so
853 %attr(755,root,root) %{py_dyndir}/select.so
854 %attr(755,root,root) %{py_dyndir}/strop.so
855 %attr(755,root,root) %{py_dyndir}/syslog.so
856 %attr(755,root,root) %{py_dyndir}/termios.so
857 %attr(755,root,root) %{py_dyndir}/time.so
858 %attr(755,root,root) %{py_dyndir}/spwd.so
859 %attr(755,root,root) %{py_dyndir}/unicodedata.so
860 %attr(755,root,root) %{py_dyndir}/zlib.so
862 %dir %{py_libdir}/plat-*
863 %{py_libdir}/plat-*/*.py[co]
865 %dir %{py_libdir}/bsddb
866 %{py_libdir}/bsddb/*.py[co]
868 %dir %{py_libdir}/compiler
869 %{py_libdir}/compiler/*.py[co]
871 %dir %{py_libdir}/ctypes
872 %dir %{py_libdir}/ctypes/macholib
873 %{py_libdir}/ctypes/*.py[co]
874 %{py_libdir}/ctypes/macholib/*.py[co]
876 %dir %{py_libdir}/curses
877 %{py_libdir}/curses/*.py[co]
879 %dir %{py_libdir}/distutils
880 %dir %{py_libdir}/distutils/command
881 %{py_libdir}/distutils/*.py[co]
882 %{py_libdir}/distutils/command/*.py[co]
884 %dir %{py_libdir}/email
885 %dir %{py_libdir}/email/mime
886 %{py_libdir}/email/*.py[co]
887 %{py_libdir}/email/mime/*.py[co]
889 %dir %{py_libdir}/ensurepip
890 %{py_libdir}/ensurepip/*.py[co]
891 %{py_libdir}/ensurepip/_bundled
893 %dir %{py_libdir}/idlelib
895 %dir %{py_libdir}/importlib
896 %{py_libdir}/importlib/*.py[co]
898 %dir %{py_libdir}/json
899 %{py_libdir}/json/*.py[co]
901 %dir %{py_libdir}/logging
902 %{py_libdir}/logging/*.py[co]
904 %dir %{py_libdir}/multiprocessing
905 %dir %{py_libdir}/multiprocessing/dummy
906 %{py_libdir}/multiprocessing/*.py[co]
907 %{py_libdir}/multiprocessing/dummy/*.py[co]
909 %dir %{py_libdir}/unittest
910 %{py_libdir}/unittest/*.py[co]
911 %dir %{py_libdir}/unittest/test
912 %{py_libdir}/unittest/test/*.py[co]
914 %dir %{py_libdir}/wsgiref
915 %{py_libdir}/wsgiref/*.py[co]
916 %{py_libdir}/wsgiref.egg-info
918 %dir %{py_libdir}/xml
919 %dir %{py_libdir}/xml/dom
920 %dir %{py_libdir}/xml/etree
921 %dir %{py_libdir}/xml/parsers
922 %dir %{py_libdir}/xml/sax
923 %{py_libdir}/xml/*.py[co]
924 %{py_libdir}/xml/dom/*.py[co]
925 %{py_libdir}/xml/etree/*.py[co]
926 %{py_libdir}/xml/parsers/*.py[co]
927 %{py_libdir}/xml/sax/*.py[co]
929 %files modules-sqlite
930 %defattr(644,root,root,755)
931 %attr(755,root,root) %{py_dyndir}/_sqlite3.so
932 %dir %{py_libdir}/sqlite3
933 %{py_libdir}/sqlite3/*.py[co]
936 %defattr(644,root,root,755)
937 %attr(755,root,root) %{_libdir}/libpython%{py_ver}.so.*
941 %dir %{_datadir}/python%{py_ver}
942 %dir %{py_sitescriptdir}
945 # for locally installed packages
946 %dir %{_prefix}/local/%{_lib}/python%{py_ver}
947 %dir %{_prefix}/local/%{_lib}/python%{py_ver}/site-packages
949 # shared modules required by python library
950 %attr(755,root,root) %{py_dyndir}/_struct.so
952 # modules required by python library
953 %{py_libdir}/_abcoll.py[co]
954 %{py_libdir}/abc.py[co]
955 %{py_libdir}/UserDict.py[co]
956 %{py_libdir}/codecs.py[co]
957 %{py_libdir}/copy_reg.py[co]
958 %{py_libdir}/genericpath.py[co]
959 %{py_libdir}/linecache.py[co]
960 %{py_libdir}/locale.py[co]
961 %{py_libdir}/posixpath.py[co]
962 %{py_libdir}/re.py[co]
963 %{py_libdir}/site.py[co]
964 %{py_libdir}/sre_*.py[co]
965 %{py_libdir}/stat.py[co]
966 %{py_libdir}/sysconfig.py[co]
967 %{py_libdir}/_sysconfigdata.py[co]
968 %{py_libdir}/os.py[co]
969 %{py_libdir}/_weakrefset.py[co]
970 %{py_libdir}/traceback.py[co]
971 # needed by the dynamic sys.lib patch
972 %{py_libdir}/types.py[co]
973 %{py_libdir}/warnings.py[co]
975 # encodings required by python library
976 %dir %{py_libdir}/encodings
977 %{py_libdir}/encodings/*.py[co]
979 # required by sysconfig.py
980 %dir %{py_libdir}/config
981 %{py_libdir}/config/Makefile
982 %{py_libdir}/config/pyconfig.h
984 %{py_incdir}/pyconfig.h
987 %defattr(644,root,root,755)
988 %attr(755,root,root) %{_bindir}/pydoc
989 %{py_libdir}/pydoc.py[co]
990 %dir %{py_libdir}/pydoc_data
991 %{py_libdir}/pydoc_data/*.py[co]
994 %defattr(644,root,root,755)
995 %attr(755,root,root) %{_bindir}/idle
996 %dir %{py_libdir}/idlelib/Icons
997 %{py_libdir}/idlelib/*.py[co]
998 %{py_libdir}/idlelib/Icons/*
999 %{py_libdir}/idlelib/*.def
1002 %defattr(644,root,root,755)
1003 %doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp}
1004 %attr(755,root,root) %{_bindir}/python-config
1005 %attr(755,root,root) %{_bindir}/python2-config
1006 %attr(755,root,root) %{_bindir}/python%{py_ver}-config
1007 %attr(755,root,root) %{_libdir}/libpython%{py_ver}.so
1008 %attr(755,root,root) %{_libdir}/libpython.so
1010 %exclude %{py_incdir}/pyconfig.h
1011 %{_pkgconfigdir}/python.pc
1012 %{_pkgconfigdir}/python2.pc
1013 %{_pkgconfigdir}/python-%{py_ver}.pc
1015 %attr(755,root,root) %{py_libdir}/config/makesetup
1016 %attr(755,root,root) %{py_libdir}/config/install-sh
1017 %{py_libdir}/config/Makefile.pre.in
1018 %{py_libdir}/config/Setup
1019 %{py_libdir}/config/Setup.config
1020 %{py_libdir}/config/Setup.local
1021 %{py_libdir}/config/config.c
1022 %{py_libdir}/config/config.c.in
1023 %{py_libdir}/config/python.o
1026 %defattr(644,root,root,755)
1027 %attr(-,root,root) %{py_libdir}/*.py
1028 %{py_libdir}/plat-*/*.py
1029 %{py_libdir}/bsddb/*.py
1030 %{py_libdir}/ctypes/*.py
1031 %{py_libdir}/ctypes/macholib/*.py
1032 %{py_libdir}/compiler/*.py
1033 %{py_libdir}/curses/*.py
1034 %{py_libdir}/distutils/*.py
1035 %{py_libdir}/distutils/command/*.py
1036 %{py_libdir}/email/*.py
1037 %{py_libdir}/email/mime/*.py
1038 %{py_libdir}/encodings/*.py
1039 %{py_libdir}/hotshot/*.py
1040 %{py_libdir}/ensurepip/*.py
1041 %{py_libdir}/idlelib/*.py
1042 %{py_libdir}/importlib/*.py
1043 %{py_libdir}/json/*.py
1044 %{py_libdir}/lib2to3/*.py
1045 %{py_libdir}/lib2to3/fixes/*.py
1046 %{py_libdir}/lib2to3/pgen2/*.py
1047 %{py_libdir}/logging/*.py
1048 %{py_libdir}/multiprocessing/*.py
1049 %{py_libdir}/multiprocessing/dummy/*.py
1050 %{py_libdir}/pydoc_data/*.py
1051 %{py_libdir}/sqlite3/*.py
1052 %{py_libdir}/unittest/*.py
1053 %{py_libdir}/unittest/test/*.py
1054 %{py_libdir}/wsgiref/*.py
1055 %{py_libdir}/xml/*.py
1056 %{py_libdir}/xml/dom/*.py
1057 %{py_libdir}/xml/etree/*.py
1058 %{py_libdir}/xml/parsers/*.py
1059 %{py_libdir}/xml/sax/*.py
1062 %defattr(644,root,root,755)
1063 %config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/python-devel*
1065 %attr(755,root,root) %{py_dyndir}/_hotshot.so
1066 %dir %{py_libdir}/hotshot
1067 %{py_libdir}/hotshot/*.py[co]
1068 %{py_libdir}/profile.py[co]
1069 %{py_libdir}/pstats.py[co]
1070 %{py_libdir}/timeit.py[co]
1073 %defattr(644,root,root,755)
1074 %attr(755,root,root) %{_bindir}/2to3
1075 %dir %{py_libdir}/lib2to3
1076 %dir %{py_libdir}/lib2to3/fixes
1077 %dir %{py_libdir}/lib2to3/pgen2
1078 %{py_libdir}/lib2to3/*.py[co]
1079 %{py_libdir}/lib2to3/*.pickle
1080 %{py_libdir}/lib2to3/fixes/*.py[co]
1081 %{py_libdir}/lib2to3/pgen2/*.py[co]
1084 %defattr(644,root,root,755)
1085 %{_libdir}/libpython%{py_ver}.a
1086 %{_libdir}/libpython.a
1089 %defattr(644,root,root,755)
1090 %{_examplesdir}/%{name}-%{version}
1093 %defattr(644,root,root,755)
1095 %{py_libdir}/bsddb/test
1096 %{py_libdir}/ctypes/test
1097 %{py_libdir}/distutils/tests
1098 %{py_libdir}/email/test
1099 %{py_libdir}/sqlite3/test
1100 %{py_libdir}/json/tests
1101 %{py_libdir}/lib2to3/tests
1104 %defattr(644,root,root,755)
1105 %doc python-%{version}-docs-html/*
1106 %{_docdir}/python-doc
1110 %defattr(644,root,root,755)
1116 %defattr(644,root,root,755)
1118 %attr(755,root,root) %{py_dyndir}/_tkinter.so