Skip to content

Clarify description of NonFreeNet anti-feature

Nitai Sasson requested to merge (removed):neatnit-master-patch-83508 into master

The current description:

This Anti-Feature is applied to apps that promote or depend entirely on a Non-Free network service which is impossible, or not easy to replace. Replacement requires changes to the app or service. This antifeature would not apply, if there is a simple configuration option that allows pointing the app to a running instance of an alternative, publicly available, self-hostable, free software server solution.

The suggestion, adding 3 words:

This Anti-Feature is applied to apps that promote or depend entirely on a Non-Free network service, or any service which is impossible, or not easy to replace. Replacement requires changes to the app or service. This antifeature would not apply, if there is a simple configuration option that allows pointing the app to a running instance of an alternative, publicly available, self-hostable, free software server solution.


Current text:

[This app] promotes or depends entirely on a non-free network service

The suggestion (credit: @pastk fdroiddata!14521 (comment 1773932054)):

[This app] promotes or depends entirely on a non-changeable or non-free network service


The current description, when read literally, only refers to a "Non-Free network service" without defining what it means. Readers get the impression that this does not apply if the service is running purely FOSS code. What is not made clear, is that this AF also applies when the app connects to a purely FOSS-running server but doesn't allow the user to change the server address within the app. Examples include Wikipedia and StreetComplete.

This has been discussed at length. Some discussions and other history:

fdroiddata#553 (7 years ago)
fdroiddata#1693 (closed) and !438 (merged) (4 years ago) - current description is added (but only to Build_Metadata_Reference.md; it was later added to Anti-Features.md 1 year ago in 4280dc6b).
fdroiddata#1693 (comment 189017966) (4 years ago) - suggestion to split the confusing use-case off into HardcodedProvider; goes unnoticed
fdroiddata#553 (comment 565181896) (2 years ago) - suggestion to split the confusing use-case off into TetheredNet (initially named SiloedNet)
fdroiddata!14491 (merged) (1 week ago) - the tag is applied to Organic Maps causing a stir. As a user of Organic Maps, I tried to defend it from what I interpreted as a mislabeling.

There are definitely many more links but I feel like this is already overkill to justify the change.

This MR proposes a minimal change that would make the description actually cover many of the use cases under which this tag is used in practice. In my alarmingly non-humble opinion I think this MR or something like it should be applied immediately (within a week or less, after being sanity-checked) to make the current usage actually understandable.

I considered rewriting the description entirely but that would invite more discussion, more questions (for me to ask/research/answer), longer time until it gets merged, and more chances for it to not be approved or be delayed/forgotten indefinitely. I also don't think the current description is that bad that it should be replaced completely. It just needs to be corrected, so a fast minimal change seems the best way.

This is not meant to make TetheredNet irrelevant. Quite the contrary, I think TetheredNet is needed, and the sooner the better. When the TetheredNet anti-feature is added in practice, the description for NonFreeNet will need to be updated anyway and this part will be removed. But until then, this is how it's being used for many years now, so the description needs to match.

Other parts of F-Droid

The short description appears in other projects, most notably Client which is the string most users will see, so separate merge requests were opened. Please merge all of these simultaneously.

Edited by Nitai Sasson

Merge request reports