Closed mihai-chezan closed 1 month ago
Same issue exists on Debian Jessie.
Works as expected on Debian Stretch.
edit: repost to mitigate the "me too" spam...
Workaround
Back in business :ok_hand:
- (optional) uninstall system packages for
nodejs
,npm
,yarn
- get nvm
nvm install 8.9.3
, see nvmrc- with
node
andnpm
set up, clone this repo and follow the build stepsyarn start
launches signal-desktop
- scan QR code via mobile app to link
- Fix "No device found" (#6722) by adding config file
I am having the problem too with 1.15.0 on Ubuntu 14.04. Seems they are expecting us to have newer libc than the OS will provide.
$ signal-desktop
A JavaScript error occurred in the main process
Uncaught Exception:
Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium.Chromium.64hzcG)
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20)
at Object.Module._extensions..node (module.js:671:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:186:18)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at Module.require (module.js:586:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/opt/Signal/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:4:15)
at Object.<anonymous> (/opt/Signal/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:190:3)
^C$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6|grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.18
GLIBC_2.3.4
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
$
They also seem to make it impossible to find previous version to reinstall. The packages come from updates.signal.org but is impossible to browse this site. Fortunately I had previous version still in /var/cache/apt/archives/signal-desktop_1.14.4_amd64.deb. If you can find previous version then can install with "dpkg -i deb-file", as a temporary work around until this is resolved. This worked for me and Signal Desktop is running again. Also be sure to lock the version so it doesn't get updated to 1.15 again when you run the software updater, can do that in various ways as described here for example, https://askubuntu.com/questions/18654/how-to-prevent-updating-of-a-specific-package
same story @LMDE2
It seems to 1.50 release did fail the QA testing - there are issues on all platforms with this rel. Is it possible to release a successor that reverts to 1.14 for now? I mean official 1.15.1 package that is basically the previous stable 1.14?
Can confirm this for Ubuntu 14.04. Was running v1.14.4 yesterday, today upgraded to 1.15.0, won't start due to lack of said glibcxx.
Confirmed by on debian jessie. Reverted to 1.14.4 successfully.
I'm getting the same error on 1.15.2.
version 1.15.2 on debian jessie problem still unsolved
Issue still on 1.15.3. I am on Linux Mint 17.3 (Ubuntu 14.04). Reverted back to 1.14.4 successfully. Thanks @scarf!!!
In case you want to validate a 1.14.4 build you locate, here is the sha256sum
of the package I have. Please :+1: if yours agrees.
99a26b3eb2196a9f3a19c7c8eb8b15711fd731da25e1e7ff79664f44cec92015 signal-desktop_1.14.4_amd64.deb
Matches, if someone needs to grab this .deb
, I've uploaded it here: http://up.pmcm.pl/download/1/ce125efcb03f46b78993041f
I was able to downgrade from 1.15.3 to 1.14.4 using the package that @mykhi linked to (and I confirmed that the sha256sum
matches the one that @molo1134 posted). Signal now starts without errors.
Here's a Bash one-liner to verify the signature yourself:
[ "99a26b3eb2196a9f3a19c7c8eb8b15711fd731da25e1e7ff79664f44cec92015 signal-desktop_1.14.4_amd64.deb" == "$(sha256sum signal-desktop_1.14.4_amd64.deb)" ] && echo "Success!" || echo "Failure!"
Same issue here. After reverting to 1.14.1, which was still cached by apt, it works again.
Same issue here, with Debian Jessie.
Same issue on 14.04
Same issue with Linux Mint 17.3 Cinnamon 2.8.8 and Signal Version 1.15.5
I have also this issue on Ubuntu 14.04
Same problem here. Kubuntu 14.04, all updates installed.
:~$ signal-desktop
A JavaScript error occurred in the main process
Uncaught Exception:
Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium.Chromium.3tF8gf)
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20)
at Object.Module._extensions..node (module.js:671:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:186:18)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at Module.require (module.js:586:17)
at require (internal/module.js:11:18)
at Object.
:~$ apt show libstdc++6:amd64 Package: libstdc++6 Version: 4.8.4-2ubuntu1~14.04.4
:~$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6|grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBC_2.3 GLIBC_2.2.5 GLIBC_2.14 GLIBC_2.4 GLIBC_2.18 GLIBC_2.3.4 GLIBC_2.17 GLIBC_2.3.2 GLIBCXX_DEBUG_MESSAGE_LENGTH
Same issue with LMDE2 (Linux Mind Debian Edition). It does run in the Beta LMDE3, however it's not stable enough for normal uses. Had run it in VirtualBox.
Very disappointing older, working, stable versions of Signal Desktop are not kept in the repository for an easy downgrade to a functional version.
So, I guess we wait for signal to make the compiler version required more forgiving or for Debian to update the compiler version in stable?
yes, we wait for signal to build a special signal-desktop package for us or for the distribution to update the package libstdc++.so.6 . But I don't even know if thats possible, maybe a system upgrade is necessary
it is possible to clone the latest version from github and build the app by yourself, using your system's (older) compiler
$ yarn install --frozen-lockfile ## from upstream, dl.yarnpkg.com
yarn install v1.9.4
[1/6] Validating package.json...
error signal-desktop@1.15.5: The engine "node" is incompatible with this module.
Expected version "^8.9.3".
error Found incompatible module
jessie-backports only ships nodejs 4.8.2
. npm
is its own funny situation. I think my next move is to try node version manager.
None of this is really Signal's problem, but it does highlight the need for proper package archives.
Back in business :ok_hand:
nodejs
, npm
, yarn
nvm install 8.9.3
, see nvmrcnode
and npm
set up, clone this repo and follow the build stepsyarn start
launches signal-desktop
Is this fixed in 16?
Nope. I tried it when 1.16.0 was first released and same issue. Had to downgrade back to 1.14.4.
Have same issue with my Mint 17.3 Cinnamon.
/opt/Signal/signal-desktop: relocation error: /tmp/.org.chromium.Chromium.hkmqhg: symbol _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
Same with 1.16.2 on mint 17.3 Mate. I had to revert to the above mentioned version.
It seems ALL distributions based on Ubunut 14.04/debian jessie are broken.
Strange nobody cares (nobody is even assigned!) about all those (still supported!) distributions.
@scottnonnenberg-signal Would you mind commenting if Signal doesn't plan to maintain the infrastructure for this, so people know their options are (1) build from source or (2) upgrade their OS?
@moxie0 @moxie-signal I would rattle the RFP cage, but it looks like there are some open questions? Thanks for any insight!
Ubuntu Trusty variants and Mint variants in question are Long Term Support. My signal-desktop refused to continue saying the version wouldn't be supported anymore. Therefore, I did the update. And the result: it did not work at all.
it is possible to clone the latest version from github and build the app by yourself, using your system's (older) compiler
$ yarn install --frozen-lockfile ## from upstream, dl.yarnpkg.com yarn install v1.9.4 [1/6] Validating package.json... error signal-desktop@1.15.5: The engine "node" is incompatible with this module. Expected version "^8.9.3". error Found incompatible module
jessie-backports only ships
nodejs 4.8.2
.npm
is its own funny situation. I think my next move is to try node version manager.None of this is really Signal's problem, but it does highlight the need for proper package archives.
Yes, that is what I did. I did what some of the others said and used NVM to back peddle to Node v.8.9.3.
I ran the commands as stated here: Getting Dev Envrionment Up
I then went into the config folder of the initial repo and created a file:
local-development.json
and added the lines
{
"serverUrl": "https://textsecure-service.whispersystems.org",
"cdnUrl": "https://cdn.signal.org"
}
To build a .deb
file I ran
yarn generate --force
followed by
yarn build-release --force
I did what some of the others said and used NVM to back peddle to Node v.8.9.3. I was able to build a stable version of v1.16 and works fine now. You can either follow the instructions below or I have the built .deb
file here: Google Drive
I ran the commands as stated here: Getting Dev Envrionment Up
I then went into the config folder of the initial repo and created a file:
local-development.json
and added the lines
{
"serverUrl": "https://textsecure-service.whispersystems.org",
"cdnUrl": "https://cdn.signal.org"
}
To build a .deb
file I ran
yarn generate --force
followed by
yarn build-release --force
Works in LMDE 3.
@garretjames's directions worked perfectly for me, except instead of
yarn build-release --force
I left off the --force
:
yarn build-release
@moxie-signal @scottnonnenberg-signal
The last version of Signal which was not affected by this bug has now stopped working:
This version of Signal Desktop has expired. Please upgrade to the latest version to continue messaging.
Users of the affected systems now cannot use Signal at all anymore.
Can we please get a fix?
@leo-bogert I have the same problem. This is disappointing. I was kind of ok with being stuck on v1.14.4 (though I really want to use the new versions), but now I can't even use Signal Desktop anymore :(.
It would be nice if Signal specified which versions of which Linux distro's are supported. Currently it only says 64-bit distributions supporting APT, like Ubuntu or Debian, but Ubuntu 14.04 (and all distributions based on it?) can't install the latest Signal Desktop version for 2.5 months already and now they can't even use Signal Desktop at all.
Will this be fixed or not? Ubuntu 14.04's EOL is just 6 months away so I can imagine that @scottnonnenberg could better put effort in other development tasks if this is issue is hard to solve, but if it is easy to solve then it would be nice to fix it :). In any case it would be nice to know what we can expect :).
As always kudos for the great work on Signal :heart: !
Similar story here, failed upgrade. Just tried upgrading today based on the "update within X days" banner. Linux Mint 17.2.
Clicking on the desktop icon opens the window but only with the "You are almost done, download and run the new version" message.
In the terminal it hangs and does not open.
myuser@linuxmint ~ $ signal-desktop
Set Windows Application User Model ID (AUMID) { appUserModelId: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR /opt/Signal/resources/app.asar/config
NODE_CONFIG {}
ALLOW_CONFIG_MUTATIONS undefined
HOSTNAME undefined
NODE_APP_INSTANCE undefined
SUPPRESS_NO_CONFIG_WARNING undefined
userData: /home/myuser/.config/Signal
config/get: Did not find user config file, cache is now empty object
config/get: Did not find ephemeral config file, cache is now empty object
Uncaught error or unhandled promise rejection: Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium.Chromium.bqgYBD)
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:166:20)
at Object.Module._extensions..node (module.js:671:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:180:18)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at Module.require (module.js:586:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/opt/Signal/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:4:15)
at Object.<anonymous> (/opt/Signal/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:190:3)
@siccovansas
Ubuntu 14.04's EOL is just 6 months away so I can imagine that @scottnonnenberg could better put effort in other development tasks if this is issue is hard to solve, but if it is easy to solve then it would be nice to fix it :)
Well, at first glance yes, but here are some further thoughts:
If we take a step back from Signal we can realize that encrypted instant messengers were technically possible at least 15 years ago, there's no reason why they should require a super recent library now. Especially considering that the glibcxx isn't even about anything fancy like encryption.
dist-upgrading a machine which is under heavy use is multiple days or even multiple weeks of work until everything is tested and working - which I had not scheduled until shortly before the EOL, and don't have the time for right now. It'd be nice if the EOL date of the most popular distribution was something which could be relied upon for popular software :|
What about the EOL of the other affected distributions? There are dozens of comments here.
Sorry for being an annoyance here, but it's just impossible for me to find the weeks of time now to dist-upgrade just for Signal.
Another workaround is to download newer libstdc and start signal-desktop with LD_LIBRARY_PATH environment variable. I prefer this than installing whole new development environment and compiling signal-desktop from source everytime a new version is released. With this workaround, signal-desktop can be kept up to date using repository like normal, only need to update the launcher command when signal-desktop gets updated.
For example, Ubuntu 14.04:
Since Ubuntu is based on Debian, can just download newer library from debian, for example https://packages.debian.org/stretch/libstdc++6 (scroll down and select your architecture) and download the deb from a mirror. DON"T INSTALL the deb package, instead extract the contents. First make a directory to put the newer library in, e.g. ~/libc, then use ar command to extract the deb package: ~/libc$ ar vx ~/Downloads/libstdc++6_6.3.0-18+deb9u1_amd64.deb
It will extract 3 files, debian-binary, control.tar.gz, and data.tar.xz. data is the one we want, so can delete the other two. Now extract the data.tar.xz: ~/libc$ xz -cd data.tar.xz | tar -xvf -
Now you'll have the newer library and link in ~/libc/usr/lib/x86_64-linux-gnu/. Nothing else is needed so you can move these two files to ~/libc directly and delete everything else. Now you may update signal-desktop as normal and test starting it with LD_LIBRARY_PATH: $ LD_LIBRARY_PATH=~/libc signal-desktop
If this works for you like it did with me then signal-desktop will start normally and optimize your messages.
Now you may quit signal-desktop and update the launcher so you don't have to use command line always. For me I'm using Unity and the launcher is the file /usr/share/applications/signal-desktop.desktop. Update the line so it looks like this (warning, you may need to exit your desktop session and switch to a console (ctrl-alt+F1) since when I edited this file it crashed the session, but could be because I entered the wrong data initially):
Exec=env LD_LIBRARY_PATH=/home/scar/libc /opt/Signal/signal-desktop %U
Note the addition of "env" and also removal of quotes, and expanded ~/libc to full path. I found this was the way to make it work. Now you can launch signal-desktop normally through your window manager. This should be the only step you need to repeat when signal-desktop gets updated.
@moxie-signal @scottnonnenberg-signal Are you fucking shitting me? First you break the new versions of the software, then you ignore the bug reports, now you retroactively castrate the working older versions? Are you actively trying to drive people to less secure messengers?
To name but a few: Ubuntu 14.4, Kubuntu 14.4, Lubuntu 14.4, Mint 17, LMDE2 debian 8 Jessie (Long term support until June 2020 !!!!!!) Many millions of installations: they all are forced into an Upgrade which does not work.
I had convinced many people to use signal ... "unfortunately", I must say, because now they all complain to me and move back (and even worse: they will not return) to other messengers.
This all would not be a problem, if there was a package maintained by the proper debian package manager. However, as I discovered: signal doesn't want proper package managers, because:
"Distributing it through another channel would only complicate things without providing any clear benefit." and "Letting others maintain a package for your app (like Signal-Desktop) is bad because you are no longer in control which version is shipped, and users blame and annoy you for bugs you fixed ages ago." See: https://github.com/signalapp/libsignal-service-java/issues/50
Great idea, because the result is distributing a package which doesn't work and - even better - it is not allowed to use the working one anymore. It seems, that a properly working version would not be "any clear benefit".
Big detriment to signal (and to my reputation through recommeding signal).
I'm glad that signal already did not work when I wanted to start using it a few weeks ago.
Just imagine all of this would have happened a few weeks after migrating to Signal and persuade other to also do so. Would have been prette annoying and embarassing.
Out of curiosity, what is happening with this? We are three months later with no resolution. Do we give up on Signal? I also don't currently have time to upgrade my machine to the latest Linux Mint LTS just so Signal will work.
It would be nice to hear from a Signal representative to have some hope @moxie-signal @scottnonnenberg-signal @gasi-signal
Considering that those people have been mentioned multiple times on this issue and have yet to react to any of those notifications, I guess Signal's official position is "get fucked".
So we return to the dark ages of 2015: There is no Signal desktop client.
Just adding my name to the pile as I'd been struggling to fix this myself for a while now - @scarf thanks for the directions, that worked great!
@Chris56 makes great points IMO, but I stay hopeful that Signal devs will at least let us know their thoughts sometime soon. There's an older request in Debian bugs (wishlist) that had stalled - perhaps a good time to revive discussion there instead? https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943
Note that there are potential minor issues should there be continued push against direct Debian inclusion - the app identified by it's current name and icon may be a trademark issue.
I'd like to provide a bit of additional information on how to go from the git repo to a .deb file that can be installed (on Ubuntu 14.04 (ancient!)). My version of signal warned me that I had to update to keep using, and I got into this mess here.
The steps I post are based on @mockturtl 's message, and also cover deb release creation and installation. At the end of these steps here, you'll be able to start the latest version of signal desktop from the window manager Launcher. (no need to run some yarn command from a git checkout folder).
Not being a developer in this project, it wasn't exactly obvious how one should go from a dev build to a debian file which was installable. The build instructions cited earlier leave you in a state where you have to start it from the checked out repo folder... which is not very practical, especially if you have to select your node version each time.
I considered downloading the deb posted earlier in the thread, but I'm not sure what the hash of the official release used to be. In the interest of freshness, I've decided to install the latest code available. (I'm aware that technically, there's an entirely different chain of trust involved in downloading from GitHub, but at least it's meant to be an official source -- are release hashes stored in some verifiable log?).
git clone https://github.com/signalapp/Signal-Desktop.git && cd Signal-Desktop
choose your git branch of choice (I picked master. fingers crossed)
build it (based on this):
nvm install 8.9.3
nvm use 8.9.3
npm install --global yarn # (only if you don’t already have `yarn`)
yarn install --frozen-lockfile # Install and build dependencies (this will take a while)
yarn grunt # Generate final JS and CSS assets
yarn icon-gen # Generate full set of icons for Electron
yarn test # A good idea to make sure tests run first
# yarn start # don't start it yet. or start it to see if it works.
I went a bit further and generated a deb.
yarn build-release
Install the deb.
# change the version to whatever was generated. you'll see in the output of the previous command.
sudo gdebi release/signal-desktop_1.18.0-beta.7_amd64.deb
Start your latest fixed signal-desktop.
# I did --import because it was the first time I ran it since an upgrade. omit otherwise.
signal-desktop --import
If this information was elsewhere on the site, my apologies for the duplication. I didn't see it in the build readme.
Just wanted to join in on the fun, I'm experiencing this with signal-desktop 1.18.1 on ubuntu 14.04.5
$ signal-desktop
Set Windows Application User Model ID (AUMID) { appUserModelId: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR /opt/Signal/resources/app.asar/config
NODE_CONFIG {}
ALLOW_CONFIG_MUTATIONS undefined
HOSTNAME undefined
NODE_APP_INSTANCE undefined
SUPPRESS_NO_CONFIG_WARNING undefined
userData: /home/alexb/.config/Signal
config/get: Did not find user config file, cache is now empty object
config/get: Did not find ephemeral config file, cache is now empty object
Uncaught error or unhandled promise rejection: Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.org.chromium.Chromium.C1qQAV)
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:166:20)
at Object.Module._extensions..node (module.js:671:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:180:18)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at Module.require (module.js:586:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/opt/Signal/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:4:15)
at Object.<anonymous> (/opt/Signal/resources/app.asar/node_modules/@journeyapps/sqlcipher/lib/sqlite3.js:190:3)
I don't have time to upgrade my OS just for Signal, or test these debugging steps, but I'll come back and give them a go soon.
@alexburner i think this is the easiest work-around for now: https://github.com/signalapp/Signal-Desktop/issues/2604#issuecomment-431624475
There is another issue #2595 open for 1.15.0 crashing but I don't think is the same issue.
Bug description
After upgrading signal-desktop from 1.14.4 to 1.15.0, it stopped working. Running from console gives this error message:
Steps to reproduce
Actual result:
Expected result:
It should start without errors. It worked before the upgrade.
Platform info
Signal version: 1.15.0
Operating System: Linux Mint Mate 17.3