From: Marien Zwart Date: Sat, 31 Mar 2007 00:29:10 +0000 (+0000) Subject: Revision bump python 2.5 with distutils and execstack fixes (rebuilding installed... X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=b00e223b0f671795100a9730af51dd9c5e1dcb34;p=gentoo.git Revision bump python 2.5 with distutils and execstack fixes (rebuilding installed extensions is recommended if upgrading from an older python 2.5 ebuild). Remove unnecessary pysqlite block. Fix python 2.3 digest problem. Package-Manager: portage-2.1.2.3 --- diff --git a/dev-lang/python/ChangeLog b/dev-lang/python/ChangeLog index 26829989f7fb..1dd2b0451215 100644 --- a/dev-lang/python/ChangeLog +++ b/dev-lang/python/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-lang/python # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/ChangeLog,v 1.226 2007/02/06 08:39:15 genone Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/ChangeLog,v 1.227 2007/03/31 00:29:10 marienz Exp $ + +*python-2.5-r2 (31 Mar 2007) + + 31 Mar 2007; Marien Zwart +python-2.5-r2.ebuild: + Revision bump python 2.5 with distutils and execstack fixes (rebuilding + installed extensions is recommended if upgrading from an older python 2.5 + ebuild). Remove unnecessary pysqlite block. Fix python 2.3 digest problem. 06 Feb 2007; Marius Mauch python-2.3.5-r2.ebuild, python-2.3.5-r3.ebuild, python-2.3.6.ebuild, python-2.4.3-r1.ebuild, diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index e146e5bf93f0..9f8fbdc22cb6 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -56,7 +56,7 @@ DIST Python-2.3.6.tar.bz2 7350182 RMD160 db7a2ebff31e86bc99d45062fc77e4194399cc8 DIST Python-2.4.3.tar.bz2 8005915 RMD160 c86247554975e6c44f91d05e44e68e280d5244dc SHA1 d6b81e1aec0045b5acff99676f2abe303da1b384 SHA256 c9b3bbc52fa18c6dba7a8c3481fa7de98187c9978749241395305f252134ba2c DIST Python-2.4.4.tar.bz2 8158073 RMD160 4c7b5b70178fe69881b62201ef0bab55037d8708 SHA1 9e0971f93df8acbd947378d0d16a32fcc8897ba2 SHA256 325fdc7351a08bd8d811e7fb53c41bff11764648ab1a671abd910afec946b38a DIST Python-2.5.tar.bz2 9357099 RMD160 f6977a6c3d3ca54c27ad9270918237a7e6521d0b SHA1 98ce9346cc4a7ef4621ecdcfc3957d595d97a078 SHA256 584fce420e39218312c86b6abb242a14b1b0c1d215e2667b0f491893e41cc236 -DIST python-gentoo-patches-2.2.3.tar.bz2 3141 RMD160 5d841c5e240eed36d0d87bb7006d1e04feffeec1 SHA1 f2363d961311a54a3ff456987565b4b9c2ee7a41 SHA256 c913f0d72a3bd0e210a1426e7f5f1b97e03e6e20ba3ed74665001d8a2aa9ac95 +DIST python-gentoo-patches-2.2.3.tar.bz2 3138 RMD160 0160617413b2ee4165eb0a7ceb68e95cb36e0f25 SHA1 19401f7f0e14ddd8c9f7f5f8e9e6acf0d1826027 SHA256 e85f6afba9d2cd23f39c46ed5e50d48b971615cd5dc5bc7af766b201a03b3893 DIST python-gentoo-patches-2.3.5-r1.tar.bz2 9239 RMD160 0afe928728c2cb5c306bff261e2fbe485a554c71 SHA1 1bfc2b79fe69bed59705b5c734fe8c4af264bf7e SHA256 35e1139aa91f0ac026017928df71b21da68d8470278852e700f0b32d6c638dbf DIST python-gentoo-patches-2.3.5.tar.bz2 8489 RMD160 aa2860d06e0aa387c91419ed1a2bb33de14fd393 SHA1 32349bd5e0f6c3859414b4a03643dd89538792f9 SHA256 f144c5488a55599a0d0614f7c687e43106f8b6da51738296aadcec374d567237 DIST python-gentoo-patches-2.3.6-r1.tar.bz2 8483 RMD160 20a7e020f4cecb849af1d611eb3b159440915de1 SHA1 bf8c2f4512aacf70f78dd1d04e6f5a19cd73cec3 SHA256 995c356c6e5481299b9cedd56a510cfed59dffe50f8932192ae8343a1ad1e416 @@ -64,6 +64,7 @@ DIST python-gentoo-patches-2.4.3-r1.tar.bz2 8594 RMD160 0a93e8b315eefa832db92398 DIST python-gentoo-patches-2.4.3-r4.tar.bz2 9386 RMD160 5515c58b626a21a19064a142a9b95e3085b20ad1 SHA1 d10654343754026e909c74111bd96f079879b0ec SHA256 06a00ae4944fae1f0920a5cb91d973bff24b5b37d609f3ef5daaacafa6bb35fb DIST python-gentoo-patches-2.4.4.tar.bz2 8841 RMD160 4652b5f3bba59b969816c00927453e0de058663e SHA1 a1b1e8d1b80e41b503e8f49e21ea6a554f23f046 SHA256 6b6b72cd25bc854f3841361d488ab74bdf0febd5a8b73c4a92054d731cd45321 DIST python-gentoo-patches-2.5-r1.tar.bz2 5180 RMD160 88f7f49ccea043986d837962e3a7d463302b6055 SHA1 395dd562729911815d871bf6df638a96cfa3ae1f SHA256 e56145f22a8d1093a6004177ccd6ecef5e7f9b655633846ee753bd3b45eff4c6 +DIST python-gentoo-patches-2.5-r2.tar.bz2 6047 RMD160 b11e1d529486e2ed88bd34e1ebb0cebf6d4e47cc SHA1 1af955b338cdffe4da7cb6416eeeb6e35490e9c5 SHA256 f4c8d4a924f48ab35b3281cceffe7237efef69f3bc5a68c3492d8b21d60813b8 EBUILD python-2.1.3-r1.ebuild 2287 RMD160 8de40c8c4dcf46ab91458318eb347eb7a683062b SHA1 20928a32586d5aeac1b1c163a61b320c46c133ee SHA256 84381bce78263edac5a361f292ac6eca52c39752483a49beb40b033a0f9d322b MD5 0da2c091fdb69c2fc31c6ce46011e0f0 python-2.1.3-r1.ebuild 2287 RMD160 8de40c8c4dcf46ab91458318eb347eb7a683062b python-2.1.3-r1.ebuild 2287 @@ -100,10 +101,14 @@ EBUILD python-2.5-r1.ebuild 10517 RMD160 cf36f30c78265e0a4e6dd0a2100ee323a93f6d8 MD5 f3e5d309d4278a669875c82b978d655a python-2.5-r1.ebuild 10517 RMD160 cf36f30c78265e0a4e6dd0a2100ee323a93f6d8e python-2.5-r1.ebuild 10517 SHA256 f8a643341c9502e068fa195f8b5aa50b64e802e14ba54abe84798bfa99914530 python-2.5-r1.ebuild 10517 -MISC ChangeLog 38104 RMD160 580a97c0c01800d6291ef5320635a457b434122f SHA1 9a92cc940c74ebe9c4357ccd84f5e647d3fbfef6 SHA256 37fb91da81204da5075bbd09431b30331785ebba5ea5c12e3b0bc52e2824c103 -MD5 99f60a7b262adaada5ac9a30d737a793 ChangeLog 38104 -RMD160 580a97c0c01800d6291ef5320635a457b434122f ChangeLog 38104 -SHA256 37fb91da81204da5075bbd09431b30331785ebba5ea5c12e3b0bc52e2824c103 ChangeLog 38104 +EBUILD python-2.5-r2.ebuild 10892 RMD160 a6f104ba27911b8486dc6593fb7739b53571edf7 SHA1 318fea32c7b8bde3e4a3df2ab1011c5542142669 SHA256 808382fdae9c663de50c9f2e14743d57cfbf0523581fbd00c6211fe828471586 +MD5 5e7ded490b49f4c0cba53a5e94ab7ff5 python-2.5-r2.ebuild 10892 +RMD160 a6f104ba27911b8486dc6593fb7739b53571edf7 python-2.5-r2.ebuild 10892 +SHA256 808382fdae9c663de50c9f2e14743d57cfbf0523581fbd00c6211fe828471586 python-2.5-r2.ebuild 10892 +MISC ChangeLog 38435 RMD160 2402aa94af52a4ff9564223f951685395a126a75 SHA1 9b6a673796b4d014eab415305e05183c7462d621 SHA256 67cd464a954221d74d7b85dda7a069207707ce880a8ca7f377ec861f6f203212 +MD5 d14402d095daf297f668f697f878793a ChangeLog 38435 +RMD160 2402aa94af52a4ff9564223f951685395a126a75 ChangeLog 38435 +SHA256 67cd464a954221d74d7b85dda7a069207707ce880a8ca7f377ec861f6f203212 ChangeLog 38435 MISC metadata.xml 221 RMD160 dd50f32b16d6c15330ae1ee711d8a6cf8f6e3bed SHA1 85903c4affc3a23dd37e4910eb9b198cd02b242e SHA256 c14b93d19008cbeeb3312ec60b97513eef18ccfe82b8e2303cb44977ca13e3bd MD5 8145ce0144332d6caca98fa5fb648741 metadata.xml 221 RMD160 dd50f32b16d6c15330ae1ee711d8a6cf8f6e3bed metadata.xml 221 @@ -111,9 +116,9 @@ SHA256 c14b93d19008cbeeb3312ec60b97513eef18ccfe82b8e2303cb44977ca13e3bd metadata MD5 e8f5d051347769b7c295ba16f9e21bc3 files/digest-python-2.1.3-r1 232 RMD160 2b6919fc1178b46b033af3efd7d3ac599e6a4253 files/digest-python-2.1.3-r1 232 SHA256 15f71d85b7e47553ba5d5d3283eebda6945cd3f198ed0c6e691f9e7d8f4837f9 files/digest-python-2.1.3-r1 232 -MD5 e5b02c8bd5eedbf40932245e8619b2a7 files/digest-python-2.2.3-r6 512 -RMD160 5b2a4d7f2164f7e2224111d9cd8ce3173d123134 files/digest-python-2.2.3-r6 512 -SHA256 2009567c59c8b8ef23b28d13b9159d8f6c8e435c2bd3f48e32916529d6109252 files/digest-python-2.2.3-r6 512 +MD5 d3c0e382565a66a4dce0c51e98270a94 files/digest-python-2.2.3-r6 512 +RMD160 ba72a4adf7b394624c3b85fc740a31a6c75a8e53 files/digest-python-2.2.3-r6 512 +SHA256 5c12b881f71c5bb813d7c9bd659b76974926d251f8825ee133e8e535c2893b3c files/digest-python-2.2.3-r6 512 MD5 6c7e0d09e93664bfdcb6250ad7b21aec files/digest-python-2.3.5-r2 524 RMD160 35678793ab5fc998abd792a88fb53b5a0a587a3a files/digest-python-2.3.5-r2 524 SHA256 ccd2adf40bb4b0ccc3e7822fbecf6e424c9a7e5f207654ff807ad94fe2e9d888 files/digest-python-2.3.5-r2 524 @@ -135,10 +140,13 @@ SHA256 62741d3520891774e48cab7c30ba3b788a8cbc512f6655042ddc46de91ee6bc7 files/di MD5 f9b5c964d826b43c4c4e46c70c8be212 files/digest-python-2.5-r1 521 RMD160 2d3bf90259ffdc91332550713cabf9a36b686aba files/digest-python-2.5-r1 521 SHA256 dbc6e2a658c38209466d2a2cf898d619ffd50edbeabc749863af334397b8fe93 files/digest-python-2.5-r1 521 +MD5 f5874d66f01a305e211cd99a5b8385be files/digest-python-2.5-r2 521 +RMD160 c73e59e34c378e2100327b325fb616043f1f47fa files/digest-python-2.5-r2 521 +SHA256 8076a290b8200dcfeb1efdf3846f1daea0a4017050f32318da51a92655da4520 files/digest-python-2.5-r2 521 -----BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.1 (GNU/Linux) +Version: GnuPG v2.0.3 (GNU/Linux) -iD8DBQFFyD9c6J2i8a8J4okRArmEAKDPzd5RigoahZHgBczx+UuZUns2ggCfdpjX -0u2ud/2aY3r4zmh8qZ1Gujo= -=T/XZ +iD8DBQFGDauFUElL7eJpfEQRAjjUAJ9vtc+Dn/gjhsPNiA66mX+c/9r39gCfdF7g +zP9S+wax9HuYP4A+detxxyo= +=Z0OU -----END PGP SIGNATURE----- diff --git a/dev-lang/python/files/digest-python-2.2.3-r6 b/dev-lang/python/files/digest-python-2.2.3-r6 index 6ce81bedee20..d68a92546c72 100644 --- a/dev-lang/python/files/digest-python-2.2.3-r6 +++ b/dev-lang/python/files/digest-python-2.2.3-r6 @@ -1,6 +1,6 @@ MD5 169f89f318e252dac0c54dd1b165d229 Python-2.2.3.tgz 6709556 RMD160 3590f813582d65194b467f4ab450e360e35eb40e Python-2.2.3.tgz 6709556 SHA256 a8f92e6b89d47359fff0d1fbfe47f104afc77fd1cd5143e7332758b7bc100188 Python-2.2.3.tgz 6709556 -MD5 2d073093d0ea816037fc6fad2bfa88f5 python-gentoo-patches-2.2.3.tar.bz2 3141 -RMD160 5d841c5e240eed36d0d87bb7006d1e04feffeec1 python-gentoo-patches-2.2.3.tar.bz2 3141 -SHA256 c913f0d72a3bd0e210a1426e7f5f1b97e03e6e20ba3ed74665001d8a2aa9ac95 python-gentoo-patches-2.2.3.tar.bz2 3141 +MD5 e65c2bc4d45ecca1f5f18908263ac32e python-gentoo-patches-2.2.3.tar.bz2 3138 +RMD160 0160617413b2ee4165eb0a7ceb68e95cb36e0f25 python-gentoo-patches-2.2.3.tar.bz2 3138 +SHA256 e85f6afba9d2cd23f39c46ed5e50d48b971615cd5dc5bc7af766b201a03b3893 python-gentoo-patches-2.2.3.tar.bz2 3138 diff --git a/dev-lang/python/files/digest-python-2.5-r2 b/dev-lang/python/files/digest-python-2.5-r2 new file mode 100644 index 000000000000..65112d30ab89 --- /dev/null +++ b/dev-lang/python/files/digest-python-2.5-r2 @@ -0,0 +1,6 @@ +MD5 ddb7401e711354ca83b7842b733825a3 Python-2.5.tar.bz2 9357099 +RMD160 f6977a6c3d3ca54c27ad9270918237a7e6521d0b Python-2.5.tar.bz2 9357099 +SHA256 584fce420e39218312c86b6abb242a14b1b0c1d215e2667b0f491893e41cc236 Python-2.5.tar.bz2 9357099 +MD5 e7cf168a72f985f68d3cd7dd4eb96eb4 python-gentoo-patches-2.5-r2.tar.bz2 6047 +RMD160 b11e1d529486e2ed88bd34e1ebb0cebf6d4e47cc python-gentoo-patches-2.5-r2.tar.bz2 6047 +SHA256 f4c8d4a924f48ab35b3281cceffe7237efef69f3bc5a68c3492d8b21d60813b8 python-gentoo-patches-2.5-r2.tar.bz2 6047 diff --git a/dev-lang/python/python-2.5-r2.ebuild b/dev-lang/python/python-2.5-r2.ebuild new file mode 100644 index 000000000000..caf5bef69a5e --- /dev/null +++ b/dev-lang/python/python-2.5-r2.ebuild @@ -0,0 +1,328 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.5-r2.ebuild,v 1.1 2007/03/31 00:29:10 marienz Exp $ + +# NOTE about python-portage interactions : +# - Do not add a pkg_setup() check for a certain version of portage +# in dev-lang/python. It _WILL_ stop people installing from +# Gentoo 1.4 images. + +inherit eutils autotools flag-o-matic python multilib versionator toolchain-funcs alternatives + +# we need this so that we don't depends on python.eclass +PYVER_MAJOR=$(get_major_version) +PYVER_MINOR=$(get_version_component_range 2) +PYVER="${PYVER_MAJOR}.${PYVER_MINOR}" + +MY_P="Python-${PV}" +S="${WORKDIR}/${MY_P}" + +DESCRIPTION="Python is an interpreted, interactive, object-oriented programming language." +HOMEPAGE="http://www.python.org/" +SRC_URI="http://www.python.org/ftp/python/${PYVER}/${MY_P}.tar.bz2 + mirror://gentoo/python-gentoo-patches-${PV}-r2.tar.bz2" + +LICENSE="PSF-2.2" +SLOT="2.5" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd" +IUSE="ncurses gdbm ssl readline tk berkdb bootstrap ipv6 build ucs2 sqlite doc nocxx" + +# NOTE: dev-python/{elementtree,celementtree,pysqlite,ctypes,cjkcodecs} +# do not conflict with the ones in python proper. - liquidx + +DEPEND=">=sys-libs/zlib-1.1.3 + !build? ( + sqlite? ( >=dev-db/sqlite-3 ) + tk? ( >=dev-lang/tk-8.0 ) + ncurses? ( >=sys-libs/ncurses-5.2 + readline? ( >=sys-libs/readline-4.1 ) ) + berkdb? ( >=sys-libs/db-3.1 ) + gdbm? ( sys-libs/gdbm ) + ssl? ( dev-libs/openssl ) + doc? ( =dev-python/python-docs-${PV}* ) + dev-libs/expat + )" + +# NOTE: The dev-python/python-fchksum RDEPEND is needed so that this python +# provides the functionality expected from previous pythons. + +# NOTE: python-fchksum is only a RDEPEND and not a DEPEND since we don't need +# it to compile python. We just need to ensure that when we install +# python, we definitely have fchksum support. - liquidx + +# NOTE: changed RDEPEND to PDEPEND to resolve bug 88777. - kloeri + +PDEPEND="${DEPEND} dev-python/python-fchksum" +PROVIDE="virtual/python" + +# confcache breaks a dlopen check, causing python to not support +# loading .so files - marienz +RESTRICT="confcache" + +src_unpack() { + unpack ${A} + cd "${S}" + + # unnecessary termcap dep in readline (#79013) + epatch "${WORKDIR}/${PYVER}/2.5-readline.patch" + # db4.2 support + epatch "${WORKDIR}/${PYVER}/2.4.3-db4.patch" + + # adds support for PYTHON_DONTCOMPILE shell environment to + # supress automatic generation of .pyc and .pyo files - liquidx (08 Oct 03) + epatch "${WORKDIR}/${PYVER}/2.4-gentoo_py_dontcompile.patch" + epatch "${WORKDIR}/${PYVER}/2.4-disable_modules_and_ssl.patch" + epatch "${WORKDIR}/${PYVER}/2.5-mimetypes_gentoo_apache.patch" + + # prepends /usr/lib/portage/pym to sys.path + epatch "${WORKDIR}/${PYVER}/2.4-add_portage_search_path.patch" + + epatch "${WORKDIR}/${PYVER}/2.5-libdir.patch" + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + Lib/distutils/command/install.py \ + Lib/distutils/sysconfig.py \ + Lib/site.py \ + Makefile.pre.in \ + Modules/Setup.dist \ + Modules/getpath.c \ + setup.py || die + + # fix os.utime() on hppa. utimes it not supported but unfortunately reported as working - gmsoft (22 May 04) + # PLEASE LEAVE THIS FIX FOR NEXT VERSIONS AS IT'S A CRITICAL FIX !!! + [ "${ARCH}" = "hppa" ] && sed -e 's/utimes //' -i ${S}/configure + + if tc-is-cross-compiler ; then + epatch "${WORKDIR}/${PYVER}/2.4.1-crosscompile.patch" + fi + + # fix gentoo/obsd problems (bug 117261) + epatch "${WORKDIR}/${PYVER}/2.4.3-gentoo_obsd.patch" + + # No execstack (at least on x86) + epatch "${WORKDIR}/${PYVER}/2.5-execstack.patch" + + # Do not link libpython2.5 statically in distutils extensions + epatch "${WORKDIR}/${PYVER}/2.5-linux-shlib.patch" + + # Pass -fno-strict-aliasing instead of a bunch of stuff including -O3 + # when compiling things with distutils and CFLAGS is set + # (python.org/sf/969718). + epatch "${WORKDIR}/${PYVER}/2.5-cflags.patch" + + eautoreconf +} + +src_configure() { + # disable extraneous modules with extra dependencies + if use build; then + export PYTHON_DISABLE_MODULES="readline pyexpat dbm gdbm bsddb _curses _curses_panel _tkinter _sqlite3" + export PYTHON_DISABLE_SSL=1 + else + use gdbm \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} gdbm" + use berkdb \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} dbm bsddb" + use readline \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} readline" + use tk \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _tkinter" + use ncurses \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _curses _curses_panel" + use sqlite \ + || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _sqlite3" + use ssl \ + || export PYTHON_DISABLE_SSL=1 + export PYTHON_DISABLE_MODULES + echo $PYTHON_DISABLE_MODULES + fi +} + +src_compile() { + filter-flags -malign-double + + # Seems to no longer be necessary + #[ "${ARCH}" = "amd64" ] && append-flags -fPIC + [ "${ARCH}" = "alpha" ] && append-flags -fPIC + + # http://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flag -O3; then + is-flag -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + export OPT="${CFLAGS}" + + local myconf + #if we are creating a new build image, we remove the dependency on g++ + if use build && ! use bootstrap || use nocxx ; then + myconf="--with-cxx=no" + fi + + # super-secret switch. don't use this unless you know what you're + # doing. enabling UCS2 support will break your existing python + # modules + use ucs2 \ + && myconf="${myconf} --enable-unicode=ucs2" \ + || myconf="${myconf} --enable-unicode=ucs4" + + src_configure + + if tc-is-cross-compiler ; then + OPT="-O1" CFLAGS="" LDFLAGS="" CC="" \ + ./configure --with-cxx=no || die "cross-configure failed" + emake python Parser/pgen || die "cross-make failed" + mv python hostpython + mv Parser/pgen Parser/hostpgen + make distclean + sed -i \ + -e '/^HOSTPYTHON/s:=.*:=./hostpython:' \ + -e '/^HOSTPGEN/s:=.*:=./Parser/hostpgen:' \ + Makefile.pre.in || die + fi + + # export CXX so it ends up in /usr/lib/python2.x/config/Makefile + tc-export CXX + # set LINKCC to prevent python from being linked to libstdc++.so + export LINKCC="\$(PURIFY) \$(CC)" + econf \ + --with-fpectl \ + --enable-shared \ + `use_enable ipv6` \ + --infodir='${prefix}'/share/info \ + --mandir='${prefix}'/share/man \ + --with-threads \ + --with-libc='' \ + ${myconf} || die + emake || die "Parallel make failed" +} + +src_install() { + dodir /usr + src_configure + make DESTDIR="${D}" altinstall maninstall || die + + mv ${D}/usr/bin/python${PYVER}-config ${D}/usr/bin/python-config-${PYVER} + + # Fix slotted collisions + mv ${D}/usr/bin/pydoc ${D}/usr/bin/pydoc${PYVER} + mv ${D}/usr/bin/idle ${D}/usr/bin/idle${PYVER} + mv ${D}/usr/share/man/man1/python.1 \ + ${D}/usr/share/man/man1/python${PYVER}.1 + rm -f ${D}/usr/bin/smtpd.py + + # install python-updater in /usr/sbin + newsbin ${FILESDIR}/python-updater-r1 python-updater + + # While we're working on the config stuff... Let's fix the OPT var + # so that it doesn't have any opts listed in it. Prevents the problem + # with compiling things with conflicting opts later. + dosed -e 's:^OPT=.*:OPT=-DNDEBUG:' \ + /usr/$(get_libdir)/python${PYVER}/config/Makefile + + if use build ; then + rm -rf ${D}/usr/$(get_libdir)/python${PYVER}/{test,encodings,email,lib-tk,bsddb/test} + else + use elibc_uclibc && rm -rf ${D}/usr/$(get_libdir)/python${PYVER}/{test,bsddb/test} + use berkdb || rm -rf ${D}/usr/$(get_libdir)/python${PYVER}/bsddb + use tk || rm -rf ${D}/usr/$(get_libdir)/python${PYVER}/lib-tk + fi + + prep_ml_includes usr/include/python${PYVER} + + # The stuff below this line extends from 2.1, and should be deprecated + # in 2.3, or possibly can wait till 2.4 + + # seems like the build do not install Makefile.pre.in anymore + # it probably shouldn't - use DistUtils, people! + insinto /usr/$(get_libdir)/python${PYVER}/config + doins ${S}/Makefile.pre.in +} + +pkg_postrm() { + python_makesym + alternatives_auto_makesym "/usr/bin/idle" "idle[0-9].[0-9]" + alternatives_auto_makesym "/usr/bin/pydoc" "pydoc[0-9].[0-9]" + alternatives_auto_makesym "/usr/share/man/man1/python.1.gz" \ + "python[0-9].[0-9].1.gz" + alternatives_auto_makesym "/usr/bin/python-config" \ + "python-config-[0-9].[0-9]" + + python_mod_cleanup /usr/lib/python${PYVER} + [[ "$(get_libdir)" == "lib" ]] || \ + python_mod_cleanup /usr/$(get_libdir)/python${PYVER} +} + +pkg_postinst() { + local myroot + myroot=$(echo $ROOT | sed 's:/$::') + + python_makesym + alternatives_auto_makesym "/usr/bin/idle" "idle[0-9].[0-9]" + alternatives_auto_makesym "/usr/bin/pydoc" "pydoc[0-9].[0-9]" + alternatives_auto_makesym "/usr/bin/python-config" \ + "python-config-[0-9].[0-9]" + alternatives_auto_makesym "/usr/share/man/man1/python.1.gz" \ + "python[0-9].[0-9].1.gz" + + python_mod_optimize + python_mod_optimize -x site-packages \ + -x test ${myroot}/usr/lib/python${PYVER} + [[ "$(get_libdir)" == "lib" ]] || \ + python_mod_optimize -x site-packages \ + -x test ${myroot}/usr/$(get_libdir)/python${PYVER} + + + # workaround possible python-upgrade-breaks-portage situation + if [ ! -f ${myroot}/usr/lib/portage/pym/portage.py ]; then + if [ -f ${myroot}/usr/lib/python2.3/site-packages/portage.py ]; then + einfo "Working around possible python-portage upgrade breakage" + mkdir -p ${myroot}/usr/lib/portage/pym + cp ${myroot}/usr/lib/python2.4/site-packages/{portage,xpak,output,cvstree,getbinpkg,emergehelp,dispatch_conf}.py ${myroot}/usr/lib/portage/pym + python_mod_optimize ${myroot}/usr/lib/portage/pym + fi + fi + + echo + ewarn + ewarn "If you have just upgraded from an older version of python you will" + ewarn "need to run:" + ewarn + ewarn "/usr/sbin/python-updater" + ewarn + ewarn "This will automatically rebuild all the python dependent modules" + ewarn "to run with python-${PYVER}." + ewarn + ewarn "Your original Python is still installed and can be accessed via" + ewarn "/usr/bin/python2.x." + ewarn + ebeep 5 +} + +src_test() { + # PYTHON_DONTCOMPILE=1 breaks test_import + unset PYTHON_DONTCOMPILE + + #skip all tests that fail during emerge but pass without emerge: + #(See bug# 67970) + local skip_tests="distutils global mimetools minidom mmap strptime subprocess syntax tcl time urllib urllib2 webbrowser xml_etree sax" + + for test in ${skip_tests} ; do + mv ${S}/Lib/test/test_${test}.py ${T} + done + + # rerun failed tests in verbose mode (regrtest -w) + EXTRATESTOPTS="-w" make test || die "make test failed" + + for test in ${skip_tests} ; do + mv ${T}/test_${test}.py ${S}/Lib/test/test_${test}.py + done + + elog "Portage skipped the following tests which aren't able to run from emerge:" + for test in ${skip_tests} ; do + elog "test_${test}.py" + done + + elog "If you'd like to run them, you may:" + elog "cd /usr/lib/python${PYVER}/test" + elog "and run the tests separately." +}