summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-12-10 16:55:10 +0100
committerLudovic Courtès <ludo@gnu.org>2023-12-10 21:46:51 +0100
commite15419673618566eb5d7e568be184af7aa3ec742 (patch)
tree261d199b2e6b8a8ee935b7e8849442800038aaad
parent63e06f30ce20fa846a7e2e814976fefcd9eda7d3 (diff)
downloadguix-e15419673618566eb5d7e568be184af7aa3ec742.tar.gz
gnu: keepassxc: Record file name of ‘xclip’ and ‘wl-copy’.
* gnu/packages/password-utils.scm (keepassxc)[arguments]: Add
‘record-clipboard-programs’ phase.
[inputs]: Add WL-CLIPBOARD and XCLIP.

Change-Id: I3cfe3d8604da575f6bf5e5cf3ce862fbac099ab6
-rw-r--r--gnu/packages/password-utils.scm21
1 files changed, 21 insertions, 0 deletions
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 385bd64985..4099f23098 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -168,6 +168,25 @@ human.")
               #~(list "-DWITH_XC_DOCS=NO")))
       #:phases
       #~(modify-phases %standard-phases
+          (add-after 'unpack 'record-clipboard-programs
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; Record the file names of clipboard programs invoked by
+              ;; 'keepassxc-cli clip' and similar.
+              ;;
+              ;; Note: Use 'QString::fromUtf8' rather than 'QStringLiteral' so
+              ;; that the store reference is stored as ASCII instead of
+              ;; UTF-16, which would be invisible to the GC's scanner.
+              (substitute* "src/cli/Utils.cpp"
+                (("QStringLiteral\\(\"xclip\"\\)")
+                 (string-append
+                  "QString::fromUtf8(\""
+                  (search-input-file inputs "bin/xclip")
+                  "\")"))
+                (("QStringLiteral\\(\"wl-copy\"\\)")
+                 (string-append
+                  "QString::fromUtf8(\""
+                  (search-input-file inputs "bin/wl-copy")
+                  "\")")))))
           (replace 'check
             (lambda* (#:key tests? #:allow-other-keys)
               (when tests?
@@ -199,6 +218,8 @@ human.")
            qtx11extras
            quazip-0                     ; XC_KEESHARE
            readline
+           wl-clipboard                 ;for 'wl-copy'
+           xclip                        ;for 'xclip'
            yubikey-personalization      ; XC_YUBIKEY
            zlib))
     (home-page "https://keepassxc.org")