Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-HyperKitty for 
openSUSE:Factory checked in at 2022-10-12 18:23:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-HyperKitty (Old)
 and      /work/SRC/openSUSE:Factory/.python-HyperKitty.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-HyperKitty"

Wed Oct 12 18:23:58 2022 rev:18 rq:1009242 version:1.3.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-HyperKitty/python-HyperKitty.changes      
2022-07-04 11:32:40.752004213 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-HyperKitty.new.2275/python-HyperKitty.changes
    2022-10-12 18:25:11.637739790 +0200
@@ -1,0 +2,13 @@
+Thu Oct  6 12:07:43 UTC 2022 - Daniel Garcia <daniel.gar...@suse.com>
+
+- Add fix-django41.patch to fix issues with django4.1
+- Add fix-elasticsearch8.patch to fix issues with elasticsearch 8.0.0
+
+-------------------------------------------------------------------
+Mon Jul  4 11:02:04 UTC 2022 - Ben Greiner <c...@bnavigator.de>
+
+- Rename the built package to python prefixless HyperKitty
+  * Doesn't imply any false impression of multiflavor
+- Go back to python39 -- highest supported Python by mailman
+
+-------------------------------------------------------------------

New:
----
  fix-django41.patch
  fix-elasticsearch8.patch

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

Other differences:
------------------
++++++ python-HyperKitty.spec ++++++
--- /var/tmp/diff_new_pack.lBibMm/_old  2022-10-12 18:25:12.521741999 +0200
+++ /var/tmp/diff_new_pack.lBibMm/_new  2022-10-12 18:25:12.525742009 +0200
@@ -31,9 +31,20 @@
 
 %global hyperkitty_services hyperkitty-qcluster.service 
hyperkitty-runjob-daily.service hyperkitty-runjob-daily.timer 
hyperkitty-runjob-hourly.service hyperkitty-runjob-hourly.timer 
hyperkitty-runjob-minutely.service hyperkitty-runjob-minutely.timer 
hyperkitty-runjob-monthly.service hyperkitty-runjob-monthly.timer 
hyperkitty-runjob-quarter-hourly.service hyperkitty-runjob-quarter-hourly.timer 
hyperkitty-runjob-weekly.service hyperkitty-runjob-weekly.timer 
hyperkitty-runjob-yearly.service hyperkitty-runjob-yearly.timer
 
+%if 0%{?suse_version} >= 1550
+# Newest python supported by mailman is Python 3.9 -- 
https://gitlab.com/mailman/mailman/-/issues/936
+%define pythons python39
+%define mypython python39
+%define __mypython %{__python39}
+%define mypython_sitelib %{python39_sitelib}
+%else
 %{?!python_module:%define python_module() python3-%{**}}
-# mailman is built only for primary python3 flavor
 %define pythons python3
+%define mypython python3
+%define __mypython %{__python3}
+%define mypython_sitelib %{python3_sitelib}
+%endif
+
 Name:           python-HyperKitty
 Version:        1.3.5
 Release:        0
@@ -67,6 +78,10 @@
 Patch4:         hyperkitty-fix-qcluster-timeout.patch
 # https://gitlab.com/mailman/hyperkitty/-/merge_requests/381 + 
https://gitlab.com/mailman/hyperkitty/-/merge_requests/449
 Patch5:         hyperkitty-fix-py310-tests.patch
+# PATCH-FIX-UPSTREAM fix-django41.patch gl#mailman/hyperkitty#467
+Patch6:         fix-django41.patch
+# PATCH-FIX-UPSTREAM fix-elasticsearch8.patch gl#mailman/hyperkitty#468
+Patch7:         fix-elasticsearch8.patch
 #
 BuildRequires:  %{python_module django-debug-toolbar >= 2.2}
 BuildRequires:  %{python_module isort}
@@ -79,25 +94,11 @@
 BuildRequires:  python-rpm-macros
 BuildRequires:  rsync
 BuildRequires:  sudo
-Requires:       python-Django >= 1.11
-Requires:       python-django-compressor >= 1.3
-Requires:       python-django-debug-toolbar >= 2.2
-Requires:       python-django-extensions >= 1.3.7
-Requires:       python-django-gravatar2 >= 1.0.6
-Requires:       python-django-haystack >= 2.8.0
-Requires:       python-django-mailman3 >= 1.3.7
-Requires:       python-django-q >= 1.3.9
-Requires:       python-djangorestframework >= 3.0.0
-Requires:       python-flufl.lock
-Requires:       python-libsass
-Requires:       python-mailmanclient >= 3.3.2
-Requires:       python-mistune
-Requires:       python-networkx >= 1.9.1
-Requires:       python-python-dateutil >= 2.0
-Requires:       python-pytz >= 2012
-Requires:       python-robot-detection >= 0.3
-Requires:       python-xapian-haystack >= 2.1.0
 BuildArch:      noarch
+%if 0%{?suse_version} >= 1550
+# use the real python3 primary for rpm pythondistdeps.py
+BuildRequires:  python3-packaging
+%endif
 # SECTION test requirements
 BuildRequires:  %{python_module Django >= 1.11}
 BuildRequires:  %{python_module Whoosh >= 2.5.7}
@@ -121,21 +122,45 @@
 BuildRequires:  %{python_module pytz >= 2012}
 BuildRequires:  %{python_module robot-detection >= 0.3}
 # /SECTION
-%if 0%{python3_version_nodots} == 38
-# help in replacing any previously installed multiflavor package back to the 
primary python3 package
-Provides:       python38-Hyperkitty = %{version}-%{release}
-Obsoletes:      python38-Hyperkitty < %{version}-%{release}
-%endif
-%python_subpackages
 
 %description
 A web interface to access GNU Mailman v3 archives.
 
+%package -n %{hyperkitty_pkgname}
+Summary:        A web interface to access GNU Mailman v3 archives
+Requires:       %{mypython}-Django >= 1.11
+Requires:       %{mypython}-django-compressor >= 1.3
+Requires:       %{mypython}-django-debug-toolbar >= 2.2
+Requires:       %{mypython}-django-extensions >= 1.3.7
+Requires:       %{mypython}-django-gravatar2 >= 1.0.6
+Requires:       %{mypython}-django-haystack >= 2.8.0
+Requires:       %{mypython}-django-mailman3 >= 1.3.7
+Requires:       %{mypython}-django-q >= 1.3.9
+Requires:       %{mypython}-djangorestframework >= 3.0.0
+Requires:       %{mypython}-flufl.lock
+Requires:       %{mypython}-libsass
+Requires:       %{mypython}-mailmanclient >= 3.3.2
+Requires:       %{mypython}-mistune
+Requires:       %{mypython}-networkx >= 1.9.1
+Requires:       %{mypython}-python-dateutil >= 2.0
+Requires:       %{mypython}-pytz >= 2012
+Requires:       %{mypython}-robot-detection >= 0.3
+Requires:       %{mypython}-xapian-haystack >= 2.1.0
+%if "%{expand:%%%{mypython}_provides}" == "python3"
+Provides:       python3-%{hyperkitty_pkgname} = %{version}-%{release}
+%endif
+Obsoletes:      python3-%{hyperkitty_pkgname} < %{version}-%{release}
+Provides:       %{mypython}-%{hyperkitty_pkgname} = %{version}-%{release}
+Obsoletes:      %{mypython}-%{hyperkitty_pkgname} < %{version}-%{release}
+
+%description -n %{hyperkitty_pkgname}
+A web interface to access GNU Mailman v3 archives.
+
 %package -n %{hyperkitty_pkgname}-web
 Summary:        The webroot for GNU Mailman
+Requires:       %{hyperkitty_pkgname}
 Requires:       acl
 Requires:       openssl
-Requires:       python3-HyperKitty
 Requires:       sudo
 
 %description -n %{hyperkitty_pkgname}-web
@@ -146,7 +171,11 @@
 %package -n %{hyperkitty_pkgname}-web-uwsgi
 Summary:        HyperKitty - uwsgi configuration
 Requires:       %{hyperkitty_pkgname}-web
-Requires:       uwsgi
+%if 0%{suse_version} >= 1550
+Requires:       %{mypython}-uwsgi-python3
+%else
+Requires:       uwsgi-python3
+%endif
 
 %description -n %{hyperkitty_pkgname}-web-uwsgi
 A web user interface for GNU Mailman.
@@ -168,10 +197,14 @@
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p1
+%patch7 -p1
 
 %build
-sed -i 's|^#!/usr/bin/env.*|#!%{_bindir}/python3|' \
+sed -i 's|^#!/usr/bin/env.*|#!%{__mypython}|' \
     example_project/manage.py
+sed -i 's|/usr/bin/python3|%{__mypython}|' %{SOURCE10} %{SOURCE20} %{SOURCE21}
+sed -i 's|python3|%{mypython}|' %{SOURCE12}
 
 %python_build
 
@@ -296,11 +329,11 @@
 %postun -n %{hyperkitty_pkgname}-web
 %service_del_postun %{hyperkitty_services}
 
-%files %{python_files}
+%files -n %{hyperkitty_pkgname}
 %doc AUTHORS.txt README.rst example_project doc/*.rst
 %license COPYING.txt
-%{python_sitelib}/hyperkitty
-%{python_sitelib}/HyperKitty*.egg-info
+%{mypython_sitelib}/hyperkitty
+%{mypython_sitelib}/HyperKitty-%{version}*-info
 
 %files -n %{hyperkitty_pkgname}-web
 %doc README.SUSE.md

++++++ fix-django41.patch ++++++
>From 94194e0f5eeacf1be2a88a28bfed62dbc6c5d5a2 Mon Sep 17 00:00:00 2001
From: Daniel Garcia Moreno <daniel.gar...@suse.com>
Date: Thu, 6 Oct 2022 12:53:56 +0200
Subject: [PATCH] Fix django4.1 compatibility issues with related fields

In Django4.1 a ValueError exception is raised when trying to access to
foreign keys for unsaved model instances:

https://docs.djangoproject.com/en/4.1/releases/4.1/#reverse-foreign-key-changes-for-unsaved-model-instances

This patch ensures that everything is saved before trying to use related
models and handles the exception correctly in the Thread model pre_save.
---
 hyperkitty/models/thread.py           | 8 ++++++++
 hyperkitty/tests/models/test_email.py | 6 ++++++
 2 files changed, 14 insertions(+)

diff --git a/hyperkitty/models/thread.py b/hyperkitty/models/thread.py
index b550cdb8..e49954a7 100644
--- a/hyperkitty/models/thread.py
+++ b/hyperkitty/models/thread.py
@@ -148,10 +148,18 @@ class Thread(models.Model):
         from .email import Email  # circular import
         if self.starting_email is not None:
             return
+
         try:
             self.starting_email = self.emails.get(parent_id__isnull=True)
         except Email.DoesNotExist:
             self.starting_email = self.emails.order_by("date").first()
+        except ValueError:
+            # If the Thread is not created yet, the self.emails will raise a
+            # ValueError exception. This happens at creation time because this
+            # method is called by on_pre_save
+            #
+            # 
https://docs.djangoproject.com/en/4.1/releases/4.1/#reverse-foreign-key-changes-for-unsaved-model-instances
+            return
 
     def on_pre_save(self):
         self.find_starting_email()
diff --git a/hyperkitty/tests/models/test_email.py 
b/hyperkitty/tests/models/test_email.py
index 7bcac390..f194e2b1 100644
--- a/hyperkitty/tests/models/test_email.py
+++ b/hyperkitty/tests/models/test_email.py
@@ -195,6 +195,9 @@ class EmailTestCase(TestCase):
                       subject="This is a folded\n subject",
                       in_reply_to="<msg1.example.com>\n <msg2.example.com>",
                       content="Dummy message")
+        sender.save()
+        mlist.save()
+        email.save()
         msg = email.as_message()
         self.assertEqual(msg["Subject"], "This is a folded subject")
 
@@ -210,6 +213,9 @@ class EmailTestCase(TestCase):
                       mailinglist=mlist,
                       subject="Message subject",
                       content="Dummy message")
+        sender.save()
+        mlist.save()
+        email.save()
         msg = email.as_message()
         self.assertEqual(msg['from'], '"Team: J.Q. Doe" <du...@example.com>')
 
-- 
2.37.3


++++++ fix-elasticsearch8.patch ++++++
>From 0e86f9cc40bf05cb819087f1fb0ee56f43968e1b Mon Sep 17 00:00:00 2001
From: Daniel Garcia Moreno <daniel.gar...@suse.com>
Date: Thu, 6 Oct 2022 14:01:54 +0200
Subject: [PATCH] Make it compatible with elasticsearch 8.0.0

---
 hyperkitty/tests/views/test_search.py | 10 +++++++++-
 tox.ini                               |  2 +-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/hyperkitty/tests/views/test_search.py 
b/hyperkitty/tests/views/test_search.py
index ad0e9632..cad76fe6 100644
--- a/hyperkitty/tests/views/test_search.py
+++ b/hyperkitty/tests/views/test_search.py
@@ -211,10 +211,18 @@ class SearchViewsTestCase(SearchEnabledTestCase):
 
         # For elasticsearch backend
         from elasticsearch import RequestError
+        from elasticsearch import VERSION
+        mayor, _minor, _p = VERSION
+
+        search_error = "dummy parsing failure"
+        if mayor > 7:
+            class ElasticError:
+                status = search_error
+            search_error = ElasticError
 
         class CrashingIterator(list):
             def __len__(self):
-                raise RequestError(400, "dummy parsing failure", {})
+                raise RequestError(400, search_error, {})
             query = Mock()
 
         with self.settings(HAYSTACK_CONNECTIONS={

++++++ python-HyperKitty-rpmlintrc ++++++
--- /var/tmp/diff_new_pack.lBibMm/_old  2022-10-12 18:25:12.653742329 +0200
+++ /var/tmp/diff_new_pack.lBibMm/_new  2022-10-12 18:25:12.661742348 +0200
@@ -3,4 +3,5 @@
 addFilter("non-standard-uid")
 addFilter("spurious-executable-perm .*example_project/wsgi.py")
 addFilter("hidden-file-or-dir .*example_project/logs/.keep")
+addFilter("obsolete-not-provided python3-HyperKitty")
 

Reply via email to