Subject: [bug#63139] [PATCH python 20/20] gnu: python-yubikey-manager: Update to 5.1.0 and enable tests.

From: John Kehayias <[email-masked]>
Date: Fri, 28 Apr 2023 05:52:16 +0000

* gnu/packages/security-token.scm (python-yubikey-manager): Update to 5.1.0.
[source]: Update url.
[build-system]: Switch to pyproject-build-system.
[arguments]: Enable tests.
{phases}: Add a 'fix-piv-commands' phase to avoid an infinite loop in tests.
[propagated-inputs]: Add python-keyring.  Reorder alphabetically.
[native-inputs]: Remove python-mock.  Add python-makefun,
python-poetry-core, and python-pytest.  Reorder alphabetically.
---
 gnu/packages/security-token.scm | 35 ++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index ad772ef292..7db9fc9b61 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -741,33 +741,40 @@ (define-public python-fido2
 (define-public python-yubikey-manager
   (package
     (name "python-yubikey-manager")
-    (version "4.0.7")
+    (version "5.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://developers.yubico.com/yubikey-manager/Releases"
-                    "/yubikey-manager-" version ".tar.gz"))
+                    "/yubikey_manager-" version ".tar.gz"))
               (sha256
                (base32
-                "0kzwal7i4kyywm4f5zh8b823mh0ih2nsh5c0c4dfn4vw3j5dnwlr"))))
-    (build-system python-build-system)
+                "0wxi3rms9d5f7p4zl1na4412dirp1g2gd5wkgi6zs4g5hagzqgnk"))))
+    (build-system pyproject-build-system)
     (arguments
-     '(;; This attempts to access
-       ;; /System/Library/Frameworks/IOKit.framework/IOKit
-       ;; The recommendation is to use tox for testing.
-       #:tests? #false))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               ;; Avoid an infinite loop with Python < 3.11 which causes tests
+               ;; to fail.  See upstream bug report and fix at
+               ;; <https://github.com/Yubico/yubikey-manager/issues/552>.
+               ;; TODO: Remove in next release.
+               (add-after 'unpack 'fix-piv-commands
+                 (lambda* _
+                   (substitute* "yubikit/piv.py"
+                     (("self:02X") "int(self):02X")))))))
     (propagated-inputs
-     (list python-six
-           python-pyscard
-           python-pyusb
-           python-click
+     (list python-click
            python-cryptography
+           python-fido2
+           python-keyring
            python-pyopenssl
-           python-fido2))
+           python-pyscard
+           python-pyusb
+           python-six))
     (inputs
      (list pcsc-lite))
     (native-inputs
-     (list swig python-mock))
+     (list python-makefun python-poetry-core python-pytest swig))
     (home-page "https://developers.yubico.com/yubikey-manager/")
     (synopsis "Command line tool and library for configuring a YubiKey")
     (description
--
2.39.2