| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| |
| PYTHON_COMPAT=( python2_7 ) |
| PYTHON_REQ_USE='sqlite?' |
| |
| inherit bash-completion-r1 distutils-r1 eutils versionator webapp |
| |
| MY_P="Django-${PV}" |
| |
| DESCRIPTION="High-level Python web framework" |
| HOMEPAGE="http://www.djangoproject.com/ https://pypi.python.org/pypi/Django" |
| SRC_URI="https://www.djangoproject.com/m/releases/$(get_version_component_range 1-2)/${MY_P}.tar.gz" |
| |
| LICENSE="BSD" |
| SLOT="0" |
| KEYWORDS="amd64 ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" |
| IUSE="sqlite test" |
| |
| RDEPEND="" |
| DEPEND="${RDEPEND} |
| dev-python/setuptools[${PYTHON_USEDEP}] |
| test? ( |
| ${PYTHON_DEPS//sqlite?/sqlite} |
| dev-python/docutils[${PYTHON_USEDEP}] |
| <dev-python/numpy-1.9[$(python_gen_usedep 'python*')] |
| dev-python/pillow[${PYTHON_USEDEP}] |
| dev-python/pytz[${PYTHON_USEDEP}] |
| dev-python/pyyaml[${PYTHON_USEDEP}] |
| virtual/python-imaging[${PYTHON_USEDEP}] |
| )" |
| |
| # app-text/pytextile[${PYTHON_USEDEP}] |
| # dev-python/markdown[${PYTHON_USEDEP}] |
| # dev-python/selenium[${PYTHON_USEDEP}] |
| # dev-python/py-bcrypt[${PYTHON_USEDEP}] |
| |
| S="${WORKDIR}/${MY_P}" |
| |
| WEBAPP_MANUAL_SLOT="yes" |
| |
| PATCHES=( |
| "${FILESDIR}"/${PN}-1.4.19-bashcomp.patch |
| ) |
| |
| python_prepare_all() { |
| # Disable tests requiring network connection. |
| sed \ |
| -e "s/test_correct_url_value_passes/_&/" \ |
| -e "s/test_correct_url_with_redirect/_&/" \ |
| -i tests/modeltests/validation/tests.py || die |
| sed \ |
| -e "s/test_urlfield_3/_&/" \ |
| -e "s/test_urlfield_4/_&/" \ |
| -e "s/test_urlfield_10/_&/" \ |
| -i tests/regressiontests/forms/tests/fields.py || die |
| |
| distutils-r1_python_prepare_all |
| } |
| |
| python_test() { |
| # Tests have non-standard assumptions about PYTHONPATH, |
| # and don't work with ${BUILD_DIR}/lib. |
| PYTHONPATH=. "${PYTHON}" tests/runtests.py --settings=test_sqlite -v2 \ |
| || die "Tests fail with ${EPYTHON}" |
| } |
| |
| src_install() { |
| distutils-r1_src_install |
| webapp_src_install |
| |
| elog "Additional Backend support can be enabled via" |
| optfeature "MySQL backend support in python 2.7 only" dev-python/mysql-python |
| optfeature "MySQL backend support in python 2.7 - 3.4" dev-python/mysql-connector-python |
| optfeature "PostgreSQL backend support" dev-python/psycopg:2 |
| optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached |
| optfeature "ImageField Support" virtual/python-imaging |
| echo "" |
| } |
| |
| python_install_all() { |
| newbashcomp extras/django_bash_completion ${PN}-admin |
| bashcomp_alias ${PN}-admin django-admin.py |
| |
| insinto "${MY_HTDOCSDIR#${EPREFIX}}" |
| doins -r django/contrib/admin/static/admin/. |
| distutils-r1_python_install_all |
| } |
| |
| pkg_postinst() { |
| elog "A copy of the admin media is available to" |
| elog "webapp-config for installation in a webroot," |
| elog "as well as the traditional location in python's" |
| elog "site-packages dir for easy development" |
| elog |
| ewarn "If you build Django ${PV} without USE=\"vhosts\"" |
| |
| # XXX: call webapp_pkg_postinst? the old ebuild didn't do that... |
| ewarn "webapp-config will automatically install the" |
| ewarn "admin media into the localhost webroot." |
| } |