Hi all, Since it's policy and especially since it's the first time I write one of these things I'm submitting an eclass I want to add to the tree for review. It will only be used by the twisted subpackages I'll be maintaining (see bug 80639).
Subpackage ebuilds using this only have to set MY_PACKAGE, DESCRIPTION, KEYWORDS and DEPEND. I'd like to get rid of MY_PACKAGE but I haven't figured out how to convert lowercase to uppercase without using tr (MY_PACKAGE will be "Conch" if PN is "twisted-conch"). Also adds the ability to run the unit tests for the package and updates twisted's plugin cache. Would like to hear about any ideas on how to do that case conversion and any bugs spotted. If there are no objections I'd like to add this to the tree in about two days, so bug 80639 can finally be fixed. -- Marien.
# Copyright 2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License, v2 or later # $Header: $ # eclass to aid installing and testing twisted packages. # you should set MY_PACKAGE to something like 'Names' before inheriting. # you may set MY_PV to the right version (defaults to PV). inherit distutils versionator MY_PV=${MY_PV:-${PV}} MY_VERSION=$(get_version_component_range 1-2 ${MY_PV}) MY_P=Twisted${MY_PACKAGE}-${MY_PV} HOMEPAGE="http://www.twistedmatrix.com/" SRC_URI="http://tmrc.mit.edu/mirror/twisted/${MY_PACKAGE}/${MY_VERSION}/${MY_P}.tar.bz2" LICENSE="MIT" SLOT="0" IUSE="" S="${WORKDIR}/${MY_P}" twisted_src_test() { python_version # This is a hack to make tests work without installing to the live # filesystem. We copy the twisted site-packages to a temporary # dir, install there, and run from there. local spath="usr/$(get_libdir)/python${PYVER}/site-packages/" mkdir -p "${T}/${spath}" cp -R "${ROOT}${spath}/twisted" "${T}/${spath}" || die if has_version ">=dev-lang/python-2.3"; then ${python} setup.py install --root="${T}" --no-compile || die else ${python} setup.py install --root="${T}" || die fi cd "${T}/${spath}" || die PATH="${T}/usr/bin:${PATH}" PYTHONPATH="${T}/${spath}" \ trial -R ${PN/-/.} || die "trial failed" } twisted_src_install() { distutils_src_install if [[ -d doc/man ]]; then doman doc/man/* fi if [[ -d doc ]]; then insinto /usr/share/doc/${PF} doins -r $(find doc -mindepth 1 -maxdepth 1 -not -name man) fi } update_plugin_cache() { einfo "Updating twisted plugin cache..." python_version # we have to remove the cache or removed plugins won't be removed # from the cache (http://twistedmatrix.com/bugs/issue926) rm "${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages/twisted/plugins/dropin.cache" # notice we have to use getPlugIns here for <=twisted-2.0.1 compatibility python -c "from twisted.plugin import IPlugin, getPlugIns;list(getPlugIns(IPlugin))" } twisted_pkg_postrm() { distutils_pkg_postrm update_plugin_cache } twisted_pkg_postinst() { distutils_pkg_postinst update_plugin_cache } EXPORT_FUNCTIONS src_test src_install pkg_postrm pkg_postinst
pgpdTyhgtfMRU.pgp
Description: PGP signature