diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-04 05:48:38 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-04 05:48:38 -0500 |
| commit | bfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch) | |
| tree | 0d7a74b4463ee387f9cf9368ceb1b757f694f72a /dev-python/django | |
| parent | f716a9fe6455d39eef01e718aae68dae61c19704 (diff) | |
| download | baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip | |
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'dev-python/django')
| -rw-r--r-- | dev-python/django/Manifest | 10 | ||||
| -rw-r--r-- | dev-python/django/django-4.2.30.ebuild | 100 | ||||
| -rw-r--r-- | dev-python/django/django-5.2.14.ebuild | 100 | ||||
| -rw-r--r-- | dev-python/django/django-5.2.15.ebuild | 100 | ||||
| -rw-r--r-- | dev-python/django/django-6.0.5.ebuild | 100 | ||||
| -rw-r--r-- | dev-python/django/django-6.0.6.ebuild | 100 | ||||
| -rw-r--r-- | dev-python/django/files/django-4.0-bashcomp.patch | 56 | ||||
| -rw-r--r-- | dev-python/django/files/django-4.2.21-py313.patch | 58 | ||||
| -rw-r--r-- | dev-python/django/files/django-5.2.7-py314.patch | 133 | ||||
| -rw-r--r-- | dev-python/django/metadata.xml | 13 |
10 files changed, 770 insertions, 0 deletions
diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest new file mode 100644 index 000000000000..7d4fedba47ad --- /dev/null +++ b/dev-python/django/Manifest @@ -0,0 +1,10 @@ +DIST Django-4.2.30.checksum.txt 2498 BLAKE2B 82da291f4b5df6d4058f30e918f47388938429b0b4030672e80ac0b566dd138aa7edf88479cbafe9757c9443b16bc20d8a0708ddad310ebd16390847793cbe20 SHA512 a71849dd02eb2cbfed340ae286c7d02bf6b9cef0509ea04c6b38160ae2779240f54b50ec25487d485ef505c04cb5dc20afd01708460bc1ef5485f1ff0adecba2 +DIST Django-5.2.14.checksum.txt 2317 BLAKE2B 0cd012b8815ec7305520483ea1c9db5b3b1373ede52b120010472c662ba55f110c8ac3fd5e12ef539618911dae28d81fbe9886f8436e941b95f2d7d3ae09f4ea SHA512 b81cb4877274d11f6270b55b9726aeec378f92e48f4ce9394a556156aad07af28f622dcad86ab93a594314639259888194a4f8df63bfaa109f69ad7a9441c7a7 +DIST Django-5.2.15.checksum.txt 2678 BLAKE2B 0b7491d214b65731b3d4ca6b9f7628456b520abf96bfbba47daee1e038c58ae485cea7605463cc3902fe92417af93c8cb5ade0ccb3e0804abf98ddbbc3598960 SHA512 ea4588b01a5a0abb8a340bc0fbda7ede35a5ee835c02d4490999f582a1a56df7bffb9f3c5aa8461a2b84f193daee046a6467d980bc011a14918d5709830d438b +DIST Django-6.0.5.checksum.txt 2307 BLAKE2B 8dcc3a52c9cce9dc00d4911025deb818ec2eccdc3f5254dd640720ac81077ea4ab7b8cd39ec96a4c099f9796e81f4980a8b38e5e4750c405fa3fdc1a783c227b SHA512 7acf5c8e6732eb4208b85b31ba2ab939e3bd7a773827d7f8cbb524b255c8f05ad3acb02c40077f2b7e418ae7287f30090f559bbe44c69c91dba6517e5f42a865 +DIST Django-6.0.6.checksum.txt 2667 BLAKE2B ccd5eca7611836d94bf85c6636d7d8adf794aaa6624edc1f051cbffe6b8ebec84166ccf65c8e9ad771fdf6505e5a75e8079092519867f6b8077badccadb0e481 SHA512 d8d0ae636d3f63d46e0b4a922f24abb5ccb97074a07cedc8f195b051342c262f7190c954c36b966089980e562424efff9342a3d6e8913e622f260d7130c86aa9 +DIST django-4.2.30.tar.gz 10468707 BLAKE2B 760101d8eede890455e1df29bf6cd018007216f8f7ceaba8381c757eec5387b0d8524af2e4519cf6adeca93d3116f3f82b57887f73cc68c89dfbffddc79158e8 SHA512 62bbb451a3ab61ab1679ce9e86178147930cc711f01a0d983aa231ffbc4152f1926d3da240751ee4636f1c0c421248d2f3ee5ebd6827c45a4743adae7b46fbe8 +DIST django-5.2.14.tar.gz 10895118 BLAKE2B de911089a503cce7c12ee50e4729ea94c5400f6260c84d79ef12f8fbd251ea7d332eb26b5194fbb1663602ff4b2488673498f81e013fb967fe358ef3b6339257 SHA512 e6e05195d4693209de15be99fc6621cc23b5a0d28fbcf2516b271274aa1637be4f55a6b607fb1c5dc8e913a78eca99d76645bce1cc71468a8dfed7e16c129a84 +DIST django-5.2.15.tar.gz 10873669 BLAKE2B 8ecd4b927ddce91a4e0b6d069824798b79098a43832072f8cef84c877bc0b237d25ae761452a5131d350eca4afe9dab5dd1c3e0fbb1af8d5c5ce6e88076341c8 SHA512 ac222ce040bd55dc580bfbc38d5c35802960fcd90070271f2f990f3a2f8c429c837b511fce1c45ef2d21ad518fdd47c26a6486a8f4696f3f2e9ee9e114421a3c +DIST django-6.0.5.tar.gz 10924131 BLAKE2B 03c0e2e5b62efa2a1462d3beba4103d4b30714ecd42f573b3665399feba335925e8032ad01826b4f31da7bf1686768b45b1f872af52c4315900440f4b033bd6d SHA512 c8f06e11217a1ec5a089646c9d3581cbda7c0d1178cdad3547e0d8a3444bd78a093ecea04deebd2d15f6179f43cf9e427385e28ca310de56b8cd7310e3fcb260 +DIST django-6.0.6.tar.gz 10905525 BLAKE2B 129a68d95c31159df5072a95725184784feb310c8e2389d687eb3a50ed066365fc3c981f936a399c3b570b18a3def442220a915a91bc8de1c602a04a0a9e7b2f SHA512 0e8d651d2efa1c368b2177ae48e3a3e17656ab28d1655a3b561acac88558c1db66160461e79b2ef6d589fb589e1afa90e63c5f51d28a215c4abb91de1299f01b diff --git a/dev-python/django/django-4.2.30.ebuild b/dev-python/django/django-4.2.30.ebuild new file mode 100644 index 000000000000..5b10891d8c6d --- /dev/null +++ b/dev-python/django/django-4.2.30.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE='sqlite?,threads(+)' + +inherit bash-completion-r1 distutils-r1 multiprocessing 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 ) +" + +LICENSE="BSD" +# admin fonts: Roboto (media-fonts/roboto) +LICENSE+=" Apache-2.0" +# admin icons, jquery, xregexp.js +LICENSE+=" MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64 arm arm64 ~loong ppc 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}] + sys-libs/timezone-data +" +BDEPEND=" + test? ( + $(python_gen_impl_dep sqlite) + ${RDEPEND} + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/jinja2[${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-20241002 ) +" + +PATCHES=( + "${FILESDIR}"/django-4.0-bashcomp.patch + # https://code.djangoproject.com/ticket/34900 + "${FILESDIR}"/django-4.2.21-py313.patch +) + +distutils_enable_sphinx docs --no-autodoc + +VERIFY_SIG_OPENPGP_KEY_PATH=/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 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" || + 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:0 + 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/django-5.2.14.ebuild b/dev-python/django/django-5.2.14.ebuild new file mode 100644 index 000000000000..a9c65577d416 --- /dev/null +++ b/dev-python/django/django-5.2.14.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE='sqlite?,threads(+)' + +inherit bash-completion-r1 distutils-r1 multiprocessing 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 ) +" + +LICENSE="BSD" +# admin fonts: Roboto (media-fonts/roboto) +LICENSE+=" Apache-2.0" +# admin icons, jquery, xregexp.js +LICENSE+=" MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos" +IUSE="doc sqlite test" +RESTRICT="!test? ( test )" + +RDEPEND=" + <dev-python/asgiref-4[${PYTHON_USEDEP}] + >=dev-python/asgiref-3.8.1[${PYTHON_USEDEP}] + >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}] + sys-libs/timezone-data +" +BDEPEND=" + test? ( + $(python_gen_impl_dep sqlite) + ${RDEPEND} + >=dev-python/docutils-0.19[${PYTHON_USEDEP}] + >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pillow[webp,${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}] + >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}] + sys-devel/gettext + ) + verify-sig? ( >=sec-keys/openpgp-keys-django-20241002 ) +" + +PATCHES=( + "${FILESDIR}"/django-4.0-bashcomp.patch + # d55979334dcefdb11626220000bec97ade09df07 + "${FILESDIR}"/django-5.2.7-py314.patch +) + +distutils_enable_sphinx docs --no-autodoc + +VERIFY_SIG_OPENPGP_KEY_PATH=/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 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" || + 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:0 + 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/django-5.2.15.ebuild b/dev-python/django/django-5.2.15.ebuild new file mode 100644 index 000000000000..9749f699e1ed --- /dev/null +++ b/dev-python/django/django-5.2.15.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE='sqlite?,threads(+)' + +inherit bash-completion-r1 distutils-r1 multiprocessing 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 ) +" + +LICENSE="BSD" +# admin fonts: Roboto (media-fonts/roboto) +LICENSE+=" Apache-2.0" +# admin icons, jquery, xregexp.js +LICENSE+=" MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" +IUSE="doc sqlite test" +RESTRICT="!test? ( test )" + +RDEPEND=" + <dev-python/asgiref-4[${PYTHON_USEDEP}] + >=dev-python/asgiref-3.8.1[${PYTHON_USEDEP}] + >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}] + sys-libs/timezone-data +" +BDEPEND=" + test? ( + $(python_gen_impl_dep sqlite) + ${RDEPEND} + >=dev-python/docutils-0.19[${PYTHON_USEDEP}] + >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pillow[webp,${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}] + >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}] + sys-devel/gettext + ) + verify-sig? ( >=sec-keys/openpgp-keys-django-20241002 ) +" + +PATCHES=( + "${FILESDIR}"/django-4.0-bashcomp.patch + # d55979334dcefdb11626220000bec97ade09df07 + "${FILESDIR}"/django-5.2.7-py314.patch +) + +distutils_enable_sphinx docs --no-autodoc + +VERIFY_SIG_OPENPGP_KEY_PATH=/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 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" || + 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:0 + 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/django-6.0.5.ebuild b/dev-python/django/django-6.0.5.ebuild new file mode 100644 index 000000000000..c68dd7757e2f --- /dev/null +++ b/dev-python/django/django-6.0.5.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE='sqlite?,threads(+)' + +inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig + +MY_P=${P/_} +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)/${MY_P}.tar.gz + verify-sig? ( https://media.djangoproject.com/pgp/${MY_P^}.checksum.txt ) +" +S=${WORKDIR}/${MY_P} + +LICENSE="BSD" +# admin fonts: Roboto (media-fonts/roboto) +LICENSE+=" Apache-2.0" +# admin icons, jquery, xregexp.js +LICENSE+=" MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos" +IUSE="doc sqlite test" +RESTRICT="!test? ( test )" + +RDEPEND=" + <dev-python/asgiref-4[${PYTHON_USEDEP}] + >=dev-python/asgiref-3.9.1[${PYTHON_USEDEP}] + >=dev-python/sqlparse-0.5.0[${PYTHON_USEDEP}] + sys-libs/timezone-data +" +BDEPEND=" + test? ( + $(python_gen_impl_dep sqlite) + ${RDEPEND} + >=dev-python/docutils-0.19[${PYTHON_USEDEP}] + >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pillow[webp,${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}] + >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}] + sys-devel/gettext + ) + verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 ) +" + +PATCHES=( + "${FILESDIR}"/django-4.0-bashcomp.patch +) + +distutils_enable_sphinx docs --no-autodoc + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc + +src_unpack() { + if use verify-sig; then + cd "${DISTDIR}" || die + verify-sig_verify_signed_checksums \ + "${MY_P^}.checksum.txt" sha256 "${MY_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 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" || + die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + newbashcomp extras/django_bash_completion django-admin + bashcomp_alias django-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:0 + 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/django-6.0.6.ebuild b/dev-python/django/django-6.0.6.ebuild new file mode 100644 index 000000000000..c68dd7757e2f --- /dev/null +++ b/dev-python/django/django-6.0.6.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE='sqlite?,threads(+)' + +inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig + +MY_P=${P/_} +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)/${MY_P}.tar.gz + verify-sig? ( https://media.djangoproject.com/pgp/${MY_P^}.checksum.txt ) +" +S=${WORKDIR}/${MY_P} + +LICENSE="BSD" +# admin fonts: Roboto (media-fonts/roboto) +LICENSE+=" Apache-2.0" +# admin icons, jquery, xregexp.js +LICENSE+=" MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos" +IUSE="doc sqlite test" +RESTRICT="!test? ( test )" + +RDEPEND=" + <dev-python/asgiref-4[${PYTHON_USEDEP}] + >=dev-python/asgiref-3.9.1[${PYTHON_USEDEP}] + >=dev-python/sqlparse-0.5.0[${PYTHON_USEDEP}] + sys-libs/timezone-data +" +BDEPEND=" + test? ( + $(python_gen_impl_dep sqlite) + ${RDEPEND} + >=dev-python/docutils-0.19[${PYTHON_USEDEP}] + >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pillow[webp,${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}] + >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}] + sys-devel/gettext + ) + verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 ) +" + +PATCHES=( + "${FILESDIR}"/django-4.0-bashcomp.patch +) + +distutils_enable_sphinx docs --no-autodoc + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc + +src_unpack() { + if use verify-sig; then + cd "${DISTDIR}" || die + verify-sig_verify_signed_checksums \ + "${MY_P^}.checksum.txt" sha256 "${MY_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 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" || + die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + newbashcomp extras/django_bash_completion django-admin + bashcomp_alias django-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:0 + 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.0-bashcomp.patch b/dev-python/django/files/django-4.0-bashcomp.patch new file mode 100644 index 000000000000..06d121cce102 --- /dev/null +++ b/dev-python/django/files/django-4.0-bashcomp.patch @@ -0,0 +1,56 @@ +From 103a0f5559795f6517c24ab65d2305a8320acf8a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Wed, 6 May 2020 07:24:05 +0200 +Subject: [PATCH] Remove completions unsuitable for autoloading + +The override of 'python*' completions, as well as the attempt +to './manage.py' completion are not going to work with autoloader. +Strip them. +--- + extras/django_bash_completion | 33 +-------------------------------- + 1 file changed, 1 insertion(+), 32 deletions(-) + +diff --git a/extras/django_bash_completion b/extras/django_bash_completion +index 6fb941bef6..2f761ceb83 100755 +--- a/extras/django_bash_completion ++++ b/extras/django_bash_completion +@@ -36,35 +36,4 @@ _django_completion() + COMP_CWORD=$COMP_CWORD \ + DJANGO_AUTO_COMPLETE=1 $1 ) ) + } +-complete -F _django_completion -o default manage.py django-admin +- +-_python_django_completion() +-{ +- if [[ ${COMP_CWORD} -ge 2 ]]; then +- local PYTHON_EXE=${COMP_WORDS[0]##*/} +- if echo "$PYTHON_EXE" | grep -qE "python([3-9]\.[0-9])?"; then +- local PYTHON_SCRIPT=${COMP_WORDS[1]##*/} +- if echo "$PYTHON_SCRIPT" | grep -qE "manage\.py|django-admin"; then +- COMPREPLY=( $( COMP_WORDS=( "${COMP_WORDS[*]:1}" ) +- COMP_CWORD=$(( COMP_CWORD-1 )) +- DJANGO_AUTO_COMPLETE=1 ${COMP_WORDS[*]} ) ) +- fi +- fi +- fi +-} +- +-# Support for multiple interpreters. +-unset pythons +-if command -v whereis &>/dev/null; then +- python_interpreters=$(whereis python | cut -d " " -f 2-) +- for python in $python_interpreters; do +- [[ $python != *-config ]] && pythons="${pythons} ${python##*/}" +- done +- unset python_interpreters +- pythons=$(echo "$pythons" | tr " " "\n" | sort -u | tr "\n" " ") +-else +- pythons=python +-fi +- +-complete -F _python_django_completion -o default $pythons +-unset pythons ++complete -F _django_completion -o default django-admin +-- +2.34.1 + diff --git a/dev-python/django/files/django-4.2.21-py313.patch b/dev-python/django/files/django-4.2.21-py313.patch new file mode 100644 index 000000000000..e464efbe33a5 --- /dev/null +++ b/dev-python/django/files/django-4.2.21-py313.patch @@ -0,0 +1,58 @@ +From 18628d51012830f12a2a888223c6e5153729004d Mon Sep 17 00:00:00 2001 +From: Mariusz Felisiak <felisiak.mariusz@gmail.com> +Date: Tue, 20 Feb 2024 20:59:26 +0100 +Subject: [PATCH] Refs #34900 -- Fixed + CommandTypes.test_help_default_options_with_custom_arguments test on Python + 3.13+. + +https://github.com/python/cpython/commit/c4a2e8a2c5188c3288d57b80852e92c83f46f6f3 +--- + django/utils/version.py | 1 + + tests/admin_scripts/tests.py | 15 +++++++++++---- + 2 files changed, 12 insertions(+), 4 deletions(-) + +diff --git a/django/utils/version.py b/django/utils/version.py +index 1e9c720299..71ec70bd67 100644 +--- a/django/utils/version.py ++++ b/django/utils/version.py +@@ -17,6 +17,7 @@ PY39 = sys.version_info >= (3, 9) + PY310 = sys.version_info >= (3, 10) + PY311 = sys.version_info >= (3, 11) + PY312 = sys.version_info >= (3, 12) ++PY313 = sys.version_info >= (3, 13) + + + def get_version(version=None): +diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py +index 6d67c2931a..8373560499 100644 +--- a/tests/admin_scripts/tests.py ++++ b/tests/admin_scripts/tests.py +@@ -33,6 +33,7 @@ from django.test import LiveServerTestCase, SimpleTestCase, TestCase, override_s + from django.test.utils import captured_stderr, captured_stdout + from django.urls import path + from django.utils.version import PY39 ++from django.utils.version import PY313 + from django.views.static import serve + + from . import urls +@@ -1900,10 +1901,16 @@ class CommandTypes(AdminScriptTestCase): + ] + for option in expected_options: + self.assertOutput(out, f"[{option}]") +- self.assertOutput(out, "--option_a OPTION_A, -a OPTION_A") +- self.assertOutput(out, "--option_b OPTION_B, -b OPTION_B") +- self.assertOutput(out, "--option_c OPTION_C, -c OPTION_C") +- self.assertOutput(out, "-v {0,1,2,3}, --verbosity {0,1,2,3}") ++ if PY313: ++ self.assertOutput(out, "--option_a, -a OPTION_A") ++ self.assertOutput(out, "--option_b, -b OPTION_B") ++ self.assertOutput(out, "--option_c, -c OPTION_C") ++ self.assertOutput(out, "-v, --verbosity {0,1,2,3}") ++ else: ++ self.assertOutput(out, "--option_a OPTION_A, -a OPTION_A") ++ self.assertOutput(out, "--option_b OPTION_B, -b OPTION_B") ++ self.assertOutput(out, "--option_c OPTION_C, -c OPTION_C") ++ self.assertOutput(out, "-v {0,1,2,3}, --verbosity {0,1,2,3}") + + def test_color_style(self): + style = color.no_style() diff --git a/dev-python/django/files/django-5.2.7-py314.patch b/dev-python/django/files/django-5.2.7-py314.patch new file mode 100644 index 000000000000..ba3fa0b0e617 --- /dev/null +++ b/dev-python/django/files/django-5.2.7-py314.patch @@ -0,0 +1,133 @@ +From 82592c9815409a1e023152f565a65b0105565ed2 Mon Sep 17 00:00:00 2001 +From: Mariusz Felisiak <felisiak.mariusz@gmail.com> +Date: Mon, 28 Jul 2025 23:21:17 +0200 +Subject: [PATCH] Fixed #36531 -- Added forkserver support to parallel test + runner. + +--- + django/db/backends/sqlite3/creation.py | 10 +++++----- + django/test/runner.py | 16 ++++++++++------ + tests/backends/sqlite/test_creation.py | 4 ++-- + tests/test_runner/test_discover_runner.py | 10 ++++++++++ + 4 files changed, 27 insertions(+), 13 deletions(-) + +diff --git a/django/db/backends/sqlite3/creation.py b/django/db/backends/sqlite3/creation.py +index 802e8b8357..8a07e0c417 100644 +--- a/django/db/backends/sqlite3/creation.py ++++ b/django/db/backends/sqlite3/creation.py +@@ -62,7 +62,7 @@ class DatabaseCreation(BaseDatabaseCreation): + start_method = multiprocessing.get_start_method() + if start_method == "fork": + return orig_settings_dict +- if start_method == "spawn": ++ if start_method in {"forkserver", "spawn"}: + return { + **orig_settings_dict, + "NAME": f"{self.connection.alias}_{suffix}.sqlite3", +@@ -99,9 +99,9 @@ class DatabaseCreation(BaseDatabaseCreation): + self.log("Got an error cloning the test database: %s" % e) + sys.exit(2) + # Forking automatically makes a copy of an in-memory database. +- # Spawn requires migrating to disk which will be re-opened in +- # setup_worker_connection. +- elif multiprocessing.get_start_method() == "spawn": ++ # Forkserver and spawn require migrating to disk which will be ++ # re-opened in setup_worker_connection. ++ elif multiprocessing.get_start_method() in {"forkserver", "spawn"}: + ondisk_db = sqlite3.connect(target_database_name, uri=True) + self.connection.connection.backup(ondisk_db) + ondisk_db.close() +@@ -137,7 +137,7 @@ class DatabaseCreation(BaseDatabaseCreation): + # Update settings_dict in place. + self.connection.settings_dict.update(settings_dict) + self.connection.close() +- elif start_method == "spawn": ++ elif start_method in {"forkserver", "spawn"}: + alias = self.connection.alias + connection_str = ( + f"file:memorydb_{alias}_{_worker_id}?mode=memory&cache=shared" +diff --git a/django/test/runner.py b/django/test/runner.py +index b83cd37343..cc2fb2ebdf 100644 +--- a/django/test/runner.py ++++ b/django/test/runner.py +@@ -387,8 +387,9 @@ def get_max_test_processes(): + The maximum number of test processes when using the --parallel option. + """ + # The current implementation of the parallel test runner requires +- # multiprocessing to start subprocesses with fork() or spawn(). +- if multiprocessing.get_start_method() not in {"fork", "spawn"}: ++ # multiprocessing to start subprocesses with fork(), forkserver(), or ++ # spawn(). ++ if multiprocessing.get_start_method() not in {"fork", "spawn", "forkserver"}: + return 1 + try: + return int(os.environ["DJANGO_TEST_PROCESSES"]) +@@ -433,9 +434,12 @@ def _init_worker( + counter.value += 1 + _worker_id = counter.value + +- start_method = multiprocessing.get_start_method() ++ is_spawn_or_forkserver = multiprocessing.get_start_method() in { ++ "forkserver", ++ "spawn", ++ } + +- if start_method == "spawn": ++ if is_spawn_or_forkserver: + if process_setup and callable(process_setup): + if process_setup_args is None: + process_setup_args = () +@@ -446,7 +450,7 @@ def _init_worker( + db_aliases = used_aliases if used_aliases is not None else connections + for alias in db_aliases: + connection = connections[alias] +- if start_method == "spawn": ++ if is_spawn_or_forkserver: + # Restore initial settings in spawned processes. + connection.settings_dict.update(initial_settings[alias]) + if value := serialized_contents.get(alias): +@@ -589,7 +593,7 @@ class ParallelTestSuite(unittest.TestSuite): + return iter(self.subsuites) + + def initialize_suite(self): +- if multiprocessing.get_start_method() == "spawn": ++ if multiprocessing.get_start_method() in {"forkserver", "spawn"}: + self.initial_settings = { + alias: connections[alias].settings_dict for alias in connections + } +diff --git a/tests/backends/sqlite/test_creation.py b/tests/backends/sqlite/test_creation.py +index 8aa24674d2..fe3959c85b 100644 +--- a/tests/backends/sqlite/test_creation.py ++++ b/tests/backends/sqlite/test_creation.py +@@ -36,8 +36,8 @@ class TestDbSignatureTests(SimpleTestCase): + clone_settings_dict = creation_class.get_test_db_clone_settings("1") + self.assertEqual(clone_settings_dict["NAME"], expected_clone_name) + +- @mock.patch.object(multiprocessing, "get_start_method", return_value="forkserver") ++ @mock.patch.object(multiprocessing, "get_start_method", return_value="unsupported") + def test_get_test_db_clone_settings_not_supported(self, *mocked_objects): +- msg = "Cloning with start method 'forkserver' is not supported." ++ msg = "Cloning with start method 'unsupported' is not supported." + with self.assertRaisesMessage(NotSupportedError, msg): + connection.creation.get_test_db_clone_settings(1) +diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py +index 4f13cceeff..c6ce7f1e1d 100644 +--- a/tests/test_runner/test_discover_runner.py ++++ b/tests/test_runner/test_discover_runner.py +@@ -98,6 +98,16 @@ class DiscoverRunnerParallelArgumentTests(SimpleTestCase): + mocked_cpu_count, + ): + mocked_get_start_method.return_value = "forkserver" ++ self.assertEqual(get_max_test_processes(), 12) ++ with mock.patch.dict(os.environ, {"DJANGO_TEST_PROCESSES": "7"}): ++ self.assertEqual(get_max_test_processes(), 7) ++ ++ def test_get_max_test_processes_other( ++ self, ++ mocked_get_start_method, ++ mocked_cpu_count, ++ ): ++ mocked_get_start_method.return_value = "other" + self.assertEqual(get_max_test_processes(), 1) + with mock.patch.dict(os.environ, {"DJANGO_TEST_PROCESSES": "7"}): + self.assertEqual(get_max_test_processes(), 1) diff --git a/dev-python/django/metadata.xml b/dev-python/django/metadata.xml new file mode 100644 index 000000000000..c23d3d648e67 --- /dev/null +++ b/dev-python/django/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <stabilize-allarches/> + <upstream> + <remote-id type="pypi">Django</remote-id> + <remote-id type="github">django/django</remote-id> + </upstream> +</pkgmetadata> |
