diff mbox series

[bug#66868,2/2] gnu: passff-host: Add explicit references to inputs and remove some.

Message ID 7b57677eb5038f21fb4cbb9fbcfbe45d61e4b096.1698808022.git.clement@lassieur.org
State New
Headers show
Series Fix passff-host. | expand

Commit Message

Clément Lassieur Nov. 1, 2023, 3:16 a.m. UTC
This removes ‘coreutils’, ‘grep’, ‘sed’, ‘which’, ‘bash-minimal’ and
‘gnu-make’ inputs, which were only used by the Makefile and
install_host_app.sh.  Instead of running install_host_app.sh (through
‘make’) which does a few text substitutions, do the text substitutions with
Scheme code.  This simplifies things and avoids unnecessary native inputs.

* gnu/packages/browser-extensions.scm (passff-host)[build-system]: Change to
copy-build-system.
[arguments]: Copy passff.json and passff.py.  Do text substitutions on
them rather than running make.  Refer to ‘password-store’ and ‘python’ through
inputs rather than directly.
[inputs]: Add PASSWORD-STORE and PYTHON.

Change-Id: I8fdb757516a7c30eae36b15f2a8d91e1445b19a5
---
 gnu/packages/browser-extensions.scm | 40 ++++++++++++++---------------
 1 file changed, 19 insertions(+), 21 deletions(-)

Comments

Clément Lassieur Nov. 1, 2023, 3:23 a.m. UTC | #1
I'll also remove some now useless #:use-modules statements.
diff mbox series

Patch

diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm
index 99dc7de109c3..ea4043f23b47 100644
--- a/gnu/packages/browser-extensions.scm
+++ b/gnu/packages/browser-extensions.scm
@@ -167,28 +167,26 @@  (define-public passff-host
               (sha256
                (base32
                 "1p18l1jh20x4v8dj64z9qjlp96fxsl5h069iynxfpbkzj6hd74yl"))))
-    (build-system trivial-build-system)
+    (build-system copy-build-system)
     (arguments
-     (list
-      #:modules '((guix build utils))
-      #:builder
-      #~(begin
-          (use-modules (guix build utils))
-          (setenv "PATH" (string-join '(#$coreutils
-                                        #$grep
-                                        #$password-store
-                                        #$python
-                                        #$sed
-                                        #$which) "/bin:" 'suffix))
-          (copy-recursively #$source ".")
-          (patch-shebang "src/install_host_app.sh"
-                         (list (in-vicinity #$bash-minimal "bin")))
-          (substitute* "src/install_host_app.sh"
-            (("(TARGET_DIR_FIREFOX=).*" all var)
-             (string-append var #$output "/lib/icecat/native-messaging-hosts"
-                            "\n")))
-          (invoke #$(file-append gnu-make "/bin/make")
-                  (string-append "VERSION=" #$version) "install-unix"))))
+     (let ((native-manifests "lib/icecat/native-messaging-hosts"))
+       (list
+        #:install-plan
+        `'(("src" ,native-manifests #:include ("passff.json" "passff.py")))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'substitute
+              (lambda _
+                (substitute* "src/passff.json"
+                  (("PLACEHOLDER")
+                   (format #f "~a/~a/passff.py" #$output #$native-manifests)))
+                (substitute* "src/passff.py"
+                  (("_VERSIONHOLDER_") #$version)
+                  (("^COMMAND = .*")
+                   (format #f "COMMAND = \"~a/bin/pass\"~%"
+                           #$(this-package-input "password-store"))))
+                (patch-shebang "src/passff.py")))))))
+    (inputs (list password-store python))
     (synopsis "Host app for the WebExtension PassFF")
     (description "This piece of software wraps around the zx2c4 pass shell
 command.  It has to be installed for the PassFF browser extension to work