Building and running Signal Desktop on the Librem 5

Well, I guess what they want to express is that you need a SIM. Maybe the desktop version can be tweaked in that direction. (Or someone builds a monstrosity that runs the Waydroid version automatically in the background only to enable the desktop version :stuck_out_tongue:)

1 Like

I tried to follow your guiding, but it stopped at the start because this was missing:

sudo apt install python3-distutils
sudo apt install g++

./configure
Node.js configure: Found Python 3.9.2...
INFO: configure completed successfully

Now it is compiling with make -j2

2 Likes

With arm64 becoming more common in laptops as well (PineBook Pro, new Apple MacBooks), I’m hoping that Signal upstream at some point provides arm64 builds themselves. This is great in the meantime though.

I was reading in advance through your guide about the RingRTC library … I have no Debian system to build this (only FreeBSD and Ubuntu). In the L5 there are 22 GByte free, isn’t this enough? If not, can you share this lib somehow for the L5? If not, I could stop the 5 hour building of node.js :frowning: Thanks.

Sadly at present waydroid does not work on the Librem 5. Just tested this morning. Causes the gui to lock up. https://github.com/waydroid/waydroid/issues/158

I’ve found the axolotl arm64 build for mobian to work reasonably well for my own Signal needs. The QT UI isn’t ideal and has some quirks (in particular with different QT apps fighting for keyboard input sometimes) but it does work and does fit.

4 Likes

Thanks for testing, I hadn’t seen a lot of discussion over it with the Librem5 - I know others will appreciate your link!

I’m now stuck in this:

purism@pureos:~/guru/ringrtc$ make electron PLATFORM=unix NODEJS_ARCH=arm64
Electron: Preparing workspace for unix
Downloading WebRTC dependencies to /home/purism/guru/ringrtc/src/webrtc from version 4389k
/home/purism/guru/ringrtc/bin/gsync-webrtc: 33: gclient: not found
make: *** [Makefile:75: electron] Error 127

Which pkg provides this gclient?

It’s part of something called “depot_tools” which I forgot to mention, you can get that by cloning https://chromium.googlesource.com/chromium/tools/depot_tools.git and then add the path to your PATH env variable. I don’t know if there is any debian package that provides, maybe there is, probably something related to chromium development then because depot_tools is according to the readme file “Tools for working with Chromium development”.

For me, 22 GB did not seem to be enough, but you can always try. You could also try adding extra storage to your L5, either put in a microSD card or attach an external USB drive and do the build on that disk space.

I could, but I’d like to avoid it, from a security perspective we should avoid using random binaries shared by random forum members such as myself. :slight_smile:

The make fetched with a lot of git processes for some 3 hours some 10 Gb of sources before starting compilations. I stopped it and will look for an external disk.

With the external disk the problem will be the supply of power for that many hours of download and building. Does the make allow to interrupt w/o starting from scratch again?

I thought again and better and will not proceed with building signal from 10 Gbyte sources from Google from which nobody knows what it might contain.

Signal is not good program if you are trying to use de-googled phone. The last time I tried to side-load the apk file it refused to start because I didn’t have Google-play services running.

I think that if you have Google Play Services installed, Signal requires it to be running, but if Google Play Services are not installed, then Signal should work.

2 Likes

I’ve got a LineageOS 18.1 de-googled Pixel 4a running signal app no problem since it uses MicroG instead of GAPPS which is the simple solution.

1 Like

Dont have a screenshot but on my last phone with all the Google apps disabled via ADB the Signal apk (official download) gave me a popup that it would still try to use Google Play Services since it was detected.

On my current phone without Google at all the apk works fine (runs the notification service in the background)

1 Like

But this fails to install:

sudo apt install ./axolotl_1.0.5-1_arm64.deb
[sudo] password for purism: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'axolotl' instead of './axolotl_1.0.5-1_arm64.deb'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 axolotl : Depends: libc6 (>= 2.32) but 2.31-13 is to be installed
E: Unable to correct problems, you have held broken packages.
1 Like

I also get this problem when trying to install axolotl_1.0.5-1_arm64.deb – looks like it wants libc 2.32 but in PureOS we have libc 2.31. I guess Mobian had libc 2.31 until recently and then the same package worked on both PureOS and Mobian. To get something that works in PureOS now we can take a previous version, I tried axolotl_1.0.4-1_arm64.deb and that worked (I mean it worked to install that deb file, trying to run the program is another story).

To get the previous version of the deb file, clone the whole repo and checkout the tag corresponding to the version you want:

git clone https://github.com/nuehm-arno/axolotl-mobian-package
cd axolotl-mobian-package/
git tag # to list all available tags
git checkout v1.0.4-1
ls *.deb # now the axolotl_1.0.4-1_arm64.deb file is there

Looks like there are instructions for building the deb file from source here: https://github.com/nanu-c/axolotl/blob/main/docs/INSTALL.md#mobian
Probably it’s possible to build a new package for the Librem 5 based on that, to ba able to run the latest axolotl version on the Librem 5.

Thanks. I installed the axolotl_1.0.4-1_arm64.deb pkg, subscribed my mobile number, got the SMS with the PIN. But was unable to add a contact (my other mobile number). After marking Add (contact) the screen went away and I had no contacts to write a message to. It is just not working. The same is with the axolotl on my Ubuntu mobile, there it is version 1.0.5 from September 23, 2021.

Does this make calls successfully as well, or only texts?

2 Likes

How can I determine the Node.js version that Signal currently wants?
Is it the version that is in this file: