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.bz2
51 # Source0-md5: 62704ea0f125923208d84ff0568f7d50
52 Source1: http://www.python.org/ftp/python/doc/%{dver}/%{name}-%{dver}-docs-html.tar.bz2
53 # Source1-md5: 45be073ad81e1b2f6ad1fa25132f60c6
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 URL: http://www.python.org/
62 BuildRequires: autoconf >= 2.65
63 BuildRequires: automake
64 BuildRequires: bluez-libs-devel
65 BuildRequires: bzip2-devel
66 BuildRequires: db-devel >= 4
67 %{?with_info:BuildRequires: emacs >= 21}
68 BuildRequires: expat-devel >= 1:1.95.7
70 BuildRequires: gdbm-devel >= 1.8.3
71 BuildRequires: gmp-devel >= 4.0
72 BuildRequires: libstdc++-devel
73 BuildRequires: ncurses-ext-devel >= 5.2
74 BuildRequires: pkgconfig
75 %if %{with openssl097}
76 BuildRequires: openssl-devel < 0.9.8
78 BuildRequires: openssl-devel >= 0.9.8
80 BuildRequires: readline-devel >= 5.0
81 BuildRequires: rpm-pythonprov
82 BuildRequires: sed >= 4.0
83 BuildRequires: sqlite3-devel >= 3.3.5
84 %{?with_info:BuildRequires: tetex-makeindex}
85 #%{?with_tkinter:BuildRequires: tix-devel >= 1:8.1.4-4}
86 %{?with_tkinter:BuildRequires: tk-devel >= 8.4.3}
87 BuildRequires: zlib-devel
88 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
91 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
93 %if %{with verbose_tests}
94 %define test_flags -v -l -x
96 %define test_flags -w -l -x
99 %ifarch alpha ia64 ppc64 ppc64 %{x8664}
100 %define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests}
102 %define test_list %{nobuilder_tests} %{broken_tests}
105 %ifarch sparc sparcv9
106 %define test_list %{nobuilder_tests} %{broken_tests} test_fcntl test_ioctl
110 %define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests} test_fcntl test_ioctl
114 Python is an interpreted, interactive, object-oriented programming
115 language. It incorporates modules, exceptions, dynamic typing, very
116 high level dynamic data types, and classes. Python combines remarkable
117 power with very clear syntax. It has interfaces to many system calls
118 and libraries, as well as to various window systems, and is extensible
119 in C or C++. It is also usable as an extension language for
120 applications that need a programmable interface. Finally, Python is
121 portable: it runs on many brands of UNIX, on the Mac, and on PCs under
122 MS-DOS, Windows, Windows NT, and OS/2.
124 This package contains the Python binary.
126 %description -l de.UTF-8
127 Python ist eine interpretierte, interaktive, objektorientierte
128 Programmiersprache, vergleichbar zu Tcl, Perl, Scheme oder Java.
129 Python enthält Module, Klassen, Exceptions, High-Level dynamische
130 Datentypen und dynamisches Typisieren. Python unterstützt Interfaces
131 zu vielen Systemaufrufen und Libraries, sowie verschiedene
132 Fenstersysteme (X11, Motif, Tk, Mac und MFC)
134 Programmierer können neue built-in-Module für Python in C oder C++
135 schreiben. Python kann auch als Erweiterungssprache für Applikationen
136 benutzt werden, die ein programmierbares Interface brauchen. Dieses
137 Paket enthält die meisten Standard-Python-Module, und Module zum
138 Ansprechen von Tix (Tk-widget set) und RPM.
140 %description -l es.UTF-8
141 Python es un lenguaje de scripts interpretado orientado a objetos.
142 Contiene soporte para carga dinámica de objetos, clases, módulos y
145 Es sencillo adicionar interfaces para nuevos sistemas de biblioteca a
146 través de código C, tornando Python fácil de usar en ambientes
147 particulares/personalizados. Este paquete Python incluye la mayoría de
148 los módulos padrón Python, junto con módulos para crear interfaces
149 para el conjunto de componentes Tix para Tk y RPM.
151 %description -l fr.UTF-8
152 Python est un langage de script interprété et orienté objet. Il gère
153 le chargement dynamique des objets, les classes, les modules et les
154 exceptions. L'ajout d'interfaces aux nouvelles bibliothèques systèmes
155 avec du code C est simple, ce qui rend Python facile à utiliser dans
156 des configs personnalisées.
158 Ce paquetage Python contient la plupart des modules Python standards,
159 ainsi que ceux permettant l'interfaçage avec les widgets Tix pour Tk
162 %description -l pl.UTF-8
163 Python jest interpretowanym, interaktywnym i zorientowanym obiektowo
164 językiem programowania. Jest modularny, obsługuje wyjątki, dynamiczne
165 typy, zaawansowane dynamiczne struktury danych i klasy. Python łączy w
166 sobie duże możliwości i przejrzystą składnię. Posiada interfejsy do
167 wielu wywołań systemowych i bibliotek, w tym również do różnych
168 bibliotek okienkowych. Możliwości jego można jeszcze rozszerzać
169 poprzez odpowiednie moduły pisane w C lub C++. Python może być również
170 użyty jako element aplikacji, którym potrzebny jest interpreter do
171 skryptów. I wreszcie, Python jest wieloplatformowy, działa na wielu
172 odmianach UNIX-a, Macu oraz PC pod DOS-em, Windows, WindowsNT oraz
175 Ten pakiet zawiera binarkę Pythona.
177 %description -l pt_BR.UTF-8
178 Python é uma linguagem de scripts interpretada orientada a objetos.
179 Contém suporte para carga dinâmica de objetos, classes, módulos e
180 exceções. Adicionar interfaces para novos sistemas de biblioteca
181 através de código C é simples, tornando Python fácil de usar em
182 ambientes particulares/personalizados.
184 Este pacote Python inclui a maioria do módulos padrão Python, junto
185 com módulos para interfaceamento para o conjunto de componentes Tix
188 %description -l ru.UTF-8
189 Python - это интерпретируемый, объектно-ориентированный язык
190 программирования. Он поддерживает динамическую загрузку объектов,
191 классы, модули и обработку исключительных ситуаций (exceptions).
192 Простота добавления интерфейсов к новым системным библиотекам через
193 код на языке C делает Python хорошим выбором для использования в
194 специальных конфигурациях.
196 %description -l tr.UTF-8
197 Python, nesneye yönelik bir kabuk yorumlayıcıdır. Nesnelerin,
198 sınıfların, modüllerin ve aykırı durumların dinamik yüklenmelerine
199 destek verir. C koduyla birlikte kullanımı son derece kolaydır. Bu
200 paket, standart Python birimlerinin çoğunun yanısıra Tk ve RPM için
201 arayüz birimlerini de içerir.
203 %description -l uk.UTF-8
204 Python - це інтерпретована, об'єктно-орієнтована мова програмування.
205 Він підтримує динамічну загрузку об'єктів, класи, модулі та обробку
206 виключних ситуацій (exceptions). Простота додавання інтерфейсів для
207 нових системних бібліотек через код на мові C робить Python добрим
208 вибором для використання в спеціальних конфігураціях.
211 Summary: Python library
212 Summary(pl.UTF-8): Biblioteka języka Python
213 Group: Libraries/Python
214 # broken detection in rpm/pythondeps.sh
215 Provides: python(abi) = %{py_ver}
216 # for compatibility with existing Ac packages
217 Provides: python(bytecode) = %{py_ver}
218 %{!?with_info:Obsoletes: python-doc-info}
219 Obsoletes: python-intl
222 Python shared library and very essental modules for Python binary.
224 %description libs -l pl.UTF-8
225 Biblioteka współdzielona języka Python oraz bardzo podstawowe moduły
229 Summary: Python modules
230 Summary(pl.UTF-8): Moduły języka Python
231 Group: Libraries/Python
232 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
233 Provides: python-argparse = 1.1
234 Provides: python-cElementTree
235 Provides: python-elementtree
236 Provides: pythonegg(argparse) = 1.1
237 Obsoletes: python-argparse < 1.1.99
238 Obsoletes: python-cElementTree
239 Obsoletes: python-ctypes
240 Obsoletes: python-curses
241 Obsoletes: python-elementtree
242 Obsoletes: python-gdbm
243 Obsoletes: python-hashlib
244 Obsoletes: python-logging
245 Obsoletes: python-old
246 Obsoletes: python-optik
247 Obsoletes: python-ssl
248 Obsoletes: python-xml
249 Obsoletes: python-xmlrpc <= 1.0.1
250 Obsoletes: python-zlib
253 Python officially distributed modules.
255 %description modules -l pl.UTF-8
256 Oficjalnie rozprowadzane moduły języka Python.
258 %package modules-sqlite
259 Summary: Python SQLite modules
260 Summary(pl.UTF-8): Moduły SQLite języka Python
261 Group: Libraries/Python
262 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
263 Provides: python(sqlite)
265 %description modules-sqlite
266 Python officially distributed sqlite module.
268 %description modules-sqlite -l pl.UTF-8
269 Oficjalnie rozprowadzany moduł sqlite języka Python.
272 Summary: Python interactive module documentation access support
273 Summary(pl.UTF-8): Interaktywne korzystanie z dokumentacji modułów języka Python
275 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
276 Obsoletes: python-pydoc
278 %description -n pydoc
279 Python interactive module documentation access support.
281 %description -n pydoc -l pl.UTF-8
282 Interaktywne korzystanie z dokumentacji modułów języka Python.
285 Summary: IDE for Python language
286 Summary(pl.UTF-8): IDE dla języka Python
287 Group: Applications/Editors
288 Requires: %{name}-tkinter = %{epoch}:%{version}-%{release}
289 Obsoletes: python-idle
292 IDE for Python language.
294 %description -n idle -l pl.UTF-8
295 IDE dla języka Python.
298 Summary: Libraries and header files for building python code
299 Summary(de.UTF-8): Libraries und Header-Dateien zum Erstellen von Python-Code
300 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para construir programas en python
301 Summary(fr.UTF-8): Bibliothèques et en-têtes pour construire du code python
302 Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki Pythona
303 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para o Python
304 Summary(ru.UTF-8): Библиотеки и хедеры для построения кода на языке Python
305 Summary(tr.UTF-8): Python ile geliştirme yapmak için gerekli dosyalar
306 Summary(uk.UTF-8): Бібліотеки та хедери для програмування на мові Python
307 Group: Development/Languages/Python
308 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
309 Obsoletes: python2-devel
312 The Python interpreter is relatively easy to extend with dynamically
313 loaded extensions and to embed in other programs. This package
314 contains the header files and libraries which are needed to do both of
317 %description devel -l de.UTF-8
318 Der Python-Interpretierer ist relativ einfach anhand von dynamisch
319 ladbaren Erweiterungen auszubauen und läßt sich in andere Programme
320 integrieren. Dieses Paket enthält die Header-Dateien und Libraries,
321 die für beide Aufgaben erforderlich sind.
323 %description devel -l es.UTF-8
324 El interpretador Python permite incluir con facilidad extensiones
325 cargadas dinámicamente. Python es también fácil de ser empotrado en
326 otros programas. Este paquete contiene los archivos de inclusión y
327 bibliotecas necesarios para estas dos tareas.
329 %description devel -l fr.UTF-8
330 L'interpréteur Python est relativement facile à étendre avec des
331 extensions chargées dynamiquement et à insérer dans d'autres
332 programmes. Ce paquetage contient les en-têtes et les bibliothèques
333 nécessaires à ces deux tâches.
335 %description devel -l pl.UTF-8
336 Interpreter Pythona jest w miarę łatwy do rozszerzania przy pomocy
337 dynamicznie ładowanych rozszerzeń napisanych w C lub C++ oraz
338 osadzania w innych programach. Ten pakiet zawiera pliki nagłówkowe i
339 wszystko inne co potrzebne do tych celów.
341 %description devel -l pt_BR.UTF-8
342 O interpretador Python permite incluir com facilidade extensões
343 carregadas dinamicamente. Python é também fácil de ser embutido em
344 outros programas. Este pacote contém os arquivos de inclusão e
345 bibliotecas necessários para estas duas tarefas.
347 %description devel -l ru.UTF-8
348 Интерпретатор Python относительно легко расширяется при помощи
349 динамически загружаемых расширений и встраивается в другие программы.
350 Этот пакет содержит хедеры и библиотеки, необходимые для обеих этих
353 %description devel -l tr.UTF-8
354 Bu paket, Python ile geliştirme yapılabilmesi için gerekli başlık
355 dosyalarını ve kitaplıkları içerir.
357 %description devel -l uk.UTF-8
358 Інтерпретатор Python відносно легко розширюється за допомогою
359 розширень з динамічною загрузкою та вбудовується в інші програми. Цей
360 пакет містить хедери та бібліотеки, необхідні для обох цих задач.
363 Summary: Python module sources
364 Summary(pl.UTF-8): Pliki źródłowe modułów Pythona
365 Group: Development/Languages/Python
366 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
368 %description devel-src
369 Python module sources.
371 %description devel-src -l pl.UTF-8
372 Pliki źródłowe modułów Pythona.
375 Summary: Python development tools
376 Summary(pl.UTF-8): Narzędzia programistyczne języka Python
377 Group: Development/Languages/Python
378 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
380 %description devel-tools
381 Python development tools such as profilers and debugger.
383 %description devel-tools -l pl.UTF-8
384 Narzędzia programistyczne języka Python takie jak profiler oraz
388 Summary: Automated Python 2 to 3 code translation
389 Summary(pl.UTF-8): Automatyczne tłumaczenie kodu Pythona 2 na 3
390 Group: Development/Languages/Python
393 2to3 is a Python program that reads Python 2.x source code and applies
394 a series of fixers to transform it into valid Python 3.x code. The
395 standard library contains a rich set of fixers that will handle almost
396 all code. 2to3 supporting library lib2to3 is, however, a flexible and
397 generic library, so it is possible to write your own fixers for 2to3.
398 lib2to3 could also be adapted to custom applications in which Python
399 code needs to be edited automatically.
401 %description 2to3 -l pl.UTF-8
402 2to3 to program w Pythonie czytający od źródłowy w Pythonie 2.x i
403 aplikujący serię poprawek przekształcających go w poprawny kod w
404 Pythonie 3.x. Biblioteka standardowa zawiera duży zbiór poprawek
405 obsługujących większość kodu. Biblioteka wspierająca 2to3 (lib2to3)
406 jest jednak elastyczną i ogólną biblioteką, więc można pisać własne
407 poprawki dla 2to3. lib2to3 można także zaadaptować na potrzeby
408 własnych zastosowań, w których kod w Pythonie musi być modyfikowany
412 Summary: Static python library
413 Summary(pl.UTF-8): Statyczna biblioteka Pythona
414 Group: Development/Languages/Python
415 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
418 Static python library.
420 %description static -l pl.UTF-8
421 Statyczna biblioteka Pythona.
424 Summary: Documentation on Python
425 Summary(de.UTF-8): Dokumentation zu Python
426 Summary(es.UTF-8): Documentación para Python
427 Summary(fr.UTF-8): Documentation sur Python
428 Summary(pl.UTF-8): Dokumentacja do Pythona
429 Summary(pt_BR.UTF-8): Documentação para a linguagem de programação Python
430 Summary(ru.UTF-8): Документация по языку Python
431 Summary(tr.UTF-8): Python belgeleri
432 Summary(uk.UTF-8): Документація по мові Python
434 Obsoletes: python-docs
437 This package contains documentation on the Python language and
438 interpretor as a mix of plain ASCII files and LaTeX sources.
440 %description doc -l de.UTF-8
441 Dieses Paket enthält Dokumentationen zu Python (Sprache und
442 Interpreter) in Form von einfachen ASCII-Dateien und LaTeX-Quellen.
444 %description doc -l es.UTF-8
445 Documentación para Python. Contiene archivos en texto y PostScript.
447 %description doc -l fr.UTF-8
448 Ce paquetage contient la documentation sur le langage python et sur
449 son interpréteur sous forme de fichiers ASCII et LaTeX.
451 %description doc -l pl.UTF-8
452 Oficjalna dokumentacja do Pythona. Zawiera przykładowe programy,
453 narzędzia i dokumentację. Strony podręcznika man znajdują się w
454 głównym pakiecie. Ten pakiet nie zawiera źródeł dokumentacji
455 napisanych w LaTeXu, tylko gotowe do wykorzystania pliki postscriptowe
458 %description doc -l pt_BR.UTF-8
459 O pacote python-doc contém documentação para a linguagem de
460 programação e para o interpretador Python. Fornecida em arquivos texto
463 %description doc -l ru.UTF-8
464 Этот пакет содержит документацию по собственно языку Python и по
465 исполняющему его интерпретатору в виде набора текстовых файлов и
466 исходных текстов в формате LaTeX.
468 %description doc -l tr.UTF-8
469 Bu paket, Python dili ile ilgili belgeleri ve düz ASCII dosyaları ve
470 LaTeX kaynaklarının bir karışımı olan yorumlayıcıyı içerir.
472 %description doc -l uk.UTF-8
473 Цей пакет містить документацію по власне мові Python та по виконуючому
474 її інтерпретатору у вигляді набора текстових файлів та вихідних
475 текстів у форматі LaTeX.
478 Summary: Documentation on Python in texinfo format
479 Summary(pl.UTF-8): Dokumentacja do Pythona w formacie texinfo
482 %description doc-info
483 Documentation on Python in texinfo format.
485 %description doc-info -l pl.UTF-8
486 Dokumentacja do Pythona w formacie texinfo.
489 Summary: Standard Python interface to the Tk GUI toolkit
490 Summary(de.UTF-8): Grafische Tk-Schnittstelle für Python
491 Summary(es.UTF-8): Interfaz de GUI Tk para Python
492 Summary(fr.UTF-8): Interface graphique Tk pour Python
493 Summary(pl.UTF-8): Standardowy interfejs Pythona do biblioteki Tk
494 Summary(pt_BR.UTF-8): Interface GUI Tk para Phyton
495 Summary(tr.UTF-8): Python için grafik kullanıcı arayüzü
496 Group: Libraries/Python
497 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
498 Requires: tcl >= 8.4.3
499 Requires: tix >= 1:8.1.4-4
500 Requires: tk >= 8.4.3
504 Standard Python interface to the Tk GUI toolkit.
506 %description tkinter -l de.UTF-8
507 Eine grafische Schnittstelle für Python, basierend auf Tcl/Tk, und von
508 vielen Konfigurations-Tools genutzt.
510 %description tkinter -l es.UTF-8
511 Una interfaz gráfica para Python, basada en Tcl/Tk, y usada por muchas
512 herramientas de configuración.
514 %description tkinter -l fr.UTF-8
515 Interface graphique pour Python, basée sur Tcl/Tk et utilisée par
516 beaucoup des outils de configuration.
518 %description tkinter -l pl.UTF-8
519 Standardowy interfejs Pythona do biblioteki Tk.
521 %description tkinter -l pt_BR.UTF-8
522 Uma interface gráfica para Python, baseada em Tcl/Tk, e usada por
523 muitas ferramentas de configuração.
525 %description tkinter -l ru.UTF-8
526 Графический интерфейс (GUI) для Python, построенный на Tcl/Tk.
528 %description tkinter -l tr.UTF-8
529 Python için Tcl/Tk'ye dayalı ve pek çok ayarlama aracı tarafından
530 kullanılan grafik bir arayüzdür.
532 %description tkinter -l uk.UTF-8
533 Графічний інтерфейс (GUI) для Python, побудований на Tcl/Tk.
536 Summary: Example programs in Python
537 Summary(pl.UTF-8): Przykładowe programy w Pythonie
538 Group: Development/Languages/Python
539 Obsoletes: python-tools
541 %description examples
542 Example programs in Python.
544 These are for Python 2.3.4, not %{version}.
546 %description examples -l pl.UTF-8
547 Przykładowe programy w Pythonie.
549 Przykłady te są dla Pythona 2.3.4, nie %{version}.
552 %setup -q -n Python-%{version}%{beta}
563 sed -i -e 's#db_setup_debug = False#db_setup_debug = True#g' setup.py
565 # remove if Lib/plat-linux3 exists
566 [ -d Lib/plat-linux3 ] && exit 1
567 cp -a Lib/plat-linux2 Lib/plat-linux3
572 CPPFLAGS="-I/usr/include/ncursesw %{rpmcppflags}"; export CPPFLAGS
574 ac_cv_posix_semaphores_enabled=yes \
575 ac_cv_broken_sem_getvalue=no \
577 --with-cxx-main="%{__cxx}" \
580 --enable-unicode=ucs4 \
583 --with-dbmliborder=gdbm:bdb \
584 LINKCC='$(PURIFY) $(CXX)' \
585 LDSHARED='$(CC) $(CFLAGS) -shared' \
586 BLDSHARED='$(CC) $(CFLAGS) -shared' \
587 LDFLAGS="%{rpmcflags} %{rpmldflags}"
590 OPT="%{rpmcflags}" 2>&1 | awk '
591 BEGIN { fail = 0; logmsg = ""; }
593 if ($0 ~ /\*\*\* WARNING:/) {
599 END { if (fail) { print "\nPROBLEMS FOUND:"; print logmsg; exit(1); } }'
605 TESTOPTS="%{test_flags} %{test_list}" \
606 TESTPYTHON="LD_LIBRARY_PATH=`pwd` PYTHONHOME=`pwd` PYTHONPATH=`pwd`/Lib:`pwd`/Lib/lib-tk:`pwd`/build/lib.linux-`uname -m`-%{py_ver} ./python -tt"
610 rm -rf $RPM_BUILD_ROOT
611 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}} \
612 $RPM_BUILD_ROOT{%{py_sitedir},%{_mandir}/man1} \
613 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
614 $RPM_BUILD_ROOT%{_infodir} \
615 $RPM_BUILD_ROOT%{_docdir} \
616 $RPM_BUILD_ROOT/etc/shrc.d
619 DESTDIR=$RPM_BUILD_ROOT
621 # docs in constant location
622 ln -sf python-doc-%{version} $RPM_BUILD_ROOT%{_docdir}/python-doc
625 %{__make} -C Doc/info
626 install Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
629 install Makefile.pre.in $RPM_BUILD_ROOT%{py_libdir}/config
631 mv $RPM_BUILD_ROOT{%{py_libdir}/config,%{_libdir}}/libpython%{py_ver}.a
632 ln -sf libpython%{py_ver}.a $RPM_BUILD_ROOT%{_libdir}/libpython.a
633 ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython.so
634 ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython%{py_ver}.so
636 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
637 cp -a Tools Demo $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
640 # create several useful aliases, such as timeit.py, profile.py, pdb.py, smtpd.py
643 # for python devel tools
644 for script in timeit profile pdb pstats; do
645 echo alias $script.py=\"python -m ${script}\"
646 done > $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh
649 < $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh \
650 > $RPM_BUILD_ROOT/etc/shrc.d/python-devel.csh
653 for script in smtpd webbrowser; do
654 echo alias $script.py=\"python -m ${script}\"
655 done > $RPM_BUILD_ROOT/etc/shrc.d/python-modules.sh
658 < $RPM_BUILD_ROOT/etc/shrc.d/python-modules.sh \
659 > $RPM_BUILD_ROOT/etc/shrc.d/python-modules.csh
661 # just to cut the noise, as they are not packaged (now)
663 %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/test
664 %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/bsddb/test
665 %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/test
666 %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/distutils/tests
667 %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/email/test
668 %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/sqlite3/test
669 %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/json/tests
670 %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/lib2to3/tests
673 %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/plat-*/regen
674 find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.egg-info -exec rm {} \;
675 find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.bat -exec rm {} \;
676 find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.txt -exec rm {} \;
677 find $RPM_BUILD_ROOT%{py_scriptdir} -name README\* -exec rm {} \;
680 rm -rf $RPM_BUILD_ROOT
682 %post libs -p /sbin/ldconfig
683 %postun libs -p /sbin/ldconfig
685 %post doc-info -p /sbin/postshell
686 -/usr/sbin/fix-info-dir -c %{_infodir}
688 %postun doc-info -p /sbin/postshell
689 -/usr/sbin/fix-info-dir -c %{_infodir}
692 %defattr(644,root,root,755)
693 %attr(755,root,root) %{_bindir}/python
694 %attr(755,root,root) %{_bindir}/python2
695 %attr(755,root,root) %{_bindir}/python%{py_ver}
696 %{_mandir}/man1/python.1*
697 %{_mandir}/man1/python2.1*
700 %defattr(644,root,root,755)
701 /etc/shrc.d/python-modules*
702 %exclude %{py_scriptdir}/_abcoll.py[co]
703 %exclude %{py_scriptdir}/abc.py[co]
704 %exclude %{py_scriptdir}/UserDict.py[co]
705 %exclude %{py_scriptdir}/codecs.py[co]
706 %exclude %{py_scriptdir}/copy_reg.py[co]
707 %exclude %{py_scriptdir}/genericpath.py[co]
708 %exclude %{py_scriptdir}/linecache.py[co]
709 %exclude %{py_scriptdir}/locale.py[co]
710 %exclude %{py_scriptdir}/posixpath.py[co]
711 %exclude %{py_scriptdir}/pdb.py[co]
712 %exclude %{py_scriptdir}/profile.py[co]
713 %exclude %{py_scriptdir}/pstats.py[co]
714 %exclude %{py_scriptdir}/pydoc.py[co]
715 %exclude %{py_scriptdir}/re.py[co]
716 %exclude %{py_scriptdir}/site.py[co]
717 %exclude %{py_scriptdir}/sre_*.py[co]
718 %exclude %{py_scriptdir}/stat.py[co]
719 %exclude %{py_scriptdir}/sysconfig.py[co]
720 %exclude %{py_scriptdir}/timeit.py[co]
721 %exclude %{py_scriptdir}/os.py[co]
722 %exclude %{py_scriptdir}/_weakrefset.py[co]
723 %exclude %{py_scriptdir}/encodings/*.py[co]
724 %exclude %{py_scriptdir}/types.py[co]
725 %exclude %{py_scriptdir}/warnings.py[co]
727 %{py_scriptdir}/*.py[co]
729 %{py_dyndir}/Python-%{version}-py%{py_ver}.egg-info
732 # list .so modules to be sure that all of them are built
735 # three modules below do not work on 64-bit architectures
736 # see Python README file for explanation
737 %ifnarch alpha ia64 ppc64 sparc64 %{x8664}
738 %attr(755,root,root) %{py_dyndir}/imageop.so
739 # sizeof(long) != sizeof(int), so dl module will not be built on 64-bit
741 %attr(755,root,root) %{py_dyndir}/dl.so
744 %attr(755,root,root) %{py_dyndir}/audioop.so
745 %attr(755,root,root) %{py_dyndir}/array.so
746 %attr(755,root,root) %{py_dyndir}/binascii.so
747 %attr(755,root,root) %{py_dyndir}/_bisect.so
748 %attr(755,root,root) %{py_dyndir}/_bsddb.so
749 %attr(755,root,root) %{py_dyndir}/bz2.so
750 %attr(755,root,root) %{py_dyndir}/cmath.so
751 %attr(755,root,root) %{py_dyndir}/_codecs_cn.so
752 %attr(755,root,root) %{py_dyndir}/_codecs_hk.so
753 %attr(755,root,root) %{py_dyndir}/_codecs_iso2022.so
754 %attr(755,root,root) %{py_dyndir}/_codecs_jp.so
755 %attr(755,root,root) %{py_dyndir}/_codecs_kr.so
756 %attr(755,root,root) %{py_dyndir}/_codecs_tw.so
757 %attr(755,root,root) %{py_dyndir}/_collections.so
758 %attr(755,root,root) %{py_dyndir}/cPickle.so
759 %attr(755,root,root) %{py_dyndir}/crypt.so
760 %attr(755,root,root) %{py_dyndir}/cStringIO.so
761 %attr(755,root,root) %{py_dyndir}/_csv.so
762 %attr(755,root,root) %{py_dyndir}/_ctypes*.so
763 %attr(755,root,root) %{py_dyndir}/_curses_panel.so
764 %attr(755,root,root) %{py_dyndir}/_curses.so
765 %attr(755,root,root) %{py_dyndir}/datetime.so
766 %attr(755,root,root) %{py_dyndir}/_elementtree.so
767 %attr(755,root,root) %{py_dyndir}/_functools.so
768 %attr(755,root,root) %{py_dyndir}/_hashlib.so
769 %attr(755,root,root) %{py_dyndir}/_heapq.so
770 %attr(755,root,root) %{py_dyndir}/_io.so
771 %attr(755,root,root) %{py_dyndir}/_json.so
772 %attr(755,root,root) %{py_dyndir}/_locale.so
773 %attr(755,root,root) %{py_dyndir}/_lsprof.so
774 %attr(755,root,root) %{py_dyndir}/_multibytecodec.so
775 %attr(755,root,root) %{py_dyndir}/_multiprocessing.so
776 %attr(755,root,root) %{py_dyndir}/_random.so
777 %{?with_openssl097:%attr(755,root,root) %{py_dyndir}/_sha*.so}
778 %attr(755,root,root) %{py_dyndir}/_socket.so
779 %attr(755,root,root) %{py_dyndir}/_ssl.so
780 %attr(755,root,root) %{py_dyndir}/_testcapi.so
782 %attr(755,root,root) %{py_dyndir}/dbm.so
784 %attr(755,root,root) %{py_dyndir}/fcntl.so
785 %attr(755,root,root) %{py_dyndir}/future_builtins.so
786 %attr(755,root,root) %{py_dyndir}/gdbm.so
787 %attr(755,root,root) %{py_dyndir}/grp.so
788 %attr(755,root,root) %{py_dyndir}/itertools.so
789 %attr(755,root,root) %{py_dyndir}/linuxaudiodev.so
790 %attr(755,root,root) %{py_dyndir}/math.so
791 %attr(755,root,root) %{py_dyndir}/mmap.so
792 %attr(755,root,root) %{py_dyndir}/nis.so
793 %attr(755,root,root) %{py_dyndir}/operator.so
794 %attr(755,root,root) %{py_dyndir}/ossaudiodev.so
795 %attr(755,root,root) %{py_dyndir}/parser.so
796 %attr(755,root,root) %{py_dyndir}/pyexpat.so
797 %attr(755,root,root) %{py_dyndir}/readline.so
798 %attr(755,root,root) %{py_dyndir}/resource.so
799 %attr(755,root,root) %{py_dyndir}/select.so
800 %attr(755,root,root) %{py_dyndir}/strop.so
801 %attr(755,root,root) %{py_dyndir}/syslog.so
802 %attr(755,root,root) %{py_dyndir}/termios.so
803 %attr(755,root,root) %{py_dyndir}/time.so
804 %attr(755,root,root) %{py_dyndir}/spwd.so
805 %attr(755,root,root) %{py_dyndir}/unicodedata.so
806 %attr(755,root,root) %{py_dyndir}/zlib.so
808 %dir %{py_scriptdir}/plat-*
809 %{py_scriptdir}/plat-*/*.py[co]
811 %dir %{py_scriptdir}/bsddb
812 %{py_scriptdir}/bsddb/*.py[co]
814 %dir %{py_scriptdir}/compiler
815 %{py_scriptdir}/compiler/*.py[co]
817 %dir %{py_scriptdir}/ctypes
818 %dir %{py_scriptdir}/ctypes/macholib
819 %{py_scriptdir}/ctypes/*.py[co]
820 %{py_scriptdir}/ctypes/macholib/*.py[co]
822 %dir %{py_scriptdir}/curses
823 %{py_scriptdir}/curses/*.py[co]
825 %dir %{py_scriptdir}/distutils
826 %dir %{py_scriptdir}/distutils/command
827 %{py_scriptdir}/distutils/*.py[co]
828 %{py_scriptdir}/distutils/command/*.py[co]
830 %dir %{py_scriptdir}/email
831 %dir %{py_scriptdir}/email/mime
832 %{py_scriptdir}/email/*.py[co]
833 %{py_scriptdir}/email/mime/*.py[co]
835 %dir %{py_scriptdir}/importlib
836 %{py_scriptdir}/importlib/*.py[co]
838 %dir %{py_scriptdir}/json
839 %{py_scriptdir}/json/*.py[co]
841 %dir %{py_scriptdir}/logging
842 %{py_scriptdir}/logging/*.py[co]
844 %dir %{py_scriptdir}/multiprocessing
845 %dir %{py_scriptdir}/multiprocessing/dummy
846 %{py_scriptdir}/multiprocessing/*.py[co]
847 %{py_scriptdir}/multiprocessing/dummy/*.py[co]
849 %dir %{py_scriptdir}/unittest
850 %{py_scriptdir}/unittest/*.py[co]
851 %dir %{py_scriptdir}/unittest/test
852 %{py_scriptdir}/unittest/test/*.py[co]
854 %dir %{py_scriptdir}/wsgiref
855 %{py_scriptdir}/wsgiref/*.py[co]
857 %dir %{py_scriptdir}/xml
858 %dir %{py_scriptdir}/xml/dom
859 %dir %{py_scriptdir}/xml/etree
860 %dir %{py_scriptdir}/xml/parsers
861 %dir %{py_scriptdir}/xml/sax
862 %{py_scriptdir}/xml/*.py[co]
863 %{py_scriptdir}/xml/dom/*.py[co]
864 %{py_scriptdir}/xml/etree/*.py[co]
865 %{py_scriptdir}/xml/parsers/*.py[co]
866 %{py_scriptdir}/xml/sax/*.py[co]
868 %files modules-sqlite
869 %defattr(644,root,root,755)
870 %attr(755,root,root) %{py_dyndir}/_sqlite3.so
871 %dir %{py_scriptdir}/sqlite3
872 %{py_scriptdir}/sqlite3/*.py[co]
875 %defattr(644,root,root,755)
876 %attr(755,root,root) %{_libdir}/libpython%{py_ver}.so.*
881 %dir %{py_sitescriptdir}
884 # shared modules required by python library
885 %attr(755,root,root) %{py_dyndir}/_struct.so
887 # modules required by python library
888 %{py_scriptdir}/_abcoll.py[co]
889 %{py_scriptdir}/abc.py[co]
890 %{py_scriptdir}/UserDict.py[co]
891 %{py_scriptdir}/codecs.py[co]
892 %{py_scriptdir}/copy_reg.py[co]
893 %{py_scriptdir}/genericpath.py[co]
894 %{py_scriptdir}/linecache.py[co]
895 %{py_scriptdir}/locale.py[co]
896 %{py_scriptdir}/posixpath.py[co]
897 %{py_scriptdir}/re.py[co]
898 %{py_scriptdir}/site.py[co]
899 %{py_scriptdir}/sre_*.py[co]
900 %{py_scriptdir}/stat.py[co]
901 %{py_scriptdir}/sysconfig.py[co]
902 %{py_scriptdir}/os.py[co]
903 %{py_scriptdir}/_weakrefset.py[co]
904 # needed by the dynamic sys.lib patch
905 %{py_scriptdir}/types.py[co]
906 %{py_scriptdir}/warnings.py[co]
908 # encodings required by python library
909 %dir %{py_scriptdir}/encodings
910 %{py_scriptdir}/encodings/*.py[co]
912 # required by sysconfig.py
913 %dir %{py_libdir}/config
914 %{py_libdir}/config/Makefile
916 %{py_incdir}/pyconfig.h
919 %defattr(644,root,root,755)
920 %attr(755,root,root) %{_bindir}/pydoc
921 %{py_scriptdir}/pydoc.py[co]
922 %dir %{py_scriptdir}/pydoc_data
923 %{py_scriptdir}/pydoc_data/*.py[co]
926 %defattr(644,root,root,755)
927 %attr(755,root,root) %{_bindir}/idle
928 %dir %{py_scriptdir}/idlelib
929 %dir %{py_scriptdir}/idlelib/Icons
930 %{py_scriptdir}/idlelib/*.py[co]
931 %{py_scriptdir}/idlelib/Icons/*
932 %{py_scriptdir}/idlelib/*.def
935 %defattr(644,root,root,755)
936 %doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp}
937 %attr(755,root,root) %{_bindir}/python-config
938 %attr(755,root,root) %{_bindir}/python2-config
939 %attr(755,root,root) %{_bindir}/python%{py_ver}-config
940 %attr(755,root,root) %{_libdir}/libpython%{py_ver}.so
941 %attr(755,root,root) %{_libdir}/libpython.so
943 %exclude %{py_incdir}/pyconfig.h
944 %{_pkgconfigdir}/python.pc
945 %{_pkgconfigdir}/python2.pc
946 %{_pkgconfigdir}/python-%{py_ver}.pc
948 %attr(755,root,root) %{py_libdir}/config/makesetup
949 %attr(755,root,root) %{py_libdir}/config/install-sh
950 %{py_libdir}/config/Makefile.pre.in
951 %{py_libdir}/config/Setup
952 %{py_libdir}/config/Setup.config
953 %{py_libdir}/config/Setup.local
954 %{py_libdir}/config/config.c
955 %{py_libdir}/config/config.c.in
956 %{py_libdir}/config/python.o
959 %defattr(644,root,root,755)
960 %attr(-,root,root) %{py_scriptdir}/*.py
961 %{py_scriptdir}/plat-*/*.py
962 %{py_scriptdir}/bsddb/*.py
963 %{py_scriptdir}/ctypes/*.py
964 %{py_scriptdir}/ctypes/macholib/*.py
965 %{py_scriptdir}/compiler/*.py
966 %{py_scriptdir}/curses/*.py
967 %{py_scriptdir}/distutils/*.py
968 %{py_scriptdir}/distutils/command/*.py
969 %{py_scriptdir}/email/*.py
970 %{py_scriptdir}/email/mime/*.py
971 %{py_scriptdir}/encodings/*.py
972 %{py_scriptdir}/hotshot/*.py
973 %{py_scriptdir}/idlelib/*.py
974 %{py_scriptdir}/importlib/*.py
975 %{py_scriptdir}/json/*.py
976 %{py_scriptdir}/lib2to3/*.py
977 %{py_scriptdir}/lib2to3/fixes/*.py
978 %{py_scriptdir}/lib2to3/pgen2/*.py
979 %{py_scriptdir}/logging/*.py
980 %{py_scriptdir}/multiprocessing/*.py
981 %{py_scriptdir}/multiprocessing/dummy/*.py
982 %{py_scriptdir}/pydoc_data/*.py
983 %{py_scriptdir}/sqlite3/*.py
984 %{py_scriptdir}/unittest/*.py
985 %{py_scriptdir}/unittest/test/*.py
986 %{py_scriptdir}/wsgiref/*.py
987 %{py_scriptdir}/xml/*.py
988 %{py_scriptdir}/xml/dom/*.py
989 %{py_scriptdir}/xml/etree/*.py
990 %{py_scriptdir}/xml/parsers/*.py
991 %{py_scriptdir}/xml/sax/*.py
994 %defattr(644,root,root,755)
996 /etc/shrc.d/python-devel*
998 %attr(755,root,root) %{py_dyndir}/_hotshot.so
999 %dir %{py_scriptdir}/hotshot
1000 %{py_scriptdir}/hotshot/*.py[co]
1001 %{py_scriptdir}/pdb.py[co]
1002 %{py_scriptdir}/profile.py[co]
1003 %{py_scriptdir}/pstats.py[co]
1004 %{py_scriptdir}/timeit.py[co]
1007 %defattr(644,root,root,755)
1008 %attr(755,root,root) %{_bindir}/2to3
1009 %dir %{py_scriptdir}/lib2to3
1010 %dir %{py_scriptdir}/lib2to3/fixes
1011 %dir %{py_scriptdir}/lib2to3/pgen2
1012 %{py_scriptdir}/lib2to3/*.py[co]
1013 %{py_scriptdir}/lib2to3/*.pickle
1014 %{py_scriptdir}/lib2to3/fixes/*.py[co]
1015 %{py_scriptdir}/lib2to3/pgen2/*.py[co]
1018 %defattr(644,root,root,755)
1019 %{_libdir}/libpython%{py_ver}.a
1020 %{_libdir}/libpython.a
1023 %defattr(644,root,root,755)
1024 %{_examplesdir}/%{name}-%{version}
1027 %defattr(644,root,root,755)
1028 %doc python-%{dver}-docs-html/*
1029 %{_docdir}/python-doc
1033 %defattr(644,root,root,755)
1039 %defattr(644,root,root,755)
1040 %{py_scriptdir}/lib-tk
1041 %attr(755,root,root) %{py_dyndir}/_tkinter.so