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 # - change searchpath order so /usr/lib* is before /usr/share
6 # - kill lib-tk from searchpath
7 # - kill BR: file requirement from lib64 patch
8 # - security(CVE-2008-4108)
9 # http://securitytracker.com/alerts/2008/Sep/1020904.html
12 %bcond_with info # build info pages (requires emacs, fails in python-2.5.0)
13 %bcond_without tkinter # disables tkinter module building
14 %bcond_without tests # disables Python testing
15 %bcond_with verbose_tests # runs tests in verbose mode
16 %bcond_with openssl097
18 # tests which will not work on 64-bit platforms
19 %define no64bit_tests test_audioop test_rgbimg test_imageop
20 # tests which may fail because of builder environment limitations (no /proc or /dev/pts)
21 %define nobuilder_tests test_resource test_openpty test_socket test_nis test_posix test_locale test_pty test_urllib2
22 # tests which fail because of some unknown/unresolved reason (this list should be empty)
23 %define broken_tests test_anydbm test_bsddb test_re test_shelve test_whichdb test_zipimport test_distutils
28 %define py_prefix %{_prefix}
29 %define py_libdir %{py_prefix}/%{_lib}/python%{py_ver}
30 %define py_incdir %{_includedir}/python%{py_ver}
31 %define py_sitedir %{py_libdir}/site-packages
32 %define py_dyndir %{py_libdir}/lib-dynload
34 Summary: Very high level scripting language with X interface
35 Summary(es.UTF-8): Lenguaje script de alto nivel con interfaz X
36 Summary(fr.UTF-8): Langage de script de très haut niveau avec interface X
37 Summary(pl.UTF-8): Python - język obiektowy wysokiego poziomu
38 Summary(pt_BR.UTF-8): Linguagem de programação interpretada de alto nível
39 Summary(ru.UTF-8): Язык программирования очень высокого уровня с X-интерфейсом
40 Summary(tr.UTF-8): X arayüzlü, yüksek düzeyli, kabuk yorumlayıcı dili
41 Summary(uk.UTF-8): Мова програмування дуже високого рівня з X-інтерфейсом
44 %define dver %{version}
49 Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}%{beta}.tar.bz2
50 # Source0-md5: 6bef0417e71a1a1737ccf5750420fdb3
51 Source1: http://www.python.org/ftp/python/doc/%{dver}/%{name}-%{dver}-docs-html.tar.bz2
52 # Source1-md5: 4becde65eb92d8d24b503a44f6d01c62
53 Patch1: %{name}-%{name}path.patch
54 Patch2: %{name}-no_ndbm.patch
55 Patch3: %{name}-ac_fixes.patch
56 Patch4: %{name}-noarch_to_datadir.patch
57 Patch5: %{name}-lib64.patch
58 URL: http://www.python.org/
59 BuildRequires: autoconf
60 BuildRequires: bluez-libs-devel
61 BuildRequires: bzip2-devel
62 BuildRequires: db-devel >= 4
63 %{?with_info:BuildRequires: emacs >= 21}
64 BuildRequires: expat-devel >= 1:1.95.7
66 BuildRequires: gdbm-devel >= 1.8.3
67 BuildRequires: gmp-devel >= 4.0
68 BuildRequires: libffi-devel
69 BuildRequires: libstdc++-devel
70 BuildRequires: ncurses-ext-devel >= 5.2
71 %if %{with openssl097}
72 BuildRequires: openssl-devel < 0.9.8
74 BuildRequires: openssl-devel >= 0.9.8
76 BuildRequires: readline-devel >= 5.0
77 BuildRequires: rpm-pythonprov
78 BuildRequires: sed >= 4.0
79 BuildRequires: sqlite3-devel >= 3.3.5
80 %{?with_info:BuildRequires: tetex-makeindex}
81 %{?with_tkinter:BuildRequires: tix-devel >= 1:8.1.4-4}
82 %{?with_tkinter:BuildRequires: tk-devel >= 8.4.3}
83 BuildRequires: zlib-devel
84 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
87 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
89 %if %{with verbose_tests}
90 %define test_flags -v -l -x
92 %define test_flags -l -x
95 %ifarch alpha ia64 ppc64 ppc64 %{x8664}
96 %define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests}
98 %define test_list %{nobuilder_tests} %{broken_tests}
101 %ifarch sparc sparcv9
102 %define test_list %{nobuilder_tests} %{broken_tests} test_fcntl test_ioctl
106 %define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests} test_fcntl test_ioctl
110 Python is an interpreted, interactive, object-oriented programming
111 language. It incorporates modules, exceptions, dynamic typing, very
112 high level dynamic data types, and classes. Python combines remarkable
113 power with very clear syntax. It has interfaces to many system calls
114 and libraries, as well as to various window systems, and is extensible
115 in C or C++. It is also usable as an extension language for
116 applications that need a programmable interface. Finally, Python is
117 portable: it runs on many brands of UNIX, on the Mac, and on PCs under
118 MS-DOS, Windows, Windows NT, and OS/2.
120 This package contains the Python binary.
122 %description -l de.UTF-8
123 Python ist eine interpretierte, interaktive, objektorientierte
124 Programmiersprache, vergleichbar zu Tcl, Perl, Scheme oder Java.
125 Python enthält Module, Klassen, Exceptions, High-Level dynamische
126 Datentypen und dynamisches Typisieren. Python unterstützt Interfaces
127 zu vielen Systemaufrufen und Libraries, sowie verschiedene
128 Fenstersysteme (X11, Motif, Tk, Mac und MFC)
130 Programmierer können neue built-in-Module für Python in C oder C++
131 schreiben. Python kann auch als Erweiterungssprache für Applikationen
132 benutzt werden, die ein programmierbares Interface brauchen. Dieses
133 Paket enthält die meisten Standard-Python-Module, und Module zum
134 Ansprechen von Tix (Tk-widget set) und RPM.
136 %description -l es.UTF-8
137 Python es un lenguaje de scripts interpretado orientado a objetos.
138 Contiene soporte para carga dinámica de objetos, clases, módulos y
141 Es sencillo adicionar interfaces para nuevos sistemas de biblioteca a
142 través de código C, tornando Python fácil de usar en ambientes
143 particulares/personalizados. Este paquete Python incluye la mayoría de
144 los módulos padrón Python, junto con módulos para crear interfaces
145 para el conjunto de componentes Tix para Tk y RPM.
147 %description -l fr.UTF-8
148 Python est un langage de script interprété et orienté objet. Il gère
149 le chargement dynamique des objets, les classes, les modules et les
150 exceptions. L'ajout d'interfaces aux nouvelles bibliothèques systèmes
151 avec du code C est simple, ce qui rend Python facile à utiliser dans
152 des configs personnalisées.
154 Ce paquetage Python contient la plupart des modules Python standards,
155 ainsi que ceux permettant l'interfaçage avec les widgets Tix pour Tk
158 %description -l pl.UTF-8
159 Python jest interpretowanym, interaktywnym i zorientowanym obiektowo
160 językiem programowania. Jest modularny, obsługuje wyjątki, dynamiczne
161 typy, zaawansowane dynamiczne struktury danych i klasy. Python łączy w
162 sobie duże możliwości i przejrzystą składnię. Posiada interfejsy do
163 wielu wywołań systemowych i bibliotek, w tym również do różnych
164 bibliotek okienkowych. Możliwości jego można jeszcze rozszerzać
165 poprzez odpowiednie moduły pisane w C lub C++. Python może być również
166 użyty jako element aplikacji, którym potrzebny jest interpreter do
167 skryptów. I wreszcie, Python jest wieloplatformowy, działa na wielu
168 odmianach UNIX-a, Macu oraz PC pod DOS-em, Windows, WindowsNT oraz
171 Ten pakiet zawiera binarkę Pythona.
173 %description -l pt_BR.UTF-8
174 Python é uma linguagem de scripts interpretada orientada a objetos.
175 Contém suporte para carga dinâmica de objetos, classes, módulos e
176 exceções. Adicionar interfaces para novos sistemas de biblioteca
177 através de código C é simples, tornando Python fácil de usar em
178 ambientes particulares/personalizados.
180 Este pacote Python inclui a maioria do módulos padrão Python, junto
181 com módulos para interfaceamento para o conjunto de componentes Tix
184 %description -l ru.UTF-8
185 Python - это интерпретируемый, объектно-ориентированный язык
186 программирования. Он поддерживает динамическую загрузку объектов,
187 классы, модули и обработку исключительных ситуаций (exceptions).
188 Простота добавления интерфейсов к новым системным библиотекам через
189 код на языке C делает Python хорошим выбором для использования в
190 специальных конфигурациях.
192 %description -l tr.UTF-8
193 Python, nesneye yönelik bir kabuk yorumlayıcıdır. Nesnelerin,
194 sınıfların, modüllerin ve aykırı durumların dinamik yüklenmelerine
195 destek verir. C koduyla birlikte kullanımı son derece kolaydır. Bu
196 paket, standart Python birimlerinin çoğunun yanısıra Tk ve RPM için
197 arayüz birimlerini de içerir.
199 %description -l uk.UTF-8
200 Python - це інтерпретована, об'єктно-орієнтована мова програмування.
201 Він підтримує динамічну загрузку об'єктів, класи, модулі та обробку
202 виключних ситуацій (exceptions). Простота додавання інтерфейсів для
203 нових системних бібліотек через код на мові C робить Python добрим
204 вибором для використання в спеціальних конфігураціях.
207 Summary: Python library
208 Summary(pl.UTF-8): Biblioteka języka Python
209 Group: Libraries/Python
210 # broken detection in rpm/pythondeps.sh
211 Provides: python(abi) = %{py_ver}
212 # for compatibility with existing Ac packages
213 Provides: python(bytecode) = %{py_ver}
214 %{!?with_info:Obsoletes: python-doc-info}
215 Obsoletes: python-intl
218 Python shared library and very essental modules for Python binary.
220 %description libs -l pl.UTF-8
221 Biblioteka współdzielona języka Python oraz bardzo podstawowe moduły
225 Summary: Python modules
226 Summary(pl.UTF-8): Moduły języka Python
227 Group: Libraries/Python
228 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
229 Provides: python-cElementTree
230 Provides: python-elementtree
231 Obsoletes: python-cElementTree
232 Obsoletes: python-ctypes
233 Obsoletes: python-curses
234 Obsoletes: python-elementtree
235 Obsoletes: python-gdbm
236 Obsoletes: python-hashlib
237 Obsoletes: python-logging
238 Obsoletes: python-old
239 Obsoletes: python-optik
240 Obsoletes: python-ssl
241 Obsoletes: python-xml
242 Obsoletes: python-xmlrpc <= 1.0.1
243 Obsoletes: python-zlib
246 Python officially distributed modules.
248 %description modules -l pl.UTF-8
249 Oficjalnie rozprowadzane moduły języka Python.
251 %package modules-sqlite
252 Summary: Python SQLite modules
253 Summary(pl.UTF-8): Moduły SQLite języka Python
254 Group: Libraries/Python
255 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
256 Provides: python(sqlite)
258 %description modules-sqlite
259 Python officially distributed sqlite module.
261 %description modules-sqlite -l pl.UTF-8
262 Oficjalnie rozprowadzany moduł sqlite języka Python.
265 Summary: Python interactive module documentation access support
266 Summary(pl.UTF-8): Interaktywne korzystanie z dokumentacji modułów języka Python
268 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
269 Obsoletes: python-pydoc
271 %description -n pydoc
272 Python interactive module documentation access support.
274 %description -n pydoc -l pl.UTF-8
275 Interaktywne korzystanie z dokumentacji modułów języka Python.
278 Summary: IDE for Python language
279 Summary(pl.UTF-8): IDE dla języka Python
281 Requires: %{name}-tkinter = %{epoch}:%{version}-%{release}
282 Obsoletes: python-idle
285 IDE for Python language.
287 %description -n idle -l pl.UTF-8
288 IDE dla języka Python.
291 Summary: Libraries and header files for building python code
292 Summary(de.UTF-8): Libraries und Header-Dateien zum Erstellen von Python-Code
293 Summary(es.UTF-8): Bibliotecas y archivos de inclusión para construir programas en python
294 Summary(fr.UTF-8): Bibliothèques et en-têtes pour construire du code python
295 Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki Pythona
296 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para o Python
297 Summary(ru.UTF-8): Библиотеки и хедеры для построения кода на языке Python
298 Summary(tr.UTF-8): Python ile geliştirme yapmak için gerekli dosyalar
299 Summary(uk.UTF-8): Бібліотеки та хедери для програмування на мові Python
300 Group: Development/Languages/Python
301 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
302 Obsoletes: python2-devel
305 The Python interpreter is relatively easy to extend with dynamically
306 loaded extensions and to embed in other programs. This package
307 contains the header files and libraries which are needed to do both of
310 %description devel -l de.UTF-8
311 Der Python-Interpretierer ist relativ einfach anhand von dynamisch
312 ladbaren Erweiterungen auszubauen und läßt sich in andere Programme
313 integrieren. Dieses Paket enthält die Header-Dateien und Libraries,
314 die für beide Aufgaben erforderlich sind.
316 %description devel -l es.UTF-8
317 El interpretador Python permite incluir con facilidad extensiones
318 cargadas dinámicamente. Python es también fácil de ser empotrado en
319 otros programas. Este paquete contiene los archivos de inclusión y
320 bibliotecas necesarios para estas dos tareas.
322 %description devel -l fr.UTF-8
323 L'interpréteur Python est relativement facile à étendre avec des
324 extensions chargées dynamiquement et à insérer dans d'autres
325 programmes. Ce paquetage contient les en-têtes et les bibliothèques
326 nécessaires à ces deux tâches.
328 %description devel -l pl.UTF-8
329 Interpreter Pythona jest w miarę łatwy do rozszerzania przy pomocy
330 dynamicznie ładowanych rozszerzeń napisanych w C lub C++ oraz
331 osadzania w innych programach. Ten pakiet zawiera pliki nagłówkowe i
332 wszystko inne co potrzebne do tych celów.
334 %description devel -l pt_BR.UTF-8
335 O interpretador Python permite incluir com facilidade extensões
336 carregadas dinamicamente. Python é também fácil de ser embutido em
337 outros programas. Este pacote contém os arquivos de inclusão e
338 bibliotecas necessários para estas duas tarefas.
340 %description devel -l ru.UTF-8
341 Интерпретатор Python относительно легко расширяется при помощи
342 динамически загружаемых расширений и встраивается в другие программы.
343 Этот пакет содержит хедеры и библиотеки, необходимые для обеих этих
346 %description devel -l tr.UTF-8
347 Bu paket, Python ile geliştirme yapılabilmesi için gerekli başlık
348 dosyalarını ve kitaplıkları içerir.
350 %description devel -l uk.UTF-8
351 Інтерпретатор Python відносно легко розширюється за допомогою
352 розширень з динамічною загрузкою та вбудовується в інші програми. Цей
353 пакет містить хедери та бібліотеки, необхідні для обох цих задач.
356 Summary: Python module sources
357 Summary(pl.UTF-8): Pliki źródłowe modułów Pythona
358 Group: Development/Languages/Python
359 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
361 %description devel-src
362 Python module sources.
364 %description devel-src -l pl.UTF-8
365 Pliki źródłowe modułów Pythona.
368 Summary: Python development tools
369 Summary(pl.UTF-8): Narzędzia programistyczne języka Python
370 Group: Development/Languages/Python
371 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
373 %description devel-tools
374 Python development tools such as profilers and debugger.
376 %description devel-tools -l pl.UTF-8
377 Narzędzia programistyczne języka Python takie jak profiler oraz
381 Summary: Automated Python 2 to 3 code translation
382 Summary(pl.UTF-8): Automatyczne tłumaczenie kody Pythona 2 do 3
383 Group: Development/Languages/Python
386 2to3 is a Python program that reads Python 2.x source code and applies
387 a series of fixers to transform it into valid Python 3.x code. The
388 standard library contains a rich set of fixers that will handle almost
389 all code. 2to3 supporting library lib2to3 is, however, a flexible and
390 generic library, so it is possible to write your own fixers for 2to3.
391 lib2to3 could also be adapted to custom applications in which Python
392 code needs to be edited automatically.
395 Summary: Static python library
396 Summary(pl.UTF-8): Statyczna biblioteka Pythona
397 Group: Development/Languages/Python
398 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
401 Static python library.
403 %description static -l pl.UTF-8
404 Statyczna biblioteka Pythona.
407 Summary: Documentation on Python
408 Summary(de.UTF-8): Dokumentation zu Python
409 Summary(es.UTF-8): Documentación para Python
410 Summary(fr.UTF-8): Documentation sur Python
411 Summary(pl.UTF-8): Dokumentacja do Pythona
412 Summary(pt_BR.UTF-8): Documentação para a linguagem de programação Python
413 Summary(ru.UTF-8): Документация по языку Python
414 Summary(tr.UTF-8): Python belgeleri
415 Summary(uk.UTF-8): Документація по мові Python
417 Obsoletes: python-docs
420 This package contains documentation on the Python language and
421 interpretor as a mix of plain ASCII files and LaTeX sources.
423 %description doc -l de.UTF-8
424 Dieses Paket enthält Dokumentationen zu Python (Sprache und
425 Interpreter) in Form von einfachen ASCII-Dateien und LaTeX-Quellen.
427 %description doc -l es.UTF-8
428 Documentación para Python. Contiene archivos en texto y PostScript.
430 %description doc -l fr.UTF-8
431 Ce paquetage contient la documentation sur le langage python et sur
432 son interpréteur sous forme de fichiers ASCII et LaTeX.
434 %description doc -l pl.UTF-8
435 Oficjalna dokumentacja do Pythona. Zawiera przykładowe programy,
436 narzędzia i dokumentację. Strony podręcznika man znajdują się w
437 głównym pakiecie. Ten pakiet nie zawiera źródeł dokumentacji
438 napisanych w LaTeXu, tylko gotowe do wykorzystania pliki postscriptowe
441 %description doc -l pt_BR.UTF-8
442 O pacote python-doc contém documentação para a linguagem de
443 programação e para o interpretador Python. Fornecida em arquivos texto
446 %description doc -l ru.UTF-8
447 Этот пакет содержит документацию по собственно языку Python и по
448 исполняющему его интерпретатору в виде набора текстовых файлов и
449 исходных текстов в формате LaTeX.
451 %description doc -l tr.UTF-8
452 Bu paket, Python dili ile ilgili belgeleri ve düz ASCII dosyaları ve
453 LaTeX kaynaklarının bir karışımı olan yorumlayıcıyı içerir.
455 %description doc -l uk.UTF-8
456 Цей пакет містить документацію по власне мові Python та по виконуючому
457 її інтерпретатору у вигляді набора текстових файлів та вихідних
458 текстів у форматі LaTeX.
461 Summary: Documentation on Python in texinfo format
462 Summary(pl.UTF-8): Dokumentacja do Pythona w formacie texinfo
465 %description doc-info
466 Documentation on Python in texinfo format.
468 %description doc-info -l pl.UTF-8
469 Dokumentacja do Pythona w formacie texinfo.
472 Summary: Standard Python interface to the Tk GUI toolkit
473 Summary(de.UTF-8): Grafische Tk-Schnittstelle für Python
474 Summary(es.UTF-8): Interfaz de GUI Tk para Python
475 Summary(fr.UTF-8): Interface graphique Tk pour Python
476 Summary(pl.UTF-8): Standardowy interfejs Pythona do biblioteki Tk
477 Summary(pt_BR.UTF-8): Interface GUI Tk para Phyton
478 Summary(tr.UTF-8): Python için grafik kullanıcı arayüzü
479 Group: Libraries/Python
480 Requires: %{name}-modules = %{epoch}:%{version}-%{release}
481 Requires: tcl >= 8.4.3
482 Requires: tix >= 1:8.1.4-4
483 Requires: tk >= 8.4.3
487 Standard Python interface to the Tk GUI toolkit.
489 %description tkinter -l de.UTF-8
490 Eine grafische Schnittstelle für Python, basierend auf Tcl/Tk, und von
491 vielen Konfigurations-Tools genutzt.
493 %description tkinter -l es.UTF-8
494 Una interfaz gráfica para Python, basada en Tcl/Tk, y usada por muchas
495 herramientas de configuración.
497 %description tkinter -l fr.UTF-8
498 Interface graphique pour Python, basée sur Tcl/Tk et utilisée par
499 beaucoup des outils de configuration.
501 %description tkinter -l pl.UTF-8
502 Standardowy interfejs Pythona do biblioteki Tk.
504 %description tkinter -l pt_BR.UTF-8
505 Uma interface gráfica para Python, baseada em Tcl/Tk, e usada por
506 muitas ferramentas de configuração.
508 %description tkinter -l ru.UTF-8
509 Графический интерфейс (GUI) для Python, построенный на Tcl/Tk.
511 %description tkinter -l tr.UTF-8
512 Python için Tcl/Tk'ye dayalı ve pek çok ayarlama aracı tarafından
513 kullanılan grafik bir arayüzdür.
515 %description tkinter -l uk.UTF-8
516 Графічний інтерфейс (GUI) для Python, побудований на Tcl/Tk.
519 Summary: Example programs in Python
520 Summary(pl.UTF-8): Przykładowe programy w Pythonie
521 Group: Development/Languages/Python
522 Obsoletes: python-tools
524 %description examples
525 Example programs in Python.
527 These are for Python 2.3.4, not %{version}.
529 %description examples -l pl.UTF-8
530 Przykładowe programy w Pythonie.
532 Przykłady te są dla Pythona 2.3.4, nie %{version}.
535 %setup -q -n Python-%{version}%{beta}
545 sed -i -e 's#-ltermcap#-ltinfo#g' configure*
547 CPPFLAGS="-I/usr/include/ncursesw %{rpmcppflags}"; export CPPFLAGS
550 --with-cxx-main="%{__cxx}" \
553 --enable-unicode=ucs4 \
555 LINKCC='$(PURIFY) $(CXX)' \
556 LDSHARED='$(CC) $(CFLAGS) -shared' \
557 BLDSHARED='$(CC) $(CFLAGS) -shared' \
558 LDFLAGS="%{rpmcflags} %{rpmldflags}"
561 OPT="%{rpmcflags}" 2>&1 | awk '
562 BEGIN { fail = 0; logmsg = ""; }
564 if ($0 ~ /\*\*\* WARNING:/) {
570 END { if (fail) { print "\nPROBLEMS FOUND:"; print logmsg; exit(1); } }'
575 binlibdir="`pwd`/`echo build/lib.*`"
577 TESTOPTS="%{test_flags} %{test_list}" \
578 TESTPYTHON="LD_LIBRARY_PATH=`pwd` PYTHONHOME=`pwd` PYTHONPATH=`pwd`/Lib:$binlibdir ./python -tt"
582 rm -rf $RPM_BUILD_ROOT
583 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}} \
584 $RPM_BUILD_ROOT{%{py_sitedir},%{_mandir}/man1} \
585 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
586 $RPM_BUILD_ROOT%{_infodir} \
587 $RPM_BUILD_ROOT%{_docdir} \
588 $RPM_BUILD_ROOT/etc/shrc.d
591 DESTDIR=$RPM_BUILD_ROOT
593 # docs in constant location
594 ln -sf python-doc-%{version} $RPM_BUILD_ROOT%{_docdir}/python-doc
597 %{__make} -C Doc/info
598 install Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir}
601 install Makefile.pre.in $RPM_BUILD_ROOT%{py_libdir}/config
603 mv $RPM_BUILD_ROOT{%{py_libdir}/config,%{_libdir}}/libpython%{py_ver}.a
604 ln -sf libpython%{py_ver}.a $RPM_BUILD_ROOT%{_libdir}/libpython.a
605 ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython.so
606 ln -sf libpython%{py_ver}.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython%{py_ver}.so
608 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
609 cp -a Tools Demo $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
612 # create several useful aliases, such as timeit.py, profile.py, pdb.py, smtpd.py
615 # for python devel tools
616 for script in timeit profile pdb pstats; do
617 echo alias $script.py=\"python -m ${script}\"
618 done > $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh
621 < $RPM_BUILD_ROOT/etc/shrc.d/python-devel.sh \
622 > $RPM_BUILD_ROOT/etc/shrc.d/python-devel.csh
625 for script in smtpd webbrowser; do
626 echo alias $script.py=\"python -m ${script}\"
627 done > $RPM_BUILD_ROOT/etc/shrc.d/python-modules.sh
630 < $RPM_BUILD_ROOT/etc/shrc.d/python-modules.sh \
631 > $RPM_BUILD_ROOT/etc/shrc.d/python-modules.csh
633 # just to cut the noise, as they are not packaged (now)
635 rm -r $RPM_BUILD_ROOT%{py_scriptdir}/test
636 rm -r $RPM_BUILD_ROOT%{py_scriptdir}/bsddb/test
637 rm -r $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/test
638 rm -r $RPM_BUILD_ROOT%{py_scriptdir}/distutils/tests
639 rm -r $RPM_BUILD_ROOT%{py_scriptdir}/email/test
640 rm -r $RPM_BUILD_ROOT%{py_scriptdir}/sqlite3/test
641 rm -r $RPM_BUILD_ROOT%{py_scriptdir}/json/tests
642 rm -r $RPM_BUILD_ROOT%{py_scriptdir}/lib2to3/tests
645 rm -r $RPM_BUILD_ROOT%{py_scriptdir}/plat-*/regen
646 find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.egg-info -exec rm {} \;
647 find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.bat -exec rm {} \;
648 find $RPM_BUILD_ROOT%{py_scriptdir} -name \*.txt -exec rm {} \;
649 find $RPM_BUILD_ROOT%{py_scriptdir} -name README\* -exec rm {} \;
652 rm -rf $RPM_BUILD_ROOT
654 %post libs -p /sbin/ldconfig
655 %postun libs -p /sbin/ldconfig
657 %post doc-info -p /sbin/postshell
658 -/usr/sbin/fix-info-dir -c %{_infodir}
660 %postun doc-info -p /sbin/postshell
661 -/usr/sbin/fix-info-dir -c %{_infodir}
664 %defattr(644,root,root,755)
665 %attr(755,root,root) %{_bindir}/python
666 %attr(755,root,root) %{_bindir}/python%{py_ver}
667 %{_mandir}/man1/python.1*
670 %defattr(644,root,root,755)
671 /etc/shrc.d/python-modules*
672 %exclude %{py_scriptdir}/UserDict.py[co]
673 %exclude %{py_scriptdir}/codecs.py[co]
674 %exclude %{py_scriptdir}/copy_reg.py[co]
675 %exclude %{py_scriptdir}/locale.py[co]
676 %exclude %{py_scriptdir}/posixpath.py[co]
677 %exclude %{py_scriptdir}/pdb.py[co]
678 %exclude %{py_scriptdir}/profile.py[co]
679 %exclude %{py_scriptdir}/pstats.py[co]
680 %exclude %{py_scriptdir}/pydoc.py[co]
681 %exclude %{py_scriptdir}/site.py[co]
682 %exclude %{py_scriptdir}/stat.py[co]
683 %exclude %{py_scriptdir}/timeit.py[co]
684 %exclude %{py_scriptdir}/os.py[co]
685 %exclude %{py_scriptdir}/encodings/*.py[co]
686 %exclude %{py_scriptdir}/types.py[co]
688 %{py_scriptdir}/*.py[co]
690 %{py_dyndir}/*.egg-info
693 # list .so modules to be sure that all of them are built
696 # three modules below do not work on 64-bit architectures
697 # see Python README file for explanation
698 %ifnarch alpha ia64 ppc64 sparc64 %{x8664}
699 %attr(755,root,root) %{py_dyndir}/audioop.so
700 %attr(755,root,root) %{py_dyndir}/imageop.so
701 # sizeof(long) != sizeof(int), so dl module will not be built on 64-bit
703 %attr(755,root,root) %{py_dyndir}/dl.so
706 %attr(755,root,root) %{py_dyndir}/array.so
707 %attr(755,root,root) %{py_dyndir}/binascii.so
708 %attr(755,root,root) %{py_dyndir}/_bisect.so
709 %attr(755,root,root) %{py_dyndir}/_bsddb.so
710 %attr(755,root,root) %{py_dyndir}/_bytesio.so
711 %attr(755,root,root) %{py_dyndir}/bz2.so
712 %attr(755,root,root) %{py_dyndir}/cmath.so
713 %attr(755,root,root) %{py_dyndir}/_codecs_cn.so
714 %attr(755,root,root) %{py_dyndir}/_codecs_hk.so
715 %attr(755,root,root) %{py_dyndir}/_codecs_iso2022.so
716 %attr(755,root,root) %{py_dyndir}/_codecs_jp.so
717 %attr(755,root,root) %{py_dyndir}/_codecs_kr.so
718 %attr(755,root,root) %{py_dyndir}/_codecs_tw.so
719 %attr(755,root,root) %{py_dyndir}/_collections.so
720 %attr(755,root,root) %{py_dyndir}/cPickle.so
721 %attr(755,root,root) %{py_dyndir}/crypt.so
722 %attr(755,root,root) %{py_dyndir}/cStringIO.so
723 %attr(755,root,root) %{py_dyndir}/_csv.so
724 %attr(755,root,root) %{py_dyndir}/_ctypes*.so
725 %attr(755,root,root) %{py_dyndir}/_curses_panel.so
726 %attr(755,root,root) %{py_dyndir}/_curses.so
727 %attr(755,root,root) %{py_dyndir}/datetime.so
728 %attr(755,root,root) %{py_dyndir}/_elementtree.so
729 %attr(755,root,root) %{py_dyndir}/_functools.so
730 %attr(755,root,root) %{py_dyndir}/_fileio.so
731 %attr(755,root,root) %{py_dyndir}/_hashlib.so
732 %attr(755,root,root) %{py_dyndir}/_heapq.so
733 %attr(755,root,root) %{py_dyndir}/_json.so
734 %attr(755,root,root) %{py_dyndir}/_locale.so
735 %attr(755,root,root) %{py_dyndir}/_lsprof.so
736 %attr(755,root,root) %{py_dyndir}/_multibytecodec.so
737 %attr(755,root,root) %{py_dyndir}/_multiprocessing.so
738 %attr(755,root,root) %{py_dyndir}/_random.so
739 %{?with_openssl097:%attr(755,root,root) %{py_dyndir}/_sha*.so}
740 %attr(755,root,root) %{py_dyndir}/_socket.so
741 %attr(755,root,root) %{py_dyndir}/_ssl.so
742 %attr(755,root,root) %{py_dyndir}/_testcapi.so
743 %attr(755,root,root) %{py_dyndir}/_weakref.so
745 %attr(755,root,root) %{py_dyndir}/dbm.so
747 %attr(755,root,root) %{py_dyndir}/fcntl.so
748 %attr(755,root,root) %{py_dyndir}/future_builtins.so
749 %attr(755,root,root) %{py_dyndir}/gdbm.so
750 %attr(755,root,root) %{py_dyndir}/grp.so
751 %attr(755,root,root) %{py_dyndir}/itertools.so
752 %attr(755,root,root) %{py_dyndir}/linuxaudiodev.so
753 %attr(755,root,root) %{py_dyndir}/math.so
754 %attr(755,root,root) %{py_dyndir}/mmap.so
755 %attr(755,root,root) %{py_dyndir}/nis.so
756 %attr(755,root,root) %{py_dyndir}/operator.so
757 %attr(755,root,root) %{py_dyndir}/ossaudiodev.so
758 %attr(755,root,root) %{py_dyndir}/parser.so
759 %attr(755,root,root) %{py_dyndir}/pyexpat.so
760 %attr(755,root,root) %{py_dyndir}/readline.so
761 %attr(755,root,root) %{py_dyndir}/resource.so
762 %attr(755,root,root) %{py_dyndir}/select.so
763 %attr(755,root,root) %{py_dyndir}/strop.so
764 %attr(755,root,root) %{py_dyndir}/syslog.so
765 %attr(755,root,root) %{py_dyndir}/termios.so
766 %attr(755,root,root) %{py_dyndir}/time.so
767 %attr(755,root,root) %{py_dyndir}/spwd.so
768 %attr(755,root,root) %{py_dyndir}/unicodedata.so
769 %attr(755,root,root) %{py_dyndir}/zlib.so
771 %dir %{py_scriptdir}/plat-*
772 %{py_scriptdir}/plat-*/*.py[co]
774 %dir %{py_scriptdir}/bsddb
775 %{py_scriptdir}/bsddb/*.py[co]
777 %dir %{py_scriptdir}/compiler
778 %{py_scriptdir}/compiler/*.py[co]
780 %dir %{py_scriptdir}/ctypes
781 %dir %{py_scriptdir}/ctypes/macholib
782 %{py_scriptdir}/ctypes/*.py[co]
783 %{py_scriptdir}/ctypes/macholib/*.py[co]
785 %dir %{py_scriptdir}/curses
786 %{py_scriptdir}/curses/*.py[co]
788 %dir %{py_scriptdir}/distutils
789 %dir %{py_scriptdir}/distutils/command
790 %{py_scriptdir}/distutils/*.py[co]
791 %{py_scriptdir}/distutils/command/*.py[co]
793 %dir %{py_scriptdir}/email
794 %dir %{py_scriptdir}/email/mime
795 %{py_scriptdir}/email/*.py[co]
796 %{py_scriptdir}/email/mime/*.py[co]
798 %dir %{py_scriptdir}/json
799 %{py_scriptdir}/json/*.py[co]
801 %dir %{py_scriptdir}/logging
802 %{py_scriptdir}/logging/*.py[co]
804 %dir %{py_scriptdir}/multiprocessing
805 %dir %{py_scriptdir}/multiprocessing/dummy
806 %{py_scriptdir}/multiprocessing/*.py[co]
807 %{py_scriptdir}/multiprocessing/dummy/*.py[co]
809 %dir %{py_scriptdir}/wsgiref
810 %{py_scriptdir}/wsgiref/*.py[co]
812 %dir %{py_scriptdir}/xml
813 %dir %{py_scriptdir}/xml/dom
814 %dir %{py_scriptdir}/xml/etree
815 %dir %{py_scriptdir}/xml/parsers
816 %dir %{py_scriptdir}/xml/sax
817 %{py_scriptdir}/xml/*.py[co]
818 %{py_scriptdir}/xml/dom/*.py[co]
819 %{py_scriptdir}/xml/etree/*.py[co]
820 %{py_scriptdir}/xml/parsers/*.py[co]
821 %{py_scriptdir}/xml/sax/*.py[co]
823 %files modules-sqlite
824 %defattr(644,root,root,755)
825 %attr(755,root,root) %{py_dyndir}/_sqlite3.so
826 %dir %{py_scriptdir}/sqlite3
827 %{py_scriptdir}/sqlite3/*.py[co]
830 %defattr(644,root,root,755)
831 %attr(755,root,root) %{_libdir}/libpython*.so.*
836 %dir %{py_sitescriptdir}
839 # shared modules required by python library
840 %attr(755,root,root) %{py_dyndir}/_struct.so
842 # modules required by python library
843 %{py_scriptdir}/UserDict.py[co]
844 %{py_scriptdir}/codecs.py[co]
845 %{py_scriptdir}/copy_reg.py[co]
846 %{py_scriptdir}/locale.py[co]
847 %{py_scriptdir}/posixpath.py[co]
848 %{py_scriptdir}/site.py[co]
849 %{py_scriptdir}/stat.py[co]
850 %{py_scriptdir}/os.py[co]
851 # needed by the dynamic sys.lib patch
852 %{py_scriptdir}/types.py[co]
854 # encodings required by python library
855 %dir %{py_scriptdir}/encodings
856 %{py_scriptdir}/encodings/*.py[co]
859 %defattr(644,root,root,755)
860 %attr(755,root,root) %{_bindir}/pydoc
861 %{py_scriptdir}/pydoc.py[co]
864 %defattr(644,root,root,755)
865 %attr(755,root,root) %{_bindir}/idle
866 %dir %{py_scriptdir}/idlelib
867 %dir %{py_scriptdir}/idlelib/Icons
868 %{py_scriptdir}/idlelib/*.py[co]
869 %{py_scriptdir}/idlelib/Icons/*
870 %{py_scriptdir}/idlelib/*.def
873 %defattr(644,root,root,755)
874 %doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp}
875 %attr(755,root,root) %{_bindir}/python-config
876 %attr(755,root,root) %{_bindir}/python%{py_ver}-config
877 %attr(755,root,root) %{_libdir}/lib*.so
881 %dir %{py_libdir}/config
882 %attr(755,root,root) %{py_libdir}/config/makesetup
883 %attr(755,root,root) %{py_libdir}/config/install-sh
884 %{py_libdir}/config/Makefile
885 %{py_libdir}/config/Makefile.pre.in
886 %{py_libdir}/config/Setup
887 %{py_libdir}/config/Setup.config
888 %{py_libdir}/config/Setup.local
889 %{py_libdir}/config/config.c
890 %{py_libdir}/config/config.c.in
891 %{py_libdir}/config/python.o
894 %defattr(644,root,root,755)
895 %attr(-,root,root) %{py_scriptdir}/*.py
896 %{py_scriptdir}/plat-*/*.py
897 %{py_scriptdir}/bsddb/*.py
898 %{py_scriptdir}/ctypes/*.py
899 %{py_scriptdir}/ctypes/macholib/*.py
900 %{py_scriptdir}/compiler/*.py
901 %{py_scriptdir}/curses/*.py
902 %{py_scriptdir}/distutils/*.py
903 %{py_scriptdir}/distutils/command/*.py
904 %{py_scriptdir}/email/*.py
905 %{py_scriptdir}/email/mime/*.py
906 %{py_scriptdir}/hotshot/*.py
907 %{py_scriptdir}/json/*.py
908 %{py_scriptdir}/lib2to3/*.py
909 %{py_scriptdir}/lib2to3/fixes/*.py
910 %{py_scriptdir}/lib2to3/pgen2/*.py
911 %{py_scriptdir}/logging/*.py
912 %{py_scriptdir}/multiprocessing/*.py
913 %{py_scriptdir}/multiprocessing/dummy/*.py
914 %{py_scriptdir}/sqlite3/*.py
915 %{py_scriptdir}/wsgiref/*.py
916 %{py_scriptdir}/xml/*.py
917 %{py_scriptdir}/xml/dom/*.py
918 %{py_scriptdir}/xml/etree/*.py
919 %{py_scriptdir}/xml/parsers/*.py
920 %{py_scriptdir}/xml/sax/*.py
921 %{py_scriptdir}/encodings/*.py
922 %{py_scriptdir}/idlelib/*.py
925 %defattr(644,root,root,755)
927 /etc/shrc.d/python-devel*
929 %attr(755,root,root) %{py_dyndir}/_hotshot.so
930 %dir %{py_scriptdir}/hotshot
931 %{py_scriptdir}/hotshot/*.py[co]
932 %{py_scriptdir}/pdb.py[co]
933 %{py_scriptdir}/profile.py[co]
934 %{py_scriptdir}/pstats.py[co]
935 %{py_scriptdir}/timeit.py[co]
938 %defattr(644,root,root,755)
939 %attr(755,root,root) %{_bindir}/2to3
940 %dir %{py_scriptdir}/lib2to3
941 %dir %{py_scriptdir}/lib2to3/fixes
942 %dir %{py_scriptdir}/lib2to3/pgen2
943 %{py_scriptdir}/lib2to3/*.py[co]
944 %{py_scriptdir}/lib2to3/*.pickle
945 %{py_scriptdir}/lib2to3/fixes/*.py[co]
946 %{py_scriptdir}/lib2to3/pgen2/*.py[co]
949 %defattr(644,root,root,755)
953 %defattr(644,root,root,755)
954 %{_examplesdir}/%{name}-%{version}
958 %defattr(644,root,root,755)
959 %doc python-%{dver}-docs-html/*
960 %{_docdir}/python-doc
964 %defattr(644,root,root,755)
970 %defattr(644,root,root,755)
971 %{py_scriptdir}/lib-tk
972 %attr(755,root,root) %{py_dyndir}/_tkinter.so