]>
Commit | Line | Data |
---|---|---|
1 | # | |
2 | # TODO: | |
3 | # - fix tests | |
4 | # - check unpackaged files | |
5 | ||
6 | # Conditional build: | |
7 | %bcond_with info # info pages (requires emacs) | |
8 | %bcond_without tkinter # disables tkinter module building | |
9 | %bcond_without tests # disables Python testing | |
10 | %bcond_with verbose_tests # runs tests in verbose mode | |
11 | # | |
12 | # tests which will not work on 64-bit platforms | |
13 | %define no64bit_tests test_audioop test_rgbimg test_imageop | |
14 | # tests which may fail because of builder environment limitations (no /proc or /dev/pts) | |
15 | %define nobuilder_tests test_resource test_openpty test_socket test_nis test_posix test_locale test_pty | |
16 | # tests which fail because of some unknown/unresolved reason (this list should be empty) | |
17 | %define broken_tests test_httpservers test_distutils test_cmd_line test_pydoc test_telnetlib test_zlib | |
18 | ||
19 | %define py_ver 3.2 | |
20 | %define py_abi %{py_ver}mu | |
21 | %define py_prefix %{_prefix} | |
22 | %define py_libdir %{py_prefix}/%{_lib}/python%{py_ver} | |
23 | %define py_incdir %{_includedir}/python%{py_abi} | |
24 | %define py_sitedir %{py_libdir}/site-packages | |
25 | %define py_dyndir %{py_libdir}/lib-dynload | |
26 | ||
27 | Summary: Very high level scripting language with X interface | |
28 | Summary(es.UTF-8): Lenguaje script de alto nivel con interfaz X | |
29 | Summary(fr.UTF-8): Langage de script de très haut niveau avec interface X | |
30 | Summary(pl.UTF-8): Python - język obiektowy wysokiego poziomu | |
31 | Summary(pt_BR.UTF-8): Linguagem de programação interpretada de alto nível | |
32 | Summary(ru.UTF-8): Язык программирования очень высокого уровня с X-интерфейсом | |
33 | Summary(tr.UTF-8): X arayüzlü, yüksek düzeyli, kabuk yorumlayıcı dili | |
34 | Summary(uk.UTF-8): Мова програмування дуже високого рівня з X-інтерфейсом | |
35 | Name: python3 | |
36 | Version: %{py_ver} | |
37 | Release: 1 | |
38 | Epoch: 1 | |
39 | License: PSF | |
40 | Group: Applications | |
41 | Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz | |
42 | # Source0-md5: 563c0b4b8c8596e332cc076c4f013971 | |
43 | Patch0: %{name}-pythonpath.patch | |
44 | Patch1: %{name}-ac_fixes.patch | |
45 | Patch2: %{name}-lib64.patch | |
46 | Patch3: %{name}-noarch_to_datadir.patch | |
47 | Patch4: %{name}-bug11254.patch | |
48 | URL: http://www.python.org/ | |
49 | BuildRequires: autoconf >= 2.65 | |
50 | BuildRequires: bluez-libs-devel | |
51 | BuildRequires: bzip2-devel | |
52 | BuildRequires: db-devel >= 4 | |
53 | %{?with_info:BuildRequires: emacs >= 21} | |
54 | BuildRequires: expat-devel >= 1:1.95.7 | |
55 | BuildRequires: file | |
56 | BuildRequires: gdbm-devel >= 1.8.3 | |
57 | BuildRequires: gmp-devel >= 4.0 | |
58 | BuildRequires: libffi-devel | |
59 | BuildRequires: libstdc++-devel | |
60 | BuildRequires: ncurses-ext-devel >= 5.2 | |
61 | BuildRequires: openssl-devel >= 0.9.8 | |
62 | BuildRequires: readline-devel >= 5.0 | |
63 | BuildRequires: rpm-pythonprov | |
64 | BuildRequires: sed >= 4.0 | |
65 | BuildRequires: sqlite3-devel >= 3.3.5 | |
66 | BuildRequires: tar >= 1:1.22 | |
67 | %{?with_info:BuildRequires: tetex-makeindex} | |
68 | %{?with_tkinter:BuildRequires: tix-devel >= 1:8.1.4-4} | |
69 | %{?with_tkinter:BuildRequires: tk-devel >= 8.4.3} | |
70 | BuildRequires: zlib-devel | |
71 | Requires: %{name}-libs = %{epoch}:%{version}-%{release} | |
72 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
73 | ||
74 | %define specflags_ppc -D__ppc__=1 | |
75 | %define specflags_ppc64 -D__ppc64__=1 | |
76 | ||
77 | %if %{with verbose_tests} | |
78 | %define test_flags -v -l -x | |
79 | %else | |
80 | %define test_flags -w -l -x | |
81 | %endif | |
82 | ||
83 | %ifarch alpha ia64 ppc64 sparc64 ppc64 %{x8664} | |
84 | %define test_list %{nobuilder_tests} %{broken_tests} %{no64bit_tests} | |
85 | %else | |
86 | %define test_list %{nobuilder_tests} %{broken_tests} | |
87 | %endif | |
88 | ||
89 | %ifarch sparc | |
90 | %define test_list %{nobuilder_tests} %{broken_tests} test_fcntl test_ioctl | |
91 | %endif | |
92 | ||
93 | %description | |
94 | Python is an interpreted, interactive, object-oriented programming | |
95 | language. It incorporates modules, exceptions, dynamic typing, very | |
96 | high level dynamic data types, and classes. Python combines remarkable | |
97 | power with very clear syntax. It has interfaces to many system calls | |
98 | and libraries, as well as to various window systems, and is extensible | |
99 | in C or C++. It is also usable as an extension language for | |
100 | applications that need a programmable interface. Finally, Python is | |
101 | portable: it runs on many brands of UNIX, on the Mac, and on PCs under | |
102 | MS-DOS, Windows, Windows NT, and OS/2. | |
103 | ||
104 | This package contains the Python binary. | |
105 | ||
106 | %description -l de.UTF-8 | |
107 | Python ist eine interpretierte, interaktive, objektorientierte | |
108 | Programmiersprache, vergleichbar zu Tcl, Perl, Scheme oder Java. | |
109 | Python enthält Module, Klassen, Exceptions, High-Level dynamische | |
110 | Datentypen und dynamisches Typisieren. Python unterstützt Interfaces | |
111 | zu vielen Systemaufrufen und Libraries, sowie verschiedene | |
112 | Fenstersysteme (X11, Motif, Tk, Mac und MFC) | |
113 | ||
114 | Programmierer können neue built-in-Module für Python in C oder C++ | |
115 | schreiben. Python kann auch als Erweiterungssprache für Applikationen | |
116 | benutzt werden, die ein programmierbares Interface brauchen. Dieses | |
117 | Paket enthält die meisten Standard-Python-Module, und Module zum | |
118 | Ansprechen von Tix (Tk-widget set) und RPM. | |
119 | ||
120 | %description -l es.UTF-8 | |
121 | Python es un lenguaje de scripts interpretado orientado a objetos. | |
122 | Contiene soporte para carga dinámica de objetos, clases, módulos y | |
123 | excepciones. | |
124 | ||
125 | Es sencillo adicionar interfaces para nuevos sistemas de biblioteca a | |
126 | través de código C, tornando Python fácil de usar en ambientes | |
127 | particulares/personalizados. Este paquete Python incluye la mayoría de | |
128 | los módulos padrón Python, junto con módulos para crear interfaces | |
129 | para el conjunto de componentes Tix para Tk y RPM. | |
130 | ||
131 | %description -l fr.UTF-8 | |
132 | Python est un langage de script interprété et orienté objet. Il gère | |
133 | le chargement dynamique des objets, les classes, les modules et les | |
134 | exceptions. L'ajout d'interfaces aux nouvelles bibliothèques systèmes | |
135 | avec du code C est simple, ce qui rend Python facile à utiliser dans | |
136 | des configs personnalisées. | |
137 | ||
138 | Ce paquetage Python contient la plupart des modules Python standards, | |
139 | ainsi que ceux permettant l'interfaçage avec les widgets Tix pour Tk | |
140 | et RPM. | |
141 | ||
142 | %description -l pl.UTF-8 | |
143 | Python jest interpretowanym, interaktywnym i zorientowanym obiektowo | |
144 | językiem programowania. Jest modularny, obsługuje wyjątki, dynamiczne | |
145 | typy, zaawansowane dynamiczne struktury danych i klasy. Python łączy w | |
146 | sobie duże możliwości i przejrzystą składnię. Posiada interfejsy do | |
147 | wielu wywołań systemowych i bibliotek, w tym również do różnych | |
148 | bibliotek okienkowych. Możliwości jego można jeszcze rozszerzać | |
149 | poprzez odpowiednie moduły pisane w C lub C++. Python może być również | |
150 | użyty jako element aplikacji, którym potrzebny jest interpreter do | |
151 | skryptów. I wreszcie, Python jest wieloplatformowy, działa na wielu | |
152 | odmianach UNIX-a, Macu oraz PC pod DOS-em, Windows, WindowsNT oraz | |
153 | OS/2. | |
154 | ||
155 | Ten pakiet zawiera binarkę Pythona. | |
156 | ||
157 | %description -l pt_BR.UTF-8 | |
158 | Python é uma linguagem de scripts interpretada orientada a objetos. | |
159 | Contém suporte para carga dinâmica de objetos, classes, módulos e | |
160 | exceções. Adicionar interfaces para novos sistemas de biblioteca | |
161 | através de código C é simples, tornando Python fácil de usar em | |
162 | ambientes particulares/personalizados. | |
163 | ||
164 | Este pacote Python inclui a maioria do módulos padrão Python, junto | |
165 | com módulos para interfaceamento para o conjunto de componentes Tix | |
166 | para Tk e RPM. | |
167 | ||
168 | %description -l ru.UTF-8 | |
169 | Python - это интерпретируемый, объектно-ориентированный язык | |
170 | программирования. Он поддерживает динамическую загрузку объектов, | |
171 | классы, модули и обработку исключительных ситуаций (exceptions). | |
172 | Простота добавления интерфейсов к новым системным библиотекам через | |
173 | код на языке C делает Python хорошим выбором для использования в | |
174 | специальных конфигурациях. | |
175 | ||
176 | %description -l tr.UTF-8 | |
177 | Python, nesneye yönelik bir kabuk yorumlayıcıdır. Nesnelerin, | |
178 | sınıfların, modüllerin ve aykırı durumların dinamik yüklenmelerine | |
179 | destek verir. C koduyla birlikte kullanımı son derece kolaydır. Bu | |
180 | paket, standart Python birimlerinin çoğunun yanısıra Tk ve RPM için | |
181 | arayüz birimlerini de içerir. | |
182 | ||
183 | %description -l uk.UTF-8 | |
184 | Python - це інтерпретована, об'єктно-орієнтована мова програмування. | |
185 | Він підтримує динамічну загрузку об'єктів, класи, модулі та обробку | |
186 | виключних ситуацій (exceptions). Простота додавання інтерфейсів для | |
187 | нових системних бібліотек через код на мові C робить Python добрим | |
188 | вибором для використання в спеціальних конфігураціях. | |
189 | ||
190 | %package libs | |
191 | Summary: Python library | |
192 | Summary(pl.UTF-8): Biblioteka języka Python | |
193 | Group: Libraries/Python | |
194 | # broken detection in rpm/pythondeps.sh | |
195 | Provides: python(abi) = %{py_ver} | |
196 | # for compatibility with existing Ac packages | |
197 | Provides: python(bytecode) = %{py_ver} | |
198 | %{!?with_info:Obsoletes: python3-doc-info} | |
199 | ||
200 | %description libs | |
201 | Python shared library and very essental modules for Python binary. | |
202 | ||
203 | %description libs -l pl.UTF-8 | |
204 | Biblioteka współdzielona języka Python oraz bardzo podstawowe moduły | |
205 | dla Pythona. | |
206 | ||
207 | %package modules | |
208 | Summary: Python modules | |
209 | Summary(pl.UTF-8): Moduły języka Python | |
210 | Group: Libraries/Python | |
211 | Requires: %{name}-libs = %{epoch}:%{version}-%{release} | |
212 | Obsoletes: python3-modules-sqlite | |
213 | ||
214 | %description modules | |
215 | Python officially distributed modules. | |
216 | ||
217 | %description modules -l pl.UTF-8 | |
218 | Oficjalnie rozprowadzane moduły języka Python. | |
219 | ||
220 | %package -n pydoc3 | |
221 | Summary: Python interactive module documentation access support | |
222 | Summary(pl.UTF-8): Interaktywne korzystanie z dokumentacji modułów języka Python | |
223 | Group: Applications | |
224 | Requires: %{name}-modules = %{epoch}:%{version}-%{release} | |
225 | ||
226 | %description -n pydoc3 | |
227 | Python interactive module documentation access support. | |
228 | ||
229 | %description -n pydoc3 -l pl.UTF-8 | |
230 | Interaktywne korzystanie z dokumentacji modułów języka Python. | |
231 | ||
232 | %package -n idle3 | |
233 | Summary: IDE for Python language | |
234 | Summary(pl.UTF-8): IDE dla języka Python | |
235 | Group: Applications | |
236 | Requires: %{name}-tkinter = %{epoch}:%{version}-%{release} | |
237 | ||
238 | %description -n idle3 | |
239 | IDE for Python language. | |
240 | ||
241 | %description -n idle3 -l pl.UTF-8 | |
242 | IDE dla języka Python. | |
243 | ||
244 | %package devel | |
245 | Summary: Libraries and header files for building python code | |
246 | Summary(de.UTF-8): Libraries und Header-Dateien zum Erstellen von Python-Code | |
247 | Summary(es.UTF-8): Bibliotecas y archivos de inclusión para construir programas en python | |
248 | Summary(fr.UTF-8): Bibliothèques et en-têtes pour construire du code python | |
249 | Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki Pythona | |
250 | Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para o Python | |
251 | Summary(ru.UTF-8): Библиотеки и хедеры для построения кода на языке Python | |
252 | Summary(tr.UTF-8): Python ile geliştirme yapmak için gerekli dosyalar | |
253 | Summary(uk.UTF-8): Бібліотеки та хедери для програмування на мові Python | |
254 | Group: Development/Languages/Python | |
255 | Requires: %{name}-libs = %{epoch}:%{version}-%{release} | |
256 | ||
257 | %description devel | |
258 | The Python interpreter is relatively easy to extend with dynamically | |
259 | loaded extensions and to embed in other programs. This package | |
260 | contains the header files and libraries which are needed to do both of | |
261 | these tasks. | |
262 | ||
263 | %description devel -l de.UTF-8 | |
264 | Der Python-Interpretierer ist relativ einfach anhand von dynamisch | |
265 | ladbaren Erweiterungen auszubauen und läßt sich in andere Programme | |
266 | integrieren. Dieses Paket enthält die Header-Dateien und Libraries, | |
267 | die für beide Aufgaben erforderlich sind. | |
268 | ||
269 | %description devel -l es.UTF-8 | |
270 | El interpretador Python permite incluir con facilidad extensiones | |
271 | cargadas dinámicamente. Python es también fácil de ser empotrado en | |
272 | otros programas. Este paquete contiene los archivos de inclusión y | |
273 | bibliotecas necesarios para estas dos tareas. | |
274 | ||
275 | %description devel -l fr.UTF-8 | |
276 | L'interpréteur Python est relativement facile à étendre avec des | |
277 | extensions chargées dynamiquement et à insérer dans d'autres | |
278 | programmes. Ce paquetage contient les en-têtes et les bibliothèques | |
279 | nécessaires à ces deux tâches. | |
280 | ||
281 | %description devel -l pl.UTF-8 | |
282 | Interpreter Pythona jest w miarę łatwy do rozszerzania przy pomocy | |
283 | dynamicznie ładowanych rozszerzeń napisanych w C lub C++ oraz | |
284 | osadzania w innych programach. Ten pakiet zawiera pliki nagłówkowe i | |
285 | wszystko inne co potrzebne do tych celów. | |
286 | ||
287 | %description devel -l pt_BR.UTF-8 | |
288 | O interpretador Python permite incluir com facilidade extensões | |
289 | carregadas dinamicamente. Python é também fácil de ser embutido em | |
290 | outros programas. Este pacote contém os arquivos de inclusão e | |
291 | bibliotecas necessários para estas duas tarefas. | |
292 | ||
293 | %description devel -l ru.UTF-8 | |
294 | Интерпретатор Python относительно легко расширяется при помощи | |
295 | динамически загружаемых расширений и встраивается в другие программы. | |
296 | Этот пакет содержит хедеры и библиотеки, необходимые для обеих этих | |
297 | задач. | |
298 | ||
299 | %description devel -l tr.UTF-8 | |
300 | Bu paket, Python ile geliştirme yapılabilmesi için gerekli başlık | |
301 | dosyalarını ve kitaplıkları içerir. | |
302 | ||
303 | %description devel -l uk.UTF-8 | |
304 | Інтерпретатор Python відносно легко розширюється за допомогою | |
305 | розширень з динамічною загрузкою та вбудовується в інші програми. Цей | |
306 | пакет містить хедери та бібліотеки, необхідні для обох цих задач. | |
307 | ||
308 | %package devel-src | |
309 | Summary: Python module sources | |
310 | Summary(pl.UTF-8): Pliki źródłowe modułów Pythona | |
311 | Group: Development/Languages/Python | |
312 | Requires: %{name}-modules = %{epoch}:%{version}-%{release} | |
313 | ||
314 | %description devel-src | |
315 | Python module sources. | |
316 | ||
317 | %description devel-src -l pl.UTF-8 | |
318 | Pliki źródłowe modułów Pythona. | |
319 | ||
320 | %package devel-tools | |
321 | Summary: Python development tools | |
322 | Summary(pl.UTF-8): Narzędzia programistyczne języka Python | |
323 | Group: Development/Languages/Python | |
324 | Requires: %{name}-modules = %{epoch}:%{version}-%{release} | |
325 | ||
326 | %description devel-tools | |
327 | Python development tools such as profilers and debugger. | |
328 | ||
329 | %description devel-tools -l pl.UTF-8 | |
330 | Narzędzia programistyczne języka Python takie jak profiler oraz | |
331 | debugger. | |
332 | ||
333 | %package 2to3 | |
334 | Summary: Automated Python 2 to 3 code translation | |
335 | Summary(pl.UTF-8): Automatyczne tłumaczenie kodu Pythona 2 do 3 | |
336 | Group: Development/Languages/Pythona | |
337 | ||
338 | %description 2to3 | |
339 | 2to3 is a Python program that reads Python 2.x source code and applies | |
340 | a series of fixers to transform it into valid Python 3.x code. The | |
341 | standard library contains a rich set of fixers that will handle almost | |
342 | all code. 2to3 supporting library lib2to3 is, however, a flexible and | |
343 | generic library, so it is possible to write your own fixers for 2to3. | |
344 | lib2to3 could also be adapted to custom applications in which Python | |
345 | code needs to be edited automatically. | |
346 | ||
347 | %description 2to3 -l pl.UTF-8 | |
348 | 2to3 to program w Pythonie czytający od źródłowy w Pythonie 2.x i | |
349 | aplikujący serię poprawek przekształcających go w poprawny kod w | |
350 | Pythonie 3.x. Biblioteka standardowa zawiera duży zbiór poprawek | |
351 | obsługujących większość kodu. Biblioteka wspierająca 2to3 (lib2to3) | |
352 | jest jednak elastyczną i ogólną biblioteką, więc można pisać własne | |
353 | poprawki dla 2to3. lib2to3 można także zaadaptować na potrzeby | |
354 | własnych zastosowań, w których kod w Pythonie musi być modyfikowany | |
355 | automatycznie. | |
356 | ||
357 | %package static | |
358 | Summary: Static python library | |
359 | Summary(pl.UTF-8): Statyczna biblioteka Pythona | |
360 | Group: Development/Languages/Python | |
361 | Requires: %{name}-devel = %{epoch}:%{version}-%{release} | |
362 | ||
363 | %description static | |
364 | Static python library. | |
365 | ||
366 | %description static -l pl.UTF-8 | |
367 | Statyczna biblioteka Pythona. | |
368 | ||
369 | %package doc-info | |
370 | Summary: Documentation on Python in texinfo format | |
371 | Summary(pl.UTF-8): Dokumentacja do Pythona w formacie texinfo | |
372 | Group: Documentation | |
373 | ||
374 | %description doc-info | |
375 | Documentation on Python in texinfo format. | |
376 | ||
377 | %description doc-info -l pl.UTF-8 | |
378 | Dokumentacja do Pythona w formacie texinfo. | |
379 | ||
380 | %package tkinter | |
381 | Summary: Standard Python interface to the Tk GUI toolkit | |
382 | Summary(de.UTF-8): Grafische Tk-Schnittstelle für Python | |
383 | Summary(es.UTF-8): Interfaz de GUI Tk para Python | |
384 | Summary(fr.UTF-8): Interface graphique Tk pour Python | |
385 | Summary(pl.UTF-8): Standardowy interfejs Pythona do biblioteki Tk | |
386 | Summary(pt_BR.UTF-8): Interface GUI Tk para Phyton | |
387 | Summary(tr.UTF-8): Python için grafik kullanıcı arayüzü | |
388 | Group: Libraries/Python | |
389 | Requires: %{name}-modules = %{epoch}:%{version}-%{release} | |
390 | Requires: tcl >= 8.4.3 | |
391 | Requires: tix >= 1:8.1.4-4 | |
392 | Requires: tk >= 8.4.3 | |
393 | ||
394 | %description tkinter | |
395 | Standard Python interface to the Tk GUI toolkit. | |
396 | ||
397 | %description tkinter -l de.UTF-8 | |
398 | Eine grafische Schnittstelle für Python, basierend auf Tcl/Tk, und von | |
399 | vielen Konfigurations-Tools genutzt. | |
400 | ||
401 | %description tkinter -l es.UTF-8 | |
402 | Una interfaz gráfica para Python, basada en Tcl/Tk, y usada por muchas | |
403 | herramientas de configuración. | |
404 | ||
405 | %description tkinter -l fr.UTF-8 | |
406 | Interface graphique pour Python, basée sur Tcl/Tk et utilisée par | |
407 | beaucoup des outils de configuration. | |
408 | ||
409 | %description tkinter -l pl.UTF-8 | |
410 | Standardowy interfejs Pythona do biblioteki Tk. | |
411 | ||
412 | %description tkinter -l pt_BR.UTF-8 | |
413 | Uma interface gráfica para Python, baseada em Tcl/Tk, e usada por | |
414 | muitas ferramentas de configuração. | |
415 | ||
416 | %description tkinter -l ru.UTF-8 | |
417 | Графический интерфейс (GUI) для Python, построенный на Tcl/Tk. | |
418 | ||
419 | %description tkinter -l tr.UTF-8 | |
420 | Python için Tcl/Tk'ye dayalı ve pek çok ayarlama aracı tarafından | |
421 | kullanılan grafik bir arayüzdür. | |
422 | ||
423 | %description tkinter -l uk.UTF-8 | |
424 | Графічний інтерфейс (GUI) для Python, побудований на Tcl/Tk. | |
425 | ||
426 | %package examples | |
427 | Summary: Example programs in Python | |
428 | Summary(pl.UTF-8): Przykładowe programy w Pythonie | |
429 | Group: Development/Languages/Python | |
430 | ||
431 | %description examples | |
432 | Example programs in Python. | |
433 | ||
434 | These are for Python 2.3.4, not %{version}. | |
435 | ||
436 | %description examples -l pl.UTF-8 | |
437 | Przykładowe programy w Pythonie. | |
438 | ||
439 | Przykłady te są dla Pythona 2.3.4, nie %{version}. | |
440 | ||
441 | %prep | |
442 | %setup -q -n Python-%{version} | |
443 | %patch0 -p1 | |
444 | %patch1 -p1 | |
445 | %patch2 -p1 | |
446 | %patch3 -p1 | |
447 | %patch4 -p1 | |
448 | ||
449 | %build | |
450 | %{__autoconf} | |
451 | CPPFLAGS="-I/usr/include/ncursesw %{rpmcppflags}"; export CPPFLAGS | |
452 | %configure \ | |
453 | --with-cxx-main="%{__cxx}" \ | |
454 | --enable-shared \ | |
455 | --enable-ipv6 \ | |
456 | --with-dbmliborder=gdbm:bdb \ | |
457 | --with-wide-unicode \ | |
458 | --with-signal-module \ | |
459 | --with-tsc \ | |
460 | --with-threads \ | |
461 | --with-doc-strings \ | |
462 | --with-fpectl \ | |
463 | --with-system-ffi \ | |
464 | --with-computed-gotos \ | |
465 | LINKCC='$(PURIFY) $(CXX)' \ | |
466 | LDSHARED='$(CC) $(CFLAGS) -shared' \ | |
467 | BLDSHARED='$(CC) $(CFLAGS) -shared' \ | |
468 | LDFLAGS="%{rpmcflags} %{rpmldflags}" | |
469 | ||
470 | %{__make} \ | |
471 | OPT="%{rpmcflags} -fno-caller-saves" 2>&1 | awk ' | |
472 | BEGIN { fail = 0; logmsg = ""; } | |
473 | { | |
474 | if ($0 ~ /\*\*\* WARNING:/) { | |
475 | fail = 1; | |
476 | logmsg = logmsg $0; | |
477 | } | |
478 | print $0; | |
479 | } | |
480 | END { if (fail) { print "\nPROBLEMS FOUND:"; print logmsg; exit(1); } }' | |
481 | ||
482 | LC_ALL=C | |
483 | export LC_ALL | |
484 | %if %{with tests} | |
485 | binlibdir=`echo build/lib.*` | |
486 | %{__make} test \ | |
487 | TESTOPTS="%{test_flags} %{test_list}" \ | |
488 | TESTPYTHON="LD_LIBRARY_PATH=`pwd` PYTHONHOME=`pwd` PYTHONPATH=`pwd`/Lib:$binlibdir ./python -tt" | |
489 | %endif | |
490 | ||
491 | %install | |
492 | rm -rf $RPM_BUILD_ROOT | |
493 | install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}} \ | |
494 | $RPM_BUILD_ROOT{%{py_sitedir},%{_mandir}/man1} \ | |
495 | $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \ | |
496 | $RPM_BUILD_ROOT%{_infodir} \ | |
497 | $RPM_BUILD_ROOT/etc/shrc.d | |
498 | ||
499 | %{__make} install \ | |
500 | DESTDIR=$RPM_BUILD_ROOT | |
501 | ||
502 | %if %{with info} | |
503 | %{__make} -C Doc/info | |
504 | install Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir} | |
505 | %endif | |
506 | ||
507 | install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} | |
508 | cp -a Tools $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} | |
509 | ||
510 | # | |
511 | # create several useful aliases, such as timeit.py, profile.py, pdb.py, smtpd.py | |
512 | # | |
513 | ||
514 | # for python devel tools | |
515 | for script in timeit profile pdb pstats; do | |
516 | echo alias ${script}%{py_ver}.py=\"python%{py_ver} -m ${script}\" | |
517 | done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh | |
518 | ||
519 | echo alias pygettext%{py_ver}.py='"pygettext%{py_ver}"' \ | |
520 | >> $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh | |
521 | ||
522 | sed 's/=/ /' \ | |
523 | < $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh \ | |
524 | > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.csh | |
525 | ||
526 | # for python modules | |
527 | for script in smtpd webbrowser; do | |
528 | echo alias ${script}%{py_ver}.py=\"python%{py_ver} -m ${script}\" | |
529 | done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh | |
530 | ||
531 | sed 's/=/ /' \ | |
532 | < $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh \ | |
533 | > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.csh | |
534 | ||
535 | # xgettext specific for Python code | |
536 | # | |
537 | # we will have two commands: pygettext.py (an alias) and pygettext; | |
538 | # this way there are no import (which is impossible now) conflicts and | |
539 | # pygettext.py is provided for compatibility | |
540 | install Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver} | |
541 | ||
542 | # just to cut the noise, as they are not packaged (now) | |
543 | # first tests | |
544 | %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/test | |
545 | %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/test | |
546 | %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/distutils/tests | |
547 | %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/email/test | |
548 | %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/importlib/test | |
549 | %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/lib2to3/tests | |
550 | %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/sqlite3/test | |
551 | %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/tkinter/test | |
552 | %{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/unittest/test | |
553 | ||
554 | # other files | |
555 | %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/plat-*/regen | |
556 | %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/macholib/fetch_macholib* | |
557 | %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/site-packages/README | |
558 | %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/distutils/command/wininst*.exe | |
559 | %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/idlelib/*.bat | |
560 | %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/idlelib/*.pyw | |
561 | # already in %%doc | |
562 | %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/LICENSE.txt | |
563 | ||
564 | %clean | |
565 | rm -rf $RPM_BUILD_ROOT | |
566 | ||
567 | %post libs -p /sbin/ldconfig | |
568 | %postun libs -p /sbin/ldconfig | |
569 | ||
570 | %post doc-info -p /sbin/postshell | |
571 | -/usr/sbin/fix-info-dir -c %{_infodir} | |
572 | ||
573 | %postun doc-info -p /sbin/postshell | |
574 | -/usr/sbin/fix-info-dir -c %{_infodir} | |
575 | ||
576 | %files | |
577 | %defattr(644,root,root,755) | |
578 | %attr(755,root,root) %{_bindir}/python%{py_ver} | |
579 | %attr(755,root,root) %{_bindir}/python%{py_abi} | |
580 | %attr(755,root,root) %{_bindir}/python3 | |
581 | %{_mandir}/man1/python%{py_ver}.1* | |
582 | ||
583 | %files libs | |
584 | %defattr(644,root,root,755) | |
585 | %doc LICENSE | |
586 | %attr(755,root,root) %{_libdir}/libpython%{py_abi}.so.*.* | |
587 | ||
588 | %dir %{py_libdir} | |
589 | %dir %{py_dyndir} | |
590 | %dir %{py_sitedir} | |
591 | %dir %{py_scriptdir} | |
592 | %dir %{py_sitescriptdir} | |
593 | %{py_scriptdir}/__pycache__ | |
594 | ||
595 | # shared modules required by python library | |
596 | %attr(755,root,root) %{py_dyndir}/_struct.cpython-*.so | |
597 | ||
598 | # modules required by python library | |
599 | %{py_scriptdir}/_abcoll.py | |
600 | %{py_scriptdir}/_weakrefset.py | |
601 | %{py_scriptdir}/abc.py | |
602 | %{py_scriptdir}/codecs.py | |
603 | %{py_scriptdir}/copyreg.py | |
604 | %{py_scriptdir}/genericpath.py | |
605 | %{py_scriptdir}/locale.py | |
606 | %{py_scriptdir}/io.py | |
607 | %{py_scriptdir}/posixpath.py | |
608 | %{py_scriptdir}/site.py | |
609 | %{py_scriptdir}/stat.py | |
610 | %{py_scriptdir}/os.py | |
611 | # needed by the dynamic sys.lib patch | |
612 | %{py_scriptdir}/types.py | |
613 | ||
614 | # encodings required by python library | |
615 | %dir %{py_scriptdir}/encodings | |
616 | %{py_scriptdir}/encodings/__pycache__ | |
617 | %{py_scriptdir}/encodings/*.py | |
618 | ||
619 | %files modules | |
620 | %defattr(644,root,root,755) | |
621 | /etc/shrc.d/python*-modules* | |
622 | %exclude %{py_scriptdir}/_abcoll.py | |
623 | %exclude %{py_scriptdir}/_weakrefset.py | |
624 | %exclude %{py_scriptdir}/abc.py | |
625 | %exclude %{py_scriptdir}/codecs.py | |
626 | %exclude %{py_scriptdir}/copyreg.py | |
627 | %exclude %{py_scriptdir}/genericpath.py | |
628 | %exclude %{py_scriptdir}/io.py | |
629 | %exclude %{py_scriptdir}/locale.py | |
630 | %exclude %{py_scriptdir}/posixpath.py | |
631 | %exclude %{py_scriptdir}/pdb.py | |
632 | %exclude %{py_scriptdir}/profile.py | |
633 | %exclude %{py_scriptdir}/pstats.py | |
634 | %exclude %{py_scriptdir}/pydoc.py | |
635 | %exclude %{py_scriptdir}/site.py | |
636 | %exclude %{py_scriptdir}/stat.py | |
637 | %exclude %{py_scriptdir}/timeit.py | |
638 | %exclude %{py_scriptdir}/os.py | |
639 | %exclude %{py_scriptdir}/encodings/*.py | |
640 | %exclude %{py_scriptdir}/types.py | |
641 | ||
642 | %{py_scriptdir}/*.py | |
643 | ||
644 | %{py_dyndir}/Python-%{py_ver}-py*.egg-info | |
645 | ||
646 | # | |
647 | # list .so modules to be sure that all of them are built | |
648 | # | |
649 | ||
650 | # modules below do not work on 64-bit architectures | |
651 | # see Python README file for explanation | |
652 | %ifnarch alpha ia64 ppc64 sparc64 %{x8664} | |
653 | %attr(755,root,root) %{py_dyndir}/audioop.cpython-*.so | |
654 | %endif | |
655 | ||
656 | %attr(755,root,root) %{py_dyndir}/_bisect.cpython-*.so | |
657 | %attr(755,root,root) %{py_dyndir}/_codecs_cn.cpython-*.so | |
658 | %attr(755,root,root) %{py_dyndir}/_codecs_hk.cpython-*.so | |
659 | %attr(755,root,root) %{py_dyndir}/_codecs_iso2022.cpython-*.so | |
660 | %attr(755,root,root) %{py_dyndir}/_codecs_jp.cpython-*.so | |
661 | %attr(755,root,root) %{py_dyndir}/_codecs_kr.cpython-*.so | |
662 | %attr(755,root,root) %{py_dyndir}/_codecs_tw.cpython-*.so | |
663 | %attr(755,root,root) %{py_dyndir}/_csv.cpython-*.so | |
664 | %attr(755,root,root) %{py_dyndir}/_ctypes*.cpython-*.so | |
665 | %attr(755,root,root) %{py_dyndir}/_curses_panel.cpython-*.so | |
666 | %attr(755,root,root) %{py_dyndir}/_curses.cpython-*.so | |
667 | %attr(755,root,root) %{py_dyndir}/_datetime.cpython-*.so | |
668 | %ifnarch sparc64 | |
669 | %attr(755,root,root) %{py_dyndir}/_dbm.cpython-*.so | |
670 | %endif | |
671 | %attr(755,root,root) %{py_dyndir}/_elementtree.cpython-*.so | |
672 | %attr(755,root,root) %{py_dyndir}/_gdbm.cpython-*.so | |
673 | %attr(755,root,root) %{py_dyndir}/_hashlib.cpython-*.so | |
674 | %attr(755,root,root) %{py_dyndir}/_heapq.cpython-*.so | |
675 | %attr(755,root,root) %{py_dyndir}/_json.cpython-*.so | |
676 | %attr(755,root,root) %{py_dyndir}/_lsprof.cpython-*.so | |
677 | %attr(755,root,root) %{py_dyndir}/_multibytecodec.cpython-*.so | |
678 | %attr(755,root,root) %{py_dyndir}/_multiprocessing.cpython-*.so | |
679 | %attr(755,root,root) %{py_dyndir}/_pickle.cpython-*.so | |
680 | %attr(755,root,root) %{py_dyndir}/_posixsubprocess.cpython-*.so | |
681 | %attr(755,root,root) %{py_dyndir}/_random.cpython-*.so | |
682 | %attr(755,root,root) %{py_dyndir}/_socket.cpython-*.so | |
683 | %attr(755,root,root) %{py_dyndir}/_ssl.cpython-*.so | |
684 | %attr(755,root,root) %{py_dyndir}/_testcapi.cpython-*.so | |
685 | %attr(755,root,root) %{py_dyndir}/array.cpython-*.so | |
686 | %attr(755,root,root) %{py_dyndir}/atexit.cpython-*.so | |
687 | %attr(755,root,root) %{py_dyndir}/audioop.cpython-*.so | |
688 | %attr(755,root,root) %{py_dyndir}/binascii.cpython-*.so | |
689 | %attr(755,root,root) %{py_dyndir}/bz2.cpython-*.so | |
690 | %attr(755,root,root) %{py_dyndir}/cmath.cpython-*.so | |
691 | %attr(755,root,root) %{py_dyndir}/crypt.cpython-*.so | |
692 | %attr(755,root,root) %{py_dyndir}/fcntl.cpython-*.so | |
693 | %attr(755,root,root) %{py_dyndir}/grp.cpython-*.so | |
694 | %attr(755,root,root) %{py_dyndir}/math.cpython-*.so | |
695 | %attr(755,root,root) %{py_dyndir}/mmap.cpython-*.so | |
696 | %attr(755,root,root) %{py_dyndir}/nis.cpython-*.so | |
697 | %attr(755,root,root) %{py_dyndir}/ossaudiodev.cpython-*.so | |
698 | %attr(755,root,root) %{py_dyndir}/parser.cpython-*.so | |
699 | %attr(755,root,root) %{py_dyndir}/pyexpat.cpython-*.so | |
700 | %attr(755,root,root) %{py_dyndir}/readline.cpython-*.so | |
701 | %attr(755,root,root) %{py_dyndir}/resource.cpython-*.so | |
702 | %attr(755,root,root) %{py_dyndir}/select.cpython-*.so | |
703 | %attr(755,root,root) %{py_dyndir}/syslog.cpython-*.so | |
704 | %attr(755,root,root) %{py_dyndir}/termios.cpython-*.so | |
705 | %attr(755,root,root) %{py_dyndir}/time.cpython-*.so | |
706 | %attr(755,root,root) %{py_dyndir}/spwd.cpython-*.so | |
707 | %attr(755,root,root) %{py_dyndir}/unicodedata.cpython-*.so | |
708 | %attr(755,root,root) %{py_dyndir}/zlib.cpython-*.so | |
709 | ||
710 | %dir %{py_scriptdir}/plat-* | |
711 | %{py_scriptdir}/plat-*/__pycache__ | |
712 | %{py_scriptdir}/plat-*/*.py | |
713 | ||
714 | %{py_scriptdir}/concurrent | |
715 | ||
716 | %dir %{py_scriptdir}/ctypes | |
717 | %dir %{py_scriptdir}/ctypes/macholib | |
718 | %{py_scriptdir}/ctypes/__pycache__ | |
719 | %{py_scriptdir}/ctypes/macholib/__pycache__ | |
720 | ||
721 | %{py_scriptdir}/ctypes/*.py | |
722 | %{py_scriptdir}/ctypes/macholib/*.py | |
723 | %doc %{py_scriptdir}/ctypes/macholib/README.ctypes | |
724 | ||
725 | %dir %{py_scriptdir}/curses | |
726 | %{py_scriptdir}/curses/__pycache__ | |
727 | %{py_scriptdir}/curses/*.py | |
728 | ||
729 | %dir %{py_scriptdir}/dbm | |
730 | %{py_scriptdir}/dbm/__pycache__ | |
731 | %{py_scriptdir}/dbm/*.py | |
732 | ||
733 | %dir %{py_scriptdir}/distutils | |
734 | %dir %{py_scriptdir}/distutils/command | |
735 | %doc %{py_scriptdir}/distutils/README | |
736 | %{py_scriptdir}/distutils/__pycache__ | |
737 | %{py_scriptdir}/distutils/command/__pycache__ | |
738 | %{py_scriptdir}/distutils/*.py | |
739 | %{py_scriptdir}/distutils/command/*.py | |
740 | %{py_scriptdir}/distutils/command/command_template | |
741 | ||
742 | %dir %{py_scriptdir}/email | |
743 | %dir %{py_scriptdir}/email/mime | |
744 | %{py_scriptdir}/email/__pycache__ | |
745 | %{py_scriptdir}/email/mime/__pycache__ | |
746 | %{py_scriptdir}/email/*.py | |
747 | %{py_scriptdir}/email/mime/*.py | |
748 | ||
749 | %dir %{py_scriptdir}/html | |
750 | %{py_scriptdir}/html/*.py | |
751 | %{py_scriptdir}/html/__pycache__ | |
752 | ||
753 | %dir %{py_scriptdir}/http | |
754 | %{py_scriptdir}/http/__pycache__ | |
755 | %{py_scriptdir}/http/*.py | |
756 | ||
757 | %dir %{py_scriptdir}/importlib | |
758 | %{py_scriptdir}/importlib/__pycache__ | |
759 | %{py_scriptdir}/importlib/*.py | |
760 | ||
761 | %dir %{py_scriptdir}/json | |
762 | %{py_scriptdir}/json/__pycache__ | |
763 | %{py_scriptdir}/json/*.py | |
764 | ||
765 | %dir %{py_scriptdir}/logging | |
766 | %{py_scriptdir}/logging/__pycache__ | |
767 | %{py_scriptdir}/logging/*.py | |
768 | ||
769 | %dir %{py_scriptdir}/multiprocessing | |
770 | %{py_scriptdir}/multiprocessing/__pycache__ | |
771 | %{py_scriptdir}/multiprocessing/*.py | |
772 | %dir %{py_scriptdir}/multiprocessing/dummy | |
773 | %{py_scriptdir}/multiprocessing/dummy/__pycache__ | |
774 | %{py_scriptdir}/multiprocessing/dummy/*.py | |
775 | ||
776 | %{py_scriptdir}/turtledemo | |
777 | %{py_scriptdir}/unittest | |
778 | ||
779 | %dir %{py_scriptdir}/urllib | |
780 | %{py_scriptdir}/urllib/__pycache__ | |
781 | %{py_scriptdir}/urllib/*.py | |
782 | ||
783 | %dir %{py_scriptdir}/wsgiref | |
784 | %{py_scriptdir}/wsgiref/__pycache__ | |
785 | %{py_scriptdir}/wsgiref/*.py | |
786 | %{py_scriptdir}/wsgiref.egg-info | |
787 | ||
788 | %dir %{py_scriptdir}/xml | |
789 | %dir %{py_scriptdir}/xml/dom | |
790 | %dir %{py_scriptdir}/xml/etree | |
791 | %dir %{py_scriptdir}/xml/parsers | |
792 | %dir %{py_scriptdir}/xml/sax | |
793 | %{py_scriptdir}/xml/__pycache__ | |
794 | %{py_scriptdir}/xml/dom/__pycache__ | |
795 | %{py_scriptdir}/xml/etree/__pycache__ | |
796 | %{py_scriptdir}/xml/parsers/__pycache__ | |
797 | %{py_scriptdir}/xml/sax/__pycache__ | |
798 | %{py_scriptdir}/xml/*.py | |
799 | %{py_scriptdir}/xml/dom/*.py | |
800 | %{py_scriptdir}/xml/etree/*.py | |
801 | %{py_scriptdir}/xml/parsers/*.py | |
802 | %{py_scriptdir}/xml/sax/*.py | |
803 | ||
804 | %dir %{py_scriptdir}/xmlrpc | |
805 | %{py_scriptdir}/xmlrpc/__pycache__ | |
806 | %{py_scriptdir}/xmlrpc/*.py | |
807 | ||
808 | %attr(755,root,root) %{py_dyndir}/_sqlite3.cpython-*.so | |
809 | %dir %{py_scriptdir}/sqlite3 | |
810 | %{py_scriptdir}/sqlite3/__pycache__ | |
811 | %{py_scriptdir}/sqlite3/*.py | |
812 | ||
813 | %files -n pydoc3 | |
814 | %defattr(644,root,root,755) | |
815 | %attr(755,root,root) %{_bindir}/pydoc3 | |
816 | %attr(755,root,root) %{_bindir}/pydoc3.2 | |
817 | %{py_scriptdir}/pydoc.py | |
818 | %dir %{py_scriptdir}/pydoc_data | |
819 | %{py_scriptdir}/pydoc_data/__pycache__ | |
820 | %{py_scriptdir}/pydoc_data/*.py | |
821 | %{py_scriptdir}/pydoc_data/*.css | |
822 | ||
823 | %files -n idle3 | |
824 | %defattr(644,root,root,755) | |
825 | %attr(755,root,root) %{_bindir}/idle3 | |
826 | %attr(755,root,root) %{_bindir}/idle3.2 | |
827 | %dir %{py_scriptdir}/idlelib | |
828 | %dir %{py_scriptdir}/idlelib/Icons | |
829 | %{py_scriptdir}/idlelib/__pycache__ | |
830 | %{py_scriptdir}/idlelib/*.py | |
831 | %doc %{py_scriptdir}/idlelib/*.txt | |
832 | %doc %{py_scriptdir}/idlelib/ChangeLog | |
833 | %{py_scriptdir}/idlelib/Icons/* | |
834 | %{py_scriptdir}/idlelib/*.def | |
835 | ||
836 | %files devel | |
837 | %defattr(644,root,root,755) | |
838 | %doc Misc/{ACKS,NEWS,README,README.valgrind,valgrind-python.supp} | |
839 | %attr(755,root,root) %{_bindir}/python%{py_ver}-config | |
840 | %attr(755,root,root) %{_bindir}/python%{py_abi}-config | |
841 | %attr(755,root,root) %{_bindir}/python3-config | |
842 | %attr(755,root,root) %{_libdir}/libpython%{py_abi}.so | |
843 | %attr(755,root,root) %{_libdir}/libpython3.so | |
844 | %dir %{py_incdir} | |
845 | %{py_incdir}/*.h | |
846 | %{_pkgconfigdir}/python-%{py_ver}.pc | |
847 | ||
848 | %dir %{py_libdir}/config-%{py_abi} | |
849 | %attr(755,root,root) %{py_libdir}/config-%{py_abi}/makesetup | |
850 | %attr(755,root,root) %{py_libdir}/config-%{py_abi}/install-sh | |
851 | %{py_libdir}/config-%{py_abi}/Makefile | |
852 | %{py_libdir}/config-%{py_abi}/Setup | |
853 | %{py_libdir}/config-%{py_abi}/Setup.config | |
854 | %{py_libdir}/config-%{py_abi}/Setup.local | |
855 | %{py_libdir}/config-%{py_abi}/config.c | |
856 | %{py_libdir}/config-%{py_abi}/config.c.in | |
857 | %{py_libdir}/config-%{py_abi}/python.o | |
858 | ||
859 | %files devel-tools | |
860 | %defattr(644,root,root,755) | |
861 | /etc/shrc.d/python*-devel* | |
862 | ||
863 | %attr(755,root,root) %{_bindir}/pygettext%{py_ver} | |
864 | ||
865 | %{py_scriptdir}/pdb.py | |
866 | %{py_scriptdir}/profile.py | |
867 | %{py_scriptdir}/pstats.py | |
868 | %{py_scriptdir}/timeit.py | |
869 | ||
870 | %files 2to3 | |
871 | %attr(755,root,root) %{_bindir}/2to3-%{py_ver} | |
872 | %dir %{py_scriptdir}/lib2to3 | |
873 | %{py_scriptdir}/lib2to3/__pycache__ | |
874 | %{py_scriptdir}/lib2to3/*.txt | |
875 | %{py_scriptdir}/lib2to3/*.pickle | |
876 | %{py_scriptdir}/lib2to3/*.py | |
877 | %dir %{py_scriptdir}/lib2to3/fixes | |
878 | %{py_scriptdir}/lib2to3/fixes/__pycache__ | |
879 | %{py_scriptdir}/lib2to3/fixes/*.py | |
880 | %dir %{py_scriptdir}/lib2to3/pgen2 | |
881 | %{py_scriptdir}/lib2to3/pgen2/__pycache__ | |
882 | %{py_scriptdir}/lib2to3/pgen2/*.py | |
883 | ||
884 | %files static | |
885 | %defattr(644,root,root,755) | |
886 | %{_libdir}/libpython%{py_abi}.a | |
887 | ||
888 | %files examples | |
889 | %defattr(644,root,root,755) | |
890 | %{_examplesdir}/%{name}-%{version} | |
891 | ||
892 | %if %{with info} | |
893 | %files doc-info | |
894 | %defattr(644,root,root,755) | |
895 | %{_infodir}/*.info* | |
896 | %endif | |
897 | ||
898 | %if %{with tkinter} | |
899 | %files tkinter | |
900 | %defattr(644,root,root,755) | |
901 | %dir %{py_scriptdir}/tkinter | |
902 | %{py_scriptdir}/tkinter/__pycache__ | |
903 | %{py_scriptdir}/tkinter/*.py | |
904 | %attr(755,root,root) %{py_dyndir}/_tkinter.cpython-*.so | |
905 | %endif |