aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/browser-extensions.scm
diff options
context:
space:
mode:
authorClément Lassieur <clement@lassieur.org>2023-10-08 14:53:59 +0200
committerClément Lassieur <clement@lassieur.org>2023-10-23 11:19:02 +0200
commit25043e01b6cb6696ffdc6cdedd9cdf8235bb695c (patch)
treed4c3c023022729bfeacced44d934da3ad4565a86 /gnu/packages/browser-extensions.scm
parenta25a492f2b8604de4ebc21298f24891a1a245161 (diff)
downloadguix-25043e01b6cb6696ffdc6cdedd9cdf8235bb695c.tar
guix-25043e01b6cb6696ffdc6cdedd9cdf8235bb695c.tar.gz
gnu: icecat: Support Guix packaged extensions and native manifests.
* gnu/build/icecat-extension.scm: New file with a MAKE-ICECAT-EXTENSION procedure that makes sure the add-on directory is a symlink, so that Icecat can normalize it into a package store path. * gnu/local.mk (dist_patch_DATA): Register it, as well as new patches. * gnu/packages/browser-extensions.scm (ublock-origin)[properties]: Store the add-on ID so that it is accessible in MAKE-ICECAT-EXTENSION. [arguments]: Use the add-on ID as root directory. (ublock-origin/icecat): New procedure. * gnu/packages/gnuzilla.scm (icecat-minimal)[arguments]: Rewrite the unused 'apply-guix-specific-patches' phase so that it applies the following two patches. [native-search-paths]: New field. * gnu/packages/patches/icecat-compare-paths.patch: New patch that compares add-on paths (which are package store paths) to detect package changes. * gnu/packages/patches/icecat-use-system-wide-dir.patch: New patch that replaces "/usr/lib/mozilla" (the system-wide directory for extensions and native manifests) with "$ICECAT_SYSTEM_DIR".
Diffstat (limited to 'gnu/packages/browser-extensions.scm')
-rw-r--r--gnu/packages/browser-extensions.scm14
1 files changed, 11 insertions, 3 deletions
diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm
index 3f6da8d77a..252c95729d 100644
--- a/gnu/packages/browser-extensions.scm
+++ b/gnu/packages/browser-extensions.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,6 +26,7 @@
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu build chromium-extension)
+ #:use-module (gnu build icecat-extension)
#:use-module (gnu packages compression)
#:use-module (gnu packages python))
@@ -98,6 +100,7 @@ supported content to the Kodi media center.")
"1i8rnij3sbwg6vj6znprrsca0n5xjzhmhppaa8v6jyxg6wrrfch1"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
+ (properties '((addon-id . "uBlock0@raymondhill.net")))
(arguments
(list
#:tests? #f ;no tests
@@ -125,9 +128,11 @@ supported content to the Kodi media center.")
(invoke "./tools/make-chromium.sh")))
(add-after 'build-chromium 'install
(lambda* (#:key outputs #:allow-other-keys)
- (let ((firefox (assoc-ref outputs "firefox"))
- (xpi (assoc-ref outputs "xpi"))
- (chromium (assoc-ref outputs "chromium")))
+ (let* ((addon-id #$(assq-ref properties 'addon-id))
+ (firefox (in-vicinity
+ (assoc-ref outputs "firefox") addon-id))
+ (xpi (assoc-ref outputs "xpi"))
+ (chromium (assoc-ref outputs "chromium")))
(install-file "dist/build/uBlock0.firefox.xpi"
(string-append xpi "/lib/mozilla/extensions"))
(copy-recursively "dist/build/uBlock0.firefox" firefox)
@@ -142,3 +147,6 @@ ungoogled-chromium.")
(define-public ublock-origin/chromium
(make-chromium-extension ublock-origin "chromium"))
+
+(define-public ublock-origin/icecat
+ (make-icecat-extension ublock-origin "firefox"))