Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-django-q for openSUSE:Factory 
checked in at 2025-12-19 16:46:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-q (Old)
 and      /work/SRC/openSUSE:Factory/.python-django-q.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-django-q"

Fri Dec 19 16:46:01 2025 rev:15 rq:1323667 version:1.3.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-django-q/python-django-q.changes  
2025-06-03 17:54:03.730906140 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-django-q.new.1928/python-django-q.changes    
    2025-12-19 16:50:10.596738070 +0100
@@ -1,0 +2,5 @@
+Wed Dec 17 13:12:39 UTC 2025 - Markéta Machová <[email protected]>
+
+- Add upstream patch django5.patch to fix Django 5 support
+
+-------------------------------------------------------------------

New:
----
  django5.patch

----------(New B)----------
  New:
- Add upstream patch django5.patch to fix Django 5 support
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-django-q.spec ++++++
--- /var/tmp/diff_new_pack.GZJN19/_old  2025-12-19 16:50:16.108968583 +0100
+++ /var/tmp/diff_new_pack.GZJN19/_new  2025-12-19 16:50:16.120969085 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-django-q
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -25,23 +25,28 @@
 URL:            https://django-q.readthedocs.org
 Source:         
https://files.pythonhosted.org/packages/source/d/django-q/django-q-%{version}.tar.gz
 # pkg_resources is broken since the flufl.lock update in Factory
-Patch:          gh-pr-737_importlib.patch
+Patch0:         gh-pr-737_importlib.patch
+# PATCH-FIX-UPSTREAM combined bits of:
+# 
https://github.com/django-q2/django-q2/commit/1f31725f43e3b6f0f793ed00f482d994ae50a503
 Added Django 4.2 to the test matrix, fixed deprecation warning
+# 
https://github.com/django-q2/django-q2/commit/1d2a6059db4cd44f14f9f3008098ca04a1a2bc96
 Add support for Django 5
+# 
https://github.com/django-q2/django-q2/commit/0090a6f4111c95aa4d405a10fcc06cc14c907a4d
 Update tested versions, add python 3.13 support and django 5.2 support. Drop 
python 3.8 support
+Patch1:         django5.patch
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  %{python_module wheel}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
+Requires:       python-Django >= 2.2
 Requires:       python-arrow
 Requires:       python-blessed
 Requires:       python-django-picklefield
 Requires:       python-redis
-Requires:       (python-Django >= 2.2 with python-Django < 5)
 Suggests:       python-croniter
 Suggests:       python-django-q-rollbar >= 0.1
 Suggests:       python-django-q-sentry >= 0.1
 BuildArch:      noarch
 # SECTION test requirements
-BuildRequires:  %{python_module Django >= 2.2 with %python-Django < 5}
+BuildRequires:  %{python_module Django >= 2.2}
 BuildRequires:  %{python_module arrow}
 BuildRequires:  %{python_module blessed}
 BuildRequires:  %{python_module croniter}
@@ -63,7 +68,7 @@
 %prep
 %setup -n django-q-%{version}
 # wrong line endings prevent patching
-dos2unix django_q/conf.py
+dos2unix django_q/*.py
 %autopatch -p1
 
 # Fix permissions

++++++ django5.patch ++++++
>From 1d2a6059db4cd44f14f9f3008098ca04a1a2bc96 Mon Sep 17 00:00:00 2001
From: Stan Triepels <[email protected]>
Date: Thu, 12 Oct 2023 22:44:19 +0200
Subject: [PATCH] Add support for Django 5 (#120)

---
 .github/workflows/test.yml |   27 +-
 README.rst                 |    4 +-
 django_q/core_signing.py   |   12 +-
 django_q/utils.py          |    2 +-
 docs/index.rst             |    2 +-
 docs/install.rst           |   10 +-
 poetry.lock                | 1751 +++++++++++++++++++-----------------
 pyproject.toml             |   10 +-
 8 files changed, 962 insertions(+), 856 deletions(-)

Index: django-q-1.3.9/django_q/core_signing.py
===================================================================
--- django-q-1.3.9.orig/django_q/core_signing.py
+++ django-q-1.3.9/django_q/core_signing.py
@@ -2,11 +2,18 @@ import datetime
 import time
 import zlib
 
+import django
 from django.core.signing import BadSignature, JSONSerializer, SignatureExpired
 from django.core.signing import Signer as Sgnr
 from django.core.signing import TimestampSigner as TsS
 from django.core.signing import b64_decode, dumps
-from django.utils import baseconv
+
+if django.VERSION < (5, 0):
+    from django.utils.baseconv import base62
+    b62_decode = base62.decode
+else:
+    from django.core.signing import b62_decode
+
 from django.utils.crypto import constant_time_compare
 from django.utils.encoding import force_bytes, force_str
 
@@ -32,7 +39,7 @@ def loads(
     """
     # TimestampSigner.unsign() returns str but base64 and zlib compression
     # operate on bytes.
-    base64d = force_bytes(TimestampSigner(key, salt=salt).unsign(s, 
max_age=max_age))
+    base64d = force_bytes(TimestampSigner(key=key, salt=salt).unsign(s, 
max_age=max_age))
     decompress = False
     if base64d[:1] == b".":
         # It's compressed; uncompress it first
@@ -69,7 +76,7 @@ class TimestampSigner(Signer, TsS):
         """
         result = super(TimestampSigner, self).unsign(value)
         value, timestamp = result.rsplit(self.sep, 1)
-        timestamp = baseconv.base62.decode(timestamp)
+        timestamp = b62_decode(timestamp)
         if max_age is not None:
             if isinstance(max_age, datetime.timedelta):
                 max_age = max_age.total_seconds()
Index: django-q-1.3.9/django_q/models.py
===================================================================
--- django-q-1.3.9.orig/django_q/models.py
+++ django-q-1.3.9/django_q/models.py
@@ -213,7 +213,7 @@ class Schedule(models.Model):
                 url = reverse("admin:django_q_success_change", args=(task.id,))
             else:
                 url = reverse("admin:django_q_failure_change", args=(task.id,))
-            return format_html(f'<a href="{url}">[{task.name}]</a>')
+            return format_html('<a href="{}">[{}]</a>', url, task.name)
         return None
 
     def __str__(self):

Reply via email to