Signal is an encrypted communications application, a successor of the RedPhone encrypted voice calling application and the TextSecure encrypted texting program. It has versions for Android and iOS, and also a desktop version for Windows, Linux, and MacOS.
From what I can tell, the desktop version of Signal is built upon the Electron framework.
A couple of months ago, I have faced an issue: Signal Desktop client failed to start. When trying to run it from the console, I saw the following error message:
(/opt/Signal/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:4:15) at Object. (/opt/Signal/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:190:3)
Googling for “signal failed to map segment from shared object” produced no meaningful results (at least, at that time), but the answer to the question was in fact in the third line of the error message: Error: /tmp/.org.chromium.Chromium.j4ITUv: failed to map segment from shared object. “Failed to map segment from shared object” means that for some reason the shared object was not executable, and
/tmp pointed to the location. The actual issue was that my
/tmp was mounted as
noexec (yes, that was on a desktop).
The solution was to remount
exec temporarily, run Signal, and then remount
/tmp back with
sudo mount /tmp -oexec,remount signal-desktop sleep 30 sudo mount /tmp -onoexec,remount
Another alternative is, of course, not to be paranoid and not mount
Hope this helps someone 🙂