Subject: [bug#67878] [PATCH] Adding Privacy Badger

From: outlook user <[email-masked]>
Date: Mon, 18 Dec 2023 12:32:40 +0000

>From a5164360d62cbf67dc9c60ebae23f6f1ccbd1e52 Mon Sep 17 00:00:00 2001
From: nobody <[email-masked]>
Date: Mon, 18 Dec 2023 13:14:19 +0100
Subject: [PATCH] Adding Privacy Badger

---
 browser-extensions.scm | 69 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 68 insertions(+), 1 deletion(-)

diff --git a/browser-extensions.scm b/browser-extensions.scm
index 5a6ee7c..9783ed3 100644
--- a/browser-extensions.scm
+++ b/browser-extensions.scm
@@ -220,4 +220,71 @@ fill and submit login forms if a matching password entry is found.")
     (license license:gpl2+)))
 
 (define-public passff/icecat
-  (make-icecat-extension passff))
\ No newline at end of file
+  (make-icecat-extension passff))
+
+(define-public privacy-badger/chromium
+  (let* ((name "privacy-badger")
+         (version "PUT_THE_CURRENT_VERSION_HERE")
+         (output "out")
+         (url-chromium "https://www.eff.org/files/privacy_badger-chrome.crx"))
+    (package
+      (name name)
+      (version version)
+      (source (origin
+                (method url-fetch)
+                (uri url-chromium)
+                (sha256
+                 (base32
+                  "PUT_THE_SHA256_HASH_HERE"))))
+      (build-system trivial-build-system)
+      (arguments '(#:modules ((guix build utils))
+                     #:builder
+                     (begin
+                       (use-modules (guix build utils))
+                       (let* ((output (assoc-ref %outputs "out"))
+                              (share (string-append output "/share/chrome/extensions/xxxxxx")) ; replace "xxxxxx" with the actual extension ID
+                              (source (assoc-ref %build-inputs "source")))
+                         (mkdir-p share)
+                         (copy-file source (string-append share "/privacy_badger.crx"))))))
+      (home-page "https://privacybadger.org/")
+      (synopsis "Privacy tool from the Electronic Frontier Foundation")
+      (description "Privacy Badger is a browser add-on that stops advertisers and other third-party trackers
+                  from secretly tracking where you go and what pages you look at on the web. ")
+      (license license:gpl3+))))
+
+(define-public privacy-badger/icecat
+  (let* ((name "privacy-badger")
+         (version "PUT_THE_CURRENT_VERSION_HERE")
+         (url-icecat "https://www.eff.org/files/privacy-badger-latest.xpi"))
+    (package
+      (name name)
+      (version version)
+      (source (origin
+                (method url-fetch)
+                (uri url-icecat)
+                (sha256
+                 (base32
+                  "PUT_THE_SHA256_HASH_HERE"))))
+      (build-system trivial-build-system)
+      (arguments `(;; Standard arguments.
+                   #:modules ((guix build utils))
+                   #:builder
+                   (begin
+                     ;; Return the extension's ID based on its manifest file.
+                     (use-modules (guix build utils) (ice-9 json))
+                     (let* ((output (assoc-ref %outputs "out"))
+                            (profile (string-append output "/share/icecat/extensions"))
+                            (source (assoc-ref %build-inputs "source"))
+                            (manifest (call-with-input-file (string-append source "/manifest.json")
+                                            json->scm))
+                            (id (alist-ref 'applications (alist-ref 'browser_specific_settings manifest))))
+    
+                       ;; Copy the source to the output directory under the appropriate
+                       ;; extension ID.
+                       (mkdir-p profile)
+                       (copy-recursively source (string-append profile "/" id))))))))
+      (home-page "https://privacybadger.org/")
+      (synopsis "Privacy tool from the Electronic Frontier Foundation")
+      (description "Privacy Badger is a browser add-on that stops advertisers and other third-party trackers
+                  from secretly tracking where you go and what pages you look at on the web. ")
+      (license license:gpl3+))))
\ No newline at end of file
--
2.41.0