(define-module (sigils packages palemoon-extensions) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix gexp) #:use-module (guix build-system copy) #:use-module (guix build-system trivial) #:use-module ((guix licenses) #:prefix license:)) (define* (make-browser-extension pkg #:optional (pkg-output "out") #:key (browser-name "palemoon") (moz-app-id "{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4}")) "Create an extension from package PKG and return a package that, when installed, will make the extension contained in PKG available as a browser extension. PKG-OUTPUT specifies which output of PKG to use." (package (inherit pkg) (location (package-location pkg)) (name (string-append (package-name pkg) "-" browser-name)) (inputs '()) (native-inputs '()) (outputs '("out")) (build-system trivial-build-system) (arguments (list #:modules '((guix build utils)) #:builder #~(begin (use-modules (guix build utils)) (let* ((addon-id #$(assq-ref (package-properties pkg) 'addon-id)) (search-dir (format #f "~a/lib/~a/extensions/~a" #$output #$browser-name #$moz-app-id))) ;; It should work for Palemoon too! (mkdir-p search-dir) (symlink (in-vicinity (ungexp pkg pkg-output) addon-id) (in-vicinity search-dir addon-id)))))))) (define-public ematrix (package (name "ematrix") (version "5.1.0") (home-page "https://gitlab.com/vannilla/ematrix") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0wgy4nhmym62pcw8rikfiyfjw7ifzf173wz8kky3k8w79h2bzfxp")))) (build-system copy-build-system) (properties '((addon-id . "ematrix@vannilla.org"))) (arguments `(#:install-plan '(("." ,(assq-ref properties 'addon-id))))) (synopsis "Fork of uMatrix, a browser extension to black/white list requests.") (description "eMatrix is a fork of uMatrix for XPI browsers.") (license license:gpl3))) (define-public ematrix/palemoon (make-browser-extension ematrix))