Subject: [bug#49499] [PATCH] gnu: add the tos;dr initiative's extension

From: Sarah Morgensen <[email-masked]>
Date: Thu, 22 Jul 2021 14:49:36 -0700

Hi,

Thanks for the patch. Unfortunately I am unable to apply your patch; it
looks like your mail client wrapped long lines which broke the
patch. (That's why most of us send patches with `git send-email`, to
avoid this problem.)

I also have a few suggestions for your patch, annotated below...

[email-masked] writes:

> This is a package definition for the terms of service;didn't read initiative. It
> is useful to easily
> know the privacy issues with whatever website the user is using.
>
> diff --git a/gnu/packages/browser-extensions.scm
> b/gnu/packages/browser-extensions.scm
> index a6120baf96..6cbe77b9c3 100644
> --- a/gnu/packages/browser-extensions.scm
> +++ b/gnu/packages/browser-extensions.scm
> @@ -121,3 +121,41 @@ ungoogled-chromium.")
>
>  (define-public ublock-origin/chromium
>    (make-chromium-extension ublock-origin "chromium"))
> +
> +(define tosdr
> +  (package
> +   (name "tosdr")
> +   (version "4.1.1")
> +   (source (origin
> +             (uri
> +              (git-reference (url
> "https://github.com/tosdr/browser-extensions.git")

This line is too long and should be wrapped.

> +                             (commit version)))
> +             (sha256 (base32
> "0wz31f9rz087yw1a7cdhdgqvgnhbk569jywv846n122m4bpk3yw0"))

Likewise.

> +             (method git-fetch)))
> +   (inputs `(("bash" ,bash)
> +             ("coreutils" ,coreutils)
> +             ("node" ,node)
> +             ("zip" ,zip)
> +             ("unzip" ,unzip)))

These should be native-inputs rather than inputs, since they are just
used in building. Perhaps consider just using copy-build-system instead,
to avoid manually including these inputs and setting PATH below.

You can look at the ublock-origin package as an example (though I would
use the copy-build-system instead, adding back in a 'build phase, either
removing the "rm -rf build" from `build.sh` beforehand or unzipping the
zip immediately afterwards).

> +   (arguments
> +    `(#:builder
> +      (begin
> +        (use-modules (guix build utils))
> +        (set-path-environment-variable "PATH"
> +                                      '("bin")
> +                                      (map cdr %build-inputs))
> +        (copy-recursively (assoc-ref %build-inputs "source") ".")
> +        (invoke "sh" "./build.sh")
> +        (invoke "unzip" "dist/chrome.zip" "-d" %output)
> +        #t)
> +      #:modules ((guix build utils))))
> +   (build-system trivial-build-system)
> +   (synopsis "extension for the Terms of Service; Didn't Read initiative")

The synopsis should begin with a capital letter.

> +   (description "This extension informs you instantly of your rights online by
> +showing an unintrusive icon in the toolbar.  You can click on this icon to get
> +summaries from the Terms of Service; Didn't Read initiative.")
> +   (license license:agpl3)
> +   (home-page "https://tosdr.org/")))
> +
> +(define-public tosdr-chromium
> +  (make-chromium-extension tosdr))

--
Sarah