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

From: Clément Lassieur <[email-masked]>
Date: Sat, 13 Jan 2024 11:52:42 +0100

Hi,

Thanks for this patch!

On Mon, Dec 18 2023, outlook user wrote:

> +(define-public privacy-badger/chromium
> +  (let* ((name "privacy-badger")
> +         (version "PUT_THE_CURRENT_VERSION_HERE")

Could you write a package with the last version, and test this version?

> +         (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

Why don't you write the 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))))

This part might be useful in icecat-extension.scm, but for now, here,
it's best to just write the id.

> +    
> +                       ;; 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

Can you write an updated patch?  And could you please send it in a way
that makes it easy for us to apply?  Like with git send-email or as an
attachment.

Thanks,
Clément