Gentoo Archives: gentoo-commits

From: "Mike Gilbert (floppym)" <floppym@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in dev-lang/python: python-3.2.3-r2.ebuild python-3.2.5.ebuild python-2.6.8-r1.ebuild python-2.7.3-r3.ebuild python-2.7.5.ebuild ChangeLog
Date: Sat, 25 May 2013 22:32:54
Message-Id: 20130525223246.DE44D2171D@flycatcher.gentoo.org
1 floppym 13/05/25 22:32:46
2
3 Modified: python-3.2.3-r2.ebuild python-2.6.8-r1.ebuild
4 python-2.7.3-r3.ebuild ChangeLog
5 Added: python-3.2.5.ebuild python-2.7.5.ebuild
6 Log:
7 Version bump. Also resolves bug 462288 and 471124.
8
9 (Portage version: 2.2.0_alpha177/cvs/Linux x86_64, signed Manifest commit with key 0BBEEA1FEA4843A4)
10
11 Revision Changes Path
12 1.22 dev-lang/python/python-3.2.3-r2.ebuild
13
14 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-3.2.3-r2.ebuild?rev=1.22&view=markup
15 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-3.2.3-r2.ebuild?rev=1.22&content-type=text/plain
16 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-3.2.3-r2.ebuild?r1=1.21&r2=1.22
17
18 Index: python-3.2.3-r2.ebuild
19 ===================================================================
20 RCS file: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.3-r2.ebuild,v
21 retrieving revision 1.21
22 retrieving revision 1.22
23 diff -u -r1.21 -r1.22
24 --- python-3.2.3-r2.ebuild 13 Apr 2013 20:54:00 -0000 1.21
25 +++ python-3.2.3-r2.ebuild 25 May 2013 22:32:46 -0000 1.22
26 @@ -1,6 +1,6 @@
27 # Copyright 1999-2013 Gentoo Foundation
28 # Distributed under the terms of the GNU General Public License v2
29 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.3-r2.ebuild,v 1.21 2013/04/13 20:54:00 ago Exp $
30 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.3-r2.ebuild,v 1.22 2013/05/25 22:32:46 floppym Exp $
31
32 EAPI="3"
33 WANT_AUTOMAKE="none"
34 @@ -248,7 +248,7 @@
35 done
36
37 # Rerun failed tests in verbose mode (regrtest -w).
38 - emake test EXTRATESTOPTS="-w" CPPFLAGS="" CFLAGS="" LDFLAGS="" < /dev/tty
39 + PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" CPPFLAGS="" CFLAGS="" LDFLAGS="" < /dev/tty
40 local result="$?"
41
42 for test in ${skipped_tests}; do
43
44
45
46 1.21 dev-lang/python/python-2.6.8-r1.ebuild
47
48 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-2.6.8-r1.ebuild?rev=1.21&view=markup
49 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-2.6.8-r1.ebuild?rev=1.21&content-type=text/plain
50 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-2.6.8-r1.ebuild?r1=1.20&r2=1.21
51
52 Index: python-2.6.8-r1.ebuild
53 ===================================================================
54 RCS file: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.6.8-r1.ebuild,v
55 retrieving revision 1.20
56 retrieving revision 1.21
57 diff -u -r1.20 -r1.21
58 --- python-2.6.8-r1.ebuild 9 May 2013 17:48:03 -0000 1.20
59 +++ python-2.6.8-r1.ebuild 25 May 2013 22:32:46 -0000 1.21
60 @@ -1,6 +1,6 @@
61 # Copyright 1999-2013 Gentoo Foundation
62 # Distributed under the terms of the GNU General Public License v2
63 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.6.8-r1.ebuild,v 1.20 2013/05/09 17:48:03 mgorny Exp $
64 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.6.8-r1.ebuild,v 1.21 2013/05/25 22:32:46 floppym Exp $
65
66 EAPI="2"
67 WANT_AUTOMAKE="none"
68 @@ -251,7 +251,7 @@
69 done
70
71 # Rerun failed tests in verbose mode (regrtest -w).
72 - emake test EXTRATESTOPTS="-w" < /dev/tty
73 + PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" < /dev/tty
74 local result="$?"
75
76 for test in ${skipped_tests}; do
77 @@ -267,8 +267,6 @@
78 elog "cd '${EPREFIX}/usr/$(get_libdir)/python${SLOT}/test'"
79 elog "and run the tests separately."
80
81 - python_disable_pyc
82 -
83 if [[ "${result}" -ne 0 ]]; then
84 die "emake test failed"
85 fi
86
87
88
89 1.22 dev-lang/python/python-2.7.3-r3.ebuild
90
91 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-2.7.3-r3.ebuild?rev=1.22&view=markup
92 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-2.7.3-r3.ebuild?rev=1.22&content-type=text/plain
93 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-2.7.3-r3.ebuild?r1=1.21&r2=1.22
94
95 Index: python-2.7.3-r3.ebuild
96 ===================================================================
97 RCS file: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.7.3-r3.ebuild,v
98 retrieving revision 1.21
99 retrieving revision 1.22
100 diff -u -r1.21 -r1.22
101 --- python-2.7.3-r3.ebuild 13 Apr 2013 20:54:00 -0000 1.21
102 +++ python-2.7.3-r3.ebuild 25 May 2013 22:32:46 -0000 1.22
103 @@ -1,6 +1,6 @@
104 # Copyright 1999-2013 Gentoo Foundation
105 # Distributed under the terms of the GNU General Public License v2
106 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.7.3-r3.ebuild,v 1.21 2013/04/13 20:54:00 ago Exp $
107 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.7.3-r3.ebuild,v 1.22 2013/05/25 22:32:46 floppym Exp $
108
109 EAPI="2"
110 WANT_AUTOMAKE="none"
111 @@ -267,7 +267,7 @@
112 done
113
114 # Rerun failed tests in verbose mode (regrtest -w).
115 - emake test EXTRATESTOPTS="-w" < /dev/tty
116 + PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" < /dev/tty
117 local result="$?"
118
119 for test in ${skipped_tests}; do
120 @@ -283,8 +283,6 @@
121 elog "cd '${EPREFIX}/usr/$(get_libdir)/python${SLOT}/test'"
122 elog "and run the tests separately."
123
124 - python_disable_pyc
125 -
126 if [[ "${result}" -ne 0 ]]; then
127 die "emake test failed"
128 fi
129
130
131
132 1.659 dev-lang/python/ChangeLog
133
134 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/ChangeLog?rev=1.659&view=markup
135 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/ChangeLog?rev=1.659&content-type=text/plain
136 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/ChangeLog?r1=1.658&r2=1.659
137
138 Index: ChangeLog
139 ===================================================================
140 RCS file: /var/cvsroot/gentoo-x86/dev-lang/python/ChangeLog,v
141 retrieving revision 1.658
142 retrieving revision 1.659
143 diff -u -r1.658 -r1.659
144 --- ChangeLog 21 May 2013 21:23:34 -0000 1.658
145 +++ ChangeLog 25 May 2013 22:32:46 -0000 1.659
146 @@ -1,6 +1,14 @@
147 # ChangeLog for dev-lang/python
148 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
149 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/ChangeLog,v 1.658 2013/05/21 21:23:34 chutzpah Exp $
150 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/ChangeLog,v 1.659 2013/05/25 22:32:46 floppym Exp $
151 +
152 +*python-2.7.5 (25 May 2013)
153 +*python-3.2.5 (25 May 2013)
154 +
155 + 25 May 2013; Mike Gilbert <floppym@g.o> +python-2.7.5.ebuild,
156 + +python-3.2.5.ebuild, python-2.6.8-r1.ebuild, python-2.7.3-r3.ebuild,
157 + python-3.2.3-r2.ebuild:
158 + Version bump. Also resolves bug 462288 and 471124.
159
160 *python-3.3.2 (21 May 2013)
161
162
163
164
165 1.1 dev-lang/python/python-3.2.5.ebuild
166
167 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-3.2.5.ebuild?rev=1.1&view=markup
168 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-3.2.5.ebuild?rev=1.1&content-type=text/plain
169
170 Index: python-3.2.5.ebuild
171 ===================================================================
172 # Copyright 1999-2013 Gentoo Foundation
173 # Distributed under the terms of the GNU General Public License v2
174 # $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.5.ebuild,v 1.1 2013/05/25 22:32:46 floppym Exp $
175
176 EAPI="4"
177 WANT_AUTOMAKE="none"
178 WANT_LIBTOOL="none"
179
180 inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
181
182 MY_P="Python-${PV}"
183 PATCHSET_REVISION="0"
184
185 DESCRIPTION="An interpreted, interactive, object-oriented programming language"
186 HOMEPAGE="http://www.python.org/"
187 SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
188 mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.xz"
189
190 LICENSE="PSF-2"
191 SLOT="3.2"
192 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
193 IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
194
195 # Do not add a dependency on dev-lang/python to this ebuild.
196 # If you need to apply a patch which requires python for bootstrapping, please
197 # run the bootstrap code on your dev box and include the results in the
198 # patchset. See bug 447752.
199
200 RDEPEND="app-arch/bzip2
201 >=sys-libs/zlib-1.1.3
202 virtual/libffi
203 virtual/libintl
204 !build? (
205 gdbm? ( sys-libs/gdbm[berkdb] )
206 ncurses? (
207 >=sys-libs/ncurses-5.2
208 readline? ( >=sys-libs/readline-4.1 )
209 )
210 sqlite? ( >=dev-db/sqlite-3.3.8:3[extensions] )
211 ssl? ( dev-libs/openssl )
212 tk? (
213 >=dev-lang/tk-8.0
214 dev-tcltk/blt
215 )
216 xml? ( >=dev-libs/expat-2.1 )
217 )"
218 DEPEND="${RDEPEND}
219 virtual/pkgconfig
220 >=sys-devel/autoconf-2.65
221 !sys-devel/gcc[libffi]"
222 RDEPEND+=" !build? ( app-misc/mime-types )
223 doc? ( dev-python/python-docs:${SLOT} )"
224 PDEPEND="app-admin/eselect-python
225 app-admin/python-updater"
226
227 S="${WORKDIR}/${MY_P}"
228
229 pkg_setup() {
230 if [[ "${PV}" =~ ^3\.2(\.[1234])?(_pre)? ]]; then
231 rm -f "${EROOT}usr/$(get_libdir)/llibpython3.so"
232 else
233 die "Deprecated code not deleted"
234 fi
235 }
236
237 src_prepare() {
238 # Ensure that internal copies of expat, libffi and zlib are not used.
239 rm -r Modules/expat
240 rm -r Modules/_ctypes/libffi*
241 rm -r Modules/zlib
242
243 local excluded_patches
244 if ! tc-is-cross-compiler; then
245 excluded_patches="*_all_crosscompile.patch"
246 fi
247
248 EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
249 epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
250
251 sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
252 Lib/distutils/command/install.py \
253 Lib/distutils/sysconfig.py \
254 Lib/site.py \
255 Lib/sysconfig.py \
256 Lib/test/test_site.py \
257 Makefile.pre.in \
258 Modules/Setup.dist \
259 Modules/getpath.c \
260 setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
261
262 # Disable ABI flags.
263 sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.ac || die "sed failed"
264
265 epatch_user
266
267 eautoconf
268 eautoheader
269 }
270
271 src_configure() {
272 if use build; then
273 # Disable extraneous modules with extra dependencies.
274 export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
275 export PYTHON_DISABLE_SSL="1"
276 else
277 local disable
278 use gdbm || disable+=" gdbm"
279 use ncurses || disable+=" _curses _curses_panel"
280 use readline || disable+=" readline"
281 use sqlite || disable+=" _sqlite3"
282 use ssl || export PYTHON_DISABLE_SSL="1"
283 use tk || disable+=" _tkinter"
284 use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
285 export PYTHON_DISABLE_MODULES="${disable}"
286
287 if ! use xml; then
288 ewarn "You have configured Python without XML support."
289 ewarn "This is NOT a recommended configuration as you"
290 ewarn "may face problems parsing any XML documents."
291 fi
292 fi
293
294 if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
295 einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
296 fi
297
298 if [[ "$(gcc-major-version)" -ge 4 ]]; then
299 append-flags -fwrapv
300 fi
301
302 filter-flags -malign-double
303
304 [[ "${ARCH}" == "alpha" ]] && append-flags -fPIC
305
306 # https://bugs.gentoo.org/show_bug.cgi?id=50309
307 if is-flagq -O3; then
308 is-flagq -fstack-protector-all && replace-flags -O3 -O2
309 use hardened && replace-flags -O3 -O2
310 fi
311
312 # Run the configure scripts in parallel.
313 multijob_init
314
315 mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
316
317 if tc-is-cross-compiler; then
318 (
319 multijob_child_init
320 cd "${WORKDIR}"/${CBUILD} >/dev/null
321 OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
322 "${S}"/configure \
323 --{build,host}=${CBUILD} \
324 || die "cross-configure failed"
325 ) &
326 multijob_post_fork
327
328 # The configure script assumes it's buggy when cross-compiling.
329 export ac_cv_buggy_getaddrinfo=no
330 export ac_cv_have_long_long_format=yes
331 fi
332
333 # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
334 tc-export CXX
335 # The configure script fails to use pkg-config correctly.
336 # http://bugs.python.org/issue15506
337 export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
338
339 # Set LDFLAGS so we link modules with -lpython3.2 correctly.
340 # Needed on FreeBSD unless Python 3.2 is already installed.
341 # Please query BSD team before removing this!
342 append-ldflags "-L."
343
344 local dbmliborder
345 if use gdbm; then
346 dbmliborder+="${dbmliborder:+:}gdbm"
347 fi
348
349 cd "${WORKDIR}"/${CHOST}
350 ECONF_SOURCE=${S} OPT="" \
351 econf \
352 --with-fpectl \
353 --enable-shared \
354 $(use_enable ipv6) \
355 $(use_with threads) \
356 $(use_with wide-unicode) \
357 --infodir='${prefix}/share/info' \
358 --mandir='${prefix}/share/man' \
359 --with-computed-gotos \
360 --with-dbmliborder="${dbmliborder}" \
361 --with-libc="" \
362 --enable-loadable-sqlite-extensions \
363 --with-system-expat \
364 --with-system-ffi
365
366 if tc-is-cross-compiler; then
367 # Modify the Makefile.pre so we don't regen for the host/ one.
368 # We need to link the host python programs into $PWD and run
369 # them from here because the distutils sysconfig module will
370 # parse Makefile/etc... from argv[0], and we need it to pick
371 # up the target settings, not the host ones.
372 sed -i \
373 -e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
374 -e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
375 -e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
376 Makefile{.pre,} || die "sed failed"
377 fi
378
379 multijob_finish
380 }
381
382 src_compile() {
383 if tc-is-cross-compiler; then
384 cd "${WORKDIR}"/${CBUILD}
385 # Disable as many modules as possible -- but we need a few to install.
386 PYTHON_DISABLE_MODULES=$(
387 sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
388 egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
389 ) \
390 PTHON_DISABLE_SSL="1" \
391 SYSROOT= \
392 emake
393 # See comment in src_configure about these.
394 ln python ../${CHOST}/hostpython || die
395 ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
396 ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
397 fi
398
399 cd "${WORKDIR}"/${CHOST}
400 emake CPPFLAGS="" CFLAGS="" LDFLAGS=""
401
402 # Work around bug 329499. See also bug 413751 and 457194.
403 if has_version dev-libs/libffi[pax_kernel]; then
404 pax-mark E python
405 else
406 pax-mark m python
407 fi
408 }
409
410 src_test() {
411 # Tests will not work when cross compiling.
412 if tc-is-cross-compiler; then
413 elog "Disabling tests due to crosscompiling."
414 return
415 fi
416
417 cd "${WORKDIR}"/${CHOST}
418
419 # Skip failing tests.
420 local skipped_tests="gdb"
421
422 for test in ${skipped_tests}; do
423 mv "${S}"/Lib/test/test_${test}.py "${T}"
424 done
425
426 # Rerun failed tests in verbose mode (regrtest -w).
427 PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" CPPFLAGS="" CFLAGS="" LDFLAGS="" < /dev/tty
428 local result="$?"
429
430 for test in ${skipped_tests}; do
431 mv "${T}/test_${test}.py" "${S}"/Lib/test
432 done
433
434 elog "The following tests have been skipped:"
435 for test in ${skipped_tests}; do
436 elog "test_${test}.py"
437 done
438
439 elog "If you would like to run them, you may:"
440 elog "cd '${EPREFIX}/usr/$(get_libdir)/python${SLOT}/test'"
441 elog "and run the tests separately."
442
443 if [[ "${result}" -ne 0 ]]; then
444 die "emake test failed"
445 fi
446 }
447
448 src_install() {
449 local libdir=${ED}/usr/$(get_libdir)/python${SLOT}
450
451 cd "${WORKDIR}"/${CHOST}
452 emake DESTDIR="${D}" altinstall
453
454 sed \
455 -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
456 -e "s/\(PY_LDFLAGS=\).*/\1/" \
457 -i "${libdir}/config-${SLOT}/Makefile" || die "sed failed"
458
459 # Backwards compat with Gentoo divergence.
460 dosym python${SLOT}-config /usr/bin/python-config-${SLOT}
461
462 # Fix collisions between different slots of Python.
463 rm "${ED}usr/$(get_libdir)/libpython3.so" || die
464
465 if use build; then
466 rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,sqlite3,test,tkinter}
467 else
468 use elibc_uclibc && rm -fr "${libdir}/test"
469 use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
470 use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
471 fi
472
473 use threads || rm -fr "${libdir}/multiprocessing"
474 use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
475
476 dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
477
478 if use examples; then
479 insinto /usr/share/doc/${PF}/examples
480 find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
481 doins -r "${S}"/Tools
482 fi
483 insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
484 local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \
485 emake --no-print-directory -s -f - 2>/dev/null)
486 newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py
487
488 newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT}
489 newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT}
490 sed \
491 -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${SLOT/./_}_PORT:" \
492 -e "s:@PYDOC@:pydoc${SLOT}:" \
493 -i "${ED}etc/conf.d/pydoc-${SLOT}" "${ED}etc/init.d/pydoc-${SLOT}" || die "sed failed"
494
495 # for python-exec
496 python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
497
498 # if not using a cross-compiler, use the fresh binary
499 if ! tc-is-cross-compiler; then
500 local PYTHON=./python \
501 LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
502 export LD_LIBRARY_PATH
503 fi
504
505 echo "EPYTHON='${EPYTHON}'" > epython.py
506 python_domodule epython.py
507 }
508
509 pkg_preinst() {
510 if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_alpha"; then
511 python_updater_warning="1"
512 fi
513 }
514
515 eselect_python_update() {
516 if [[ -z "$(eselect python show)" || ! -f "${EROOT}usr/bin/$(eselect python show)" ]]; then
517 eselect python update
518 fi
519
520 if [[ -z "$(eselect python show --python${PV%%.*})" || ! -f "${EROOT}usr/bin/$(eselect python show --python${PV%%.*})" ]]; then
521 eselect python update --python${PV%%.*}
522 fi
523 }
524
525 pkg_postinst() {
526 eselect_python_update
527
528 if [[ "${python_updater_warning}" == "1" ]]; then
529 ewarn "You have just upgraded from an older version of Python."
530 ewarn "You should switch active version of Python ${PV%%.*} and run"
531 ewarn "'python-updater [options]' to rebuild Python modules."
532 fi
533 }
534
535 pkg_postrm() {
536 eselect_python_update
537 }
538
539
540
541 1.1 dev-lang/python/python-2.7.5.ebuild
542
543 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-2.7.5.ebuild?rev=1.1&view=markup
544 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/python/python-2.7.5.ebuild?rev=1.1&content-type=text/plain
545
546 Index: python-2.7.5.ebuild
547 ===================================================================
548 # Copyright 1999-2013 Gentoo Foundation
549 # Distributed under the terms of the GNU General Public License v2
550 # $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.7.5.ebuild,v 1.1 2013/05/25 22:32:46 floppym Exp $
551
552 EAPI="4"
553 WANT_AUTOMAKE="none"
554 WANT_LIBTOOL="none"
555
556 inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
557
558 MY_P="Python-${PV}"
559 PATCHSET_REVISION="0"
560
561 DESCRIPTION="An interpreted, interactive, object-oriented programming language"
562 HOMEPAGE="http://www.python.org/"
563 SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
564 mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.xz"
565
566 LICENSE="PSF-2"
567 SLOT="2.7"
568 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
569 IUSE="-berkdb build doc elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
570
571 # Do not add a dependency on dev-lang/python to this ebuild.
572 # If you need to apply a patch which requires python for bootstrapping, please
573 # run the bootstrap code on your dev box and include the results in the
574 # patchset. See bug 447752.
575
576 RDEPEND="app-arch/bzip2
577 >=sys-libs/zlib-1.1.3
578 virtual/libffi
579 virtual/libintl
580 !build? (
581 berkdb? ( || (
582 sys-libs/db:5.3
583 sys-libs/db:5.2
584 sys-libs/db:5.1
585 sys-libs/db:5.0
586 sys-libs/db:4.8
587 sys-libs/db:4.7
588 sys-libs/db:4.6
589 sys-libs/db:4.5
590 sys-libs/db:4.4
591 sys-libs/db:4.3
592 sys-libs/db:4.2
593 ) )
594 gdbm? ( sys-libs/gdbm[berkdb] )
595 ncurses? (
596 >=sys-libs/ncurses-5.2
597 readline? ( >=sys-libs/readline-4.1 )
598 )
599 sqlite? ( >=dev-db/sqlite-3.3.8:3[extensions] )
600 ssl? ( dev-libs/openssl )
601 tk? (
602 >=dev-lang/tk-8.0
603 dev-tcltk/blt
604 )
605 xml? ( >=dev-libs/expat-2.1 )
606 )
607 !!<sys-apps/portage-2.1.9"
608 DEPEND="${RDEPEND}
609 virtual/pkgconfig
610 >=sys-devel/autoconf-2.65
611 !sys-devel/gcc[libffi]"
612 RDEPEND+=" !build? ( app-misc/mime-types )
613 doc? ( dev-python/python-docs:${SLOT} )"
614 PDEPEND="app-admin/eselect-python
615 app-admin/python-updater"
616
617 S="${WORKDIR}/${MY_P}"
618
619 pkg_setup() {
620 if use berkdb; then
621 ewarn "'bsddb' module is out-of-date and no longer maintained inside"
622 ewarn "dev-lang/python. 'bsddb' and 'dbhash' modules have been additionally"
623 ewarn "removed in Python 3. A maintained alternative of 'bsddb3' module"
624 ewarn "is provided by dev-python/bsddb3."
625 else
626 if has_version "=${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"; then
627 ewarn "You are migrating from =${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"
628 ewarn "to =${CATEGORY}/${PN}-${PV%%.*}*[-berkdb]."
629 ewarn "You might need to migrate your databases."
630 fi
631 fi
632 }
633
634 src_prepare() {
635 # Ensure that internal copies of expat, libffi and zlib are not used.
636 rm -r Modules/expat || die
637 rm -r Modules/_ctypes/libffi* || die
638 rm -r Modules/zlib || die
639
640 local excluded_patches
641 if ! tc-is-cross-compiler; then
642 excluded_patches="*_all_crosscompile.patch"
643 fi
644
645 EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
646 epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
647
648 sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
649 Lib/distutils/command/install.py \
650 Lib/distutils/sysconfig.py \
651 Lib/site.py \
652 Lib/sysconfig.py \
653 Lib/test/test_site.py \
654 Makefile.pre.in \
655 Modules/Setup.dist \
656 Modules/getpath.c \
657 setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
658
659 epatch_user
660
661 eautoconf
662 eautoheader
663 }
664
665 src_configure() {
666 if use build; then
667 # Disable extraneous modules with extra dependencies.
668 export PYTHON_DISABLE_MODULES="dbm _bsddb gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
669 export PYTHON_DISABLE_SSL="1"
670 else
671 # dbm module can be linked against berkdb or gdbm.
672 # Defaults to gdbm when both are enabled, #204343.
673 local disable
674 use berkdb || use gdbm || disable+=" dbm"
675 use berkdb || disable+=" _bsddb"
676 use gdbm || disable+=" gdbm"
677 use ncurses || disable+=" _curses _curses_panel"
678 use readline || disable+=" readline"
679 use sqlite || disable+=" _sqlite3"
680 use ssl || export PYTHON_DISABLE_SSL="1"
681 use tk || disable+=" _tkinter"
682 use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
683 export PYTHON_DISABLE_MODULES="${disable}"
684
685 if ! use xml; then
686 ewarn "You have configured Python without XML support."
687 ewarn "This is NOT a recommended configuration as you"
688 ewarn "may face problems parsing any XML documents."
689 fi
690 fi
691
692 if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
693 einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
694 fi
695
696 if [[ "$(gcc-major-version)" -ge 4 ]]; then
697 append-flags -fwrapv
698 fi
699
700 filter-flags -malign-double
701
702 [[ "${ARCH}" == "alpha" ]] && append-flags -fPIC
703
704 # https://bugs.gentoo.org/show_bug.cgi?id=50309
705 if is-flagq -O3; then
706 is-flagq -fstack-protector-all && replace-flags -O3 -O2
707 use hardened && replace-flags -O3 -O2
708 fi
709
710 # Run the configure scripts in parallel.
711 multijob_init
712
713 mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
714
715 if tc-is-cross-compiler; then
716 (
717 multijob_child_init
718 cd "${WORKDIR}"/${CBUILD} >/dev/null
719 OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
720 "${S}"/configure \
721 --{build,host}=${CBUILD} \
722 || die "cross-configure failed"
723 ) &
724 multijob_post_fork
725
726 # The configure script assumes it's buggy when cross-compiling.
727 export ac_cv_buggy_getaddrinfo=no
728 export ac_cv_have_long_long_format=yes
729 fi
730
731 # Export CXX so it ends up in /usr/lib/python2.X/config/Makefile.
732 tc-export CXX
733 # The configure script fails to use pkg-config correctly.
734 # http://bugs.python.org/issue15506
735 export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
736
737 # Set LDFLAGS so we link modules with -lpython2.7 correctly.
738 # Needed on FreeBSD unless Python 2.7 is already installed.
739 # Please query BSD team before removing this!
740 append-ldflags "-L."
741
742 local dbmliborder
743 if use gdbm; then
744 dbmliborder+="${dbmliborder:+:}gdbm"
745 fi
746 if use berkdb; then
747 dbmliborder+="${dbmliborder:+:}bdb"
748 fi
749
750 cd "${WORKDIR}"/${CHOST}
751 ECONF_SOURCE="${S}" OPT="" \
752 econf \
753 --with-fpectl \
754 --enable-shared \
755 $(use_enable ipv6) \
756 $(use_with threads) \
757 $(use wide-unicode && echo "--enable-unicode=ucs4" || echo "--enable-unicode=ucs2") \
758 --infodir='${prefix}/share/info' \
759 --mandir='${prefix}/share/man' \
760 --with-dbmliborder="${dbmliborder}" \
761 --with-libc="" \
762 --enable-loadable-sqlite-extensions \
763 --with-system-expat \
764 --with-system-ffi
765
766 if tc-is-cross-compiler; then
767 # Modify the Makefile.pre so we don't regen for the host/ one.
768 # We need to link the host python programs into $PWD and run
769 # them from here because the distutils sysconfig module will
770 # parse Makefile/etc... from argv[0], and we need it to pick
771 # up the target settings, not the host ones.
772 sed -i \
773 -e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
774 -e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
775 -e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
776 Makefile{.pre,} || die "sed failed"
777 fi
778
779 multijob_finish
780 }
781
782 src_compile() {
783 if tc-is-cross-compiler; then
784 cd "${WORKDIR}"/${CBUILD}
785 # Disable as many modules as possible -- but we need a few to install.
786 PYTHON_DISABLE_MODULES=$(
787 sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
788 egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
789 ) \
790 PTHON_DISABLE_SSL="1" \
791 SYSROOT= \
792 emake
793 # See comment in src_configure about these.
794 ln python ../${CHOST}/hostpython || die
795 ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
796 ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
797 fi
798
799 cd "${WORKDIR}"/${CHOST}
800 default
801
802 # Work around bug 329499. See also bug 413751 and 457194.
803 if has_version dev-libs/libffi[pax_kernel]; then
804 pax-mark E python
805 else
806 pax-mark m python
807 fi
808 }
809
810 src_test() {
811 # Tests will not work when cross compiling.
812 if tc-is-cross-compiler; then
813 elog "Disabling tests due to crosscompiling."
814 return
815 fi
816
817 cd "${WORKDIR}"/${CHOST}
818
819 # Skip failing tests.
820 local skipped_tests="distutils gdb"
821
822 for test in ${skipped_tests}; do
823 mv "${S}"/Lib/test/test_${test}.py "${T}"
824 done
825
826 # Rerun failed tests in verbose mode (regrtest -w).
827 emake test EXTRATESTOPTS="-w" < /dev/tty
828 local result="$?"
829
830 for test in ${skipped_tests}; do
831 mv "${T}/test_${test}.py" "${S}"/Lib/test
832 done
833
834 elog "The following tests have been skipped:"
835 for test in ${skipped_tests}; do
836 elog "test_${test}.py"
837 done
838
839 elog "If you would like to run them, you may:"
840 elog "cd '${EPREFIX}/usr/$(get_libdir)/python${SLOT}/test'"
841 elog "and run the tests separately."
842
843 if [[ "${result}" -ne 0 ]]; then
844 die "emake test failed"
845 fi
846 }
847
848 src_install() {
849 local libdir=${ED}/usr/$(get_libdir)/python${SLOT}
850
851 cd "${WORKDIR}"/${CHOST}
852 emake DESTDIR="${D}" altinstall
853
854 sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die "sed failed"
855
856 # Backwards compat with Gentoo divergence.
857 dosym python${SLOT}-config /usr/bin/python-config-${SLOT}
858
859 # Fix collisions between different slots of Python.
860 mv "${ED}usr/bin/2to3" "${ED}usr/bin/2to3-${SLOT}"
861 mv "${ED}usr/bin/pydoc" "${ED}usr/bin/pydoc${SLOT}"
862 mv "${ED}usr/bin/idle" "${ED}usr/bin/idle${SLOT}"
863 rm -f "${ED}usr/bin/smtpd.py"
864
865 if use build; then
866 rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{bsddb,dbhash.py,idlelib,lib-tk,sqlite3,test}
867 else
868 use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test}
869 use berkdb || rm -r "${libdir}/"{bsddb,dbhash.py,test/test_bsddb*} || die
870 use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
871 use tk || rm -r "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,lib-tk} || die
872 fi
873
874 use threads || rm -r "${libdir}/multiprocessing" || die
875 use wininst || rm -r "${libdir}/distutils/command/"wininst-*.exe || die
876
877 dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
878
879 if use examples; then
880 insinto /usr/share/doc/${PF}/examples
881 doins -r "${S}"/Tools
882 fi
883 insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
884 local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \
885 emake --no-print-directory -s -f - 2>/dev/null)
886 newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py
887
888 newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT}
889 newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT}
890 sed \
891 -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${SLOT/./_}_PORT:" \
892 -e "s:@PYDOC@:pydoc${SLOT}:" \
893 -i "${ED}etc/conf.d/pydoc-${SLOT}" "${ED}etc/init.d/pydoc-${SLOT}" || die "sed failed"
894
895 # for python-exec
896 python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
897
898 # if not using a cross-compiler, use the fresh binary
899 if ! tc-is-cross-compiler; then
900 local PYTHON=./python \
901 LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
902 export LD_LIBRARY_PATH
903 fi
904
905 echo "EPYTHON='${EPYTHON}'" > epython.py
906 python_domodule epython.py
907 }
908
909 pkg_preinst() {
910 if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version "${CATEGORY}/${PN}:2.7"; then
911 python_updater_warning="1"
912 fi
913 }
914
915 eselect_python_update() {
916 if [[ -z "$(eselect python show)" || ! -f "${EROOT}usr/bin/$(eselect python show)" ]]; then
917 eselect python update
918 fi
919
920 if [[ -z "$(eselect python show --python${PV%%.*})" || ! -f "${EROOT}usr/bin/$(eselect python show --python${PV%%.*})" ]]; then
921 eselect python update --python${PV%%.*}
922 fi
923 }
924
925 pkg_postinst() {
926 eselect_python_update
927
928 if [[ "${python_updater_warning}" == "1" ]]; then
929 ewarn "You have just upgraded from an older version of Python."
930 ewarn "You should switch active version of Python ${PV%%.*} and run"
931 ewarn "'python-updater [options]' to rebuild Python modules."
932 fi
933 }
934
935 pkg_postrm() {
936 eselect_python_update
937 }