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)