Subject: bug#46385: User awareness of Anti-Features

From: Ludovic Courtès <[email-masked]>
Date: Fri, 19 Feb 2021 16:22:34 +0100

Hi,

Maxime Devos <[email-masked]> skribis:

> I'll have to think some more on whether this is something Guix needs, but I
> do have a partial concrete implementation proposal:
>
> Packages can have a ‘properties’ field, e.g. from gnu/packages/bioconductors.scm:
>
> (define-public r-reactome-db
>   (package
>     (name "r-reactome-db")
>     (version "1.70.0")
>     [...]
>     (properties `((upstream-name . "reactome.db")))))
>
> Maybe add a ‘anti-features’ entry field for some packages?
> E.g.,
>
> (define-public some-twitter-app
>   (package
>    (name "tweet")
>    [...]
>    (properties `((anti-features x y z)))))
>
> x, y and z can be symbols, e.g. based upon from https://f-droid.org/en/docs/Anti-Features/
>
> * ads (I don't think any application in Guix has these?)
> * tracking (should be patched out if possible)
> * non-free-network-services
> * non-free-dependencies (probably not allowed in upstream Guix, but maybe in a channel)
>
> The code behind ‘guix show’ and ‘guix search’ would need to
> be adjusted to display anti-features, and the ‘guix install’ code
> should warn if someone installs a package with anti-features.

I’m sympathetic with the idea of raising awareness of those
anti-features.  However, I don’t see a clear way we could “define” each
possible anti-feature; some are definitely ill-defined (for instance, a
service is neither “free” nor “non-free” in the same sense as software
can be free or non-free.)  It’s also not entirely clear to me how the UI
could make good use of it.

That said, there are anti-features that we have always patched out in
the past, such as tracking/“phoning home” and auto-upgrades.  Perhaps we
could formalize that in our packaging guidelines?

Ludo’.