3 # - test_distutils fails for unknown reason: (does it still do with new lib64 patch?)
4 # AssertionError: '/tmp/tmpaomC0l/installation/share/python' != '/tmp/tmpaomC0l/installation/lib/python'
5 # - test_pydoc fails because of PYTHONPATH override
6 # - change searchpath order so /usr/lib* is before /usr/share
7 # - kill lib-tk from searchpath
8 # - kill BR: file requirement from lib64 patch
9 # - security(CVE-2008-4108)
10 # http://securitytracker.com/alerts/2008/Sep/1020904.html
13 %bcond_with info # build info pages (requires emacs, fails in python-2.5.0)
14 %bcond_without tkinter # disables tkinter module building
15 %bcond_without tests # disables Python testing
16 %bcond_with verbose_tests # runs tests in verbose mode
17 %bcond_with openssl097
19 # tests which will not work on 64-bit platforms
20 %define no64bit_tests test_audioop test_rgbimg test_imageop
21 # tests which may fail because of builder environment limitations (no /proc or /dev/pts)
22 %define nobuilder_tests test_resource test_openpty test_socket test_nis test_posix test_locale test_pty test_urllib2
23 # tests which fail because of some unknown/unresolved reason (this list should be empty)
24 %define broken_tests test_anydbm test_bsddb test_re test_shelve test_whichdb test_zipimport test_distutils test_pydoc test_file test_file2k test_gdb test_ioctl
29 %define py_prefix %{_prefix}
30 %define py_libdir %{py_prefix}/%{_lib}/python%{py_ver}
31 %define py_incdir %{_includedir}/python%{py_ver}
32 %define py_sitedir %{py_libdir}/site-packages
33 %define py_dyndir %{py_libdir}/lib-dynload
35 %define dver %{version}
36 Summary: Very high level scripting language with X interface
37 Summary(es.UTF-8): Lenguaje script de alto nivel con interfaz X
38 Summary(fr.UTF-8): Langage de script de très haut niveau avec interface X
39 Summary(pl.UTF-8): Python - język obiektowy wysokiego poziomu
40 Summary(pt_BR.UTF-8): Linguagem de programação interpretada de alto nível
41 Summary(ru.UTF-8): Язык программирования очень высокого уровня с X-интерфейсом
42 Summary(tr.UTF-8): X arayüzlü, yüksek düzeyli, kabuk yorumlayıcı dili
43 Summary(uk.UTF-8): Мова програмування дуже високого рівня з X-інтерфейсом
49 Group: Development/Languages/Python
50 Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}%{beta}.tar.xz
51 # Source0-md5: bcf93efa8eaf383c98ed3ce40b763497
52 Source1: http://www.python.org/ftp/python/doc/%{dver}/%{name}-%{dver}-docs-html.tar.bz2
53 # Source1-md5: 7613314d1aaa7dcc522ca9d3fd43dace
54 Patch0: %{name}-db.patch
55 Patch1: %{name}-pythonpath.patch
56 Patch2: %{name}-ac_fixes.patch
57 Patch3: %{name}-lib64.patch
58 Patch4: %{name}-noarch_to_datadir.patch
59 Patch5: %{name}-verbose.patch
60 Patch6: %{name}-distro.patch
61 Patch7: %{name}-DNStests.patch
62 Patch8: %{name}-ENOPROTOOPT-test.patch
63 Patch9: %{name}-buffer-overflow.patch
64 URL: http://www.python.org/
65 BuildRequires: autoconf >= 2.65
66 BuildRequires: automake
67 BuildRequires: bluez-libs-devel
68 BuildRequires: bzip2-devel
69 BuildRequires: db-devel >= 4
70 %{?with_info:BuildRequires: emacs >= 21}
71 BuildRequires: expat-devel >= 1:1.95.7
73 BuildRequires: gdbm-devel >= 1.8.3
74 BuildRequires: gmp-devel >= 4.0
75 BuildRequires: libstdc++-devel
76 BuildRequires: ncurses-ext-devel >= 5.2
77 BuildRequires: pkgconfig
78 %if %{with openssl097}
79 BuildRequires: openssl-devel < 0.9.8
81 BuildRequires: openssl-devel >= 0.9.8
83 BuildRequires: readline-devel >= 5.0
84 BuildRequires: rpm-pythonprov
85 BuildRequires: sed >= 4.0
86 BuildRequires: sqlite3-devel >= 3.3.5
87 %{?with_info:BuildRequires: tetex-makeindex}
88 #%{?with_tkinter:BuildRequires: tix-devel >= 1:8.1.4-4}
89 %{?with_tkinter:BuildRequires: tk-devel >= 8.4.3}
90 BuildRequires: zlib-devel
91 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
94 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96 %if %{with verbose_tests}
97 %define test_flags -v -l -x
99 %define test_flags -w -l -x
102 %ifarch alpha ia64 ppc64 ppc64 %{x8664}
103 %define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests}
105 %define test_list %{nobuilder_tests} %{broken_tests}
108 %ifarch sparc sparcv9
109 %define test_list %{nobuilder_tests} %{broken_tests} test_fcntl test_ioctl
113 %define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests} test_fcntl test_ioctl
117 Python is an interpreted, interactive, object-oriented programming
118 language. It incorporates modules, exceptions, dynamic typing, very
119 high level dynamic data types, and classes. Python combines remarkable
120 power with very clear syntax. It has interfaces to many system calls
121 and libraries, as well as to various window systems, and is extensible
122 in C or C++. It is also usable as an extension language for
123 applications that need a programmable interface. Finally, Python is
124 portable: it runs on many brands of UNIX, on the Mac, and on PCs under
125 MS-DOS, Windows, Windows NT, and OS/2.
127 This package contains the Python binary.
129 %description -l de.UTF-8
130 Python ist eine interpretierte, interaktive, objektorientierte
131 Programmiersprache, vergleichbar zu Tcl, Perl, Scheme oder Java.
132 Python enthält Module, Klassen, Exceptions, High-Level dynamische
133 Datentypen und dynamisches Typisieren. Python unterstützt Interfaces
134 zu vielen Systemaufrufen und Libraries, sowie verschiedene
135 Fenstersysteme (X11, Motif, Tk, Mac und MFC)
137 Programmierer können neue built-in-Module für Python in C oder C++
138 schreiben. Python kann auch als Erweiterungssprache für Applikationen
139 benutzt werden, die ein programmierbares Interface brauchen. Dieses
140 Paket enthält die meisten Standard-Python-Module, und Module zum
141 Ansprechen von Tix (Tk-widget set) und RPM.
143 %description -l es.UTF-8
144 Python es un lenguaje de scripts interpretado orientado a objetos.
145 Contiene soporte para carga dinámica de objetos, clases, módulos y
148 Es sencillo adicionar interfaces para nuevos sistemas de biblioteca a
149 través de código C, tornando Python fácil de usar en ambientes
150 particulares/personalizados. Este paquete Python incluye la mayoría de
151 los módulos padrón Python, junto con módulos para crear interfaces
152 para el conjunto de componentes Tix para Tk y RPM.
154 %description -l fr.UTF-8
155 Python est un langage de script interprété et orienté objet. Il gère
156 le chargement dynamique des objets, les classes, les modules et les
157 exceptions. L'ajout d'interfaces aux nouvelles bibliothèques systèmes
158 avec du code C est simple, ce qui rend Python facile à utiliser dans
159 des configs personnalisées.
161 Ce paquetage Python contient la plupart des modules Python standards,
162 ainsi que ceux permettant l'interfaçage avec les widgets Tix pour Tk
165 %description -l pl.UTF-8
166 Python jest interpretowanym, interaktywnym i zorientowanym obiektowo
167 językiem programowania. Jest modularny, obsługuje wyjątki, dynamiczne
168 typy, zaawansowane dynamiczne struktury danych i klasy. Python łączy w
169 sobie duże możliwości i przejrzystą składnię. Posiada interfejsy do
170 wielu wywołań systemowych i bibliotek, w tym również do różnych
171 bibliotek okienkowych. Możliwości jego można jeszcze rozszerzać
172 poprzez odpowiednie moduły pisane w C lub C++. Python może być również
173 użyty jako element aplikacji, którym potrzebny jest interpreter do
174 skryptów. I wreszcie, Python jest wieloplatformowy, działa na wielu
175 odmianach UNIX-a, Macu oraz PC pod DOS-em, Windows, WindowsNT oraz
178 Ten pakiet zawiera binarkę Pythona.
180 %description -l pt_BR.UTF-8
181 Python é uma linguagem de scripts interpretada orientada a objetos.
182 Contém suporte para carga dinâmica de objetos, classes, módulos e
183 exceções. Adicionar interfaces para novos sistemas de biblioteca
184 através de código C é simples, tornando Python fácil de usar em
185 ambientes particulares/personalizados.
187 Este pacote Python inclui a maioria do módulos padrão Python, junto
188 com módulos para interfaceamento para o conjunto de componentes Tix
191 %description -l ru.UTF-8
192 Python - это интерпретируемый, объектно-ориентированный язык
193 программирования. Он поддерживает динамическую загрузку объектов,
194 классы, модули и обработку исключительных ситуаций (exceptions).
195 Простота добавления интерфейсов к новым системным библиотекам через
196 код на языке C делает Python хорошим выбором для использования в
197 специальных конфигурациях.
199 %description -l tr.UTF-8
200 Python, nesneye yönelik bir kabuk yorumlayıcıdır. Nesnelerin,
201 sınıfların, modüllerin ve aykırı durumların dinamik yüklenmelerine
202 destek verir. C koduyla birlikte kullanımı son derece kolaydır. Bu
203 paket, standart Python birimlerinin çoğunun yanısıra Tk ve RPM için
204 arayüz birimlerini de içerir.
206 %description -l uk.UTF-8
207 Python - це інтерпретована, об'єктно-орієнтована мова програмування.
208 Він підтримує динамічну загрузку об'єктів, класи, модулі та обробку
209 виключних ситуацій (exceptions). Простота додавання інтерфейсів для
210 нових системних бібліотек через код на мові C робить Python добрим
211 вибором для використання в спеціальних конфігураціях.
214 Summary: Python library
215 Summary(pl.UTF-8): Biblioteka języka Python
216 Group: Libraries/Python
217 # broken detection in rpm/pythondeps.sh
218 Provides: python(abi) = %{py_ver}
219 # for compatibility with existing Ac packages
220 Provides: python(bytecode) = %{py_ver}
221 %{!?with_info:Obsoletes: python-doc-info}
222 Obsoletes: python-intl
225 Python shared library and very essental modules for Python binary.
227 %description libs -l pl.UTF-8
228 Biblioteka współdzielona języka Python oraz bardzo podstawowe moduły
232 Summary: Python modules
233 Summary(pl.UTF-8): Moduły języka Python
234 Group: Libraries/Python
235 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
236 Provides: python-argparse = 1.1
237 Provides: python-cElementTree
238 Provides: python-elementtree
239 Provides: pythonegg(argparse) = 1.1
240 Obsoletes: python-argparse < 1.1.99
241 Obsoletes: python-cElementTree
242 Obsoletes: python-ctypes
243 Obsoletes: python-curses
244 Obsoletes: python-elementtree
245 Obsoletes: python-gdbm
246 Obsoletes: python-hashlib
247 Obsoletes: python-logging
248 Obsoletes: python-old
249 Obsoletes: python-optik
250 Obsoletes: python-ssl
251 Obsoletes: python-xml
252 Obsoletes: python-xmlrpc <= 1.0.1
253 Obsoletes: python-zlib
256 Python officially distributed modules.
258 %description modules -l pl.UTF-8
259 Oficjalnie rozprowadzane moduły języka Python.
261 %package modules-sqlite
262 Summary: Python SQLite modules
263 Summary(pl.UTF-8): Moduły SQLite języka Python
264 Group: Libraries/Python
265 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
266 Provides: python(sqlite)
268 %description modules-sqlite
269 Python officially distributed sqlite module.
271 %description modules-sqlite -l pl.UTF-8
272 Oficjalnie rozprowadzany moduł sqlite języka Python.
275 Summary: Python interactive module documentation access support
276 Summary(pl.UTF-8): Interaktywne korzystanie z dokumentacji modułów języka Python
278 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
279 Obsoletes: python-pydoc
281 %description -n pydoc
282 Python interactive module documentation access support.
284 %description -n pydoc -l pl.UTF-8
285 Interaktywne korzystanie z dokumentacji modułów języka Python.
288 Summary: IDE for Python language
289 Summary(pl.UTF-8): IDE dla języka Python
290 Group: Applications/Editors
291 Requires: %{name}-tkinter = %{epoch}:%{version}-%{release}
292 Obsoletes: python-idle
295 IDE for Python language.
297 %description -n idle -l pl.UTF-8
298 IDE dla języka Python.
301 Summary: Libraries and header files for building python code
302 Summary(de.UTF-8): Libraries und Header-Dateien zum Erstellen von Python-Code
303 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para construir programas en python
304 Summary(fr.UTF-8): Bibliothèques et en-têtes pour construire du code python
305 Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki Pythona
306 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para o Python
307 Summary(ru.UTF-8): Библиотеки и хедеры для построения кода на языке Python
308 Summary(tr.UTF-8): Python ile geliştirme yapmak için gerekli dosyalar
309 Summary(uk.UTF-8): Бібліотеки та хедери для програмування на мові Python
310 Group: Development/Languages/Python
311 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
312 Obsoletes: python2-devel
315 The Python interpreter is relatively easy to extend with dynamically
316 loaded extensions and to embed in other programs. This package
317 contains the header files and libraries which are needed to do both of
320 %description devel -l de.UTF-8
321 Der Python-Interpretierer ist relativ einfach anhand von dynamisch
322 ladbaren Erweiterungen auszubauen und läßt sich in andere Programme
323 integrieren. Dieses Paket enthält die Header-Dateien und Libraries,
324 die für beide Aufgaben erforderlich sind.
326 %description devel -l es.UTF-8
327 El interpretador Python permite incluir con facilidad extensiones
328 cargadas dinámicamente. Python es también fácil de ser empotrado en
329 otros programas. Este paquete contiene los archivos de inclusión y
330 bibliotecas necesarios para estas dos tareas.
332 %description devel -l fr.UTF-8
333 L'interpréteur Python est relativement facile à étendre avec des
334 extensions chargées dynamiquement et à insérer dans d'autres
335 programmes. Ce paquetage contient les en-têtes et les bibliothèques
336 nécessaires à ces deux tâches.
338 %description devel -l pl.UTF-8
339 Interpreter Pythona jest w miarę łatwy do rozszerzania przy pomocy
340 dynamicznie ładowanych rozszerzeń napisanych w C lub C++ oraz
341 osadzania w innych programach. Ten pakiet zawiera pliki nagłówkowe i
342 wszystko inne co potrzebne do tych celów.
344 %description devel -l pt_BR.UTF-8
345 O interpretador Python permite incluir com facilidade extensões
346 carregadas dinamicamente. Python é também fácil de ser embutido em
347 outros programas. Este pacote contém os arquivos de inclusão e
348 bibliotecas necessários para estas duas tarefas.
350 %description devel -l ru.UTF-8
351 Интерпретатор Python относительно легко расширяется при помощи
352 динамически загружаемых расширений и встраивается в другие программы.
353 Этот пакет содержит хедеры и библиотеки, необходимые для обеих этих
356 %description devel -l tr.UTF-8
357 Bu paket, Python ile geliştirme yapılabilmesi için gerekli başlık
358 dosyalarını ve kitaplıkları içerir.
360 %description devel -l uk.UTF-8
361 Інтерпретатор Python відносно легко розширюється за допомогою
362 розширень з динамічною загрузкою та вбудовується в інші програми. Цей
363 пакет містить хедери та бібліотеки, необхідні для обох цих задач.
366 Summary: Python module sources
367 Summary(pl.UTF-8): Pliki źródłowe modułów Pythona
368 Group: Development/Languages/Python
369 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
371 %description devel-src
372 Python module sources.
374 %description devel-src -l pl.UTF-8
375 Pliki źródłowe modułów Pythona.
378 Summary: Python development tools
379 Summary(pl.UTF-8): Narzędzia programistyczne języka Python
380 Group: Development/Languages/Python
381 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
383 %description devel-tools
384 Python development tools such as profilers and debugger.
386 %description devel-tools -l pl.UTF-8
387 Narzędzia programistyczne języka Python takie jak profiler oraz
391 Summary: Automated Python 2 to 3 code translation
392 Summary(pl.UTF-8): Automatyczne tłumaczenie kodu Pythona 2 na 3
393 Group: Development/Languages/Python
396 2to3 is a Python program that reads Python 2.x source code and applies
397 a series of fixers to transform it into valid Python 3.x code. The
398 standard library contains a rich set of fixers that will handle almost
399 all code. 2to3 supporting library lib2to3 is, however, a flexible and
400 generic library, so it is possible to write your own fixers for 2to3.
401 lib2to3 could also be adapted to custom applications in which Python
402 code needs to be edited automatically.
404 %description 2to3 -l pl.UTF-8
405 2to3 to program w Pythonie czytający od źródłowy w Pythonie 2.x i
406 aplikujący serię poprawek przekształcających go w poprawny kod w
407 Pythonie 3.x. Biblioteka standardowa zawiera duży zbiór poprawek
408 obsługujących większość kodu. Biblioteka wspierająca 2to3 (lib2to3)
409 jest jednak elastyczną i ogólną biblioteką, więc można pisać własne
410 poprawki dla 2to3. lib2to3 można także zaadaptować na potrzeby
411 własnych zastosowań, w których kod w Pythonie musi być modyfikowany
415 Summary: Static python library
416 Summary(pl.UTF-8): Statyczna biblioteka Pythona
417 Group: Development/Languages/Python
418 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
421 Static python library.
423 %description static -l pl.UTF-8
424 Statyczna biblioteka Pythona.
427 Summary: Documentation on Python
428 Summary(de.UTF-8): Dokumentation zu Python
429 Summary(es.UTF-8): Documentación para Python
430 Summary(fr.UTF-8): Documentation sur Python
431 Summary(pl.UTF-8): Dokumentacja do Pythona
432 Summary(pt_BR.UTF-8): Documentação para a linguagem de programação Python
433 Summary(ru.UTF-8): Документация по языку Python
434 Summary(tr.UTF-8): Python belgeleri
435 Summary(uk.UTF-8): Документація по мові Python
437 Obsoletes: python-docs
440 This package contains documentation on the Python language and
441 interpretor as a mix of plain ASCII files and LaTeX sources.
443 %description doc -l de.UTF-8
444 Dieses Paket enthält Dokumentationen zu Python (Sprache und
445 Interpreter) in Form von einfachen ASCII-Dateien und LaTeX-Quellen.
447 %description doc -l es.UTF-8
448 Documentación para Python. Contiene archivos en texto y PostScript.
450 %description doc -l fr.UTF-8
451 Ce paquetage contient la documentation sur le langage python et sur
452 son interpréteur sous forme de fichiers ASCII et LaTeX.
454 %description doc -l pl.UTF-8
455 Oficjalna dokumentacja do Pythona. Zawiera przykładowe programy,
456 narzędzia i dokumentację. Strony podręcznika man znajdują się w
457 głównym pakiecie. Ten pakiet nie zawiera źródeł dokumentacji
458 napisanych w LaTeXu, tylko gotowe do wykorzystania pliki postscriptowe
461 %description doc -l pt_BR.UTF-8
462 O pacote python-doc contém documentação para a linguagem de
463 programação e para o interpretador Python. Fornecida em arquivos texto
466 %description doc -l ru.UTF-8
467 Этот пакет содержит документацию по собственно языку Python и по
468 исполняющему его интерпретатору в виде набора текстовых файлов и
469 исходных текстов в формате LaTeX.
471 %description doc -l tr.UTF-8
472 Bu paket, Python dili ile ilgili belgeleri ve düz ASCII dosyaları ve
473 LaTeX kaynaklarının bir karışımı olan yorumlayıcıyı içerir.
475 %description doc -l uk.UTF-8
476 Цей пакет містить документацію по власне мові Python та по виконуючому
477 її інтерпретатору у вигляді набора текстових файлів та вихідних
478 текстів у форматі LaTeX.
481 Summary: Documentation on Python in texinfo format
482 Summary(pl.UTF-8): Dokumentacja do Pythona w formacie texinfo
485 %description doc-info
486 Documentation on Python in texinfo format.
488 %description doc-info -l pl.UTF-8
489 Dokumentacja do Pythona w formacie texinfo.
492 Summary: Standard Python interface to the Tk GUI toolkit
493 Summary(de.UTF-8): Grafische Tk-Schnittstelle für Python
494 Summary(es.UTF-8): Interfaz de GUI Tk para Python
495 Summary(fr.UTF-8): Interface graphique Tk pour Python
496 Summary(pl.UTF-8): Standardowy interfejs Pythona do biblioteki Tk
497 Summary(pt_BR.UTF-8): Interface GUI Tk para Phyton
498 Summary(tr.UTF-8): Python için grafik kullanıcı arayüzü
499 Group: Libraries/Python
500 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
501 Requires: tcl >= 8.4.3
502 Requires: tix >= 1:8.1.4-4
503 Requires: tk >= 8.4.3
507 Standard Python interface to the Tk GUI toolkit.
509 %description tkinter -l de.UTF-8
510 Eine grafische Schnittstelle für Python, basierend auf Tcl/Tk, und von
511 vielen Konfigurations-Tools genutzt.
513 %description tkinter -l es.UTF-8
514 Una interfaz gráfica para Python, basada en Tcl/Tk, y usada por muchas
515 herramientas de configuración.
517 %description tkinter -l fr.UTF-8
518 Interface graphique pour Python, basée sur Tcl/Tk et utilisée par
519 beaucoup des outils de configuration.
521 %description tkinter -l pl.UTF-8
522 Standardowy interfejs Pythona do biblioteki Tk.
524 %description tkinter -l pt_BR.UTF-8
525 Uma interface gráfica para Python, baseada em Tcl/Tk, e usada por
526 muitas ferramentas de configuração.
528 %description tkinter -l ru.UTF-8
529 Графический интерфейс (GUI) для Python, построенный на Tcl/Tk.
531 %description tkinter -l tr.UTF-8
532 Python için Tcl/Tk'ye dayalı ve pek çok ayarlama aracı tarafından
533 kullanılan grafik bir arayüzdür.
535 %description tkinter -l uk.UTF-8
536 Графічний інтерфейс (GUI) для Python, побудований на Tcl/Tk.
539 Summary: Example programs in Python
540 Summary(pl.UTF-8): Przykładowe programy w Pythonie
541 Group: Development/Languages/Python
542 Obsoletes: python-tools
544 %description examples
545 Example programs in Python.
547 These are for Python 2.3.4, not %{version}.
549 %description examples -l pl.UTF-8
550 Przykładowe programy w Pythonie.
552 Przykłady te są dla Pythona 2.3.4, nie %{version}.
555 Summary: Python test modules
556 Summary(pl.UTF-8): Moduły testowe Pythona
557 Group: Development/Languages/Python
558 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
563 Unit tests for Python, some may be reused for testing other Python
566 %description test -l pl.UTF-8
567 Moduły testowe Pythona.
569 Niektóre z nich mogą być używane do testowania oprogramowania
570 napisanego w Pythonie.
573 %setup -q -n Python-%{version}%{beta}
587 sed -i -e 's#db_setup_debug = False#db_setup_debug = True#g' setup.py
589 # remove if Lib/plat-linux3 exists
590 [ -d Lib/plat-linux3 ] && exit 1
591 cp -a Lib/plat-linux2 Lib/plat-linux3
598 CPPFLAGS="%{rpmcppflags}" \
599 LDFLAGS="%{rpmldflags}" \
600 ac_cv_posix_semaphores_enabled=yes \
601 ac_cv_broken_sem_getvalue=no \
602 %{?with_debug:--with-pydebug} \
604 --with-cxx-main="%{__cxx}" \
607 --enable-unicode=ucs4 \
609 --with-dbmliborder=gdbm:bdb
611 %{__make} 2>&1 | awk '
612 BEGIN { fail = 0; logmsg = ""; }
614 if ($0 ~ /\*\*\* WARNING:/) {
620 END { if (fail) { print "\nPROBLEMS FOUND:"; print logmsg; exit(1); } }'
625 WITHIN_PYTHON_RPM_BUILD=1 %{__make} -j1 test \
626 TESTOPTS="%{test_flags} %{test_list}" \
627 TESTPYTHON="LD_LIBRARY_PATH=`pwd` PYTHONHOME=`pwd` PYTHONPATH=`pwd`/Lib:`pwd`/Lib/lib-tk:`pwd`/build/lib.linux-`uname -m`-%{py_ver} ./python -tt"
631 rm -rf $RPM_BUILD_ROOT
632 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}} \
633 $RPM_BUILD_ROOT{%{py_sitedir},%{_mandir}/man1} \
634 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
635 $RPM_BUILD_ROOT%{_infodir} \
636 $RPM_BUILD_ROOT%{_docdir} \
637 $RPM_BUILD_ROOT/etc/shrc.d
640 DESTDIR=$RPM_BUILD_ROOT
642 # docs in constant location
643 ln -sf python-doc-%{version} $RPM_BUILD_ROOT%{_docdir}/python-doc
646 %{__make} -C Doc/info
647 install Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
650 install Makefile.pre.in $RPM_BUILD_ROOT%{py_libdir}/config
652 mv $RPM_BUILD_ROOT{%{py_libdir}/config,%{_libdir}}/libpython%{py_ver}.a
653 ln -sf libpython%{py_ver}.a $RPM_BUILD_ROOT%{_libdir}/libpython.a
654 ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython.so
655 ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython%{py_ver}.so
657 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
658 cp -a Tools Demo $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
661 # create several useful aliases, such as timeit.py, profile.py, pdb.py, smtpd.py
664 # for python devel tools
665 for script in timeit profile pdb pstats; do
666 echo alias $script.py=\"python -m ${script}\"
667 done > $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh
670 < $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh \
671 > $RPM_BUILD_ROOT/etc/shrc.d/python-devel.csh
674 for script in smtpd webbrowser; do
675 echo alias $script.py=\"python -m ${script}\"
676 done > $RPM_BUILD_ROOT/etc/shrc.d/python-modules.sh
679 < $RPM_BUILD_ROOT/etc/shrc.d/python-modules.sh \
680 > $RPM_BUILD_ROOT/etc/shrc.d/python-modules.csh
682 # just to cut the noise, as they are not packaged (now)
683 %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/plat-*/regen
684 find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.egg-info -exec rm {} \;
685 find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.bat -exec rm {} \;
686 find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.txt -exec rm {} \;
687 find $RPM_BUILD_ROOT%{py_scriptdir} -name README\* -exec rm {} \;
690 rm -rf $RPM_BUILD_ROOT
692 %post libs -p /sbin/ldconfig
693 %postun libs -p /sbin/ldconfig
695 %post doc-info -p /sbin/postshell
696 -/usr/sbin/fix-info-dir -c %{_infodir}
698 %postun doc-info -p /sbin/postshell
699 -/usr/sbin/fix-info-dir -c %{_infodir}
702 %defattr(644,root,root,755)
703 %attr(755,root,root) %{_bindir}/python
704 %attr(755,root,root) %{_bindir}/python2
705 %attr(755,root,root) %{_bindir}/python%{py_ver}
706 %{_mandir}/man1/python.1*
707 %{_mandir}/man1/python2.1*
710 %defattr(644,root,root,755)
711 /etc/shrc.d/python-modules*
712 %exclude %{py_scriptdir}/_abcoll.py[co]
713 %exclude %{py_scriptdir}/abc.py[co]
714 %exclude %{py_scriptdir}/UserDict.py[co]
715 %exclude %{py_scriptdir}/codecs.py[co]
716 %exclude %{py_scriptdir}/copy_reg.py[co]
717 %exclude %{py_scriptdir}/genericpath.py[co]
718 %exclude %{py_scriptdir}/linecache.py[co]
719 %exclude %{py_scriptdir}/locale.py[co]
720 %exclude %{py_scriptdir}/posixpath.py[co]
721 %exclude %{py_scriptdir}/pdb.py[co]
722 %exclude %{py_scriptdir}/profile.py[co]
723 %exclude %{py_scriptdir}/pstats.py[co]
724 %exclude %{py_scriptdir}/pydoc.py[co]
725 %exclude %{py_scriptdir}/re.py[co]
726 %exclude %{py_scriptdir}/site.py[co]
727 %exclude %{py_scriptdir}/sre_*.py[co]
728 %exclude %{py_scriptdir}/stat.py[co]
729 %exclude %{py_scriptdir}/sysconfig.py[co]
730 %exclude %{py_scriptdir}/timeit.py[co]
731 %exclude %{py_scriptdir}/os.py[co]
732 %exclude %{py_scriptdir}/_weakrefset.py[co]
733 %exclude %{py_scriptdir}/encodings/*.py[co]
734 %exclude %{py_scriptdir}/types.py[co]
735 %exclude %{py_scriptdir}/warnings.py[co]
737 %{py_scriptdir}/*.py[co]
739 %{py_dyndir}/Python-%{version}-py%{py_ver}.egg-info
742 # list .so modules to be sure that all of them are built
745 # three modules below do not work on 64-bit architectures
746 # see Python README file for explanation
747 %ifnarch alpha ia64 ppc64 sparc64 %{x8664}
748 %attr(755,root,root) %{py_dyndir}/imageop.so
749 # sizeof(long) != sizeof(int), so dl module will not be built on 64-bit
751 %attr(755,root,root) %{py_dyndir}/dl.so
754 %attr(755,root,root) %{py_dyndir}/audioop.so
755 %attr(755,root,root) %{py_dyndir}/array.so
756 %attr(755,root,root) %{py_dyndir}/binascii.so
757 %attr(755,root,root) %{py_dyndir}/_bisect.so
758 %attr(755,root,root) %{py_dyndir}/_bsddb.so
759 %attr(755,root,root) %{py_dyndir}/bz2.so
760 %attr(755,root,root) %{py_dyndir}/cmath.so
761 %attr(755,root,root) %{py_dyndir}/_codecs_cn.so
762 %attr(755,root,root) %{py_dyndir}/_codecs_hk.so
763 %attr(755,root,root) %{py_dyndir}/_codecs_iso2022.so
764 %attr(755,root,root) %{py_dyndir}/_codecs_jp.so
765 %attr(755,root,root) %{py_dyndir}/_codecs_kr.so
766 %attr(755,root,root) %{py_dyndir}/_codecs_tw.so
767 %attr(755,root,root) %{py_dyndir}/_collections.so
768 %attr(755,root,root) %{py_dyndir}/cPickle.so
769 %attr(755,root,root) %{py_dyndir}/crypt.so
770 %attr(755,root,root) %{py_dyndir}/cStringIO.so
771 %attr(755,root,root) %{py_dyndir}/_csv.so
772 %attr(755,root,root) %{py_dyndir}/_ctypes*.so
773 %attr(755,root,root) %{py_dyndir}/_curses_panel.so
774 %attr(755,root,root) %{py_dyndir}/_curses.so
775 %attr(755,root,root) %{py_dyndir}/datetime.so
776 %attr(755,root,root) %{py_dyndir}/_elementtree.so
777 %attr(755,root,root) %{py_dyndir}/_functools.so
778 %attr(755,root,root) %{py_dyndir}/_hashlib.so
779 %attr(755,root,root) %{py_dyndir}/_heapq.so
780 %attr(755,root,root) %{py_dyndir}/_io.so
781 %attr(755,root,root) %{py_dyndir}/_json.so
782 %attr(755,root,root) %{py_dyndir}/_locale.so
783 %attr(755,root,root) %{py_dyndir}/_lsprof.so
784 %attr(755,root,root) %{py_dyndir}/_multibytecodec.so
785 %attr(755,root,root) %{py_dyndir}/_multiprocessing.so
786 %attr(755,root,root) %{py_dyndir}/_random.so
787 %{?with_openssl097:%attr(755,root,root) %{py_dyndir}/_sha*.so}
788 %attr(755,root,root) %{py_dyndir}/_socket.so
789 %attr(755,root,root) %{py_dyndir}/_ssl.so
790 %attr(755,root,root) %{py_dyndir}/_testcapi.so
792 %attr(755,root,root) %{py_dyndir}/dbm.so
794 %attr(755,root,root) %{py_dyndir}/fcntl.so
795 %attr(755,root,root) %{py_dyndir}/future_builtins.so
796 %attr(755,root,root) %{py_dyndir}/gdbm.so
797 %attr(755,root,root) %{py_dyndir}/grp.so
798 %attr(755,root,root) %{py_dyndir}/itertools.so
799 %attr(755,root,root) %{py_dyndir}/linuxaudiodev.so
800 %attr(755,root,root) %{py_dyndir}/math.so
801 %attr(755,root,root) %{py_dyndir}/mmap.so
802 %attr(755,root,root) %{py_dyndir}/nis.so
803 %attr(755,root,root) %{py_dyndir}/operator.so
804 %attr(755,root,root) %{py_dyndir}/ossaudiodev.so
805 %attr(755,root,root) %{py_dyndir}/parser.so
806 %attr(755,root,root) %{py_dyndir}/pyexpat.so
807 %attr(755,root,root) %{py_dyndir}/readline.so
808 %attr(755,root,root) %{py_dyndir}/resource.so
809 %attr(755,root,root) %{py_dyndir}/select.so
810 %attr(755,root,root) %{py_dyndir}/strop.so
811 %attr(755,root,root) %{py_dyndir}/syslog.so
812 %attr(755,root,root) %{py_dyndir}/termios.so
813 %attr(755,root,root) %{py_dyndir}/time.so
814 %attr(755,root,root) %{py_dyndir}/spwd.so
815 %attr(755,root,root) %{py_dyndir}/unicodedata.so
816 %attr(755,root,root) %{py_dyndir}/zlib.so
818 %dir %{py_scriptdir}/plat-*
819 %{py_scriptdir}/plat-*/*.py[co]
821 %dir %{py_scriptdir}/bsddb
822 %{py_scriptdir}/bsddb/*.py[co]
824 %dir %{py_scriptdir}/compiler
825 %{py_scriptdir}/compiler/*.py[co]
827 %dir %{py_scriptdir}/ctypes
828 %dir %{py_scriptdir}/ctypes/macholib
829 %{py_scriptdir}/ctypes/*.py[co]
830 %{py_scriptdir}/ctypes/macholib/*.py[co]
832 %dir %{py_scriptdir}/curses
833 %{py_scriptdir}/curses/*.py[co]
835 %dir %{py_scriptdir}/distutils
836 %dir %{py_scriptdir}/distutils/command
837 %{py_scriptdir}/distutils/*.py[co]
838 %{py_scriptdir}/distutils/command/*.py[co]
840 %dir %{py_scriptdir}/email
841 %dir %{py_scriptdir}/email/mime
842 %{py_scriptdir}/email/*.py[co]
843 %{py_scriptdir}/email/mime/*.py[co]
845 %dir %{py_scriptdir}/idlelib
847 %dir %{py_scriptdir}/importlib
848 %{py_scriptdir}/importlib/*.py[co]
850 %dir %{py_scriptdir}/json
851 %{py_scriptdir}/json/*.py[co]
853 %dir %{py_scriptdir}/logging
854 %{py_scriptdir}/logging/*.py[co]
856 %dir %{py_scriptdir}/multiprocessing
857 %dir %{py_scriptdir}/multiprocessing/dummy
858 %{py_scriptdir}/multiprocessing/*.py[co]
859 %{py_scriptdir}/multiprocessing/dummy/*.py[co]
861 %dir %{py_scriptdir}/unittest
862 %{py_scriptdir}/unittest/*.py[co]
863 %dir %{py_scriptdir}/unittest/test
864 %{py_scriptdir}/unittest/test/*.py[co]
866 %dir %{py_scriptdir}/wsgiref
867 %{py_scriptdir}/wsgiref/*.py[co]
869 %dir %{py_scriptdir}/xml
870 %dir %{py_scriptdir}/xml/dom
871 %dir %{py_scriptdir}/xml/etree
872 %dir %{py_scriptdir}/xml/parsers
873 %dir %{py_scriptdir}/xml/sax
874 %{py_scriptdir}/xml/*.py[co]
875 %{py_scriptdir}/xml/dom/*.py[co]
876 %{py_scriptdir}/xml/etree/*.py[co]
877 %{py_scriptdir}/xml/parsers/*.py[co]
878 %{py_scriptdir}/xml/sax/*.py[co]
880 %files modules-sqlite
881 %defattr(644,root,root,755)
882 %attr(755,root,root) %{py_dyndir}/_sqlite3.so
883 %dir %{py_scriptdir}/sqlite3
884 %{py_scriptdir}/sqlite3/*.py[co]
887 %defattr(644,root,root,755)
888 %attr(755,root,root) %{_libdir}/libpython%{py_ver}.so.*
893 %dir %{py_sitescriptdir}
896 # shared modules required by python library
897 %attr(755,root,root) %{py_dyndir}/_struct.so
899 # modules required by python library
900 %{py_scriptdir}/_abcoll.py[co]
901 %{py_scriptdir}/abc.py[co]
902 %{py_scriptdir}/UserDict.py[co]
903 %{py_scriptdir}/codecs.py[co]
904 %{py_scriptdir}/copy_reg.py[co]
905 %{py_scriptdir}/genericpath.py[co]
906 %{py_scriptdir}/linecache.py[co]
907 %{py_scriptdir}/locale.py[co]
908 %{py_scriptdir}/posixpath.py[co]
909 %{py_scriptdir}/re.py[co]
910 %{py_scriptdir}/site.py[co]
911 %{py_scriptdir}/sre_*.py[co]
912 %{py_scriptdir}/stat.py[co]
913 %{py_scriptdir}/sysconfig.py[co]
914 %{py_scriptdir}/os.py[co]
915 %{py_scriptdir}/_weakrefset.py[co]
916 # needed by the dynamic sys.lib patch
917 %{py_scriptdir}/types.py[co]
918 %{py_scriptdir}/warnings.py[co]
920 # encodings required by python library
921 %dir %{py_scriptdir}/encodings
922 %{py_scriptdir}/encodings/*.py[co]
924 # required by sysconfig.py
925 %dir %{py_libdir}/config
926 %{py_libdir}/config/Makefile
928 %{py_incdir}/pyconfig.h
931 %defattr(644,root,root,755)
932 %attr(755,root,root) %{_bindir}/pydoc
933 %{py_scriptdir}/pydoc.py[co]
934 %dir %{py_scriptdir}/pydoc_data
935 %{py_scriptdir}/pydoc_data/*.py[co]
938 %defattr(644,root,root,755)
939 %attr(755,root,root) %{_bindir}/idle
940 %dir %{py_scriptdir}/idlelib/Icons
941 %{py_scriptdir}/idlelib/*.py[co]
942 %{py_scriptdir}/idlelib/Icons/*
943 %{py_scriptdir}/idlelib/*.def
946 %defattr(644,root,root,755)
947 %doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp}
948 %attr(755,root,root) %{_bindir}/python-config
949 %attr(755,root,root) %{_bindir}/python2-config
950 %attr(755,root,root) %{_bindir}/python%{py_ver}-config
951 %attr(755,root,root) %{_libdir}/libpython%{py_ver}.so
952 %attr(755,root,root) %{_libdir}/libpython.so
954 %exclude %{py_incdir}/pyconfig.h
955 %{_pkgconfigdir}/python.pc
956 %{_pkgconfigdir}/python2.pc
957 %{_pkgconfigdir}/python-%{py_ver}.pc
959 %attr(755,root,root) %{py_libdir}/config/makesetup
960 %attr(755,root,root) %{py_libdir}/config/install-sh
961 %{py_libdir}/config/Makefile.pre.in
962 %{py_libdir}/config/Setup
963 %{py_libdir}/config/Setup.config
964 %{py_libdir}/config/Setup.local
965 %{py_libdir}/config/config.c
966 %{py_libdir}/config/config.c.in
967 %{py_libdir}/config/python.o
970 %defattr(644,root,root,755)
971 %attr(-,root,root) %{py_scriptdir}/*.py
972 %{py_scriptdir}/plat-*/*.py
973 %{py_scriptdir}/bsddb/*.py
974 %{py_scriptdir}/ctypes/*.py
975 %{py_scriptdir}/ctypes/macholib/*.py
976 %{py_scriptdir}/compiler/*.py
977 %{py_scriptdir}/curses/*.py
978 %{py_scriptdir}/distutils/*.py
979 %{py_scriptdir}/distutils/command/*.py
980 %{py_scriptdir}/email/*.py
981 %{py_scriptdir}/email/mime/*.py
982 %{py_scriptdir}/encodings/*.py
983 %{py_scriptdir}/hotshot/*.py
984 %{py_scriptdir}/idlelib/*.py
985 %{py_scriptdir}/importlib/*.py
986 %{py_scriptdir}/json/*.py
987 %{py_scriptdir}/lib2to3/*.py
988 %{py_scriptdir}/lib2to3/fixes/*.py
989 %{py_scriptdir}/lib2to3/pgen2/*.py
990 %{py_scriptdir}/logging/*.py
991 %{py_scriptdir}/multiprocessing/*.py
992 %{py_scriptdir}/multiprocessing/dummy/*.py
993 %{py_scriptdir}/pydoc_data/*.py
994 %{py_scriptdir}/sqlite3/*.py
995 %{py_scriptdir}/unittest/*.py
996 %{py_scriptdir}/unittest/test/*.py
997 %{py_scriptdir}/wsgiref/*.py
998 %{py_scriptdir}/xml/*.py
999 %{py_scriptdir}/xml/dom/*.py
1000 %{py_scriptdir}/xml/etree/*.py
1001 %{py_scriptdir}/xml/parsers/*.py
1002 %{py_scriptdir}/xml/sax/*.py
1005 %defattr(644,root,root,755)
1007 /etc/shrc.d/python-devel*
1009 %attr(755,root,root) %{py_dyndir}/_hotshot.so
1010 %dir %{py_scriptdir}/hotshot
1011 %{py_scriptdir}/hotshot/*.py[co]
1012 %{py_scriptdir}/pdb.py[co]
1013 %{py_scriptdir}/profile.py[co]
1014 %{py_scriptdir}/pstats.py[co]
1015 %{py_scriptdir}/timeit.py[co]
1018 %defattr(644,root,root,755)
1019 %attr(755,root,root) %{_bindir}/2to3
1020 %dir %{py_scriptdir}/lib2to3
1021 %dir %{py_scriptdir}/lib2to3/fixes
1022 %dir %{py_scriptdir}/lib2to3/pgen2
1023 %{py_scriptdir}/lib2to3/*.py[co]
1024 %{py_scriptdir}/lib2to3/*.pickle
1025 %{py_scriptdir}/lib2to3/fixes/*.py[co]
1026 %{py_scriptdir}/lib2to3/pgen2/*.py[co]
1029 %defattr(644,root,root,755)
1030 %{_libdir}/libpython%{py_ver}.a
1031 %{_libdir}/libpython.a
1034 %defattr(644,root,root,755)
1035 %{_examplesdir}/%{name}-%{version}
1038 %{py_scriptdir}/test
1039 %{py_scriptdir}/bsddb/test
1040 %{py_scriptdir}/ctypes/test
1041 %{py_scriptdir}/distutils/tests
1042 %{py_scriptdir}/email/test
1043 %{py_scriptdir}/sqlite3/test
1044 %{py_scriptdir}/json/tests
1045 %{py_scriptdir}/lib2to3/tests
1048 %defattr(644,root,root,755)
1049 %doc python-%{dver}-docs-html/*
1050 %{_docdir}/python-doc
1054 %defattr(644,root,root,755)
1060 %defattr(644,root,root,755)
1061 %{py_scriptdir}/lib-tk
1062 %attr(755,root,root) %{py_dyndir}/_tkinter.so