ContributorsMeetingJuly2019 » History » Revision 176

Revision 175 (dl lud, 08/08/2019 05:55 PM) → Revision 176/186 (dl lud, 08/08/2019 06:00 PM)

h1. Replicant contributors meeting - July 27-28, Paris, France 


 h2. Date 

 The meeting took place the 27 and 28 July 2019. 

 h2. Location 

 The event took place in the "April": "office": April is an association for the defense and promotion of free software. 

 *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.": 

 In addition to trains, Gare Montparnasse railway station has also, in the same building, there is a metro station where you can access the metro lines "4":, "6":, "12": and "13": 

 h3. Related events 

 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. 

 h3. Airports 

 The two main airports near Paris are the "Roissy Charles de Gaulle International Airport": and the "Paris Orly Airport": 

 h4. 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. 

 h4. 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. 

 h2. 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. 

 h2. Contacting the organizers 

 You could use the Replicant [[PrivateContact|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). 


 h2. Presentations 

 |_. Topic |_. Source code |_. Slides |_. Video |_. Rationale of the talk | 
 | Replicant history |/5. <pre> 
 $ git clone --recursive 
 $ cd path/to/presentation 
 $ make 
 </pre> | "pdf": | Recorded 
 needs editing: 
 the curtains were left open  
 => We need to remove people in the street for privacy/intimity reasons 
 also needs encoding | * Has some context that might be useful for new Replicant contributors 
 * Has information on the relationship between Replicant and GNU/Linux | 
 | Replicant and bootloaders | "pdf": | "720p webm": | * The Galaxy SIII (and similar devices) bootloader status is complicated and relevant to Replicant 9 | 
 | Replicant and modems: introduction | "pdf": | "720p webm": |/3. * Meant to enable new contributors to work on the modem part | 
 | Replicant and modems: Samsung IPC | "pdf": | "720p webm": | 
 | Replicant and oFono based Java RIL | "pdf": | "720p webm": | 
 | Porting AOSP for a new device | Made with Libreoffice which leaks metadata | "pdf": | Not recorded | | 
 | Graphics acceleration on Replicant | <pre> 
 $ git clone 
 $ cd graphics-presentations 
 $ make 
 </pre> | "pdf": Needs to be published | "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": 


 h2. Planned discussions 

 The discussions were not recorded for privacy/intimacy reasons but a sumary of some of the important ones are available [[ReplicantContributorsMeetingJuly2019#Discussion-results|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 
 * [[Upstream]] 
 * 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. | | | 

 h2. 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. 

 h2. Available hardware 

 h3. Devices 

 Good practices: 
 * It would be a good idea to put your name on a sticker on the device if possible 

 |_. Person |_. Hardware |_. Comments |_. Usage | 
 |/12. 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 | | 
 | GTA04 A3 | | | 
 | GTA04 A4 | | | 
 | Optimus black (P970) | | | 
 | GTA01 |/4. Used in a presentation about Replicant history | | 
 | GTA02 | | 
 | HTC Dream | | 
 | N900 | Testing the battery charger driver is still needed but require a heavy PSU | 
 |/4. Fil | Galaxy Note 2 (N7100) stock bootloader | [Working] Available for non-critical tests | * Test the upstream touchkey driver 
 => TODO: 
 * 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 | * -Add support for it in the [[BackupTheEFS]] instructions- | 
 |/2. Paulk | Galaxy Note (N7000) | | * -Add support for it in the [[BackupTheEFS]] instructions- | 
 | Galaxy Tab 2 10.1 (P5100) | | * Add support for it in the [[BackupTheEFS]] instructions | 
 |\2. Looking for a Galaxy Note 8.0 (N5100) | | * Add support for it in the [[BackupTheEFS]] instructions | 

 h3. Debug utilities 

 |_. Person |_. Hardware |_. Comments |_. Usage | 
 |/6. GNUtoo | Serial port cable with variable resistors |    | 
 | Multimeter |    | 
 | 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) | 
 |/1. Fil | SIM card that is not recognized in Replican 6 | | 

 h2. Discussion results 

 h3.    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. 

 Consensus in that meeting: 
 * 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 

 h3. 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 

 Consensus in that meeting: 
 * 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 

 h3. 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 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. 

 Consensus in that meeting: 
 * 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. 

 h3. 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  

 Consensus in that meeting: 
 * 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 

 h3. 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 plan 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 

 h3. 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 ( 

 Consensus in that meeting: 
 * Also enable translations in other languages than English in the wiki, but warn readers that the information might be outdated when it's translated. 

 h3. 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. 

 Consensus in that meeting: 
 * 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 ( 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. 

 h3. Funding work on f-droid 

 Consensus in that meeting: 
 * Enabling Fil Bergamo to work on making F-Droid FSDG compliant through NlNet funding 

 h3. Using oFono RIL 

 Points that were mentioned or discussed: 
 * Enabling Fil Bergamo to work on making that through NlNet funding 

 Consensus in that meeting: 
 * Using oFono RIL is a good idea, even if it's unmaintained. Replicant would then become its maintainer 

 h3. 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: 
   *URL:* [[NexusSI902xSerial]] 
   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: 
   *URL*: [[SamsungGalaxyBackdoor]] 
   The following analysis was conducted using the 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/ 
 ** 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. 

 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. | 

 h3. 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  
 * Firefox Lite was mentioned but it was dismissed due to very concerning privacy issues with its privacy policy 

 h3. 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. 

 h3. 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  

 Consensus in that meeting: 
 * Getting closer to AOSP 

 h3. Android upstream vs GNU/Linux upstream 

 Consensus in that meeting: 
 * Getting closer to GNU/Linux upstream (for hardware support like modems, etc) 

 h2. Video encoding 

 h3. Sound 

 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 

 h3. 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 

 Once that is done you can remove the part before the presentation this way: 
 * 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. 

 h2. Files