Hello everybody, Axolotl contributor here.
I’m running Ubuntu Touch and don’t own a Librem 5, but I don’t want to use Android, and I deeply use Signal for years. So when I started using Ubuntu Touch when Firefox OS died, I started to look at a Signal client and found Axolotl. Many things were working, many else weren’t, so I started to contribute.
However, today, I feel like implementing a third party client like we’re doing isn’t the good way to be able to use Signal on GNU/Linux, for two main reasons:
- We will always be behind upstream, by definition. They implement new features, and then we try to follow, with less resources. It’s a continuous race we can’t win, and that’s exhausting, the last example being new groups feature quickly followed by the deprecation of old groups. All communication can stop instantly and without us being warned, leaving Axolotl users cut from their contacts, sometime even without noticing it. It already happened, and it will happen again. That’s scary.
- Security. Axolotl code is written with love and passion, and we deeply want to create a nice application. But we’re doing that on our spare time. The code has many bugs, doesn’t have a testsuite (yet) and never had any security audit. Signal is sometimes used in critical situations, and if users of Axolotl knows it is an unofficial client with worse quality, this situation isn’t acceptable for other Signal users writing to Axolotl users without knowing that the level of security is way lower.
And that’s without listing all “minor” problems like no push notifications + not knowing what upstream thinks and if they will block us etc.
So in my opinion, even if Axolotl is serving me well and I’m using it daily, and even if OWS is currently pushing a new lib for the Signal language written in Rust which could maybe be used, that’s not the way to go. We have in my opinion two other choices.
The best one would probably be to make Anbox working great and run the Signal APK. This would even profit to every other Android application and is probably the most important things to do if we want GNU/Linux phones to reach mass-market one day. The good news is that UBPorts (the foundation behind Ubuntu Touch) is now funding a developer on Anbox full time, and every GNU/Linux distributions will benefit from that.
However, this will take time and as a web developer, Anbox and every low level work is out of my skill. That brings me to the second solution, not perfect as it still means a lot of work, but at least reassuring regarding the two main points raised above: use the desktop Signal client, which is a web app running in electron. That way, most of the code comes from OWS, is done with quality processes and will provide all upstream features.
The way I see it, this project would have two main steps : 1 make the desktop client runs on phone (support ARM, adapt the UI, remove the need of electron if there are lighter webengines like qtwebengine on Ubuntu Touch) 2 add primary client capability to the desktop apps (ability to use it as the master Signal, not as a linked device: ability to register, to import contacts, to synchronize them on Signal server and to link secondary clients).
Obviously, I hope that upstream would accept the contributions. About the first part, it could be, I don’t see why they would block that (there already are many issues about it, support for ARM almost work and I already created mockups to improve the UI on small screen). But they aren’t active there so I don’t know honestly. The second step, to turns the desktop client into a primary client however will probably not be accepted, see for example the inactivity of contacts management even if it’s a requested feature…
So if we engage ourselves in this, we will probably have to maintain a fork, and with upstream maybe not loving what we’re doing. That’s also why I would prefer the Anbox solution but I can’t help on that topic.
A very different solution would be to have a Signal website where you can log and simply use it in your browser, but that’s also not pushed by upstream, but only OWS can do this.
Of course, before launching ourselves in anything, I want to have opinions from the different GNU/Linux community (Purism / PureOS, PostmarketOS, Ubuntu Touch, Sailfish…) and also from the desktop distributions as this would allow people to use Signal without having a smartphone. And I want to bring our thinking to OpenWhishperSystem as creating a fork is always the worst solution so if they finally see that the GNU/Linux community is active and wants Signal, maybe they will also propose something. After all, it’s their product.
So, first steps, collecting opinions of GNU/Linux users. What do you think?