60fa7a346e4b33063277409b3d6bf70c839d6b7d
[profile/ivi/python.git] / packaging / python.spec
1 Name:           python
2 Version:        2.7.3
3 Release:        1
4 License:        Python-2.0
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
11 Source2:        pythonstart
12 Source3:        python.sh
13 Source4:        python.csh
14 Source1001:     %name.manifest
15 # !!!!!!!!!!!!!!
16 # do not add or edit patches here. please edit python-base.spec
17 # instead and run pre_checkin.sh
18 # !!!!!!!!!!!!!!
19 # COMMON-PATCH-BEGIN
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
34 # COMMON-PATCH-END
35 BuildRequires:  automake
36 BuildRequires:  db4-devel
37 BuildRequires:  fdupes
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
51
52 %description
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.
57
58 If you want to install third party modules using distutils, you need to
59 install python-devel package.
60
61 %package curses
62 Summary:        Python Interface to the (N)Curses Library
63 Group:          Development/Libraries/Python
64 Requires:       python-base = %{version}
65 Obsoletes:      pyth_cur
66 Provides:       pyth_cur
67
68 %description curses
69 An easy to use interface to the (n)curses CUI library. CUI stands for
70 Console User Interface.
71
72
73 %prep
74 %setup -q -n %{tarname}
75 # COMMON-PREP-BEGIN
76 %patch1 -p1
77 %patch2 -p1
78 %patch3
79 %patch4
80 %patch5
81 %patch6
82 %patch7
83 %patch8
84 %patch9 -p1
85 %patch12
86 %patch13
87 #skip test_io test for ppc,ppc64 as it broken.
88 %patch16 -p1
89 %patch17
90 %patch18
91 # COMMON-PREP-END
92
93 # drop Autoconf version requirement
94 sed -i 's/^version_required/dnl version_required/' configure.in
95
96 # remove newslist.py because of bad license
97 rm Demo/scripts/newslist.*
98
99 %build
100 cp %{S:1001} .
101 export OPT="%{optflags}"
102
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
107
108 %configure \
109     --docdir=%{_docdir}/python \
110     --enable-ipv6 \
111     --with-fpectl \
112     --enable-shared \
113     --enable-unicode=ucs4
114
115 make %{?_smp_mflags}
116
117 %install
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 ########################################
122 # install it
123 ########################################
124 %make_install OPT="%{optflags} -fPIC"
125 ########################################
126 # some cleanups
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
132 done
133 # kill imageop.so, it's insecure
134 rm -f %{buildroot}/%{_libdir}/python%{python_version}/lib-dynload/imageop.so
135 #cleanup for -base
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 ########################################
228 # documentation
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 ########################################
235 # startup script
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
240
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
244
245 %post -p /sbin/ldconfig
246
247 %postun -p /sbin/ldconfig
248
249 %files curses
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
255
256 %files
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
274
275 %changelog