Opened 4 weeks ago
Closed 3 weeks ago
#71101 closed defect (fixed)
py*-dnspython 2.7.0 needs py*-sniffio 1.3.1
Reported by: | marka63 | Owned by: | jandemter |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | Schamschula (Marius Schamschula) | |
Port: | py310-sniffio |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
dnspython 2.7.0 fails because it can't find thread_local
in sniffio which is new in 1.3.0 and has a fix in 1.3.1. See https://sniffio.readthedocs.io/en/latest/history.html
Missing minimum version dependancy for dnspython
Upgrade of sniffio to support thread_local
% python bin/tests/system/cookie/ans9/ans.py Traceback (most recent call last): File "/Users/marka/git/bind9/bin/tests/system/cookie/ans9/ans.py", line 26, in <module> import dns.query File "/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/dns/query.py", line 39, in <module> import dns.quic File "/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/dns/quic/__init__.py", line 39, in <module> import trio File "/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/trio/__init__.py", line 22, in <module> from ._core import TASK_STATUS_IGNORED as TASK_STATUS_IGNORED # isort: split File "/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/trio/_core/__init__.py", line 9, in <module> from ._entry_queue import TrioToken File "/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/trio/_core/_entry_queue.py", line 10, in <module> from .._util import NoPublicConstructor, final File "/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/trio/_util.py", line 13, in <module> from sniffio import thread_local as sniffio_loop ImportError: cannot import name 'thread_local' from 'sniffio' (/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/sniffio/__init__.py) % port installed | grep py310 | grep active py310-aioquic @1.2.0_1 (active) py310-anytree @2.12.1_0 (active) py310-asn1 @0.6.0_0 (active) py310-asn1-modules @0.4.0_0 (active) py310-async_generator @1.10_0 (active) py310-attrs @23.2.0_0 (active) py310-beaker @1.12.1_0 (active) py310-build @1.2.2.post1_0 (active) py310-certifi @2024.08.30_0 (active) py310-cffi @1.17.1_0 (active) py310-charset-normalizer @3.3.2_0 (active) py310-cryptography @42.0.5_0 (active) py310-cython @3.0.11_0 (active) py310-dnspython @2.7.0_1 (active) py310-editables @0.5_0 (active) py310-exceptiongroup @1.2.0_0 (active) py310-hatch-fancy-pypi-readme @24.1.0_0 (active) py310-hatch-vcs @0.4.0_0 (active) py310-hatchling @1.25.0_0 (active) py310-hypothesis @6.103.2_0 (active) py310-idna @3.8_0 (active) py310-iniconfig @2.0.0_0 (active) py310-installer @0.7.0_0 (active) py310-jinja2 @3.1.4_0 (active) py310-libxml2 @2.13.4_0 (active) py310-lxml @5.2.2_0 (active) py310-mako @1.3.5_0 (active) py310-markdown @3.6_0 (active) py310-markupsafe @2.1.5_0 (active) py310-openssl @23.2.0_0 (active) py310-outcome @1.1.0_0 (active) py310-packaging @24.1_0 (active) py310-pathspec @0.12.1_0 (active) py310-pluggy @1.5.0_0 (active) py310-ply @3.11_0 (active) py310-py @1.11.0_0 (active) py310-pycparser @2.22_0 (active) py310-pygments @2.18.0_0 (active) py310-pylsqpack @0.3.18_0 (active) py310-pyproject_hooks @1.2.0_0 (active) py310-pytest @7.4.3_0 (active) py310-requests @2.32.3_0 (active) py310-requests-toolbelt @1.0.0_0 (active) py310-semantic_version @2.10.0_0 (active) py310-service_identity @24.1.0_0 (active) py310-setuptools @75.1.0_0 (active) py310-setuptools-rust @1.9.0_0 (active) py310-setuptools_scm @8.1.0_0 (active) py310-six @1.16.0_0 (active) py310-sniffio @1.2.0_0 (active) py310-sortedcontainers @2.4.0_0 (active) py310-toml @0.10.2_0 (active) py310-tomli @2.0.1_0 (active) py310-trio @0.23.2_0 (active) py310-trove-classifiers @2024.10.13_0 (active) py310-typing_extensions @4.12.2_0 (active) py310-urllib3 @2.2.3_0 (active) py310-wheel @0.44.0_0 (active) py310-yaml @6.0.1_0 (active) %
Change History (13)
comment:1 Changed 3 weeks ago by marka63
comment:2 Changed 3 weeks ago by marka63
Port: | py310-sniffio added; py310-sniffo removed |
---|
comment:3 Changed 3 weeks ago by ryandesign (Ryan Carsten Schmidt)
Cc: | Schamschula added |
---|---|
Description: | modified (diff) |
Owner: | set to jandemter |
Status: | new → assigned |
comment:4 Changed 3 weeks ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|
comment:5 Changed 3 weeks ago by Schamschula (Marius Schamschula)
This dependency is not declared upstream. See: https://github.com/rthalley/dnspython/blob/main/pyproject.toml
I will open an issue.
comment:6 Changed 3 weeks ago by Schamschula (Marius Schamschula)
Apparently sniffio
was removed in https://github.com/rthalley/dnspython/commit/063bd7fa084301bd3c232bfdbd375780963b356f
comment:7 follow-ups: 8 9 Changed 3 weeks ago by Schamschula (Marius Schamschula)
However, I can't find bin/tests/system/cookie/ans9/ans.py
on my system, and, hence, cannot reproduce the issue locally before reporting it.
comment:8 Changed 3 weeks ago by marka63
Replying to Schamschula:
However, I can't find
bin/tests/system/cookie/ans9/ans.py
on my system, and, hence, cannot reproduce the issue locally before reporting it.
It was attempting this list of imports:
from __future__ import print_function import os import sys import signal import socket import select from datetime import datetime, timedelta import time import functools import dns import dns.edns import dns.flags import dns.message import dns.query import dns.tsig import dns.tsigkeyring import dns.version from dns.edns import * from dns.name import * from dns.rcode import * from dns.rdataclass import * from dns.rdatatype import * from dns.tsig import *
comment:9 Changed 3 weeks ago by marka63
Replying to Schamschula:
However, I can't find
bin/tests/system/cookie/ans9/ans.py
on my system, and, hence, cannot reproduce the issue locally before reporting it.
It's part of bind9's test system.
comment:10 Changed 3 weeks ago by Schamschula (Marius Schamschula)
I have bind9
installed. However, this test is only available in the bind9
source code.
I get
python /opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_macports_macports-ports_net_bind9/bind9/work/bind-9.20.2/bin/tests/system/cookie/ans9/ans.py Traceback (most recent call last): File "/opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_macports_macports-ports_net_bind9/bind9/work/bind-9.20.2/bin/tests/system/cookie/ans9/ans.py", line 159, in <module> query4_udp1.bind((ip4_addr1, port)) OSError: [Errno 49] Can't assign requested address
So perhaps, py-sniffio
was picked up silently.
comment:11 follow-up: 12 Changed 3 weeks ago by Schamschula (Marius Schamschula)
This problem is a simple one: my local repository was ahead of MacPorts master:
port list py-sniffio py-sniffio @1.3.1 python/py-sniffio py-sniffio @1.2.0 python/py-sniffio
I've pushed it. See: [9d56290f80754da55f836ca6c5c587cc630d4693/macports-ports]
comment:12 Changed 3 weeks ago by marka63
Thanks.
On further reflection the missing version dependancy is with py*-trio rather than py*-dnspython. Somewhere between py310-trio 0.22.2 and py310-trio 0.23.2, py-sniffio 1.3.1 became required.
comment:13 Changed 3 weeks ago by Schamschula (Marius Schamschula)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
The full import list being attempted: