Project

General

Profile

F-DroidCompliance » History » Version 5

Denis 'GNUtoo' Carikli, 04/05/2020 05:42 AM

1 1 Kurtis Hanna
h1. FDroidCompliance
2
3 2 Denis 'GNUtoo' Carikli
h2. Introduction
4
5 1 Kurtis Hanna
F-Droid is a community-maintained software repository for Android based operating systems. It is similar to the Google Play store. 
6
7
Replicant has depended very heavily on F-Droid for a long time now. End users expect app "stores" on their smart phones.
8
9
Unfortunately, F-Droid is not currently compliant with the FSF's Free Software Distribution Guidelines, which required Replicant to remove F-Droid from its upcoming 6.0 0004 release so that Replicant can continue to be FSDG compliant.
10
11
Much discussion has already been had within Replicant and between Replicant and F-Droid about how F-Droid can be modified in order to make it FSDG compliant so that it can be included again in Replicant in future releases.
12
13
F-Droid's build server has not purely free from proprietary blobs for a while now: https://gitlab.com/fdroid/fdroidserver/-/issues/383
14
15
It is important for F-Droid to be built using free tools.
16
17
Android has a decentralized app building process. This can be a very positive thing, fostering a much more diverse and playful ecosystem than app stores that Google and Apple provide on their smartphones's OSes.
18
19
Due to the freedom issues in the F-Droid build system though, a threat exists to user privacy and security.
20
21
One of these freedom issues is the fact that far too many pre-builds exist.
22
23
Replicant wants an app distribution system that runs a free toolchain so that users can rely on a fully free ecosystem.
24
25
One way of achieving this might be to utilize beuc's rebuilds: https://android-rebuilds.beuc.net/
26
27
Replicant wants to write environment setup bash scripts to build FDroid with beuc's version of the SDK in order to be able to provide a reproducible build environment that others can test.
28
29
Another freedom issue with F-Droid is that F-Droid includes apps with anti-features that are not compatible with the GNU FSDG. These apps are available alongside apps that are compatible and they are only marked with these anti-features. See #1629 for development efforts and further information on this topic. https://redmine.replicant.us/projects/replicant/wiki/FDroid
30 2 Denis 'GNUtoo' Carikli
31
h2. Plan
32
33
h3. Discuss with F-Droid to find a way to implement the FSDG compliance
34
35 5 Denis 'GNUtoo' Carikli
|_. Task |_. Budget |_. Comments |_. Deliverable |
36
| Define with F-Droid upstream which properties we can use in package definition to comply with the FSDG guidelines | Hard to predict as it depends on the outcome of the discussion with F-Droid => Replicant funding | | Specifications that are ready to be implemented by Fil bergamo |
37
| Discuss how to implement build time whitelists and blacklists | Hard to predict as it depends on the outcome of the discussion with F-Droid => Replicant funding | | Precise specifications that are ready to be implemented by Fil bergamo |
38
| Replicant F-Droid fork package in F-Droid | Nlnet? Rough number of hours | | Package can be built with F-Droid tools, ideally upstream it |
39
40
Precise specifications: specifications that are clear enough to be implemented without making mistakes, and clear enough to understand for people using it.
41
Example: non-fsdg compliant property in the package definition.
42
* Specs for implementation:
43
  Tag format: "Antifeature: non-fsdg-compliant, <reason>"
44
* Definition:
45
** Property that indicates that the package doesn't meet the FSDG guidelines as per <fsdg guidelines address>.
46
** reason: textual description of why the package is not fsdg compliant. (see parabola blacklist for examples + git-url of paraobla blacklist repo + file)
47
48
49 2 Denis 'GNUtoo' Carikli
50 4 Denis 'GNUtoo' Carikli
h3. Implementation 
51
52
*Person*: Fil Bergamo
53 2 Denis 'GNUtoo' Carikli
54 3 Denis 'GNUtoo' Carikli
|_. Task |_. Budget |_. Comments |_. Deliverable |
55
| Implement the parsing of the properties | Hard to predict as it depends on the outcome of the discussion with F-Droid => Replicant funding | | |
56
| Build F-Droid from an FSDG compliant distribution | Hard to predict => Replicant funding | Replicant 6 can't be built with FSDG compliant distros but Replicant 4.2, 9.0 and probably 10.0 too can => We need F-Droid to be built from an FSDG compliant distributions | Building F-Droid from an FSDG compliant distribution + a quick HOWTO |
57
| Implement build time whitelists / blacklists | Nlnet? Rough number of hours | | Can build F-Droid with custom blacklist and whitelists + quick HOWTO |
58
| Replicant F-Droid fork package in F-Droid | Nlnet? Rough number of hours | | Package can be built with F-Droid tools, ideally upstream it |