diff options
author | Josselin Poiret <dev@jpoiret.xyz> | 2023-12-27 17:18:52 +0100 |
---|---|---|
committer | Josselin Poiret <dev@jpoiret.xyz> | 2023-12-27 17:18:52 +0100 |
commit | 93ac4c20bf4b46b2bb9d0d2b9bec0b728b34de87 (patch) | |
tree | 5127da76d9949a1010d89f820feb1608f9465541 /gnu/build | |
parent | 8f03a51f5cdf4015d22a42e0796aad28f092e40b (diff) | |
download | guix-93ac4c20bf4b46b2bb9d0d2b9bec0b728b34de87.tar guix-93ac4c20bf4b46b2bb9d0d2b9bec0b728b34de87.tar.gz |
chromium-extension: Compute json at argument evaluation time.
* gnu/build/chromium-extension.scm (make-chromium-extension): Make use of the
make-signing-key procedure inside the argument field, making sure that it is
not evaluated at file-load time. This would otherwise try to resolve gnutls
when we can't guarantee it's defined because of dependency cycles.
Change-Id: Ia7b13acfbca475c2df073e9a88fc8bb9264dd968
Diffstat (limited to 'gnu/build')
-rw-r--r-- | gnu/build/chromium-extension.scm | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/gnu/build/chromium-extension.scm b/gnu/build/chromium-extension.scm index 28449a1e1d..8171c72734 100644 --- a/gnu/build/chromium-extension.scm +++ b/gnu/build/chromium-extension.scm @@ -120,12 +120,7 @@ format." when installed, will make the extension contained in PKG available as a Chromium browser extension. PKG-OUTPUT specifies which output of PKG to use." (let* ((name (package-name pkg)) - (version (package-version pkg)) - (private-key (make-signing-key name)) - (public-key (signing-key->public-der private-key)) - (checksum (file-sha256sum public-key)) - (crx (make-crx private-key pkg pkg-output)) - (json (crx->chromium-json crx version))) + (version (package-version pkg))) (package (inherit pkg) (name (string-append name "-chromium")) @@ -138,18 +133,24 @@ Chromium browser extension. PKG-OUTPUT specifies which output of PKG to use." (arguments (list #:modules '((guix build utils)) #:builder - #~(begin - (use-modules (guix build utils)) - (define (base16-char->chromium-base16 char) - ;; Translate CHAR, a hexadecimal character, to a Chromium-style - ;; representation using the letters a-p (where a=0, p=15). - (string-ref "abcdefghijklmnop" - (string-index "0123456789abcdef" char))) - (let ((file-name (string-map base16-char->chromium-base16 - (string-take #$checksum 32))) - (extension-directory - (string-append #$output - "/share/chromium/extensions"))) - (mkdir-p extension-directory) - (symlink #$json (string-append extension-directory "/" - file-name ".json"))))))))) + (let* + ((private-key (make-signing-key name)) + (public-key (signing-key->public-der private-key)) + (checksum (file-sha256sum public-key)) + (crx (make-crx private-key pkg pkg-output)) + (json (crx->chromium-json crx version))) + #~(begin + (use-modules (guix build utils)) + (define (base16-char->chromium-base16 char) + ;; Translate CHAR, a hexadecimal character, to a Chromium-style + ;; representation using the letters a-p (where a=0, p=15). + (string-ref "abcdefghijklmnop" + (string-index "0123456789abcdef" char))) + (let ((file-name (string-map base16-char->chromium-base16 + (string-take #$checksum 32))) + (extension-directory + (string-append #$output + "/share/chromium/extensions"))) + (mkdir-p extension-directory) + (symlink #$json (string-append extension-directory "/" + file-name ".json")))))))))) |