Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-authheaders for 
openSUSE:Factory checked in at 2024-01-08 23:46:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-authheaders (Old)
 and      /work/SRC/openSUSE:Factory/.python-authheaders.new.21961 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-authheaders"

Mon Jan  8 23:46:29 2024 rev:8 rq:1137568 version:0.15.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-authheaders/python-authheaders.changes    
2023-11-02 20:23:32.836421986 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-authheaders.new.21961/python-authheaders.changes
 2024-01-08 23:46:33.925154745 +0100
@@ -1,0 +2,6 @@
+Mon Jan  8 08:47:41 UTC 2024 - Andreas Schneider <a...@cryptomilk.org>
+
+- Fix importing resources
+  * Added authheaders-importlib-resources.patch
+
+-------------------------------------------------------------------

New:
----
  authheaders-importlib-resources.patch

BETA DEBUG BEGIN:
  New:- Fix importing resources
  * Added authheaders-importlib-resources.patch
BETA DEBUG END:

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

Other differences:
------------------
++++++ python-authheaders.spec ++++++
--- /var/tmp/diff_new_pack.uh1WfL/_old  2024-01-08 23:46:34.525176561 +0100
+++ /var/tmp/diff_new_pack.uh1WfL/_new  2024-01-08 23:46:34.525176561 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-authheaders
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,18 +24,21 @@
 License:        MIT
 URL:            https://github.com/ValiMail/authentication-headers
 Source:         
https://files.pythonhosted.org/packages/source/a/authheaders/authheaders-%{version}.tar.gz
+Patch0:         
https://github.com/ValiMail/authentication-headers/pull/28.patch#/authheaders-importlib-resources.patch
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 Requires:       python-authres >= 1.0.1
 Requires:       python-dkimpy >= 0.7.1
 Requires:       python-dnspython
+Requires:       python-importlib_resources
 Requires:       python-publicsuffix2
 BuildArch:      noarch
 # SECTION test requirements
 BuildRequires:  %{python_module authres >= 1.2.0}
 BuildRequires:  %{python_module dkimpy >= 0.7.1}
 BuildRequires:  %{python_module dnspython}
+BuildRequires:  %{python_module importlib_resources}
 BuildRequires:  %{python_module publicsuffix2}
 BuildRequires:  %{python_module pytest}
 # /SECTION
@@ -45,7 +48,7 @@
 A library wrapping email authentication header verification and generation.
 
 %prep
-%setup -q -n authheaders-%{version}
+%autosetup -p1 -n authheaders-%{version}
 
 %build
 export LANG=en_US.UTF-8

++++++ authheaders-importlib-resources.patch ++++++
>From 6affef51c7d2efce4489c164aaed8e57437117c2 Mon Sep 17 00:00:00 2001
From: Andreas Schneider <a...@cryptomilk.org>
Date: Mon, 8 Jan 2024 09:44:07 +0100
Subject: [PATCH] Migrate to importlib_resources

I'm getting:
pkg_resources.DistributionNotFound: The 'flufl.lock>=5.1' distribution was not 
found and is required by mailman

The reason is that flufl.lock switched to PDM and it looks like
pkg_resources can't deal with it. Migrating to importlib_resources
resolves the problem.

This is following:
https://importlib-resources.readthedocs.io/en/latest/migration.html

Signed-off-by: Andreas Schneider <a...@cryptomilk.org>
---
 authheaders/__init__.py     | 25 +++++++++++++------------
 authheaders/dmarc_lookup.py | 36 ++++++++++++------------------------
 2 files changed, 25 insertions(+), 36 deletions(-)

diff --git a/authheaders/__init__.py b/authheaders/__init__.py
index d37eca7..0d7be3f 100644
--- a/authheaders/__init__.py
+++ b/authheaders/__init__.py
@@ -18,6 +18,7 @@
 # Contact: Gene Shuman <g...@valimail.com>
 #
 
+import importlib_resources
 import re
 import sys
 import copy
@@ -28,7 +29,6 @@
 from authres.dmarc import DMARCAuthenticationResult
 from dkim import ARC, DKIM, arc_verify, dkim_verify, DKIMException, 
rfc822_parse
 from dns.exception import DNSException
-from pkg_resources import resource_filename  # Part of setuptools
 
 # Please accept my appologies for doing this
 try:
@@ -57,17 +57,18 @@ def check_psddmarc_list(psdname, dnsfunc=dns_query):
     """Check psddmarc.org list of PSD DMARC participants"""
     try:
         # If the PSD registry is locally available, use it.
-        psdfile_name = resource_filename('authheaders', 'psddmarc.csv')
-        psd_file = open(psdfile_name)
-        psds = []
-        for line in psd_file.readlines():
-            sp = line.split(',')
-            if sp[1] == 'current':
-                psds.append(sp[0][1:])
-        if psdname in psds:
-            return True
-        else:
-            return False
+        ref = importlib_resources.files('authheaders') / 'psddmarc.csv'
+        with importlib_resources.as_file(ref) as psdfile_name:
+            with open(psdfile_name) as psd_file:
+                psds = []
+                for line in psd_file.readlines():
+                    sp = line.split(',')
+                    if sp[1] == 'current':
+                        psds.append(sp[0][1:])
+                if psdname in psds:
+                    return True
+                else:
+                    return False
     except:
         # If not, use the DNS query list.
         psd_list_host = '.psddmarc.org'
diff --git a/authheaders/dmarc_lookup.py b/authheaders/dmarc_lookup.py
index 6e1ffe3..7a00fb0 100644
--- a/authheaders/dmarc_lookup.py
+++ b/authheaders/dmarc_lookup.py
@@ -19,7 +19,7 @@
 #
 ############################################################################
 from __future__ import absolute_import, unicode_literals, print_function
-from pkg_resources import resource_filename  # Part of setuptools
+import importlib_resources
 try:
     # typing is needed by mypy, but is unused otherwise
     from typing import Dict, Text  # noqa: F401
@@ -166,30 +166,18 @@ def receiver_record_walk(host, dnsfunc=dns_query):
             result[newHost] = retval
     return result
 
-def get_org_domain(domain):
-    fn = get_suffix_list_file_name()
-    with open(fn) as suffixList:
+
+def get_org_domain_from_suffix_list(location, domain):
+    with open(location) as suffixList:
         psl = PublicSuffixList(suffixList)
         return psl.get_public_suffix(domain)
 
 
-def get_suffix_list_file_name():
-    # type: () -> Text
-    '''Get the file name for the public-suffix list data file
-
-    :returns: The filename for the datafile in this module.
-    :rtype: ``str``'''
-    # TODO: automatically update the suffix list data file
-    # <https://publicsuffix.org/list/effective_tld_names.dat>
-
-    if sys.version_info < (3, 0):
-        try:
-            from authheaders.findpsl import location
-        except ImportError:
-            location  = resource_filename('authheaders', 
'public_suffix_list.txt')
-    else:
-        try:
-            from authheaders.findpsl import location
-        except ModuleNotFoundError:
-            location  = resource_filename('authheaders', 
'public_suffix_list.txt')
-    return location
+def get_org_domain(domain):
+    try:
+        from authheaders.findpsl import location
+        return get_org_domain_from_suffix_list(location, domain)
+    except ModuleNotFoundError:
+        ref = importlib_resources.files('authheaders') / 
'public_suffix_list.txt'
+        with importlib_resources.as_file(ref) as location:
+            return get_org_domain_from_suffix_list(location, domain)

Reply via email to