commit:     a6f8d6099af5565b484f7984de0b5a9b73c1760e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu May  8 04:34:51 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu May  8 05:15:15 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a6f8d609

dev-python/django: Bump to 4.2.21

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/django/Manifest                        |   2 +
 dev-python/django/django-4.2.21.ebuild            | 104 ++++++++++++++++++++++
 dev-python/django/files/django-4.2.21-py313.patch |  58 ++++++++++++
 3 files changed, 164 insertions(+)

diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest
index 09cefcabee20..af0f203b35bc 100644
--- a/dev-python/django/Manifest
+++ b/dev-python/django/Manifest
@@ -1,5 +1,6 @@
 DIST Django-4.2.20.checksum.txt 2417 BLAKE2B 
ac01acf1c7fdba50e81012563d7d5f6d16ada10454f2d871a57f42600a5715081351e22f3f6f0043e66171b7d97bdd5e9d70cf279e94d48eb6ea6570f2b04634
 SHA512 
da0424c583b128337a5f52f9154b3e9e1437189b4e1e9ad7ad5b056380356d8a2ab61bf52d008253c51d63011160dd715817414ed063bac889196137ea8261d1
 DIST Django-4.2.20.tar.gz 10432686 BLAKE2B 
df53df6f8439cae50c2e568d20b4c46e2ae12d61ea826580b28a9678ae890ad8eade5bcc813dbb6355126aa8760acbaabffe4a6fd386bedb8fef171d1a09fabd
 SHA512 
6f960772cb95d6cb92ffc29ccec8d53d4f65c371359d350a63653c259288de4047302748008be04b9f4945627e9ef6d52dffa32455acbe26441f49872d73eeec
+DIST Django-4.2.21.checksum.txt 2545 BLAKE2B 
177d4a2f07fcd27c39eeddb56ee9219ddba6b8a570680d9dcee39fc400dbd6d3ae430f663d7759b52f8ccc7581d3d66e3168a7807bc8c206c7eddfe7c726248d
 SHA512 
e94d767c774cd2909297f07ec2069d60161fbf27323fe2e321fd24ca12b49ef5883d2c6f4ee7271dd131aa8e97bbf0b421323f5ad30bafd90040fb1a7e6ef013
 DIST Django-5.0.14.checksum.txt 2417 BLAKE2B 
f1798e24a4a290907adc83ac89aea70660026780b9accfc3487d4625d637e17af1347f0f3e6af727b3d4385f0371584edab1c806d07121c77a223c4941f2b441
 SHA512 
0149a3fdc99a9c2efb7d4e418be354660158e1ec75584c2b5455dfea6d326f3c04030f5414cb1e357d4ca62e225261ca797d6a31ff489260d14b2147401774c4
 DIST Django-5.0.14.tar.gz 10644306 BLAKE2B 
d19b9695c98116ddae26d6b0c3a6a53e0aa4786b1d74d7fd4f429c1d6d6289d39b106416651db46eff14a3af2fe0da30ebc3c68c5c1567f1a0eed058bd00551d
 SHA512 
53751e7ad38368d947c2b0d0743f3bfa11cef70638c905eb435eee3638aef70ca7656b917b7ef7d78800183075b1f76410def4b3ce553a7a177b8ab7f013490e
 DIST Django-5.1.8.checksum.txt 2374 BLAKE2B 
04d648a0186ac8a4caced8035bd2653e37975953ea0bc8b310a4bb6c3fff16ad77f006227b4c4ac0fdc5135b552b9a29b1982ae2d04586c519b6208f595d28b3
 SHA512 
744dc873ab2ac84f16eb2d6ecb2df2211a48076649b8c0b7f9adebaced092125981eb6011d1d2e35c017cb955206bd09149fa39c284b22ae6c76b3d820ed1357
@@ -9,6 +10,7 @@ DIST Django-5.2.1.checksum.txt 2535 BLAKE2B 
e839f319f2845909cf1141f91ffa4817f41d
 DIST Django-5.2.checksum.txt 2354 BLAKE2B 
8e4029505bcf9e96865efb3bd3c118462b7db47b47674f0ca43ad10eedfb62081bf15b75288e3f4ed80287abd291dc224ff4875de728c36d15008fc391833184
 SHA512 
bd167d04cd252df76a396bd33b6e3ab75dec5515f3d21a06dccad0d320173118bbb075f21393eae219779034a24fc8b49a81c18c376a8b3e6e0a174e222a6fc9
 DIST Django-5.2.tar.gz 10824891 BLAKE2B 
99f24ce1ced59ce281ff3f70a772f61fae449a9acb503284a490b896415b163addbec2e4732b4d736c6a4a3d435b4d519cab4dafa21215349db96bcc718da0d2
 SHA512 
b2b676b622ab2b4d52a7eebf23dd0660756c263830e850e49ff55a81657877eab5dcb2005829a904177231645f93edd0d60f1317b29d5484c02d7539135c972f
 DIST django-4.2.17-pypy3.patch.xz 5900 BLAKE2B 
2a564fc31d8e2f3def5a532d3bca1a4426a496c659192f602d659e0c1a5f5882978baedb384cc3b67fda8c836513ce43aece80db1528c8e8b6e9ca420f7572ce
 SHA512 
9c9d935aff6db7230a26931b5e7f5f94f3b5ff4fc8f7d4201178571de9d9c7929a0e1e558cc2d9b54b8ee91f85819a5680d24fad6251620515a4a020e3b2d66d
+DIST django-4.2.21.tar.gz 10424638 BLAKE2B 
c76170139e0b8926911d19a9b2319d85bcc577ebd36f55e80d5543da115baf31c7935eace893e8673ab338d97680d5f6f4e35bacc20a168188af363799c7bd83
 SHA512 
762201e56fff658b90d715545ba52420682f5382ebcb38602f25b921c82bce3877dcc54d07578c3b5bfcef62d5ce7836f19b7d638bb3230a5ca4987cc6e70f8e
 DIST django-5.0-pypy3.patch.xz 6124 BLAKE2B 
7eba7cc70b30743cf4e186a2c5b0f27c13f49114a7a80bcaa2b25fdd7a959583c115a302c9bc6da97c32f6401cf8f3616818ba759190d317c5b033a0f0088766
 SHA512 
c550e2b2c1243d13cd1f4908f4b6df606355d1491e3bf72042e4b4777a4474306ff0f67b1c2eb4ab4d137cc85bde52dcdbd54bec245d2ba2e092545be8a2993b
 DIST django-5.1.9.tar.gz 10710887 BLAKE2B 
b6caa00ef55d904209c0c20548963ccc91368d6a36395432fc86809b9fa41f4d8cce3122600983ca49593feb1b06fb4da72b5664ce418d3ee62d9aca98ebbe26
 SHA512 
f3fe34326e2fa4d35af26198f5839a7ad7bc433a659971528c0d7ba35c5d9e0300c9307114ad1eeaf242f6148ef2dbc48998752a0c68f80f9fbf5b8d32ddca2e
 DIST django-5.2.1.tar.gz 10818735 BLAKE2B 
583f78402534157d665a48a1569554ad31f0637c335d206f8dad384860971f27868184cfe0750cdc03d39879c736f88aace2d65ac8f25e60a16b8489fe51d5cf
 SHA512 
b97fc3221f2bcb499e2f55ea5fa8da61da9062266255a31e8d0a54afb7a41ea049dbe4b370ad7e8ca3b5105ab1d5a15f1fe3e48af4251590d27bc032fef17d25

diff --git a/dev-python/django/django-4.2.21.ebuild 
b/dev-python/django/django-4.2.21.ebuild
new file mode 100644
index 000000000000..ca73a13ef993
--- /dev/null
+++ b/dev-python/django/django-4.2.21.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( pypy3_11 python3_{11..13} )
+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
+       https://dev.gentoo.org/~mgorny/dist/python/django-4.2.17-pypy3.patch.xz
+       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"
+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-20240807 )
+"
+
+PATCHES=(
+       "${FILESDIR}"/django-4.0-bashcomp.patch
+       "${WORKDIR}"/django-4.2.17-pypy3.patch
+       # https://code.djangoproject.com/ticket/35661
+       "${FILESDIR}"/django-5.1-more-pypy3.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/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 <[email protected]>
+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()

Reply via email to