Project

General

Profile

F-DroidCompliance » History » Version 28

Denis 'GNUtoo' Carikli, 04/05/2020 07:18 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 8 Denis 'GNUtoo' Carikli
Define what to work on:
34 7 Denis 'GNUtoo' Carikli
1. Cleanup this draft
35
2. Fill the missing information that can easily be found
36 1 Kurtis Hanna
37 8 Denis 'GNUtoo' Carikli
Rationale: we need a rough idea of what needs to be worked on.
38
39
In parallel for Replicant:
40 7 Denis 'GNUtoo' Carikli
a1. Precise how the people want to be paid (per tasks, hours, per months, etc) and the amount
41 10 Denis 'GNUtoo' Carikli
a2. Find a way to report the progress if not paid by the task (quick blog post, wiki status, very fast mail on the mailing list, etc). /!\ It can take up to 1/2 day per week, as for the crowdfunding to free and upstream the Allwinner VPU. => Find a way to do it that suits people.
42
a3. Find out how to do it legally (employment, contract work, grant, etc)
43
a4. Steering commitee vote on that
44
a5. Find a way to legally formalize it through the FSF if needed
45 7 Denis 'GNUtoo' Carikli
46 8 Denis 'GNUtoo' Carikli
In parallel for NLnet:
47 11 Denis 'GNUtoo' Carikli
a1. Write a very rough proposal and send it, don't wait too much as we might get a shot sooner. Make sure to be accepted in round 1 before starting to work on it or make sure to have a backup (like Replicant money).
48 7 Denis 'GNUtoo' Carikli
a2. Fill the budget by calculating hours x price per hour. Keep in mind that it's a grant so you don't have the usual taxes (you need to check how to declare grants with your state) but the usual employee stuff is not covered (social security, state welfare, hollidays, extra time where you don't do productive work in an office but get paid, time spent on responding to email, or filling or preparing the MOU for NLnet etc)
49 1 Kurtis Hanna
a3. Send the MOU
50 7 Denis 'GNUtoo' Carikli
a4. Sign it
51 8 Denis 'GNUtoo' Carikli
a6. Finish a big task group, send a request for payment + bank details the first time and get paid, and redo that until everything is finished.
52 7 Denis 'GNUtoo' Carikli
53 10 Denis 'GNUtoo' Carikli
For the request for payment you need to point to resources that proves that the task is done. The reporting is done this way.
54 9 Denis 'GNUtoo' Carikli
55
Example: git.replicant.us/GNUtoo/kernel_replicant_linux.git in this branch + build howto
56
Example2: post on the bugtracker of F-Droid with the agreed specification for the properties 
57
58 2 Denis 'GNUtoo' Carikli
h3. Discuss with F-Droid to find a way to implement the FSDG compliance
59
60 5 Denis 'GNUtoo' Carikli
|_. Task |_. Budget |_. Comments |_. Deliverable |
61
| 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 |
62
| 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 |
63 6 Denis 'GNUtoo' Carikli
| Some light coding tasks (I don't remember which one) | Nlnet? Replicant? Can time be predicted? | | |
64 5 Denis 'GNUtoo' Carikli
65
Precise specifications: specifications that are clear enough to be implemented without making mistakes, and clear enough to understand for people using it.
66
Example: non-fsdg compliant property in the package definition.
67
* Specs for implementation:
68
  Tag format: "Antifeature: non-fsdg-compliant, <reason>"
69
* Definition:
70
** Property that indicates that the package doesn't meet the FSDG guidelines as per <fsdg guidelines address>.
71
** reason: textual description of why the package is not fsdg compliant. (see parabola blacklist for examples + git-url of paraobla blacklist repo + file)
72 2 Denis 'GNUtoo' Carikli
73 4 Denis 'GNUtoo' Carikli
h3. Implementation 
74
75
*Person*: Fil Bergamo
76 2 Denis 'GNUtoo' Carikli
77 3 Denis 'GNUtoo' Carikli
|_. Task |_. Budget |_. Comments |_. Deliverable |
78
| Implement the parsing of the properties | Hard to predict as it depends on the outcome of the discussion with F-Droid => Replicant funding | | |
79
| 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 |
80
| Implement build time whitelists / blacklists | Nlnet? Rough number of hours | | Can build F-Droid with custom blacklist and whitelists + quick HOWTO |
81
| Replicant F-Droid fork package in F-Droid | Nlnet? Rough number of hours | | Package can be built with F-Droid tools, ideally upstream it |
82 12 Denis 'GNUtoo' Carikli
83
h2. NLnet application
84 13 Denis 'GNUtoo' Carikli
85
h1. PortReplicantToAnewerAndroidVersionInitialApplication
86
87
h2. NLnet foundation Grant application for "Finish porting Replicant to a newer Android version"
88
89
h3. Contact information:
90
91
|_. Your name | Fil Bergamo and Kurtis Hanna |
92 14 Denis 'GNUtoo' Carikli
|_. Email address | contact address at the replicant.us domain |
93 13 Denis 'GNUtoo' Carikli
|_. Phone numbers | The phone number of Fil Bergamo which is in European union |
94
|_. Organisation | Replicant |
95
|_. Country | Italy(Fil Bergamo), USA (Kurtis Hanna) |
96
97
h3. General project information
98
99
|_. Project name | Make F-Droid FSDG compliant |
100
|_. Website / wiki | https://redmine.replicant.us/projects/replicant/wiki/MakeFdroidFSDGCompliant |
101 22 Denis 'GNUtoo' Carikli
|_. Abstract: Can you explain the whole project and its expected outcome(s).in 1200 characters | <pre>
102 23 Denis 'GNUtoo' Carikli
Replicant is a fully free software Android distribution that has to be
103
compliant with the FSF distribution guidelines (FSDG)
104
( https://www.gnu.org/distros/free-system-distribution-guidelines.html )
105
F-Droid has non-compliant applications like Yalp.
106
To fix it we need discuss with upstream to add define new anti-feature tags
107
in FDroid metadata, that can describe if a package is FSDG compliant,
108
in the most generic way possible as requested by upstream.
109
Once that is done we will discuss with upstream to define package and/or
110
anti-feature whitelist/blacklist to be implemented in the F-Droid client
111 22 Denis 'GNUtoo' Carikli
in the most generic way possible.
112 23 Denis 'GNUtoo' Carikli
The new tags and the whitelist/blacklist will be implemented in the F-Droid
113
client. The whitelist/blacklist will need to be configurable at build time,
114
to enable building a different FSDG F-Droid from the same source code.
115
F-Droid has already build time branding options.
116
We will then add that FSDG compliant F-Droid to the Fdroid metadata
117
repository.
118
This way we have near 0 maintenance and users of other distributions
119
could also use this FDroid.
120
We will also need to work with other projects to build FDroid on FSDG
121
distributions without any nonfree dependencies.
122 13 Denis 'GNUtoo' Carikli
</pre> |
123
|_. Have you been involved with projects or organizations relevant to this project before?
124
And if so, can you tell us a bit about your contributions? | Fil Bergamo and Kurtis Hanna are involved in Replicant since a *very long time. <add a rough date>*
125
Fil Bergamo
126 25 Denis 'GNUtoo' Carikli
* Developed RepWiFi.
127
* Is part of the Replicant steering committee.
128 13 Denis 'GNUtoo' Carikli
Kurtis Hanna:
129 25 Denis 'GNUtoo' Carikli
* Is heavily involved in Replicant public relations, especially with other people working to upstream support for smartphones in Linux or u-boot for other Android or GNU/Linux distributions.
130 26 Denis 'GNUtoo' Carikli
* Is involved a lot in the Replicant documentation in the wiki. |
131 13 Denis 'GNUtoo' Carikli
132
h3. Requested support
133
134
|_. Requested Amount (Between 5000 and 50000 Euros) | Something rough works too, I've added 50000 by mistake and it was re-defined later |
135 28 Denis 'GNUtoo' Carikli
|_. Does the project have other funding sources, both past and present? | The Replicant project has about 200000 dollars at disposition:
136 13 Denis 'GNUtoo' Carikli
* The Replicant project has a donation page https://crm.fsf.org/civicrm/contribute/transact?reset=1&id=19. Part of the donations were used for buying devices and reimburse conference attendances. We have about 20000 dollars remaining from the donation.
137 27 Denis 'GNUtoo' Carikli
* The Replicant project recently received 200000 dollars from Handshake: https://www.fsf.org/news/free-software-foundation-receives-1-million-from-handshake As the FSF takes 10% that leaves us 180000 dollars
138
* Denis Carikli is being funded by NLnet to port Replicant to Android 9
139
* David "dllud" Ludovino and Ricardo "Grim" Cabrita are being funded by NLnet to work on the Replicant 9 graphic stack
140 13 Denis 'GNUtoo' Carikli
141
Explain what the requested budget will be used for? 
142
<pre>
143 24 Denis 'GNUtoo' Carikli
The budget will only be used to fund Fil Bergamo and Kurtis Hanna to work on this task.
144 1 Kurtis Hanna
TODO: Do you need a budget for other stuff? Like hardware or conference if Covid confinment ends, or whatever is necessary to work on that?
145 13 Denis 'GNUtoo' Carikli
146 27 Denis 'GNUtoo' Carikli
Replicant will also complete the funding as we don't know how much time talking with F-Droid can take, so it's hard to budget for it.
147 18 Denis 'GNUtoo' Carikli
148 24 Denis 'GNUtoo' Carikli
TODO: We think it will take something between <3> and <6> months of work
149 13 Denis 'GNUtoo' Carikli
for one full time developer. <- Very rough estimation, more precise one can be done in stage2
150 1 Kurtis Hanna
151 13 Denis 'GNUtoo' Carikli
However it is always difficult to evaluate precisely the amount of time
152 24 Denis 'GNUtoo' Carikli
that this kind of project would take as it depends on how much time the discussions 
153 27 Denis 'GNUtoo' Carikli
with upstream will take and what exact implementation is chosen.
154 13 Denis 'GNUtoo' Carikli
155
<Maybe E/month * months >
156 1 Kurtis Hanna
157 13 Denis 'GNUtoo' Carikli
The 2 people here are long time contributors to Replicant and
158 1 Kurtis Hanna
have a direct interest in making the project succeed.
159 13 Denis 'GNUtoo' Carikli
160 24 Denis 'GNUtoo' Carikli
Over time we will document the progress and add more information here:
161 13 Denis 'GNUtoo' Carikli
https://redmine.replicant.us/projects/replicant/wiki/FDroidFSDGCompliance
162
</pre>
163
164
Compare your own project with existing or historical efforts.
165
<pre>
166
The first attempt was done by Wolfgang Weidermeier, and patches were merged, then reverted.
167 24 Denis 'GNUtoo' Carikli
The patches also addressed the problem very partially so, even if they were merged they wound't have been sufficent to fix the issue.
168 13 Denis 'GNUtoo' Carikli
169 24 Denis 'GNUtoo' Carikli
In the next attempt, people from Replicant (including Fil Bergamo, Kurtis Hanna and Denis Carikli) tried to discuss with upstream to avoid incomplete fixes, but that failed because the people involved on Replicant side could only find the time to discuss it for short period of times. So after several attempts like that we stopped trying and planned to fund the task instead as it would give people involved enough time to really fix it for good.
170 13 Denis 'GNUtoo' Carikli
171 24 Denis 'GNUtoo' Carikli
TODO: Point point to the bugreport in Replicant, in F-Droid + the old bugreport and reverted patch.
172 13 Denis 'GNUtoo' Carikli
</pre>
173
174
What are significant technical challenges you expect to solve during the project, if any?
175
<pre>
176
The most complicated challenges are not technical but human: we need to discuss with upstream to find the right solution.
177
</pre>
178
179
Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
180
<pre>
181
Explain the first step with F-Droid data and that we will open a bugreport there, after having carefully read the FSDG compliance specification and checked with the FSF lawyers if something is unclear.
182
183
Other Replicant developers will most probably help a bit as there is a big interest in getting that issue fixed and that we already spent a big ammount of time discussing plans on how to fix it at various conferences like FOSDEM <2018?>
184
</pre>
185
186
|_. Attachments | None |
187
188
h3. How may we handle your information
189
190
|_. What should we do in the other case,
191
 e.g. when your project is not immediately selected? | Feel free to choose whatever you want here |
192
|_. Send me a copy of this application. | check-box checked |
193
|_. PGP pubkey | None (if we use Replicant contact address, we can't encrypt to it) |