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

  • Done
  • quality assurance status badge
Details
2 participants
  • Dhruvin Gandhi
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Dhruvin Gandhi
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
M
M
Maxim Cournoyer wrote on 7 Aug 2023 20:11
Re: bug#49464: [PATCH 0/3] Update yubikey-manager to version 4.0.3.
(name . Dhruvin Gandhi)(address . contact@dhruvin.dev)(address . 49464-done@debbugs.gnu.org)
87bkfien8a.fsf_-_@gmail.com
Hello,

Dhruvin Gandhi <contact@dhruvin.dev> writes:

Toggle quote (44 lines)
> * 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(-)
>
> 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

Sorry these were left lingering without review; it seems since
yubikey-manager has made it to 5.1.1 in master.

Thank you!

--
Maxim
Closed
?