* [bug#53270] [PATCH] gnu: Add yubikey-oath-dmenu.
@ 2022-01-14 21:15 John Kehayias via Guix-patches via
2022-01-14 23:01 ` [bug#53270] [PATCH v2] " John Kehayias via Guix-patches via
0 siblings, 1 reply; 7+ messages in thread
From: John Kehayias via Guix-patches via @ 2022-01-14 21:15 UTC (permalink / raw)
To: 53270
[-- Attachment #1: Type: text/plain, Size: 446 bytes --]
Hello!
Here is a patch to add yubikey-oath-dmenu, a handy way to get OATH codes from a Yubikey with a dmenu interface. I use it all the time (though through rofi). It seemed the best place was in the security-token module with similar yubikey packages. This is written in python but meant to run as a program rather than used as a library, so I called it without a python- prefix (and it runs with just non-propagated inputs).
Thanks!
John
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-yubikey-oath-dmenu.patch --]
[-- Type: text/x-patch; name=0001-gnu-Add-yubikey-oath-dmenu.patch, Size: 3987 bytes --]
From dae602f6db781ec71ab79a560b522270f35750cd Mon Sep 17 00:00:00 2001
From: John Kehayias <john.kehayias@protonmail.com>
Date: Fri, 14 Jan 2022 16:11:47 -0500
Subject: [PATCH] gnu: Add yubikey-oath-dmenu.
* gnu/packages/security-token.scm (yubikey-oath-dmenu): New variable.
---
gnu/packages/security-token.scm | 63 +++++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 79afdcee47..3a2d88cf8d 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2021 Sergey Trofimov <sarg@sarg.org.ru>
;;; Copyright © 2021 Dhruvin Gandhi <contact@dhruvin.dev>
;;; Copyright © 2021 Ahmad Jarara <git@ajarara.io>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -53,6 +54,7 @@ (define-module (gnu packages security-token)
#:use-module (gnu packages dns)
#:use-module (gnu packages gettext)
#:use-module (gnu packages graphviz)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libbsd)
@@ -72,7 +74,9 @@ (define-module (gnu packages security-token)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages swig)
+ #:use-module (gnu packages suckless)
#:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml))
(define-public ccid
@@ -443,6 +447,65 @@ (define-public python-pyscard
(define-public python2-pyscard
(package-with-python2 python-pyscard))
+(define-public yubikey-oath-dmenu
+ (package
+ (name "yubikey-oath-dmenu")
+ (version "0.13.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emlun/yubikey-oath-dmenu")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1h6dr4l0gzgdg8zn2c39kx9cx1bgvwqxkz3z95qz9r70xfsghgwk"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:tests? #f ; there are no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (delete 'build) ; or build
+ (add-after 'unpack 'fix-paths
+ (lambda _
+ (for-each (lambda (tool)
+ (substitute* "yubikey-oath-dmenu.py"
+ (((string-append "'" tool))
+ (string-append "'" (which tool)))))
+ (list "dmenu" "notify-send" "wl-copy" "xclip" "xdotool"))))
+ (replace 'install
+ (lambda _
+ (invoke "make" "install"
+ (string-append "DESTDIR=" #$output)
+ "PREFIX="))))))
+ (inputs
+ (list dmenu
+ libnotify
+ python-click
+ python-yubikey-manager
+ ;; TODO add wtype, once packaged, for type support for Wayland
+ wl-clipboard ; optional clipboard support for Wayland
+ xclip ; optional clipboard support for X11
+ xdotool)) ; optional type support for X11
+ (home-page
+ "https://github.com/emlun/yubikey-oath-dmenu/")
+ (synopsis "Interface for getting OATH codes from a YubiKey using dmenu")
+ (description
+ "Yubikey-oath-demenu lets you pick an OATH credential from your YubiKey using
+dmenu, and copies the corresponding OTP to the clipboard. Alternatively, it
+can \"type\" the OTP using @code{xdotool} on X11.
+
+Notable features:
+
+@itemize
+@item Pick between all credentials on all connected YubiKeys
+@item No mouse interaction required
+@end itemize\n")
+ (license license:gpl3+)))
+
(define-public libu2f-host
(package
(name "libu2f-host")
--
2.34.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#53270] [PATCH v2] gnu: Add yubikey-oath-dmenu.
2022-01-14 21:15 [bug#53270] [PATCH] gnu: Add yubikey-oath-dmenu John Kehayias via Guix-patches via
@ 2022-01-14 23:01 ` John Kehayias via Guix-patches via
2022-01-15 11:27 ` Maxime Devos
0 siblings, 1 reply; 7+ messages in thread
From: John Kehayias via Guix-patches via @ 2022-01-14 23:01 UTC (permalink / raw)
To: 53270@debbugs.gnu.org
[-- Attachment #1: Type: text/plain, Size: 206 bytes --]
Updated patch to use 'search-input-file' rather than 'which'. Since these are not meant to be host-side build paths, but for the target machine, if I understand correctly why 'which' shouldn't be used here.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-yubikey-oath-dmenu.patch --]
[-- Type: text/x-patch; name=0001-gnu-Add-yubikey-oath-dmenu.patch, Size: 4172 bytes --]
From ea11bc0d6b6517636de3750356489aec93129e7c Mon Sep 17 00:00:00 2001
From: John Kehayias <john.kehayias@protonmail.com>
Date: Fri, 14 Jan 2022 16:11:47 -0500
Subject: [PATCH] gnu: Add yubikey-oath-dmenu.
* gnu/packages/security-token.scm (yubikey-oath-dmenu): New variable.
---
gnu/packages/security-token.scm | 65 +++++++++++++++++++++++++++++++++
1 file changed, 65 insertions(+)
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 79afdcee47..e01245b4cf 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2021 Sergey Trofimov <sarg@sarg.org.ru>
;;; Copyright © 2021 Dhruvin Gandhi <contact@dhruvin.dev>
;;; Copyright © 2021 Ahmad Jarara <git@ajarara.io>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -53,6 +54,7 @@ (define-module (gnu packages security-token)
#:use-module (gnu packages dns)
#:use-module (gnu packages gettext)
#:use-module (gnu packages graphviz)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libbsd)
@@ -72,7 +74,9 @@ (define-module (gnu packages security-token)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages swig)
+ #:use-module (gnu packages suckless)
#:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml))
(define-public ccid
@@ -443,6 +447,67 @@ (define-public python-pyscard
(define-public python2-pyscard
(package-with-python2 python-pyscard))
+(define-public yubikey-oath-dmenu
+ (package
+ (name "yubikey-oath-dmenu")
+ (version "0.13.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emlun/yubikey-oath-dmenu")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1h6dr4l0gzgdg8zn2c39kx9cx1bgvwqxkz3z95qz9r70xfsghgwk"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:tests? #f ; there are no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (delete 'build) ; or build
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (for-each (lambda (tool)
+ (substitute* "yubikey-oath-dmenu.py"
+ (((string-append "'" tool))
+ (string-append "'"
+ (search-input-file inputs
+ (string-append "/bin/" tool))))))
+ (list "dmenu" "notify-send" "wl-copy" "xclip" "xdotool"))))
+ (replace 'install
+ (lambda _
+ (invoke "make" "install"
+ (string-append "DESTDIR=" #$output)
+ "PREFIX="))))))
+ (inputs
+ (list dmenu
+ libnotify
+ python-click
+ python-yubikey-manager
+ ;; TODO add wtype, once packaged, for type support for Wayland
+ wl-clipboard ; optional clipboard support for Wayland
+ xclip ; optional clipboard support for X11
+ xdotool)) ; optional type support for X11
+ (home-page
+ "https://github.com/emlun/yubikey-oath-dmenu/")
+ (synopsis "Interface for getting OATH codes from a YubiKey using dmenu")
+ (description
+ "Yubikey-oath-demenu lets you pick an OATH credential from your YubiKey using
+dmenu, and copies the corresponding OTP to the clipboard. Alternatively, it
+can \"type\" the OTP using @code{xdotool} on X11.
+
+Notable features:
+
+@itemize
+@item Pick between all credentials on all connected YubiKeys
+@item No mouse interaction required
+@end itemize\n")
+ (license license:gpl3+)))
+
(define-public libu2f-host
(package
(name "libu2f-host")
--
2.34.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#53270] [PATCH v2] gnu: Add yubikey-oath-dmenu.
2022-01-14 23:01 ` [bug#53270] [PATCH v2] " John Kehayias via Guix-patches via
@ 2022-01-15 11:27 ` Maxime Devos
2022-01-15 19:52 ` John Kehayias via Guix-patches via
0 siblings, 1 reply; 7+ messages in thread
From: Maxime Devos @ 2022-01-15 11:27 UTC (permalink / raw)
To: John Kehayias, 53270@debbugs.gnu.org
[-- Attachment #1: Type: text/plain, Size: 729 bytes --]
John Kehayias via Guix-patches via schreef op vr 14-01-2022 om 23:01
[+0000]:
> + (replace 'install
> + (lambda _
> + (invoke "make" "install"
> + (string-append "DESTDIR=" #$output)
> + "PREFIX="))))))
Guix doesn't do staged installation
(https://www.gnu.org/software/automake/manual/html_node/DESTDIR.html),
so I would avoid (ab)using DESTDIR here. Instead of this phase,
maybe do
(replace 'install
(lambda _
(invoke "make" "install"
(string-append "PREFIX=" #$output)))))))
instead (untested)?
Greetings,
Maxime.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#53270] [PATCH v2] gnu: Add yubikey-oath-dmenu.
2022-01-15 11:27 ` Maxime Devos
@ 2022-01-15 19:52 ` John Kehayias via Guix-patches via
2022-01-24 6:15 ` [bug#53270] [PATCH v3] " John Kehayias via Guix-patches via
2022-01-24 9:10 ` bug#53270: [PATCH] " Ludovic Courtès
0 siblings, 2 replies; 7+ messages in thread
From: John Kehayias via Guix-patches via @ 2022-01-15 19:52 UTC (permalink / raw)
To: Maxime Devos; +Cc: 53270@debbugs.gnu.org
[-- Attachment #1: Type: text/plain, Size: 619 bytes --]
Hi Maxime,
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Saturday, January 15th, 2022 at 6:27 AM, Maxime Devos wrote:
> Guix doesn't do staged installation
> (https://www.gnu.org/software/automake/manual/html_node/DESTDIR.html),
> so I would avoid (ab)using DESTDIR here. Instead of this phase,
> maybe do
> [...]
> (string-append "PREFIX=" #$output)))))))
> instead (untested)?
>
No idea why I had DESTDIR there (there are some old packages I made, live and learn!) but your suggestion has the same result.
Attached is v3 of the patch with just this adjustment.
Thanks!
John
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-yubikey-oath-dmenu.patch --]
[-- Type: text/x-patch; name=0001-gnu-Add-yubikey-oath-dmenu.patch, Size: 4138 bytes --]
From a5958b588cebd23012d7d9cbeb8f1e22a3802ea2 Mon Sep 17 00:00:00 2001
From: John Kehayias <john.kehayias@protonmail.com>
Date: Fri, 14 Jan 2022 16:11:47 -0500
Subject: [PATCH] gnu: Add yubikey-oath-dmenu.
* gnu/packages/security-token.scm (yubikey-oath-dmenu): New variable.
---
gnu/packages/security-token.scm | 64 +++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 79afdcee47..56b1552349 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2021 Sergey Trofimov <sarg@sarg.org.ru>
;;; Copyright © 2021 Dhruvin Gandhi <contact@dhruvin.dev>
;;; Copyright © 2021 Ahmad Jarara <git@ajarara.io>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -53,6 +54,7 @@ (define-module (gnu packages security-token)
#:use-module (gnu packages dns)
#:use-module (gnu packages gettext)
#:use-module (gnu packages graphviz)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libbsd)
@@ -72,7 +74,9 @@ (define-module (gnu packages security-token)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages swig)
+ #:use-module (gnu packages suckless)
#:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml))
(define-public ccid
@@ -443,6 +447,66 @@ (define-public python-pyscard
(define-public python2-pyscard
(package-with-python2 python-pyscard))
+(define-public yubikey-oath-dmenu
+ (package
+ (name "yubikey-oath-dmenu")
+ (version "0.13.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emlun/yubikey-oath-dmenu")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1h6dr4l0gzgdg8zn2c39kx9cx1bgvwqxkz3z95qz9r70xfsghgwk"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:tests? #f ; there are no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (delete 'build) ; or build
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (for-each (lambda (tool)
+ (substitute* "yubikey-oath-dmenu.py"
+ (((string-append "'" tool))
+ (string-append "'"
+ (search-input-file inputs
+ (string-append "/bin/" tool))))))
+ (list "dmenu" "notify-send" "wl-copy" "xclip" "xdotool"))))
+ (replace 'install
+ (lambda _
+ (invoke "make" "install"
+ (string-append "PREFIX=" #$output)))))))
+ (inputs
+ (list dmenu
+ libnotify
+ python-click
+ python-yubikey-manager
+ ;; TODO add wtype, once packaged, for type support for Wayland
+ wl-clipboard ; optional clipboard support for Wayland
+ xclip ; optional clipboard support for X11
+ xdotool)) ; optional type support for X11
+ (home-page
+ "https://github.com/emlun/yubikey-oath-dmenu/")
+ (synopsis "Interface for getting OATH codes from a YubiKey using dmenu")
+ (description
+ "Yubikey-oath-demenu lets you pick an OATH credential from your YubiKey using
+dmenu, and copies the corresponding OTP to the clipboard. Alternatively, it
+can \"type\" the OTP using @code{xdotool} on X11.
+
+Notable features:
+
+@itemize
+@item Pick between all credentials on all connected YubiKeys
+@item No mouse interaction required
+@end itemize\n")
+ (license license:gpl3+)))
+
(define-public libu2f-host
(package
(name "libu2f-host")
--
2.34.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#53270] [PATCH v3] gnu: Add yubikey-oath-dmenu.
2022-01-15 19:52 ` John Kehayias via Guix-patches via
@ 2022-01-24 6:15 ` John Kehayias via Guix-patches via
2022-01-24 9:10 ` bug#53270: [PATCH] " Ludovic Courtès
1 sibling, 0 replies; 7+ messages in thread
From: John Kehayias via Guix-patches via @ 2022-01-24 6:15 UTC (permalink / raw)
To: Maxime Devos; +Cc: 53270@debbugs.gnu.org
Hi Maxime,
I sent a v3 of the patch in response to your previous comment, were there other changes or comments you had in mind for this package?
Thanks!
John
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#53270: [PATCH] gnu: Add yubikey-oath-dmenu.
2022-01-15 19:52 ` John Kehayias via Guix-patches via
2022-01-24 6:15 ` [bug#53270] [PATCH v3] " John Kehayias via Guix-patches via
@ 2022-01-24 9:10 ` Ludovic Courtès
2022-01-24 15:46 ` [bug#53270] " John Kehayias via Guix-patches via
1 sibling, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2022-01-24 9:10 UTC (permalink / raw)
To: John Kehayias; +Cc: 53270@debbugs.gnu.org, Maxime Devos
[-- Attachment #1: Type: text/plain, Size: 596 bytes --]
Hi,
John Kehayias <john.kehayias@protonmail.com> skribis:
> From a5958b588cebd23012d7d9cbeb8f1e22a3802ea2 Mon Sep 17 00:00:00 2001
> From: John Kehayias <john.kehayias@protonmail.com>
> Date: Fri, 14 Jan 2022 16:11:47 -0500
> Subject: [PATCH] gnu: Add yubikey-oath-dmenu.
>
> * gnu/packages/security-token.scm (yubikey-oath-dmenu): New variable.
Applied. I took the liberty to make the change below, to avoid using a
non-literal string as the ‘substitute*’ pattern (it’s possible to use a
non-literal string but more error prone).
Thanks John and Maxime!
Ludo’.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1243 bytes --]
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index b2f9f83ba2..8190e1e1e2 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -471,14 +471,12 @@ (define-public yubikey-oath-dmenu
(delete 'build) ; or build
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
- (for-each (lambda (tool)
- (substitute* "yubikey-oath-dmenu.py"
- (((string-append "'" tool))
- (string-append
- "'"
- (search-input-file inputs
- (string-append "/bin/" tool))))))
- (list "dmenu" "notify-send" "wl-copy" "xclip" "xdotool"))))
+ (substitute* "yubikey-oath-dmenu.py"
+ (("'(dmenu|notify-send|wl-copy|xclip|xdotool)" _ tool)
+ (string-append
+ "'"
+ (search-input-file inputs
+ (string-append "/bin/" tool)))))))
(replace 'install
(lambda _
(invoke "make" "install"
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#53270] [PATCH] gnu: Add yubikey-oath-dmenu.
2022-01-24 9:10 ` bug#53270: [PATCH] " Ludovic Courtès
@ 2022-01-24 15:46 ` John Kehayias via Guix-patches via
0 siblings, 0 replies; 7+ messages in thread
From: John Kehayias via Guix-patches via @ 2022-01-24 15:46 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 53270@debbugs.gnu.org, Maxime Devos
Hi,
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, January 24th, 2022 at 4:10 AM, Ludovic Courtès wrote:
> > Subject: [PATCH] gnu: Add yubikey-oath-dmenu.
> > - gnu/packages/security-token.scm (yubikey-oath-dmenu): New variable.
>
> Applied. I took the liberty to make the change below, to avoid using a
> non-literal string as the ‘substitute*’ pattern (it’s possible to use a
> non-literal string but more error prone).
>
> Thanks John and Maxime!
>
Ah, that's how you do that, I'll add that to my virtual packaging toolbox.
Thanks for pushing and thanks for the review Maxime!
John
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-01-24 15:47 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-14 21:15 [bug#53270] [PATCH] gnu: Add yubikey-oath-dmenu John Kehayias via Guix-patches via
2022-01-14 23:01 ` [bug#53270] [PATCH v2] " John Kehayias via Guix-patches via
2022-01-15 11:27 ` Maxime Devos
2022-01-15 19:52 ` John Kehayias via Guix-patches via
2022-01-24 6:15 ` [bug#53270] [PATCH v3] " John Kehayias via Guix-patches via
2022-01-24 9:10 ` bug#53270: [PATCH] " Ludovic Courtès
2022-01-24 15:46 ` [bug#53270] " John Kehayias via Guix-patches via
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.