Hi, Maxime Devos <maximede...@telenet.be> 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’.