<pre style='margin:0'>
Aaron Madlon-Kay (amake) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/6e067bb39f33b0d236178ad9694741acd49ba887">https://github.com/macports/macports-ports/commit/6e067bb39f33b0d236178ad9694741acd49ba887</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 6e067bb39f3 py-fido2, yubikey-manager(4): Backport upstream fixes for py-scard API change
</span>6e067bb39f3 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 6e067bb39f33b0d236178ad9694741acd49ba887
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Thu Apr 17 00:00:57 2025 +0200
<span style='display:block; white-space:pre;color:#404040;'> py-fido2, yubikey-manager(4): Backport upstream fixes for py-scard API change
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> This fixes Yubico Authenticator.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> See
</span><span style='display:block; white-space:pre;color:#404040;'> https://github.com/Yubico/python-fido2/commit/e2eb7d4a52a762795c1a8aa9804f184b11b5e64d
</span><span style='display:block; white-space:pre;color:#404040;'> and
</span><span style='display:block; white-space:pre;color:#404040;'> https://github.com/Yubico/yubikey-manager/commit/b951fcd0c6e916a5ccf751307b8dcdf71149b38a
</span>---
python/py-fido2/Portfile | 3 ++
.../e2eb7d4a52a762795c1a8aa9804f184b11b5e64d.patch | 41 ++++++++++++++++++
security/yubikey-manager/Portfile | 4 +-
.../b951fcd0c6e916a5ccf751307b8dcdf71149b38a.patch | 45 ++++++++++++++++++++
security/yubikey-manager4/Portfile | 4 +-
...id-using-PCSCContext-if-it-is-unavailable.patch | 49 ++++++++++++++++++++++
6 files changed, 144 insertions(+), 2 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-fido2/Portfile b/python/py-fido2/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 97e7fe657a3..e7aca472e50 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-fido2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-fido2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,6 +5,7 @@ PortGroup python 1.0
</span>
name py-fido2
version 1.2.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> categories python security crypto
license BSD
platforms {darwin any}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,6 +24,8 @@ checksums rmd160 2cf72565783670b9a53e246311527272f47d0b64 \
</span> sha256 e39f95920122d64283fda5e5581d95a206e704fa42846bfa4662f86aa0d3333b \
size 266369
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles e2eb7d4a52a762795c1a8aa9804f184b11b5e64d.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> python.versions 39 310 311 312
python.pep517_backend poetry
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-fido2/files/e2eb7d4a52a762795c1a8aa9804f184b11b5e64d.patch b/python/py-fido2/files/e2eb7d4a52a762795c1a8aa9804f184b11b5e64d.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..bb0279c0f7d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-fido2/files/e2eb7d4a52a762795c1a8aa9804f184b11b5e64d.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,41 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From e2eb7d4a52a762795c1a8aa9804f184b11b5e64d Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Dain Nilsson <dain@yubico.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 14 Apr 2025 13:20:17 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Support pyscard >=2.2.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Upstream-Status: Backport [https://github.com/Yubico/python-fido2/commit/e2eb7d4a52a762795c1a8aa9804f184b11b5e64d]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fido2/pcsc.py | 13 +++++++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 9 insertions(+), 4 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/fido2/pcsc.py b/fido2/pcsc.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 894c56b..4ce1f64 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./fido2/pcsc.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./fido2/pcsc.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,7 +34,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from smartcard import System
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from smartcard.CardConnection import CardConnection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from smartcard.pcsc.PCSCExceptions import ListReadersException
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-from smartcard.pcsc.PCSCContext import PCSCContext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from threading import Event
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from typing import Callable, Iterator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -243,9 +242,15 @@ def list_devices(cls, name: str = "") -> Iterator[CtapPcscDevice]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def _list_readers():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return System.readers()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- except ListReadersException:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ except ListReadersException as e:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If the PCSC system has restarted the context might be stale, try
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # forcing a new context (This happens on Windows if the last reader is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # removed):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- PCSCContext.instance = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return System.readers()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ from smartcard.pcsc.PCSCContext import PCSCContext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PCSCContext.instance = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return System.readers()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ except ImportError:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As of pyscard 2.2.2 the PCSCContext singleton has been removed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ raise e
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/yubikey-manager/Portfile b/security/yubikey-manager/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a32645f78b1..9a6d576c349 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/security/yubikey-manager/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/yubikey-manager/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup python 1.0
</span>
name yubikey-manager
version 5.6.1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> categories-prepend security
platforms {darwin any}
supported_archs noarch
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -25,6 +25,8 @@ checksums rmd160 f2bc89e54bb36f0a121b806d5b54e8bd5cd615d8 \
</span> sha256 730da1358504de6616f1868bf48ddb788ada4b39137fb3ada435efbf39070160 \
size 220053
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles b951fcd0c6e916a5ccf751307b8dcdf71149b38a.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> python.default_version 312
python.pep517 yes
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/yubikey-manager/files/b951fcd0c6e916a5ccf751307b8dcdf71149b38a.patch b/security/yubikey-manager/files/b951fcd0c6e916a5ccf751307b8dcdf71149b38a.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..15c556f551b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/yubikey-manager/files/b951fcd0c6e916a5ccf751307b8dcdf71149b38a.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From b951fcd0c6e916a5ccf751307b8dcdf71149b38a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Dain Nilsson <dain@yubico.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 14 Apr 2025 10:41:46 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Lock pyscard to <2.2.2 until PCSCContext removal is handled
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Upstream-Stauts: Backport [https://github.com/Yubico/yubikey-manager/commit/b951fcd0c6e916a5ccf751307b8dcdf71149b38a]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ykman/pcsc/__init__.py | 13 +++++++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 21 insertions(+), 16 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ykman/pcsc/__init__.py b/ykman/pcsc/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e5bbf962f..617f2edee 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./ykman/pcsc/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./ykman/pcsc/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,7 +34,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from smartcard import System
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from smartcard.Exceptions import CardConnectionException, NoCardException
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from smartcard.pcsc.PCSCExceptions import ListReadersException
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-from smartcard.pcsc.PCSCContext import PCSCContext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from smartcard.ExclusiveConnectCardConnection import ExclusiveConnectCardConnection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from fido2.pcsc import CtapPcscDevice
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -198,12 +197,18 @@ def kill_yubikey_agent():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def list_readers():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return System.readers()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- except ListReadersException:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ except ListReadersException as e:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If the PCSC system has restarted the context might be stale, try
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # forcing a new context (This happens on Windows if the last reader is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # removed):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- PCSCContext.instance = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return System.readers()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ from smartcard.pcsc.PCSCContext import PCSCContext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PCSCContext.instance = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return System.readers()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ except ImportError:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As of pyscard 2.2.2 the PCSCContext singleton has been removed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ raise e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def list_devices(name_filter=None):
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/yubikey-manager4/Portfile b/security/yubikey-manager4/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 314fd1f2099..6f80642dc45 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/security/yubikey-manager4/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/yubikey-manager4/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup python 1.0
</span>
name yubikey-manager4
version 4.0.9
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 2
</span> categories-prepend security
platforms {darwin any}
supported_archs noarch
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -25,6 +25,8 @@ conflicts yubikey-manager
</span>
python.rootname yubikey-manager
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles 0001-Avoid-using-PCSCContext-if-it-is-unavailable.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # This must be bumped in step with the yubico-authenticator port's Python
# version. The full, built app must be tested: Python 3.8 previously failed at
# runtime.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/yubikey-manager4/files/0001-Avoid-using-PCSCContext-if-it-is-unavailable.patch b/security/yubikey-manager4/files/0001-Avoid-using-PCSCContext-if-it-is-unavailable.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..610f05e5bae
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/yubikey-manager4/files/0001-Avoid-using-PCSCContext-if-it-is-unavailable.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,49 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 946093be61e668dd371978a1715519a0db2137ee Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Dain Nilsson <dain@yubico.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 14 Apr 2025 10:41:46 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Avoid using PCSCContext if it is unavailable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(cherry picked from commit b951fcd0c6e916a5ccf751307b8dcdf71149b38a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Upstream-Staus: Backport [https://github.com/Yubico/yubikey-manager/commit/b951fcd0c6e916a5ccf751307b8dcdf71149b38a]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ykman/pcsc/__init__.py | 13 +++++++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 9 insertions(+), 4 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ykman/pcsc/__init__.py b/ykman/pcsc/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 39aaf3aa..bb11a66c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./ykman/pcsc/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./ykman/pcsc/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33,7 +33,6 @@ from ..base import YUBIKEY, YkmanDevice
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from smartcard import System
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from smartcard.Exceptions import CardConnectionException
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from smartcard.pcsc.PCSCExceptions import ListReadersException
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-from smartcard.pcsc.PCSCContext import PCSCContext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from fido2.pcsc import CtapPcscDevice
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from time import sleep
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -150,12 +149,18 @@ def kill_scdaemon():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def list_readers():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return System.readers()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- except ListReadersException:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ except ListReadersException as e:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If the PCSC system has restarted the context might be stale, try
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # forcing a new context (This happens on Windows if the last reader is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # removed):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- PCSCContext.instance = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return System.readers()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ from smartcard.pcsc.PCSCContext import PCSCContext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PCSCContext.instance = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return System.readers()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ except ImportError:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As of pyscard 2.2.2 the PCSCContext singleton has been removed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ raise e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def list_devices(name_filter=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.49.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>