[PATCH 0/3] Update yubikey-manager to version 4.0.3.

OpenSubmitted by Dhruvin Gandhi.
Details
One participant
  • Dhruvin Gandhi
Owner
unassigned
Severity
normal
D
D
Dhruvin Gandhi wrote on 8 Jul 2021 13:15
(address . guix-patches@gnu.org)(name . Dhruvin Gandhi)(address . contact@dhruvin.dev)
20210708111526.18658-1-contact@dhruvin.dev
Notes:
I tried using this package with my Yubikey 5. All applications seem to be
working. There are two caveats:
1. gpg-agent must be stopped for some applications to be able to talk to the
smartcard.
2. It tries to use /use/bin/pkill to kill scdaemon when it can't access the
smartcard on Yubikey. pkill is not present in guix system at that
path. Unfortunately, I don't know how to fix it in guix way. Any help is
welcome.

Notes on fido2:
fido2 is quite an experimental package.
I sent a patch fixing nfc.py to upstream.
They suggested that the file should just be ignored/deleted for now, and the
next upstream release won't have it in source.
I removed OS specific code, other than linux. Some of the files caused build
to fail.

Notes on makefun:
Tests of makefun require two packages dependent on each-other (besides
requiring various other packages).
As of now, in guix, makefun is just used for the tests of yubikey-manager.

Notes on yubikey-manager.
It uses poetry to build and install the package.
Poetry requires internet, although offline installation is requests on
the poetry issue tracker.
I'm unfamiliar with the poetry build process but I assume python-build-system
can work just as fine.
I removed windows and macos specific code. Tests would fail otherwise.

Dhruvin Gandhi (3):
gnu: python-fido2: Update to 0.9.1.
gnu: Add python-makefun.
gnu: python-yubikey-manager: Update to 4.0.3.

gnu/packages/python-xyz.scm | 27 +++++++++++++++++++++++++
gnu/packages/security-token.scm | 35 +++++++++++++++++++++++++--------
2 files changed, 54 insertions(+), 8 deletions(-)


base-commit: 49e2e75ced01a821c84eb776cf42a36664eaa834
--
2.32.0
D
D
Dhruvin Gandhi wrote on 8 Jul 2021 13:21
[PATCH 2/3] gnu: Add python-makefun.
(address . 49464@debbugs.gnu.org)(name . Dhruvin Gandhi)(address . contact@dhruvin.dev)
20210708112117.19368-2-contact@dhruvin.dev
* gnu/packages/python-xyz.scm (python-makefun): New variable.
---
gnu/packages/python-xyz.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f16bff460a..bec63743a7 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -12852,6 +12852,33 @@ python-xdo for newer bindings.)")
 (define-public python2-xdo
   (package-with-python2 python-xdo))
 
+(define-public python-makefun
+  (package
+    (name "python-makefun")
+    (version "1.11.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "makefun" version))
+       (sha256
+        (base32
+         "1378qarb4m3yvk2w36m8686nbf4bzk8kh6hnhk54z061w9jysgh3"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Tests require too many packages, with circular dependencies.
+     '(#:tests? #f))
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)))
+    (home-page
+     "https://smarie.github.io/python-makefun/")
+    (synopsis
+     "Small library to dynamically create python functions")
+    (description
+     "makefun helps you create functions dynamically, with the signature of
+your choice.  It was largely inspired by decorator and functools, and created
+mainly to cover some of their limitations.")
+    (license license:bsd-3)))
+
 (define-public python-mako
   (package
     (name "python-mako")
-- 
2.32.0
D
D
Dhruvin Gandhi wrote on 8 Jul 2021 13:21
[PATCH 3/3] gnu: python-yubikey-manager: Update to 4.0.3.
(address . 49464@debbugs.gnu.org)(name . Dhruvin Gandhi)(address . contact@dhruvin.dev)
20210708112117.19368-3-contact@dhruvin.dev
* gnu/packages/security-token.scm (python-yubikey-manager): Update to 4.0.3.
---
gnu/packages/security-token.scm | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

Toggle diff (40 lines)
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 4c844bc46b..d1fa05c1e7 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -659,7 +659,7 @@ implementing a Relying Party.")
 (define-public python-yubikey-manager
   (package
     (name "python-yubikey-manager")
-    (version "2.1.0")
+    (version "4.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -667,7 +667,12 @@ implementing a Relying Party.")
                     "/yubikey-manager-" version ".tar.gz"))
               (sha256
                (base32
-                "11rsmcaj60k3y5m5gdhr2nbbz0w5dm3m04klyxz0fh5hnpcmr7fm"))))
+                "1x36dlsp8mfcgyp50iz64cpg2hpbc9cg2qsf16kw0g7sp3ynzfx7"))
+              (snippet
+               #~(begin
+                   ;; Remove unused platform code.
+                   (delete-file "ykman/hid/macos.py")
+                   (delete-file "ykman/hid/windows.py")))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)
@@ -683,7 +688,9 @@ implementing a Relying Party.")
        ("libusb" ,libusb)))
     (native-inputs
      `(("swig" ,swig)
-       ("python-mock" ,python-mock)))
+       ("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)
+       ("python-makefun" ,python-makefun)))
     (home-page "https://developers.yubico.com/yubikey-manager/")
     (synopsis "Command line tool and library for configuring a YubiKey")
     (description
-- 
2.32.0
D
D
Dhruvin Gandhi wrote on 8 Jul 2021 13:21
[PATCH 1/3] gnu: python-fido2: Update to 0.9.1.
(address . 49464@debbugs.gnu.org)(name . Dhruvin Gandhi)(address . contact@dhruvin.dev)
20210708112117.19368-1-contact@dhruvin.dev
* gnu/packages/security-token.scm (python-fido2): Update to 0.9.1.
---
gnu/packages/security-token.scm | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)

Toggle diff (50 lines)
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index f8c9661df1..4c844bc46b 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -593,7 +593,7 @@ your existing infrastructure.")
 (define-public python-fido2
   (package
     (name "python-fido2")
-    (version "0.5.0")
+    (version "0.9.1")
     (source (origin
               (method url-fetch)
               (uri
@@ -602,10 +602,21 @@ your existing infrastructure.")
                 version "/fido2-" version ".tar.gz"))
               (sha256
                (base32
-                "1pl8d2pr6jzqj4y9qiaddhjgnl92kikjxy0bgzm2jshkzzic8mp3"))
+                "0vpyknka7wa4jl1xhvhli48wk70dih7hm45kdrchf8wf4cjyx046"))
+              (modules '((guix build utils)))
               (snippet
-               ;; Remove bundled dependency.
-               #~(delete-file "fido2/public_suffix_list.dat"))))
+               #~(begin
+                   ;; Remove bundled dependency.
+                   (delete-file "fido2/public_suffix_list.dat")
+                   ;; Upstream: To be deleted in the next release.
+                   (delete-file "fido2/nfc.py")
+                   ;; Remove unused platform code.
+                   (delete-file "fido2/hid/freebsd.py")
+                   (delete-file "fido2/hid/macos.py")
+                   (delete-file "fido2/hid/openbsd.py")
+                   (delete-file "fido2/hid/windows.py")
+                   ;; See https://bugs.python.org/issue16396.
+                   (delete-file "fido2/win_api.py")))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -621,7 +632,8 @@ your existing infrastructure.")
              #t)))))
     (propagated-inputs
      `(("python-cryptography" ,python-cryptography)
-       ("python-six" ,python-six)))
+       ("python-six" ,python-six)
+       ("python-pyscard" ,python-pyscard)))
     (native-inputs
      `(("python-mock" ,python-mock)
        ("python-pyfakefs" ,python-pyfakefs)
-- 
2.32.0
D
D
Dhruvin Gandhi wrote on 8 Jul 2021 14:23
[PATCH v2 0/3] With updated copyright and lint suggestions.
(address . 49464@debbugs.gnu.org)(name . Dhruvin Gandhi)(address . contact@dhruvin.dev)
20210708122320.23196-1-contact@dhruvin.dev
I missed updating copyright information and some lint suggestions in last
patch. I will be more careful about it before submitting future patches.

Dhruvin Gandhi (3):
gnu: python-fido2: Update to 0.9.1.
gnu: Add python-makefun.
gnu: python-yubikey-manager: Update to 4.0.3.

gnu/packages/python-xyz.scm | 28 +++++++++++++++++++++++++
gnu/packages/security-token.scm | 36 +++++++++++++++++++++++++--------
2 files changed, 56 insertions(+), 8 deletions(-)


base-commit: 49e2e75ced01a821c84eb776cf42a36664eaa834
--
2.32.0
D
D
Dhruvin Gandhi wrote on 8 Jul 2021 14:23
[PATCH v2 1/3] gnu: python-fido2: Update to 0.9.1.
(address . 49464@debbugs.gnu.org)(name . Dhruvin Gandhi)(address . contact@dhruvin.dev)
20210708122320.23196-2-contact@dhruvin.dev
* gnu/packages/security-token.scm (python-fido2): Update to 0.9.1.
---
gnu/packages/security-token.scm | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)

Toggle diff (58 lines)
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index f8c9661df1..5ee3cb83f0 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2020 Raphaël Mélotte <raphael.melotte@mind.be>
 ;;; Copyright © 2021 Antero Mejr <antero@kodmin.com>
 ;;; Copyright © 2021 Sergey Trofimov <sarg@sarg.org.ru>
+;;; Copyright © 2021 Dhruvin Gandhi <contact@dhruvin.dev>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -593,7 +594,7 @@ your existing infrastructure.")
 (define-public python-fido2
   (package
     (name "python-fido2")
-    (version "0.5.0")
+    (version "0.9.1")
     (source (origin
               (method url-fetch)
               (uri
@@ -602,10 +603,21 @@ your existing infrastructure.")
                 version "/fido2-" version ".tar.gz"))
               (sha256
                (base32
-                "1pl8d2pr6jzqj4y9qiaddhjgnl92kikjxy0bgzm2jshkzzic8mp3"))
+                "0vpyknka7wa4jl1xhvhli48wk70dih7hm45kdrchf8wf4cjyx046"))
+              (modules '((guix build utils)))
               (snippet
-               ;; Remove bundled dependency.
-               #~(delete-file "fido2/public_suffix_list.dat"))))
+               #~(begin
+                   ;; Remove bundled dependency.
+                   (delete-file "fido2/public_suffix_list.dat")
+                   ;; Upstream: To be deleted in the next release.
+                   (delete-file "fido2/nfc.py")
+                   ;; Remove unused platform code.
+                   (delete-file "fido2/hid/freebsd.py")
+                   (delete-file "fido2/hid/macos.py")
+                   (delete-file "fido2/hid/openbsd.py")
+                   (delete-file "fido2/hid/windows.py")
+                   ;; See https://bugs.python.org/issue16396.
+                   (delete-file "fido2/win_api.py")))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -621,7 +633,8 @@ your existing infrastructure.")
              #t)))))
     (propagated-inputs
      `(("python-cryptography" ,python-cryptography)
-       ("python-six" ,python-six)))
+       ("python-six" ,python-six)
+       ("python-pyscard" ,python-pyscard)))
     (native-inputs
      `(("python-mock" ,python-mock)
        ("python-pyfakefs" ,python-pyfakefs)
-- 
2.32.0
D
D
Dhruvin Gandhi wrote on 8 Jul 2021 14:23
[PATCH v2 2/3] gnu: Add python-makefun.
(address . 49464@debbugs.gnu.org)(name . Dhruvin Gandhi)(address . contact@dhruvin.dev)
20210708122320.23196-3-contact@dhruvin.dev
* gnu/packages/python-xyz.scm (python-makefun): New variable.
---
gnu/packages/python-xyz.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f16bff460a..87f81687ff 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -103,6 +103,7 @@
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Danial Behzadi <dani.behzi@ubuntu.com>
+;;; Copyright © 2021 Dhruvin Gandhi <contact@dhruvin.dev>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -12852,6 +12853,33 @@ python-xdo for newer bindings.)")
 (define-public python2-xdo
   (package-with-python2 python-xdo))
 
+(define-public python-makefun
+  (package
+    (name "python-makefun")
+    (version "1.11.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "makefun" version))
+       (sha256
+        (base32
+         "1378qarb4m3yvk2w36m8686nbf4bzk8kh6hnhk54z061w9jysgh3"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Tests require too many packages, some with circular dependencies.
+     '(#:tests? #f))
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)))
+    (home-page
+     "https://smarie.github.io/python-makefun/")
+    (synopsis
+     "Small library to dynamically create python functions")
+    (description
+     "Helps you create functions dynamically, with the signature of your
+choice.  It was largely inspired by decorator and functools, and created
+mainly to cover some of their limitations.")
+    (license license:bsd-3)))
+
 (define-public python-mako
   (package
     (name "python-mako")
-- 
2.32.0
D
D
Dhruvin Gandhi wrote on 8 Jul 2021 14:23
[PATCH v2 3/3] gnu: python-yubikey-manager: Update to 4.0.3.
(address . 49464@debbugs.gnu.org)(name . Dhruvin Gandhi)(address . contact@dhruvin.dev)
20210708122320.23196-4-contact@dhruvin.dev
* gnu/packages/security-token.scm (python-yubikey-manager): Update to 4.0.3.
---
gnu/packages/security-token.scm | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

Toggle diff (40 lines)
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 5ee3cb83f0..9f5340c975 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -660,7 +660,7 @@ implementing a Relying Party.")
 (define-public python-yubikey-manager
   (package
     (name "python-yubikey-manager")
-    (version "2.1.0")
+    (version "4.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -668,7 +668,12 @@ implementing a Relying Party.")
                     "/yubikey-manager-" version ".tar.gz"))
               (sha256
                (base32
-                "11rsmcaj60k3y5m5gdhr2nbbz0w5dm3m04klyxz0fh5hnpcmr7fm"))))
+                "1x36dlsp8mfcgyp50iz64cpg2hpbc9cg2qsf16kw0g7sp3ynzfx7"))
+              (snippet
+               #~(begin
+                   ;; Remove unused platform code.
+                   (delete-file "ykman/hid/macos.py")
+                   (delete-file "ykman/hid/windows.py")))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)
@@ -684,7 +689,9 @@ implementing a Relying Party.")
        ("libusb" ,libusb)))
     (native-inputs
      `(("swig" ,swig)
-       ("python-mock" ,python-mock)))
+       ("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)
+       ("python-makefun" ,python-makefun)))
     (home-page "https://developers.yubico.com/yubikey-manager/")
     (synopsis "Command line tool and library for configuring a YubiKey")
     (description
-- 
2.32.0
?