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