diff options
author | 2023-07-23 13:04:17 +0200 | |
---|---|---|
committer | 2023-07-23 13:24:11 +0200 | |
commit | 8b662f6292291606e579c70c581c6c76adba9534 (patch) | |
tree | ba97d9e15df3b0d5790541ec5406c3243ee7ad60 /dev-python/django | |
parent | dev-lang/python: Backport regression fix to 3.12.0_beta4_p1 (diff) | |
download | gentoo-8b662f6292291606e579c70c581c6c76adba9534.tar.gz gentoo-8b662f6292291606e579c70c581c6c76adba9534.tar.bz2 gentoo-8b662f6292291606e579c70c581c6c76adba9534.zip |
dev-python/django: Enable py3.12
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/django')
-rw-r--r-- | dev-python/django/django-4.2.3-r1.ebuild | 98 | ||||
-rw-r--r-- | dev-python/django/files/django-4.2.3-py312.patch | 25 |
2 files changed, 123 insertions, 0 deletions
diff --git a/dev-python/django/django-4.2.3-r1.ebuild b/dev-python/django/django-4.2.3-r1.ebuild new file mode 100644 index 000000000000..f51d9733c439 --- /dev/null +++ b/dev-python/django/django-4.2.3-r1.ebuild @@ -0,0 +1,98 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE='sqlite?,threads(+)' + +inherit bash-completion-r1 distutils-r1 optfeature verify-sig + +DESCRIPTION="High-level Python web framework" +HOMEPAGE=" + https://www.djangoproject.com/ + https://github.com/django/django/ + https://pypi.org/project/Django/ +" +SRC_URI=" + https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P^}.tar.gz + verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt ) +" +S="${WORKDIR}/${P^}" + +LICENSE="BSD" +# admin fonts: Roboto (media-fonts/roboto) +LICENSE+=" Apache-2.0" +# admin icons, jquery, xregexp.js +LICENSE+=" MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" +IUSE="doc sqlite test" +RESTRICT="!test? ( test )" + +RDEPEND=" + <dev-python/asgiref-4[${PYTHON_USEDEP}] + >=dev-python/asgiref-3.6.0[${PYTHON_USEDEP}] + >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + $(python_gen_impl_dep sqlite) + ${RDEPEND} + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/jinja[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pillow[webp,${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/selenium[${PYTHON_USEDEP}] + dev-python/tblib[${PYTHON_USEDEP}] + sys-devel/gettext + ) + verify-sig? ( >=sec-keys/openpgp-keys-django-20230606 ) +" + +PATCHES=( + "${FILESDIR}"/django-4.0-bashcomp.patch + "${FILESDIR}"/django-4.2.3-py312.patch +) + +distutils_enable_sphinx docs --no-autodoc + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/django.asc + +src_unpack() { + if use verify-sig; then + cd "${DISTDIR}" || die + verify-sig_verify_signed_checksums \ + "${P^}.checksum.txt" sha256 "${P^}.tar.gz" + cd "${WORKDIR}" || die + fi + + default +} + +python_test() { + # Tests have non-standard assumptions about PYTHONPATH, + # and don't work with ${BUILD_DIR}/lib. + PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite -v2 || + die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + newbashcomp extras/django_bash_completion ${PN}-admin + bashcomp_alias ${PN}-admin django-admin.py + + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature_header "Additional Backend support can be enabled via:" + optfeature "MySQL backend support" dev-python/mysqlclient + optfeature "PostgreSQL backend support" dev-python/psycopg:2 + optfeature_header + optfeature "GEO Django" "sci-libs/gdal[geos]" + optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached + optfeature "ImageField Support" dev-python/pillow + optfeature "Password encryption" dev-python/bcrypt +} diff --git a/dev-python/django/files/django-4.2.3-py312.patch b/dev-python/django/files/django-4.2.3-py312.patch new file mode 100644 index 000000000000..7989f8e7cbcc --- /dev/null +++ b/dev-python/django/files/django-4.2.3-py312.patch @@ -0,0 +1,25 @@ +This is a hack to get the tests to pass prior to: + +[e83a88566a71a2353cebc35992c110be0f8628af] Fixed #32172 -- Adapted signals to allow async handlers. + +diff --git a/django/test/signals.py b/django/test/signals.py +index 94a5161e82..1358101b98 100644 +--- a/django/test/signals.py ++++ b/django/test/signals.py +@@ -14,6 +14,7 @@ from django.utils import timezone + from django.utils.formats import FORMAT_SETTINGS, reset_format_cache + from django.utils.functional import empty + from django.utils.module_loading import import_string ++from django.utils.version import PY312 + + template_rendered = Signal() + +@@ -183,7 +184,7 @@ def complex_setting_changed(*, enter, setting, **kwargs): + # this stacklevel shows the line containing the override_settings call. + warnings.warn( + f"Overriding setting {setting} can lead to unexpected behavior.", +- stacklevel=6, ++ stacklevel=5 if PY312 else 6, + ) + + |