NLnet foundation Grant application for "Finish porting Replicant to a newer Android version"¶
|Your name||Denis Carikli|
|Email address||PrivateContact + our contact at the FSF|
|Phone numbers||GNUtoo's phone number|
|Organisation||Replicant and the FSF|
|Country||France(Denis Carikli), USA (FSF)|
General project information¶
|Project name||Finish porting Replicant to a newer Android version|
|Website / wiki||https://redmine.replicant.us/projects/replicant/wiki/Porting_Replicant_to_Android_9|
|Abstract: Can you explain the whole project and its expected outcome(s).in 1200 characters||
Replicant is a fully free software Android distribution which is approved by the FSF (http://gnu.org/distros). The combination of Android Open Source Project source code with the Linux source code provided by the device vendor is not sufficient to produce a fully free Android distribution that works: a lot of the code that makes critical hardware components work (the modem, graphics, audio, GPS, etc) is in userspace. Because of that, most device manufacturers don't release them as free software. To make such hardware work, the Replicant project manages to replace or avoid such nonfree software. Replicant is currently based on LineageOS 13.0 which in turn is based on Android 6.0.1 which are both not supported anymore. Replicant is based on LineageOS because it supports way more smartphones and tablets than the Android Open Source Project. The project consists in porting Replicant changes on top of the Android 9 release of the Android Open Source project, and when LineageOS 16 will be ready, to backport our changes on top of LineageOS 16.
|Have you been involved with projects or organizations relevant to this project before?
And if so, can you tell us a bit about your contributions?
| Yes: I've been involved in Replicant since the beginning both as a developer and for managing the project:
As a developer:
* I did most/all the initial system work and made it work for the the HTC Dream, and the Google Nexus One.
* I also worked on porting the Goldelico GTA04, Galaxy nexus, Galaxy Tab 2 7.1 along with other Replicant developers and did various bug fixes and improvements.
* I am also doing code reviews for patches.
And as for managing the project I'm involved in:
* public relations (blog posts, etc)
* fund usage decisions
* infrastructure (system administration with other developers, etc)
* project direction and strategic decisions
|Requested Amount (Between 5000 and 50000 Euros)||50000 Euros|
|Does the project have other funding sources, both past and present?||
The Replicant project has about 200000 dollars at disposition:
* 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.
* 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
Explain what the requested budget will be used for?
The budget will only be used to fund this task through contract work. We think it will take something between 3 and 6 months of work for one full time developer. However it is always difficult to evaluate precisely the amount of time that this kind of project would take as sometimes it can be slowed down a lot due to bugs needing to be fixed. For instance, when adding support for the Nexus One to Replicant, a lot of time was spent dealing with display issues that didn't affect the upstream projects, because they relied on the GPU which required nonfree software to work. If we take the cost of a Freelance developer in the USA (75$ to 150$ per hour) as a basis, to enable people living in Europe and the USA to apply, we can fund a developer to work on it for a period that is mostly equivalent to something between 2 to 4 months full time. So far we have at least one person interested in working on it as a contractor (me), and one volunteer who wants to work on it at the same time, but who cannot do it full time. We will make sure that everybody has a chance to apply for doing contract work. If the work is not done when the 50000E run out, and if we cannot make sure that it will be completed by volunteers in a reasonable timeframe, the Replicant project will most probably use its existing funds to pay for contract work to make sure that this task is completed. The Replicant project will also take care of ensuring that the people that will work on this task have the necessary hardware to do it, for instance by shipping or reimbursing the purchase of a compatible smartphone with the Replicant project money. Once we have the Samsung Galaxy SIII fully working with Replicant 9, we will add support for most smartphones and tablets we currently support in Replicant, and add support for more recent smartphones (the most recent one we currently support has been released in 2013). We also have a very basic documentation on the Android 9 port here: https://redmine.replicant.us/projects/replicant/wiki/Porting_Replicant_to_Android_9
Compare your own project with existing or historical efforts.
Upgrading Replicant to a new Android version usually took about 2 or 3 months of full-time equivalent work for one person. Here, we already have a device (The Galaxy SIII 4G) booting under Android 9 master before the release, with a kernel that is closely based on upstream Linux, but a lot still needs to be done (modem, audio, sensors, etc) and validated. The Android architecture also changed a lot more between Android 6.0.1 and Android 9 than it did when we ported Replicant to newer Android versions.
What are significant technical challenges you expect to solve during the project, if any?
We will also need to make sure that Replicant 9 can be built with a GNU/Linux distribution that is approved by the FSF. This could be challenging if they lack some of the packages required to build Android.
Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
This project will re-use code from several projects such as Android, drm-hwcomposer, Mesa and Lima driver. Whenever possible we will foster collaboration with these projects and submit our changes upstream. The Replicant project contributors and the FSF will supervise contractors to do the work. A blog post will announce that the Replicant project has got some funding for this specific task, and that it is looking for a contractor to work on it. This is to make sure that everyone has equal chances in the application process. Then the most suited contractor will be selected. Only contractors that already have worked on similar tasks as part of free and open source software projects will be chosen. This way we can look at their existing contributions and make sure that they are able to do the task before engaging with them. The Replicant project will also make sure that the contractor has or gets the hardware required to work on the task, before starting to work on it.
How may we handle your information¶
|What should we do in the other case,
e.g. when your project is not immediately selected?
|I allow NLnet Foundation to keep the information I submit on record, should future funding opportunities arise|
|Send me a copy of this application.||check-box checked|
|PGP pubkey||None (if we use Replicant contact address, we can't encrypt to it)|