[bug#76420] gnu: Add canvasblocker/icecat.
Commit Message
* gnu/packages/browser-extensions.scm (canvasblocker/icecat): New variable.
---
gnu/packages/browser-extensions.scm | 49 +++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
Comments
Nicolas Graves <ngraves@ngraves.fr> skribis:
> * gnu/packages/browser-extensions.scm (canvasblocker/icecat): New variable.
[...]
> + (snippet
> + #~(for-each
> + (match-lambda
> + ((? file-is-directory? dir)
> + (delete-file-recursively dir))
> + (file
> + (delete-file file)))
> + (remove (cut member <> '("." ".tools" ".."))
> + (append
> + ;; Hidden files and directories
> + (filter (cut string-prefix? "." <>) (scandir "."))
> + '("canvasblocker.xpi" "package-lock.json")))))))
filter + remove + match: sounds like we could make it less verbose.
Maybe with:
(for-each (match-lambda
((or "." ".." ".tools") #t)
( …)
(scandir "."))
?
Apart from that it LGTM!
Ludo’.
@@ -61,6 +61,55 @@ (define adaptive-tab-bar-colour
(define-public adaptive-tab-bar-colour/icecat
(make-icecat-extension adaptive-tab-bar-colour))
+(define canvasblocker
+ (package
+ (name "canvasblocker")
+ (version "1.11")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kkapsner/CanvasBlocker")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16mhvk7swbkmb24smkv1c147brb0mm2nfaxqw2dq43sl7ncasf32"))
+ (modules '((guix build utils)
+ (ice-9 match)
+ (ice-9 ftw)
+ (srfi srfi-1)
+ (srfi srfi-26)))
+ (snippet
+ #~(for-each
+ (match-lambda
+ ((? file-is-directory? dir)
+ (delete-file-recursively dir))
+ (file
+ (delete-file file)))
+ (remove (cut member <> '("." ".tools" ".."))
+ (append
+ ;; Hidden files and directories
+ (filter (cut string-prefix? "." <>) (scandir "."))
+ '("canvasblocker.xpi" "package-lock.json")))))))
+ (build-system copy-build-system)
+ (properties '((addon-id . "CanvasBlocker@kkapsner.de")))
+ (arguments
+ (list
+ #:install-plan ;deduced from .tools/build.js
+ #~'(("." #$(assq-ref properties 'addon-id)
+ #:exclude ("crowdin.yml" "package.json" "releaseNotes.txt")
+ #:exclude-regexp ("test/.*" "versions/.*" ".tools/*")))))
+ (home-page "https://github.com/kkapsner/CanvasBlocker")
+ (synopsis "Firefox extension to protect from being figerprinted")
+ (description "This extension allows users to prevent websites from using
+some Javascript APIs to fingerprint them. Users can choose to block the APIs
+entirely on some or all websites (which may break some websites) or just block
+or fake its fingerprinting-friendly readout API.")
+ (license license:mpl2.0)))
+
+(define-public canvasblocker/icecat
+ (make-icecat-extension canvasblocker))
+
(define play-to-kodi
(package
(name "play-to-kodi")