diff options
author | Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org> | 2009-08-21 00:10:48 +0000 |
---|---|---|
committer | Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org> | 2009-08-21 00:10:48 +0000 |
commit | 9f79400d0acfd651c8d152400725a77e28918e6f (patch) | |
tree | f00f0cee3eb66b7a9e4c1eb1fd9e731acd01fb1e /dev-lang | |
parent | Version bump. (diff) | |
download | gentoo-2-9f79400d0acfd651c8d152400725a77e28918e6f.tar.gz gentoo-2-9f79400d0acfd651c8d152400725a77e28918e6f.tar.bz2 gentoo-2-9f79400d0acfd651c8d152400725a77e28918e6f.zip |
Small updates.
(Portage version: 14103-svn/cvs/Linux x86_64)
Diffstat (limited to 'dev-lang')
-rw-r--r-- | dev-lang/python/python-2.4.6.ebuild | 311 | ||||
-rw-r--r-- | dev-lang/python/python-2.5.4-r3.ebuild | 110 | ||||
-rw-r--r-- | dev-lang/python/python-2.6.2-r1.ebuild | 130 | ||||
-rw-r--r-- | dev-lang/python/python-3.1.1.ebuild | 56 |
4 files changed, 317 insertions, 290 deletions
diff --git a/dev-lang/python/python-2.4.6.ebuild b/dev-lang/python/python-2.4.6.ebuild index 9d9e7f5698da..a5405f7218f5 100644 --- a/dev-lang/python/python-2.4.6.ebuild +++ b/dev-lang/python/python-2.4.6.ebuild @@ -1,17 +1,17 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.4.6.ebuild,v 1.9 2009/05/28 16:57:18 arfrever Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.4.6.ebuild,v 1.10 2009/08/21 00:10:48 arfrever 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. -EAPI=1 +EAPI="1" inherit autotools eutils flag-o-matic multilib python toolchain-funcs versionator -# we need this so that we don't depends on python.eclass +# 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}" @@ -19,10 +19,12 @@ PYVER="${PYVER_MAJOR}.${PYVER_MINOR}" MY_P="Python-${PV}" S="${WORKDIR}/${MY_P}" +PATCHSET_REVISION="0" + DESCRIPTION="Python is an interpreted, interactive, object-oriented programming language." HOMEPAGE="http://www.python.org/" SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.bz2 - mirror://gentoo/python-gentoo-patches-${PV}.tar.bz2" + mirror://gentoo/python-gentoo-patches-${PV}$([[ "${PATCHSET_REVISION}" != "0" ]] && echo "-r${PATCHSET_REVISION}").tar.bz2" LICENSE="PSF-2.2" SLOT="2.4" @@ -31,17 +33,16 @@ IUSE="berkdb bootstrap build +cxx doc elibc_uclibc examples gdbm ipv6 ncurses re # Can't be compiled against db-4.5 Bug #179377 DEPEND=">=app-admin/eselect-python-20080925 - >=sys-libs/zlib-1.1.3 - !dev-python/cjkcodecs - !build? ( - tk? ( >=dev-lang/tk-8.0 ) - ncurses? ( >=sys-libs/ncurses-5.2 readline? ( >=sys-libs/readline-4.1 ) ) - berkdb? ( || ( sys-libs/db:4.4 sys-libs/db:4.3 ) ) - gdbm? ( sys-libs/gdbm ) - ssl? ( dev-libs/openssl ) - doc? ( dev-python/python-docs:2.4 ) - xml? ( dev-libs/expat ) - )" + >=sys-libs/zlib-1.1.3 + !build? ( + tk? ( >=dev-lang/tk-8.0 ) + ncurses? ( >=sys-libs/ncurses-5.2 readline? ( >=sys-libs/readline-4.1 ) ) + berkdb? ( || ( sys-libs/db:4.4 sys-libs/db:4.3 ) ) + gdbm? ( sys-libs/gdbm ) + ssl? ( dev-libs/openssl ) + doc? ( dev-python/python-docs:${SLOT} ) + xml? ( dev-libs/expat ) + )" # NOTE: changed RDEPEND to PDEPEND to resolve bug 88777. - kloeri # NOTE: added blocker to enforce correct merge order for bug 88777. - zmedico @@ -55,8 +56,8 @@ src_unpack() { unpack ${A} cd "${S}" - if tc-is-cross-compiler ; then - epatch "${FILESDIR}"/python-2.4.4-test-cross.patch + if tc-is-cross-compiler; then + epatch "${FILESDIR}/python-2.4.4-test-cross.patch" else rm "${WORKDIR}/${PV}"/*_all_crosscompile.patch fi @@ -72,12 +73,12 @@ src_unpack() { Modules/getpath.c \ setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" - # fix os.utime() on hppa. utimes it not supported but unfortunately reported as working - gmsoft (22 May 04) + # 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 + [[ "${ARCH}" == "hppa" ]] && sed -e "s/utimes //" -i "${S}/configure" if ! use wininst; then - # remove microsoft windows executables + # Remove Microsoft Windows executables. rm Lib/distutils/command/wininst-*.exe fi @@ -85,71 +86,61 @@ src_unpack() { } src_configure() { - # disable extraneous modules with extra dependencies + # Disable extraneous modules with extra dependencies. if use build; then - export PYTHON_DISABLE_MODULES="readline pyexpat dbm gdbm bsddb _curses _curses_panel _tkinter" - export PYTHON_DISABLE_SSL=1 + export PYTHON_DISABLE_MODULES="dbm bsddb gdbm _curses _curses_panel readline _tkinter pyexpat" + export PYTHON_DISABLE_SSL="1" else - # dbm module can link to berkdb or gdbm -- defaults to gdbm when - # both are enabled, see #204343 - use berkdb || use gdbm \ - || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} dbm" - use gdbm \ - || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} gdbm" - use berkdb \ - || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} 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 ssl \ - || export PYTHON_DISABLE_SSL=1 - use xml \ - || PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} pyexpat" - - export PYTHON_DISABLE_MODULES - - if use !xml; then + # dbm module can be linked against berkdb or gdbm. + # Defaults to gdbm when both are enabled, #204343. + local disable + use berkdb || use gdbm || disable+=" dbm" + use berkdb || disable+=" bsddb" + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" pyexpat" + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then ewarn "You have configured Python without XML support." ewarn "This is NOT a recommended configuration as you" ewarn "may face problems parsing any XML documents." fi - - einfo "Disabled modules: $PYTHON_DISABLE_MODULES" fi -} - -src_compile() { - filter-flags -malign-double - [ "${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 + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" 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 cxx ; then + # If we are creating a new build image, we remove the dependency on g++. + if use build && ! use bootstrap || ! use cxx; 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 + # 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 + filter-flags -malign-double + + [[ "${ARCH}" == "alpha" ]] && append-flags -fPIC - if tc-is-cross-compiler ; then + # https://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 + + if tc-is-cross-compiler; then OPT="-O1" CFLAGS="" LDFLAGS="" CC="" \ ./configure --with-cxx=no --{build,host}=${CBUILD} || die "cross-configure failed" emake python Parser/pgen || die "cross-make failed" @@ -157,14 +148,14 @@ src_compile() { mv Parser/pgen Parser/hostpgen make distclean sed -i \ - -e '/^HOSTPYTHON/s:=.*:=./hostpython:' \ - -e '/^HOSTPGEN/s:=.*:=./Parser/hostpgen:' \ + -e "/^HOSTPYTHON/s:=.*:=./hostpython:" \ + -e "/^HOSTPGEN/s:=.*:=./Parser/hostpgen:" \ Makefile.pre.in || die "sed failed" fi - # export CXX so it ends up in /usr/lib/python2.x/config/Makefile + # 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 + # Set LINKCC to prevent Python from being linked to libstdc++.so. export LINKCC="\$(PURIFY) \$(CC)" econf \ --with-fpectl \ @@ -175,52 +166,85 @@ src_compile() { --mandir='${prefix}'/share/man \ --with-libc='' \ ${myconf} - emake || die "Parallel make failed" +} + +src_compile() { + src_configure + emake || die "emake failed" +} + +src_test() { + # Tests won't work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Byte compiling should be enabled here. + # Otherwise test_import fails. + python_enable_pyc + + # Skip all tests that fail during emerge but pass without emerge: + # (See bug #67970) + local skip_tests="cookielib distutils global hotshot mimetools minidom mmap posix sax strptime subprocess syntax tcl time urllib urllib2" + + # test_pow fails on alpha. + # https://bugs.python.org/issue756093 + [[ ${ARCH} == "alpha" ]] && skip_tests+=" pow" + + 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/$(get_libdir)/python${PYVER}/test" + elog "and run the tests separately." } src_install() { dodir /usr emake DESTDIR="${D}" altinstall maninstall || die "emake altinstall maninstall failed" - # install our own custom python-config + # Install our own custom python-config exeinto /usr/bin newexe "${FILESDIR}"/python-config-${PYVER}-r1 python-config-${PYVER} # Use correct libdir in python-config dosed "s:/usr/lib/:/usr/$(get_libdir)/:" /usr/bin/python-config-${PYVER} - if use build ; then - rm -rf "${D}"/usr/$(get_libdir)/python${PYVER}/{test,encodings,email,lib-tk,bsddb/test} + # Fix collisions between different slots of Python. + 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" + + # Fix the OPT variable so that it doesn't have any flags listed in it. + # Prevents the problem with compiling things with conflicting flags later. + sed -e "s:^OPT=.*:OPT=-DNDEBUG:" -i "${D}usr/$(get_libdir)/python${PYVER}/config/Makefile" + + if use build; then + rm -fr "${D}usr/$(get_libdir)/python${PYVER}/"{bsddb/test,email,encodings,lib-tk,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 + use elibc_uclibc && rm -fr "${D}usr/$(get_libdir)/python${PYVER}/"{bsddb/test,test} + use berkdb || rm -fr "${D}usr/$(get_libdir)/python${PYVER}/bsddb" + use tk || rm -fr "${D}usr/$(get_libdir)/python${PYVER}/lib-tk" fi - # 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 - 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 - - # 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 examples ; then + if use examples; then insinto /usr/share/doc/${PF}/examples doins -r "${S}"/Tools || die "doins failed" fi @@ -229,83 +253,34 @@ src_install() { newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} } -pkg_postrm() { - eselect python update --ignore 3.0 --ignore 3.1 - python_mod_cleanup /usr/lib/python${PYVER} - [[ "$(get_libdir)" == "lib" ]] || \ - python_mod_cleanup /usr/$(get_libdir)/python${PYVER} +pkg_preinst() { + if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_alpha"; then + python_updater_warning="1" + fi } pkg_postinst() { - eselect python update --ignore 3.0 --ignore 3.1 - python_mod_optimize - python_mod_optimize -x "(site-packages|test)" \ - /usr/lib/python${PYVER} - [[ "$(get_libdir)" == "lib" ]] || \ - python_mod_optimize -x "(site-packages|test)" \ - /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 /usr/lib/portage/pym - fi + eselect python update --ignore 3.0 --ignore 3.1 --ignore 3.2 + + python_mod_optimize -x "(site-packages|test)" /usr/lib/python${PYVER} + [[ "$(get_libdir)" != "lib" ]] && python_mod_optimize -x "(site-packages|test)" /usr/$(get_libdir)/python${PYVER} + + if [[ "${python_updater_warning}" == "1" ]]; then + ewarn + ewarn "\e[1;31m************************************************************************\e[0m" + ewarn + ewarn "You have just upgraded from an older version of Python." + ewarn "You should run 'python-updater' to rebuild Python modules." + ewarn + ewarn "\e[1;31m************************************************************************\e[0m" + ewarn + ebeep 12 fi - - echo - ewarn - ewarn "If you have just upgraded from an older version of python you" - ewarn "will 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() { - # Tests won't work when cross compiling - if tc-is-cross-compiler ; then - elog "Disabling tests due to crosscompiling." - return - fi - - # Disabling byte compiling breaks test_import - python_enable_pyc - - #skip all tests that fail during emerge but pass without emerge: - #(See bug# 67970) - local skip_tests="cookielib distutils global hotshot mimetools minidom mmap posix sax strptime subprocess syntax tcl time urllib urllib2" - - # test_pow fails on alpha. - # http://bugs.python.org/issue756093 - [[ ${ARCH} == "alpha" ]] && skip_tests="${skip_tests} pow" - - 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 +pkg_postrm() { + eselect python update --ignore 3.0 --ignore 3.1 --ignore 3.2 - elog "If you'd like to run them, you may:" - elog "cd /usr/lib/python${PYVER}/test" - elog "and run the tests separately." + python_mod_cleanup /usr/lib/python${PYVER} + [[ "$(get_libdir)" != "lib" ]] && python_mod_cleanup /usr/$(get_libdir)/python${PYVER} } diff --git a/dev-lang/python/python-2.5.4-r3.ebuild b/dev-lang/python/python-2.5.4-r3.ebuild index 302b67a1776e..3893b8bf907f 100644 --- a/dev-lang/python/python-2.5.4-r3.ebuild +++ b/dev-lang/python/python-2.5.4-r3.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.5.4-r3.ebuild,v 1.10 2009/07/31 14:03:29 arfrever Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.5.4-r3.ebuild,v 1.11 2009/08/21 00:10:48 arfrever Exp $ # NOTE about python-portage interactions : # - Do not add a pkg_setup() check for a certain version of portage @@ -19,17 +19,19 @@ PYVER="${PYVER_MAJOR}.${PYVER_MINOR}" MY_P="Python-${PV}" S="${WORKDIR}/${MY_P}" +PATCHSET_REVISION="1" + DESCRIPTION="Python is an interpreted, interactive, object-oriented programming language." HOMEPAGE="http://www.python.org/" SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.bz2 - mirror://gentoo/python-gentoo-patches-${PV}-r1.tar.bz2" + mirror://gentoo/python-gentoo-patches-${PV}$([[ "${PATCHSET_REVISION}" != "0" ]] && echo "-r${PATCHSET_REVISION}").tar.bz2" LICENSE="PSF-2.2" SLOT="2.5" KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd" IUSE="berkdb build doc elibc_uclibc examples gdbm ipv6 ncurses readline sqlite ssl +threads tk ucs2 wininst +xml" -# NOTE: dev-python/{elementtree,celementtree,pysqlite,ctypes,cjkcodecs} +# NOTE: dev-python/{elementtree,celementtree,pysqlite,ctypes} # do not conflict with the ones in python proper. - liquidx DEPEND=">=app-admin/eselect-python-20080925 @@ -56,8 +58,8 @@ src_unpack() { cd "${S}" if tc-is-cross-compiler; then - epatch "${FILESDIR}"/python-2.4.4-test-cross.patch \ - "${FILESDIR}"/python-2.5-cross-printf.patch + epatch "${FILESDIR}/python-2.4.4-test-cross.patch" + epatch "${FILESDIR}/python-2.5-cross-printf.patch" else rm "${WORKDIR}/${PV}"/*_all_crosscompile.patch fi @@ -88,31 +90,33 @@ src_unpack() { 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 + export PYTHON_DISABLE_MODULES="dbm bsddb gdbm _curses _curses_panel readline _sqlite3 _tkinter pyexpat" + export PYTHON_DISABLE_SSL="1" else - # dbm module can link to berkdb or gdbm - # Defaults to gdbm when both are enabled, #204343 + # dbm module can be linked against berkdb or gdbm. + # Defaults to gdbm when both are enabled, #204343. local disable - use berkdb || use gdbm || disable="${disable} dbm" - use berkdb || disable="${disable} bsddb" - use xml || disable="${disable} pyexpat" - use gdbm || disable="${disable} gdbm" - use ncurses || disable="${disable} _curses _curses_panel" - use readline || disable="${disable} readline" - use sqlite || disable="${disable} _sqlite3" - use ssl || export PYTHON_DISABLE_SSL=1 - use tk || disable="${disable} _tkinter" + use berkdb || use gdbm || disable+=" dbm" + use berkdb || disable+=" bsddb" + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" pyexpat" export PYTHON_DISABLE_MODULES="${disable}" - fi - if ! use xml; then - ewarn "You have configured Python without XML support." - ewarn "This is NOT a recommended configuration as you" - ewarn "may face problems parsing any XML documents." + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi fi - einfo "Disabled modules: $PYTHON_DISABLE_MODULES" + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi export OPT="${CFLAGS}" @@ -129,10 +133,10 @@ src_configure() { [[ "${ARCH}" == "alpha" ]] && append-flags -fPIC - # http://bugs.gentoo.org/show_bug.cgi?id=50309 + # https://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 + is-flag -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 fi if tc-is-cross-compiler; then @@ -188,7 +192,7 @@ src_test() { local skip_tests="distutils global mimetools minidom mmap posix pyexpat sax strptime subprocess syntax tcl time urllib urllib2 webbrowser xml_etree" # test_pow fails on alpha. - # http://bugs.python.org/issue756093 + # https://bugs.python.org/issue756093 [[ ${ARCH} == "alpha" ]] && skip_tests+=" pow" # test_ctypes fails with PAX kernel (bug #234498). @@ -219,24 +223,24 @@ src_test() { src_install() { emake DESTDIR="${D}" altinstall maninstall || die "emake altinstall maninstall failed" - mv "${D}"/usr/bin/python${PYVER}-config "${D}"/usr/bin/python-config-${PYVER} + 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 + # Fix collisions between different slots of Python. + 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" # Fix the OPT variable so that it doesn't have any flags listed in it. # Prevents the problem with compiling things with conflicting flags later. sed -e "s:^OPT=.*:OPT=-DNDEBUG:" -i "${D}usr/$(get_libdir)/python${PYVER}/config/Makefile" if use build; then - rm -fr "${D}"/usr/$(get_libdir)/python${PYVER}/{test,encodings,email,lib-tk,bsddb/test} + rm -fr "${D}usr/$(get_libdir)/python${PYVER}/"{bsddb/test,email,encodings,lib-tk,test} else - use elibc_uclibc && rm -fr "${D}"/usr/$(get_libdir)/python${PYVER}/{test,bsddb/test} - use berkdb || rm -fr "${D}"/usr/$(get_libdir)/python${PYVER}/bsddb - use tk || rm -fr "${D}"/usr/$(get_libdir)/python${PYVER}/lib-tk + use elibc_uclibc && rm -fr "${D}usr/$(get_libdir)/python${PYVER}/"{bsddb/test,test} + use berkdb || rm -fr "${D}usr/$(get_libdir)/python${PYVER}/bsddb" + use tk || rm -fr "${D}usr/$(get_libdir)/python${PYVER}/lib-tk" fi prep_ml_includes usr/include/python${PYVER} @@ -250,16 +254,34 @@ src_install() { newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} } -pkg_postrm() { - eselect python update --ignore 3.0 --ignore 3.1 - - python_mod_cleanup /usr/lib/python${PYVER} - [[ "$(get_libdir)" != "lib" ]] && python_mod_cleanup /usr/$(get_libdir)/python${PYVER} +pkg_preinst() { + if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_alpha"; then + python_updater_warning="1" + fi } pkg_postinst() { - eselect python update --ignore 3.0 --ignore 3.1 + eselect python update --ignore 3.0 --ignore 3.1 --ignore 3.2 python_mod_optimize -x "(site-packages|test)" /usr/lib/python${PYVER} [[ "$(get_libdir)" != "lib" ]] && python_mod_optimize -x "(site-packages|test)" /usr/$(get_libdir)/python${PYVER} + + if [[ "${python_updater_warning}" == "1" ]]; then + ewarn + ewarn "\e[1;31m************************************************************************\e[0m" + ewarn + ewarn "You have just upgraded from an older version of Python." + ewarn "You should run 'python-updater' to rebuild Python modules." + ewarn + ewarn "\e[1;31m************************************************************************\e[0m" + ewarn + ebeep 12 + fi +} + +pkg_postrm() { + eselect python update --ignore 3.0 --ignore 3.1 --ignore 3.2 + + python_mod_cleanup /usr/lib/python${PYVER} + [[ "$(get_libdir)" != "lib" ]] && python_mod_cleanup /usr/$(get_libdir)/python${PYVER} } diff --git a/dev-lang/python/python-2.6.2-r1.ebuild b/dev-lang/python/python-2.6.2-r1.ebuild index 6243265b475e..b6a4cbc2bf79 100644 --- a/dev-lang/python/python-2.6.2-r1.ebuild +++ b/dev-lang/python/python-2.6.2-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.6.2-r1.ebuild,v 1.5 2009/08/16 08:17:09 fauli Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.6.2-r1.ebuild,v 1.6 2009/08/21 00:10:48 arfrever Exp $ # NOTE about python-portage interactions : # - Do not add a pkg_setup() check for a certain version of portage @@ -19,17 +19,19 @@ PYVER="${PYVER_MAJOR}.${PYVER_MINOR}" MY_P="Python-${PV}" S="${WORKDIR}/${MY_P}" +PATCHSET_REVISION="1" + DESCRIPTION="Python is an interpreted, interactive, object-oriented programming language." HOMEPAGE="http://www.python.org/" SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.bz2 - mirror://gentoo/python-gentoo-patches-${PV}-r1.tar.bz2" + mirror://gentoo/python-gentoo-patches-${PV}$([[ "${PATCHSET_REVISION}" != "0" ]] && echo "-r${PATCHSET_REVISION}").tar.bz2" LICENSE="PSF-2.2" SLOT="2.6" KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~sparc-fbsd ~x86-fbsd" IUSE="berkdb build doc elibc_uclibc examples gdbm ipv6 ncurses readline sqlite ssl +threads tk ucs2 wininst +xml" -# NOTE: dev-python/{elementtree,celementtree,pysqlite,ctypes,cjkcodecs} +# NOTE: dev-python/{elementtree,celementtree,pysqlite,ctypes} # do not conflict with the ones in python proper. - liquidx DEPEND=">=app-admin/eselect-python-20080925 @@ -52,9 +54,9 @@ PROVIDE="virtual/python" src_prepare() { if tc-is-cross-compiler; then - epatch "${FILESDIR}"/python-2.5-cross-printf.patch - epatch "${FILESDIR}"/python-2.6-chflags-cross.patch - epatch "${FILESDIR}"/python-2.6-test-cross.patch + epatch "${FILESDIR}/python-2.5-cross-printf.patch" + epatch "${FILESDIR}/python-2.6-chflags-cross.patch" + epatch "${FILESDIR}/python-2.6-test-cross.patch" else rm "${WORKDIR}/${PV}"/*_all_crosscompile.patch fi @@ -79,37 +81,46 @@ src_prepare() { rm Lib/distutils/command/wininst-*.exe fi + # Don't silence output of setup.py. + sed -e '/setup\.py -q build/d' -i Makefile.pre.in + + # Fix OtherFileTests.testStdin() not to assume + # that stdin is a tty for bug #248081. + sed -e "s:'osf1V5':'osf1V5' and sys.stdin.isatty():" -i Lib/test/test_file.py || die "sed failed" + 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 + export PYTHON_DISABLE_MODULES="dbm bsddb gdbm _curses _curses_panel readline _sqlite3 _tkinter pyexpat" + export PYTHON_DISABLE_SSL="1" else - # dbm module can link to berkdb or gdbm - # Defaults to gdbm when both are enabled, #204343 + # dbm module can be linked against berkdb or gdbm. + # Defaults to gdbm when both are enabled, #204343. local disable - use berkdb || use gdbm || disable="${disable} dbm" - use berkdb || disable="${disable} bsddb" - use xml || disable="${disable} pyexpat" - use gdbm || disable="${disable} gdbm" - use ncurses || disable="${disable} _curses _curses_panel" - use readline || disable="${disable} readline" - use sqlite || disable="${disable} _sqlite3" - use ssl || export PYTHON_DISABLE_SSL=1 - use tk || disable="${disable} _tkinter" + use berkdb || use gdbm || disable+=" dbm" + use berkdb || disable+=" bsddb" + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" pyexpat" export PYTHON_DISABLE_MODULES="${disable}" - fi - if ! use xml; then - ewarn "You have configured Python without XML support." - ewarn "This is NOT a recommended configuration as you" - ewarn "may face problems parsing any XML documents." + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi fi - einfo "Disabled modules: $PYTHON_DISABLE_MODULES" + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi export OPT="${CFLAGS}" @@ -126,10 +137,10 @@ src_configure() { [[ "${ARCH}" == "alpha" ]] && append-flags -fPIC - # http://bugs.gentoo.org/show_bug.cgi?id=50309 + # https://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 + is-flag -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 fi if tc-is-cross-compiler; then @@ -180,7 +191,7 @@ src_test() { local skip_tests="distutils global httpservers mimetools minidom mmap posix pyexpat sax strptime subprocess syntax tcl time urllib urllib2 xml_etree" # test_pow fails on alpha. - # http://bugs.python.org/issue756093 + # https://bugs.python.org/issue756093 [[ ${ARCH} == "alpha" ]] && skip_tests+=" pow" # test_ctypes fails with PAX kernel (bug #234498). @@ -190,11 +201,6 @@ src_test() { mv "${S}"/Lib/test/test_${test}.py "${T}" done - # Fix OtherFileTests.testStdin() not to assume - # that stdin is a tty for bug #248081. - sed -e "s:'osf1V5':'osf1V5' and sys.stdin.isatty():" \ - -i "${S}"/Lib/test/test_file.py || die "sed failed" - # Rerun failed tests in verbose mode (regrtest -w). EXTRATESTOPTS="-w" make test || die "make test failed" @@ -215,27 +221,29 @@ src_test() { src_install() { emake DESTDIR="${D}" altinstall maninstall || die "emake altinstall maninstall failed" - mv "${D}"/usr/bin/python${PYVER}-config "${D}"/usr/bin/python-config-${PYVER} + mv "${D}usr/bin/python${PYVER}-config" "${D}usr/bin/python-config-${PYVER}" - # Fix slotted collisions. - mv "${D}"/usr/bin/2to3 "${D}"/usr/bin/2to3-${PYVER} - 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 + # Fix collisions between different slots of Python. + mv "${D}usr/bin/2to3" "${D}usr/bin/2to3-${PYVER}" + 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" # Fix the OPT variable so that it doesn't have any flags listed in it. # Prevents the problem with compiling things with conflicting flags later. sed -e "s:^OPT=.*:OPT=-DNDEBUG:" -i "${D}usr/$(get_libdir)/python${PYVER}/config/Makefile" if use build; then - rm -fr "${D}"/usr/$(get_libdir)/python${PYVER}/{test,encodings,email,lib-tk,bsddb/test} + rm -fr "${D}usr/$(get_libdir)/python${PYVER}/"{bsddb/test,email,encodings,lib-tk,test} else - use elibc_uclibc && rm -fr "${D}"/usr/$(get_libdir)/python${PYVER}/{test,bsddb/test} - use berkdb || rm -fr "${D}"/usr/$(get_libdir)/python${PYVER}/bsddb - use tk || rm -fr "${D}"/usr/$(get_libdir)/python${PYVER}/lib-tk + use elibc_uclibc && rm -fr "${D}usr/$(get_libdir)/python${PYVER}/"{bsddb/test,test} + use berkdb || rm -fr "${D}usr/$(get_libdir)/python${PYVER}/bsddb" + use tk || rm -fr "${D}usr/$(get_libdir)/python${PYVER}/lib-tk" fi + use sqlite || rm -fr "${D}usr/$(get_libdir)/python${PYVER}/"{sqlite3,test/test_sqlite.py*} + prep_ml_includes usr/include/python${PYVER} if use examples; then @@ -247,19 +255,37 @@ src_install() { newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} # Installs empty directory. - rmdir "${D}"/usr/$(get_libdir)/${PN}${PYVER}/lib-old + rmdir "${D}usr/$(get_libdir)/${PN}${PYVER}/lib-old" } -pkg_postrm() { - eselect python update --ignore 3.0 --ignore 3.1 - - python_mod_cleanup /usr/lib/python${PYVER} - [[ "$(get_libdir)" != "lib" ]] && python_mod_cleanup /usr/$(get_libdir)/python${PYVER} +pkg_preinst() { + if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_alpha"; then + python_updater_warning="1" + fi } pkg_postinst() { - eselect python update --ignore 3.0 --ignore 3.1 + eselect python update --ignore 3.0 --ignore 3.1 --ignore 3.2 python_mod_optimize -x "(site-packages|test)" /usr/lib/python${PYVER} [[ "$(get_libdir)" != "lib" ]] && python_mod_optimize -x "(site-packages|test)" /usr/$(get_libdir)/python${PYVER} + + if [[ "${python_updater_warning}" == "1" ]]; then + ewarn + ewarn "\e[1;31m************************************************************************\e[0m" + ewarn + ewarn "You have just upgraded from an older version of Python." + ewarn "You should run 'python-updater' to rebuild Python modules." + ewarn + ewarn "\e[1;31m************************************************************************\e[0m" + ewarn + ebeep 12 + fi +} + +pkg_postrm() { + eselect python update --ignore 3.0 --ignore 3.1 --ignore 3.2 + + python_mod_cleanup /usr/lib/python${PYVER} + [[ "$(get_libdir)" != "lib" ]] && python_mod_cleanup /usr/$(get_libdir)/python${PYVER} } diff --git a/dev-lang/python/python-3.1.1.ebuild b/dev-lang/python/python-3.1.1.ebuild index f8ae9dd8fbe8..abe28697af0f 100644 --- a/dev-lang/python/python-3.1.1.ebuild +++ b/dev-lang/python/python-3.1.1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.1.1.ebuild,v 1.1 2009/08/18 00:54:54 arfrever Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.1.1.ebuild,v 1.2 2009/08/21 00:10:48 arfrever Exp $ EAPI="2" @@ -14,10 +14,12 @@ PYVER="${PYVER_MAJOR}.${PYVER_MINOR}" MY_P="Python-${PV}" S="${WORKDIR}/${MY_P}" +PATCHSET_REVISION="0" + DESCRIPTION="Python is an interpreted, interactive, object-oriented programming language." HOMEPAGE="http://www.python.org/" SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.bz2 - mirror://gentoo/python-gentoo-patches-${PV}.tar.bz2" + mirror://gentoo/python-gentoo-patches-${PV}$([[ "${PATCHSET_REVISION}" != "0" ]] && echo "-r${PATCHSET_REVISION}").tar.bz2" LICENSE="PSF-2.2" SLOT="3.1" @@ -80,26 +82,28 @@ src_configure() { # Disable extraneous modules with extra dependencies. if use build; then export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter pyexpat" - export PYTHON_DISABLE_SSL=1 + export PYTHON_DISABLE_SSL="1" else local disable - use gdbm || disable="${disable} gdbm" - use ncurses || disable="${disable} _curses _curses_panel" - use readline || disable="${disable} readline" - use sqlite || disable="${disable} _sqlite3" - use ssl || export PYTHON_DISABLE_SSL=1 - use tk || disable="${disable} _tkinter" - use xml || disable="${disable} pyexpat" + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" pyexpat" export PYTHON_DISABLE_MODULES="${disable}" - fi - if ! use xml; then - ewarn "You have configured Python without XML support." - ewarn "This is NOT a recommended configuration as you" - ewarn "may face problems parsing any XML documents." + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi fi - einfo "Disabled modules: $PYTHON_DISABLE_MODULES" + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi export OPT="${CFLAGS}" @@ -109,8 +113,8 @@ src_configure() { # https://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 + is-flag -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 fi if tc-is-cross-compiler; then @@ -172,7 +176,7 @@ src_test() { skip_tests+=" telnetlib" # test_pow fails on alpha. - # http://bugs.python.org/issue756093 + # https://bugs.python.org/issue756093 [[ ${ARCH} == "alpha" ]] && skip_tests+=" pow" # test_ctypes fails with PAX kernel (bug #234498). @@ -234,13 +238,6 @@ src_install() { newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} } -pkg_postrm() { - eselect python update --ignore 3.0 --ignore 3.1 --ignore 3.2 - - python_mod_cleanup /usr/lib/python${PYVER} - [[ "$(get_libdir)" != "lib" ]] && python_mod_cleanup /usr/$(get_libdir)/python${PYVER} -} - pkg_postinst() { # Update symlink temporarily for byte-compiling. eselect python update @@ -259,3 +256,10 @@ pkg_postinst() { ewarn ebeep } + +pkg_postrm() { + eselect python update --ignore 3.0 --ignore 3.1 --ignore 3.2 + + python_mod_cleanup /usr/lib/python${PYVER} + [[ "$(get_libdir)" != "lib" ]] && python_mod_cleanup /usr/$(get_libdir)/python${PYVER} +} |