5 Summary: Python Interpreter
6 Url: http://www.python.org/
7 Group: Development/Languages/Python
8 %define tarversion %{version}
9 %define tarname python-%{tarversion}
10 Source0: %{tarname}.tar.bz2
14 Source1001: %name.manifest
16 # do not add or edit patches here. please edit python-base.spec
17 # instead and run pre_checkin.sh
20 Patch1: python-2.7-dirs.patch
21 Patch2: python-distutils-rpm-8.patch
22 Patch3: python-2.7.3rc2-multilib.patch
23 Patch4: python-2.5.1-sqlite.patch
24 Patch5: python-2.7.3rc2-canonicalize2.patch
25 Patch6: python-2.7rc2-configure.patch
26 Patch7: python-2.6-gettext-plurals.patch
27 Patch8: python-2.6b3-curses-panel.patch
28 Patch9: python-2.7.1-distutils_test_path.patch
29 Patch12: http://psf.upfronthosting.co.za/roundup/tracker/file19029/python-test_structmembers.patch
30 Patch13: python-2.7.2-fix_date_time_compiler.patch
31 Patch16: pypirc-secure.diff
32 Patch17: remove-static-libpython.diff
33 Patch18: python-2.7.3-ssl_ca_path.patch
35 BuildRequires: automake
36 BuildRequires: db4-devel
38 BuildRequires: gmp-devel
39 BuildRequires: bzip2-devel
40 BuildRequires: openssl-devel
41 BuildRequires: ncurses-devel
42 BuildRequires: readline-devel
43 BuildRequires: sqlite-devel
44 %define python_version %(echo %{tarversion} | head -c 3)
45 %define idle_name idle
46 Requires: python-base = %{version}
47 Provides: %{name} = %{python_version}
48 Obsoletes: python-elementtree
49 Obsoletes: python-nothreads
50 Obsoletes: python-sqlite
53 Python is an interpreted, object-oriented programming language, and is
54 often compared to Tcl, Perl, Scheme, or Java. You can find an overview
55 of Python in the documentation and tutorials included in the python-doc
56 (HTML) or python-doc-pdf (PDF) packages.
58 If you want to install third party modules using distutils, you need to
59 install python-devel package.
62 Summary: Python Interface to the (N)Curses Library
63 Group: Development/Libraries/Python
64 Requires: python-base = %{version}
69 An easy to use interface to the (n)curses CUI library. CUI stands for
70 Console User Interface.
74 %setup -q -n %{tarname}
87 #skip test_io test for ppc,ppc64 as it broken.
93 # drop Autoconf version requirement
94 sed -i 's/^version_required/dnl version_required/' configure.in
96 # remove newslist.py because of bad license
97 rm Demo/scripts/newslist.*
101 export OPT="%{optflags}"
103 autoreconf -f -i . # Modules/_ctypes/libffi
104 # prevent make from trying to rebuild asdl stuff, which requires existing
105 # python installation
106 touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h
109 --docdir=%{_docdir}/python \
113 --enable-unicode=ucs4
118 # replace rest of /usr/local/bin/python or /usr/bin/python2.x with /usr/bin/python
119 find . -wholename "./Parser" -prune -o -name '*.py' -type f -print0 | xargs -0 grep -lE '^#! *(/usr/.*bin/(env +)?)?python' | xargs sed -r -i -e '1s@^#![[:space:]]*(/usr/(local/)?bin/(env +)?)?python([0-9]+\.[0-9]+)?@#!/usr/bin/python@'
120 # the grep inbetween makes it much faster
121 ########################################
123 ########################################
124 %make_install OPT="%{optflags} -fPIC"
125 ########################################
127 ########################################
128 # remove hard links and replace them with symlinks
129 for dir in bin include %{_lib} ; do
130 rm -f %{buildroot}/%{_prefix}/$dir/python
131 ln -s python%{python_version} %{buildroot}/%{_prefix}/$dir/python
133 # kill imageop.so, it's insecure
134 rm -f %{buildroot}/%{_libdir}/python%{python_version}/lib-dynload/imageop.so
136 rm %{buildroot}%{_bindir}/python%{python_version}
137 rm %{buildroot}%{_bindir}/python2
138 rm %{buildroot}%{_bindir}/python
139 rm %{buildroot}%{_bindir}/smtpd.py
140 rm %{buildroot}%{_bindir}/pydoc
141 rm %{buildroot}%{_bindir}/2to3
142 rm %{buildroot}%{_mandir}/man1/python*
143 rm %{buildroot}%{_libdir}/libpython*.so.*
144 rm %{buildroot}%{_libdir}/python
145 find %{buildroot}%{_libdir}/python%{python_version} -maxdepth 1 ! \( -name "ssl.py" \) -exec rm {} ";"
146 rm %{buildroot}%{_bindir}/python%{python_version}-config
147 rm %{buildroot}%{_bindir}/python2-config
148 rm %{buildroot}%{_bindir}/python-config
149 rm %{buildroot}%{_libdir}/pkgconfig/*
150 rm -rf %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/dbm.so
151 rm -r %{buildroot}%{_includedir}/python
152 rm -r %{buildroot}%{_includedir}/python%{python_version}
153 rm -r %{buildroot}%{_libdir}/python%{python_version}/compiler
154 rm -r %{buildroot}%{_libdir}/python%{python_version}/config
155 rm -r %{buildroot}%{_libdir}/python%{python_version}/ctypes
156 rm -r %{buildroot}%{_libdir}/python%{python_version}/distutils
157 rm -r %{buildroot}%{_libdir}/python%{python_version}/email
158 rm -r %{buildroot}%{_libdir}/python%{python_version}/encodings
159 rm -r %{buildroot}%{_libdir}/python%{python_version}/hotshot
160 rm -r %{buildroot}%{_libdir}/python%{python_version}/importlib
161 rm -r %{buildroot}%{_libdir}/python%{python_version}/json
162 rm -r %{buildroot}%{_libdir}/python%{python_version}/lib2to3
163 rm -r %{buildroot}%{_libdir}/python%{python_version}/logging
164 rm -r %{buildroot}%{_libdir}/python%{python_version}/multiprocessing
165 rm -r %{buildroot}%{_libdir}/python%{python_version}/plat-*
166 rm -r %{buildroot}%{_libdir}/python%{python_version}/pydoc_data
167 rm -r %{buildroot}%{_libdir}/python%{python_version}/test
168 rm -r %{buildroot}%{_libdir}/python%{python_version}/unittest
169 rm -r %{buildroot}%{_libdir}/python%{python_version}/wsgiref
170 rm -r %{buildroot}%{_libdir}/python%{python_version}/xml
171 rm %{buildroot}%{_libdir}/libpython%{python_version}.so
172 rm %{buildroot}%{_libdir}/python%{python_version}/site-packages/README
173 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_bisect.so
174 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_csv.so
175 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_collections.so
176 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_ctypes.so
177 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_ctypes_test.so
178 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_elementtree.so
179 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_functools.so
180 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_heapq.so
181 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_hotshot.so
182 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_io.so
183 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_json.so
184 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_locale.so
185 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_lsprof.so
186 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_multiprocessing.so
187 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_random.so
188 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_socket.so
189 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_struct.so
190 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_testcapi.so
191 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/array.so
192 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/binascii.so
193 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/bz2.so
194 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/cPickle.so
195 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/cStringIO.so
196 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/cmath.so
197 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/crypt.so
198 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/datetime.so
199 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/fcntl.so
200 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/future_builtins.so
201 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/grp.so
202 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/itertools.so
203 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/linuxaudiodev.so
204 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/math.so
205 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/mmap.so
206 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/nis.so
207 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/operator.so
208 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/ossaudiodev.so
209 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/parser.so
210 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/pyexpat.so
211 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/resource.so
212 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/select.so
213 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/spwd.so
214 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/strop.so
215 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/syslog.so
216 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/termios.so
217 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/time.so
218 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/unicodedata.so
219 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/zlib.so
220 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_codecs*.so
221 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_multibytecodec.so
222 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/audioop.so
223 rm -f %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/dl.so
224 rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/Python-%{tarversion}-py%{python_version}.egg-info
225 # replace duplicate .pyo/.pyc with hardlinks
226 %fdupes %{buildroot}/%{_libdir}/python%{python_version}
227 ########################################
229 ########################################
230 export PDOCS=%{buildroot}%{_docdir}/%{name}
231 install -d -m 755 $PDOCS
232 install -c -m 644 LICENSE $PDOCS/
233 install -c -m 644 README $PDOCS/
234 ########################################
236 ########################################
237 install -d -m 755 %{buildroot}%{_sysconfdir}/profile.d
238 install -m 644 %{SOURCE2} %{buildroot}/etc
239 install -m 644 %{SOURCE3} %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d
241 rm -rf %{buildroot}%{_bindir}/idle
242 rm -rf %{buildroot}%{_libdir}/python%{python_version}/idlelib
243 rm -rf %{buildroot}%{_libdir}/python%{python_version}/lib-tk
245 %post -p /sbin/ldconfig
247 %postun -p /sbin/ldconfig
250 %manifest %name.manifest
251 %defattr(644, root, root, 755)
252 %{_libdir}/python%{python_version}/curses
253 %{_libdir}/python%{python_version}/lib-dynload/_curses.so
254 %{_libdir}/python%{python_version}/lib-dynload/_curses_panel.so
257 %manifest %name.manifest
258 %defattr(644, root, root, 755)
259 %dir %{_docdir}/%{name}
260 %doc %{_docdir}/%{name}/README
261 %doc %{_docdir}/%{name}/LICENSE
262 %config %{_sysconfdir}/pythonstart
263 %config %{_sysconfdir}/profile.d/python.*
264 %dir %{_libdir}/python%{python_version}
265 %{_libdir}/python%{python_version}/ssl.py*
266 %{_libdir}/python%{python_version}/bsddb
267 %{_libdir}/python%{python_version}/sqlite3
268 %dir %{_libdir}/python%{python_version}/lib-dynload
269 %{_libdir}/python%{python_version}/lib-dynload/_bsddb.so
270 %{_libdir}/python%{python_version}/lib-dynload/_hashlib.so
271 %{_libdir}/python%{python_version}/lib-dynload/_sqlite3.so
272 %{_libdir}/python%{python_version}/lib-dynload/_ssl.so
273 %{_libdir}/python%{python_version}/lib-dynload/readline.so