Replicant contributors meeting - July 27-28 2019, Paris, France¶
- Table of contents
- Replicant contributors meeting - July 27-28 2019, Paris, France
- More information
- Contacting the organizers
- Planned discussions
- Known schedule constraints
- Available hardware
- Discussion results
- Do we care about supporting devices with non-removable batteries?
- Do we require free software bootloaders ?
- Do we require isolated modems ?
- How to handle the various keys used to sign releases, and other related things and should the recovery check signatures
- Improve information for current and potential Replicant users
- Improving the Replicant website
- Making it easier for anyone to contribute to Replicant
- Funding work on f-droid
- Using oFono RIL
- FSDG compliance and How to moderate the forums
- Do we ship some external applications in Replicant
- Using wayland for the graphic stack?
- AOSP vs LineageOS
- Android upstream vs GNU/Linux upstream
- Video encoding
The meeting took place the 27 and 28 July 2019.
Precise location: April, 44/46 rue de l'Ouest, bâtiment 8, 75014 Paris (It's accesible through the "place de la Catalogne", on the left of the "Biocoop" supermarket). Select "April" on the intercomm.
Phone number of the April office: 01 78 76 92 80.
The April office is relatively close to the Gare Montparnasse railway station.
On Friday, a dinner took place.
Dinner meeting time: From 18h30 to 18h45
Dinner meeting location: Near the Montparnasse tower . The Montparnasse tower is very close to the Montparnasse railway station.
At 18h45 we planned to try to find a restaurant nearby.
Roissy Charles de Gaulle International Airport <-> Gare Montparnasse railway station¶
To get to the Gare Montparnasse railway station from the Roissy Charles de Gaulle International Airport by public transportation, you can take the RER B metro line up to the Denfert-Rochereau station where you can take the line 6 up to the Gare Montparnasse railway station.
Paris Orly Airport <-> Gare Montparnasse railway station¶
To get to the Gare Montparnasse railway station from the Paris Orly Airport by public transportation, you can take the Orlyval up to the Antony stop, and from there take the RER B metro line up to the Denfert-Rochereau station where you can take the line 6 up to the Gare Montparnasse railway station.
More information¶Wikivoyage has a page on Paris and France which have many practical information such as:
- Visa and other border requirements
- How to stay safe
- The climate
- Information on the public transportation
- SIM cards
It also has pages on the Roissy Charles de Gaulle International Airport and the Paris Orly Airport with more details on the public transportation lines to use to go to Paris, which tickets to buy, etc.
Contacting the organizers¶
You could use the Replicant private contact mail address in advance to obtain the cellphone number of an organizer to be able to use it in case of issue (like being lost, not finding the location of the meeting, etc).
|Topic||Source code||Slides||Video||Rationale of the talk|
$ git clone --recursive https://git.replicant.us/GNUtoo/presentations.git $ cd path/to/presentation $ make
|720p ogv The borders had to be cut to preserve the privacy of people passing by in the street. It was also encoded 3 times instead of 2 to save human time.|| * Has some context that might be useful for new Replicant contributors
* Has information on the relationship between Replicant and GNU/Linux
|Replicant and bootloaders||720p webm||* The Galaxy SIII (and similar devices) bootloader status is complicated and relevant to Replicant 9|
|Replicant and modems: introduction||720p webm||* Meant to enable new contributors to work on the modem part|
|Replicant and modems: Samsung IPC||720p webm|
|Replicant and oFono based Java RIL||720p webm|
|Porting AOSP for a new device||Made with Libreoffice which leaks metadata||Not recorded|
|Graphics acceleration on Replicant||
$ git clone https://git.replicant.us/hominoid/graphics-presentation.git $ cd graphics-presentations $ make
|720p webm|| * Explains why Replicant needs special care on the graphics stack.
* Introduces both graphics' hardware and software architecture.
* Dives into the implementation decisions.
* Lays out future plans.
License: CC-BY-SA 4.0 International
The discussions were not recorded for privacy/intimacy reasons but a sumary of some of the important ones are available below on this page.
|Topic||Time and dependencies||Status||Rationale|
|Discussions on the bootloader situation on the Galaxy SIII and similar smartphones||After the talk on the bootloaders|
| Discussions on minimal requirement to accept a device in Replicant:
* Do we still accept devices with modems that are not isolated?
* Do we have plan to require free software bootloaders?
* Do we require replacable batteries?
|After the talk on modems and bootloaders|
| Discussions on the future of Replicant:
* Which devices do we target
* Do we continue focusing on devices with signed bootloaders
* Allwinner tablets, upstream Linux, and scalability
* Devices with non-replacable batteries
|After the talk on Replicant history|
| Discussion about Upstream components, design choices, and cultural re-appropriation of technology
* Issues when combining together different build systems (Example: Android build system with Kconfig)
* Sharing work with GNU/Linux to enable more political control and cultural re-appropriation of mobile device in the long run, and the risk associated with it
* Android upstream anti-features and political design choices
* How subjective security is, threat models, and the difference between free software and device maker point of view
|Please take a look at Upstream before attending if possible.|
Known schedule constraints¶
- On Sunday, the April offices had to be closed at 16h, so we had to pack everything and leave the room at that time.
- It would be a good idea to put your name on a sticker on the device if possible
|GNUtoo||Galaxy SIII (I9300) with the stock bootloader|
|Galaxy SIII 4G (I9305) with the stock bootloader|
|Galaxy SIII 4G (I9305) with u-boot|
|Galaxy Nexus (I9250) with the stock bootloader|
|Galaxy SII (I9100) with the stock bootloader|
|Optimus black (P970)|
|GTA01||Used in a presentation about Replicant history|
|N900||Testing the battery charger driver is still needed but require a heavy PSU|
|Fil||Galaxy Note 2 (N7100) stock bootloader||[Working] Available for non-critical tests|| * Test the upstream touchkey driver
* Bring a Parabola microSD (GNUtoo)
* Test the patch with an I9300
* Rebase the patch on master or linux-next
|Galaxy SIII (I9300) stock bootloader||[Working] Test Subject available for any experiment|
|Galaxy SIII (I9300) stock bootloader||[Bricked] available for hardware hacking||* Test fixing the phone|
|Galaxy Tab 2 7.0 (GT P3100)||Property of the Replicant Project|| *
|Paulk||Galaxy Note (N7000)|| *
|Galaxy Tab 2 10.1 (P5100)||* Add support for it in the BackupTheEFS instructions|
|Looking for a Galaxy Note 8.0 (N5100)||* Add support for it in the BackupTheEFS instructions|
|GNUtoo||Serial port cable with variable resistors|
|Simtrace 1: Can get the dialog between the modem and the SIM card in wireshark|
|SIM card that is not recognized in Replicant (STK related?)||Test on Replicant 4.2 and on Replicant 6.0|
|SIM card + phone that can trigger the audio call issue|
|Sigrok compatible adjustable power supply||Not sure to bring it (heavy)|
|Fil||SIM card that is not recognized in Replican 6|
Do we care about supporting devices with non-removable batteries?¶Points that were mentioned or discussed:
- This impacts the design decisions as supporting new devices through upstream code takes longer than hacking together the vendor code not to require nonfree libraries.
- Because of that either users, repair shops or Replicant device vendors will need to have a viable way to change the non-removable battery.
- If this is not the case it would force the Replicant project to race to try to support a device while it's still being sold new. If not users buying devices would have a battery that doesn't last enough when bought second hand.
- It's too hard, even for vendors like Technoethical which have some expertise in that area to upgrade non-removable batteries when the case is sealed. Practically speaking that could be done but the end result would not be as good as the new device, like the sealing would not be as good, making users damage the phone as they would expect the sealing to work.
- The cost for Replicant would be too high, so participant thought that not caring about devices without non-removable batteries and prioritize to support devices in Replicant through upstream project was better
Do we require free software bootloaders ?¶Points that were mentioned or discussed:
- The Pinephone should be released in the next months (3 months?) but it's not released yet.
- Some other devices with free software bootloaders are not released yet either
- Some concerns were raised on the fact that the Librem5 bootloader might contain nonfree software, which Replicant doesn't want to redistribute. A link to Purism's plans was also mentioned. Paul also mentioned that it might be possible that replacing the nonfree part was doable and that it would solve the issue
- Too early to do that: Replicant 9 is not out yet and it will work on devices with nonfree bootloader at first, but the work could be reused later by devices with free software bootloaders
Do we require isolated modems ?¶Points that were mentioned or discussed:
- On one hand it would make it easier for users to understand the freedom privacy and security they are getting with Replicant. The information is often distorted up to the point where some users think that Puri.sm laptops are running only free software (while in reality there are non-free software involved in the boot such as the FSP, and a minimal Management Engine firmware).
- On the other hand some users might already have devices that were supported by Replicant before and that don't have an isolated modem. This would leave such users with old versions of Replicant.
- The devices with non-isolated modems might not be easy to support in Replicant 9 anyway, so we could drop them
- This will need to be announced for the Replicant 9 release as this way the information would propagate more efficiently to people.
How to handle the various keys used to sign releases, and other related things and should the recovery check signatures¶Points that were mentioned or discussed:
- The installation instructions need to be as simple as possible => If users have to check the signatures only once it's better. So now users check the recovery only, which then checks the rest.
- The people involved in local Replicant install parties (in Paris) will help local Replicant users to update the recovery
- Technoethical previously stated that the users having bought devices already running Replicant through them are either able to install new recoveries or that they are able to help them do it
- Keys usage in the short term: Developers sign with their keys
- Keys usage in the longer term (requires time to implement it): use a keyring with the public key of several Replicant developers, like it is done in Parabola with the parabola-keyring package
- Keep checking signatures by default in the recovery
Improve information for current and potential Replicant users¶Points that were mentioned or discussed:
- Fil Bergamo plans to work on an unified table that has various information on devices supported by Replicant:
- He plans to add in information about what hardware feature are supported or not
- He plans to add information about how likely are the devices to be supported in the next Replicant 6 and 9 releases
- A "device getting guide" was also mentioned, to help users find which supported devices are the best for them
Improving the Replicant website¶Points that were mentioned or discussed:
- It would be nice to make information for users more accessible on the main page (https://replicant.us)
- Also enable translations in other languages than English in the wiki, but warn readers that the information might be outdated when it's translated.
Making it easier for anyone to contribute to Replicant¶Points that were mentioned or discussed:
- A question was raised about making a welcome page for new Replicant contributors. That page is supposed to already exist in the wiki => Find it and look at it.
- Create working groups on various part of Replicant (such as the documentation, f-droid issues, etc) and split the Redmine instance in sub-project accordingly. It would also enable to have different settings for the subgroups.
- Modify the People page to enable any contributor or potential contributors to add themselves in that page with the topic they would want to work on and the skills they have. The Replicant front page (https://replicant.us) would be modified to make sure that this is visible to potential contributors.
- Add pointers to C courses and to where to get the skills required to contribute to the Replicant system source code.
- Try to find a way to make a simple presentation on Replicant, that would give a simple overview how how Replicant and the hardware works.
Funding work on f-droid¶Consensus in that meeting:
- Enabling Fil Bergamo to work on making F-Droid FSDG compliant through NlNet funding
Using oFono RIL¶Points that were mentioned or discussed:
- Enabling Fil Bergamo to work on making that through NlNet funding
- Using oFono RIL is a good idea, even if it's unmaintained. Replicant would then become its maintainer
FSDG compliance and How to moderate the forums¶Points that were mentioned or discussed:
- One of the main issue was the fact that people might have legitimate interest in linking to post from XDA which would contain both very valuable technical information, while not respecting the FSDG guidelines at all and pushing users to run nonfree software.
- Legal issues were raised as well when linking to external material and such.
- Some examples were given on how to handle some common issues:
- Link to a book chapter advocating for DRM on the FSF website:
For more information about Digital Restrictions Management and the Management Engine, see from page 191 [...]. This chapter tries to justify the usage of Digital Restrictions Management (DRM). DRM is totally unacceptable as it requires the users not to be in control of their computers to effectively prevent them from exercising their legal rights (such as fair use, or being able to copy published works). That chapter clearly shows the link between preventing users from controlling their hardware and effective DRM.
- Link to service manuals etc:
These documents are the propriety of Samsung Electronics and are not hosted by the Replicant project. However, some excerpts from these documents are provided, for the purpose of providing technical evidence of the facts that are mentioned in this page. We believe that this particular use of the copyrighted work is fair use.
- Mention of proprietary software in Replicant wiki, including how to "use" it:
The following analysis was conducted using the libsec-ril.so binary file (the incriminated proprietary software) as extracted from the CyanogenMod 10.1.3 system zip for the Galaxy S 3 (I9300), from location system/lib/libsec-ril.so.
- GNU Kind Communications Guidelines:
By contrast, to suggest that others use nonfree software opposes the basic principles of GNU, so it is not allowed in GNU Project discussions.
- Trisquel Community Guidelines:
Our community's resources --the forum, documentation, etc-- are for free software only. Please do not distribute, recommend, or support non-free software here.
- Link to a book chapter advocating for DRM on the FSF website:
People in this discussion realized that the forum is relatively small so it's doable to have it moderated.Plan of action:
- Describe what should is acceptable or not for the forums, wiki, etc
- "Please do not distribute, recommend, or support non-free software here"
- Also describe the above examples there if possible to help people linking to information in the right way.
- How to handle violations of the policy
- On case by case basis. Help educate people on the matter and how to deal with it, especially on how to link to external information. |
Do we ship some external applications in Replicant¶Points that were mentioned or discussed:
- Yes, but how does the selection process would look like?
- Which browser we should add => One that works and that doesn't have freedom privacy or security issues
Using wayland for the graphic stack?¶Points that were mentioned or discussed:
- Using wayland for the graphics backend
- Might loose some performance due to the fact that Wayland plug in Android too low in the stack
- No performances test were performed with Wayland.
AOSP vs LineageOS¶Points that were mentioned or discussed:
- Using LineageOS repos makes less sense due to consensus about supporting devices with removable batteries.
- AOSP has stable/tagged releases whereas LineageOS lacks that
- AOSP is also better documented
- LineageOS uses many repositories from AOSP already (Implicit at the time of the talk, not explicited)
- we still want some of the features from LineageOS (like root)
We will need to look into more details which repositories to use from LineageOS and from AOSP
- Getting closer to AOSP
Android upstream vs GNU/Linux upstream¶Consensus in that meeting:
- Getting closer to GNU/Linux upstream (for hardware support like modems, etc)
The microphone was mono, with only a channel from the left. So we need to create mono audio files from the videos.
To make the sound go in both channel, do the following in Audacity:
- Create a new project with File -> New
- Import the video file with File -> Open
- Click on the audio channel -> Split Stereo to Mono
- Delete the second channel
- File -> Export -> Export as WAV
Video¶The videos were recorded with some equipement that was lent to us:
- A camera that outputed mp4 files on an SD card
- One wireless microphone
=> Next time ask if they have a second microphone available for questions.
- The videos are splitted in several mp4 files
- The part before the presentation has to be removed
Kdenlive is being used for that.
Using kdenlive with Nouveau (with default settings), xfce4 under Parabola manage to freeze the screen (there are some messages like "nouveau: kernel rejected pushbuf: Cannot allocate memory" that can be observed when launching kdenlive through SSH).To workaround that the following was used:
- gnome3 (probably under wayland)
- pushbuffer enabled in the module parameters for nouveau
=> It's still slow while zomming in the timeline but it manage not to freeze the whole graphics stack.To edit a video with kdenlive:
- create a project, and select the right resolution (720p 25fps here)
- Import the videos files to use with project->Add clip
- Also import the mono audio files that you just converted with audacious
- Import the clips from the Project bin into the timeline with drag and drop
- Right click on the imported click in the timeline and select Ungroup
- Right click on the audio below, and select remove
- Import the mono audio file from the Project bin in the timeline with drag and drop
- In the timeline you can zoom at the maximum level
- Use the cisors to divide the zone in two, you only need to click once with the left click to separate two zones
- Select the arow again (on the left of the cisors) and right click on the zone to remove, and select remove
- Do that for both the video and the audio tracks, then move both to the left to remove the gap done by the removal if there is one.