aboutsummaryrefslogtreecommitdiff
path: root/doc/guix-cookbook.texi
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2020-09-30 13:10:33 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2020-10-01 00:13:42 +0200
commit5d9a100e7eaab54a5d1f221a2b97556fa40d9afe (patch)
treeb50387cd631eeb4ed35cdb63a090bcd78889ce3a /doc/guix-cookbook.texi
parent4436a27ca6de62c4d6c342736ac62b8360a87d59 (diff)
downloadguix-5d9a100e7eaab54a5d1f221a2b97556fa40d9afe.tar.gz
guix-5d9a100e7eaab54a5d1f221a2b97556fa40d9afe.zip
gnu: xtl: Update to 0.6.19.
* gnu/packages/cpp.scm (xtl): Update to 0.6.19.
Diffstat (limited to 'doc/guix-cookbook.texi')
0 files changed, 0 insertions, 0 deletions
(lambda (port) (format port "{ \"external_crx\": \"~a\", \"external_version\": \"~a\" } " #$crx #$version))) #:local-build? #t)) (define (signing-key->public-der key) "Return a derivation for a file containing the public key of KEY in DER format." (computed-file "der" #~(system* #$(file-append gnutls "/bin/certtool") "--load-privkey" #$key "--pubkey-info" "--outfile" #$output "--outder") #:local-build? #t)) (define (file-sha256sum file) (with-extensions (list guile-gcrypt) #~(begin (use-modules (gcrypt base16) (gcrypt hash)) (bytevector->base16-string (file-sha256 #$file))))) (define* (make-chromium-extension pkg #:optional (pkg-output "out")) "Create a Chromium extension from package PKG and return a package that, 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))) (package (inherit pkg) (name (string-append name "-chromium")) (source #f) (native-inputs '()) (inputs '()) (propagated-inputs '()) (outputs '("out")) (build-system trivial-build-system) (arguments (list #:modules '((guix build utils)) #:builder (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"))))))))))