diff options
Diffstat (limited to 'dev-python/twisted/twisted-8.2.0-r1.ebuild')
-rw-r--r-- | dev-python/twisted/twisted-8.2.0-r1.ebuild | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/dev-python/twisted/twisted-8.2.0-r1.ebuild b/dev-python/twisted/twisted-8.2.0-r1.ebuild new file mode 100644 index 000000000000..221fe9086287 --- /dev/null +++ b/dev-python/twisted/twisted-8.2.0-r1.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/twisted/twisted-8.2.0-r1.ebuild,v 1.1 2009/07/16 06:05:54 neurogeek Exp $ + +EAPI="2" +inherit distutils versionator + +MY_P=TwistedCore-${PV} + +DESCRIPTION="An asynchronous networking framework written in Python" +HOMEPAGE="http://www.twistedmatrix.com/" +SRC_URI="http://tmrc.mit.edu/mirror/${PN}/Core/$(get_version_component_range 1-2)/${MY_P}.tar.bz2" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="gtk serial crypt" + +DEPEND=">=dev-lang/python-2.3 + >=net-zope/zopeinterface-3.0.1 + serial? ( dev-python/pyserial ) + crypt? ( >=dev-python/pyopenssl-0.5.1 ) + gtk? ( >=dev-python/pygtk-1.99 ) + !dev-python/twisted-docs" +RDEPEND="${DEPEND}" + +S=${WORKDIR}/${MY_P} + +DOCS="CREDITS NEWS README" + +src_prepare(){ + # Give a load-sensitive test a better chance of succeeding. + epatch "${FILESDIR}/${PN}-2.1.0-echo-less.patch" + + # Pass valid arguments to "head" in the zsh completion function. + epatch "${FILESDIR}/${PN}-2.1.0-zsh-head.patch" + + # Skip tests that demand non-root user + epatch "${FILESDIR}/${P}_tests.patch" + + # Skip test that only works with Python >=2.5 (won't byte-compile) + if [ "${PYVER_MINOR}" -lt 5 ]; then + echo "'''skip'''" > "twisted/test/generator_failure_tests.py" || die + else + #Apply deprecation Warnings patch + epatch "${FILESDIR}/${P}_deprecations.patch" + fi +} + +src_install() { + distutils_src_install + + # get rid of this to prevent collision-protect from killing us. it + # is regenerated in pkg_postinst. + rm "${D}/usr/$(get_libdir)"/python*/site-packages/twisted/plugins/dropin.cache + + # weird pattern to avoid installing the index.xhtml page + doman doc/man/*.? + insinto /usr/share/doc/${PF} + doins -r $(find doc -mindepth 1 -maxdepth 1 -not -name man) + + # workaround for a possible portage bug + mkdir -p "${D}/etc/conf.d/" + newconfd "${FILESDIR}/twistd.conf" twistd + newinitd "${FILESDIR}/twistd.init" twistd + + # zsh completion + insinto /usr/share/zsh/site-functions/ + doins twisted/python/_twisted_zsh_stub +} + +update_plugin_cache() { + python_version + local tpath="${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages/twisted" + # we have to remove the cache or removed plugins won't be removed + # from the cache (http://twistedmatrix.com/bugs/issue926) + [[ -e "${tpath}/plugins/dropin.cache" ]] && rm -f "${tpath}/plugins/dropin.cache" + if [[ -e "${tpath}/plugin.py" ]]; then + # twisted is still installed, update. + # we have to use getPlugIns here for <=twisted-2.0.1 compatibility + einfo "Regenerating plugin cache" + python -c "from twisted.plugin import IPlugin, getPlugIns;list(getPlugIns(IPlugin))" + fi +} + +pkg_postinst() { + distutils_pkg_postinst + update_plugin_cache +} + +pkg_postrm() { + distutils_pkg_postrm + update_plugin_cache +} + +src_test() { + python_version + + if has_version ">=dev-lang/python-2.3"; then + "${python}" setup.py install --root="${T}/tests" --no-compile || die + else + "${python}" setup.py install --root="${T}/tests" || die + fi + + cd "${T}/tests/usr/$(get_libdir)/python${PYVER}/site-packages/" || die + + #Skip tests that demand non-root user + rm -rf "twisted/test/test_plugin.py" + rm -rf "twisted/test/test_process.py" + + # prevent it from pulling in plugins from already installed + # twisted packages + rm twisted/plugins/__init__.py || die + + # an empty file doesn't work because the tests check for + # docstrings in all packages + echo "'''plugins stub'''" > twisted/plugins/__init__.py || die + + PYTHONPATH=. "${T}"/tests/usr/bin/trial twisted || die "trial failed" + cd "${S}" + rm -rf "${T}/tests" +} |