summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>2009-08-21 00:10:48 +0000
committerArfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>2009-08-21 00:10:48 +0000
commit9f79400d0acfd651c8d152400725a77e28918e6f (patch)
treef00f0cee3eb66b7a9e4c1eb1fd9e731acd01fb1e /dev-lang/python/python-2.4.6.ebuild
parentVersion bump. (diff)
downloadgentoo-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/python/python-2.4.6.ebuild')
-rw-r--r--dev-lang/python/python-2.4.6.ebuild311
1 files changed, 143 insertions, 168 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}
}