beakerbrowser / beaker

An experimental peer-to-peer Web browser
https://beakerbrowser.com/
MIT License
6.75k stars 544 forks source link

beaker-browser-0.7.10-x86_64.AppImage doesn't work on Debian Jessie #796

Closed millette closed 4 years ago

millette commented 6 years ago

https://packages.debian.org/jessie/libstdc++6 is the "culprit", it's 4.9.2 in jessie (oldstable), but 6.3.0 in stretch (debian stable).

$ ./beaker-browser-0.7.10-x86_64.AppImage 
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.VjB6nh)
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
    at Object.Module._extensions..node (module.js:598:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:187:18)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/tmp/.mount_beakerYG4DAa/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:4:15)
    at Object.<anonymous> (/tmp/.mount_beakerYG4DAa/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:190:3)
pfrazee commented 6 years ago

Possible clues: https://github.com/mapnik/node-mapnik/issues/710#issuecomment-296837789

Yeah, I might just suggest you update Debian. Appreciate that you filed this though!

jwko commented 6 years ago

I have same issue on CentOS Linux release 7.4.1708

/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

Probably no easy way to Fix it :

https://www.centos.org/forums/viewtopic.php?t=64860&p=272794

https://rpmfind.net/linux/rpm2html/search.php?query=libstdc%2B%2B.so.6%28GLIBCXX_3.4.21%29%2864bit%29&submit=Search+...&system=&arch=

pfrazee commented 6 years ago

Yeah, if you're getting that error, the simplest solution is to build from source.

jwko commented 6 years ago

Thanks a lot ! It worked like a charm. Amazing project.

pfrazee commented 6 years ago

Thanks! 😄

elimisteve commented 6 years ago

FYI, Debian 8.10 still has this issue :-) .

Will try building from source...

pfrazee commented 6 years ago

Hmm! Noted

millette commented 6 years ago

@elimisteve, Debian 8 (Jessie, oldstable) isn't supported by the current AppImage, but Debian 9 (Stretch, stable) is.

jwmh commented 6 years ago

@pfrazee I'm getting almost identical issue, on Mint (Ubuntu-fork) -- BUT I have some (potential) good news!

After doing some research, it seems this is a common issue when compiling on and for very different *nix platforms/environments. Others' coding projects ALSO get error -- not when compiling, but when running executable AppImage.

I've found a clear culprit(s)...... incl reports of similar issues (on other GitHub projects)... ... as well as potential workarounds or solutions.

Similar end-user bug-reports (from other projects -- please read to understand the validity of this issue): [1] https://github.com/typora/typora-issues/issues/504

Clear explanations of what's causing these symptoms -- and possible work-arounds [2] https://stackoverflow.com/questions/36816570/glibcxx-3-4-21-not-defined-in-file-libstdc-so-6-with-link-time-reference [3] https://github.com/conan-io/conan/issues/1684


For completeness, here are full details at my end:
Either one of two errors...

.

further details of errors, and walkthrough:

I'm currently as up-to-date as can be! What happened: First -- on Mint 17.2, before distro & other upgrades -- was getting this error:

$ ./beaker-browser-0.8.0-prerelease.7-x86_64.AppImage --help

installed: X-AppImage-BuildId=77d91d70-93a3-11a8-36a3-27d1fc992174 image: X-AppImage-BuildId=77d91d70-93a3-11a8-36a3-27d1fc992174 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.vEeo0S)_ 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. (/tmp/.mount_beakeraMS36U/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:4:15) at Object. (/tmp/.mount_beakeraMS36U/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:190:3)


But now -- AFTER the distro 17.2 -> 17.3... and other software upgrades... ... here is my current system:

$ uname -a
Linux freekbox 4.4.0-135-generic #161~14.04.1-Ubuntu SMP Tue Aug 28 11:17:49 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$
$ cat /etc/*-release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17.3
DISTRIB_CODENAME=rosa
DISTRIB_DESCRIPTION="Linux Mint 17.3 Rosa"
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"

... and now the error has changed:

$ ./beaker-browser-0.8.0-prerelease.7-x86_64.AppImage --help installed: X-AppImage-BuildId=77d91d70-93a3-11a8-36a3-27d1fc992174 image: X-AppImage-BuildId=77d91d70-93a3-11a8-36a3-27d1fc992174 Logfile: /home/joseph/.config/Beaker Browser/debug.log

/tmp/.mount_beakerlCIsXO/app/beaker-browser --help: relocation error: /tmp/.org.chromium.Chromium.Jza1Ay: symbol _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference


Note that in both of the above cases, the errors are basically saying, "We're looking within your existing libstdc++.so.6 ... to try to find glibcxx_3.4.21 ... but we're not finding it!"

... So.... (per advice from another websearch forum result)... ... I ran this, to check what I /do/ have!

# strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep -i glibcxx
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
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_DEBUG_MESSAGE_LENGTH

As you can see... It should totally be recognizing the GLIBCXX versions I do have! Both in the first error (before upgrade, when it says 'not found') AND in the second error (after upgrade, when it says 'symbol not defined...').

Both of the strings libstdc++.so.6 command outputs -- prior and post upgrade -- gave the exact same GLIBCXX_* info. Yet, after a full systems upgrade, the error changed. ... There's a clue -- after the upgrade, it says 'there are /symbols/ which are not defined //with a link time reference.//' .

The best two or three answers seem to be here: PLEASE READ THIS CAREFULLY! Many relevant nuggets here: [2] https://stackoverflow.com/questions/36816570/glibcxx-3-4-21-not-defined-in-file-libstdc-so-6-with-link-time-reference (read all of the comments on this Q&A!) Other highly relevant(?) useful sources: [3] https://github.com/conan-io/conan/issues/1684 and this last one really gets into details... [4] https://stackoverflow.com/questions/34571583/understanding-gcc-5s-glibcxx-use-cxx11-abi-or-the-new-abi

... Without a) refining a little code in the build instructions, or b) recompiling from scratch in an environment like those of us having issues, I don't know of any way for me to fix this.

Nevertheless... ... I'll see whether I can successfully compile & run from source -- just to see whether it resolves the issue for me or not. . I hope this comment is helpful! P.S. I am absolutely on the latest version of Linux Mint available. There's no more upgrading to be done.

jwmh commented 6 years ago

P.P.S. I just used binaries .8 and .9 -- still same exact issue; not fix. So this hasn't been resolved in newer versions.

$ ./beaker-browser-0.8.0-prerelease.9-x86_64.AppImage 
installed: X-AppImage-BuildId=51aa4c70-b1f1-11a8-049c-adf2b6174326 image: X-AppImage-BuildId=e12df640-b3ad-11a8-2561-43b21886f10d
(node:7241) Warning: N-API is an experimental feature and could change at any time.
Logfile: /home/joseph/.config/Beaker Browser/debug.log
/tmp/.mount_beakern7thQR/app/beaker-browser: relocation error: /tmp/.org.chromium.Chromium.4kBHBX: symbol _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

(BTW... the debug.log is always empty, 0-byte file.)

. . Can we change the title of this bug, to e.g.: _"beaker-browser AppImage won't work -- errors referencing GLIBCXX3.4.21" ?

p.p.p.s. <3 all the work y'all are doing is amazing. thank you. <3

katyannflowergirl commented 6 years ago

Got a similar bug with Debian 8:

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.0WiPR5)
    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> (/tmp/.mount_beakerGA0iI4/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:4:15)
    at Object.<anonymous> (/tmp/.mount_beakerGA0iI4/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:190:3)
Butterfly commented 6 years ago

Hi.. Only know to ask this because it's been mentioned a few times in my own *nix'ing lately.. Does $PATH play any part in this where it might not be (properly) defined or something?

Or maybe there's something about relative linking or something where it's not pointing in the right direction maybe? Like maybe it's pointing up too high or not pointing up high enough into the parent directory tree while seeking what's alleged to be missing?

It's that part about "can't find" AND yet at least that one instance reports it IS there on that computer that brought those to mind. :smile:

pfrazee commented 6 years ago

I just updated my linux build machine to Ubuntu 16.x, which is one of the suggestions in the linked stackoverflow.

I created a new build, would somebody with this issue try it for me? https://drive.google.com/file/d/1jqZyPRki8nAfsZdH5HHUXVteM7PCeq7o/view?usp=sharing

millette commented 6 years ago

I'm still running Debian Jessie but thought I'd give it a try. That what happens:

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.dtorfm)
    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> (/tmp/.mount_beakerbWCJhv/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:4:15)
    at Object.<anonymous> (/tmp/.mount_beakerbWCJhv/app/resources/app.asar/node_modules/sqlite3/lib/sqlite3.js:190:3)
pfrazee commented 6 years ago

Yeah this new build should only help recent versions.

millette commented 6 years ago

Also, I don't think supporting Jessie matters at this point. I should definately upgrade my OS :-)

katyannflowergirl commented 6 years ago

I will try it with Debian 9 too and see if that works better.

kamilchm commented 5 years ago

I couldn't run Beaker >= 0.8.0 AppImage on NixOS. It looks like a missing lib in the package:

installed: X-AppImage-BuildId=1d7f2c70-e9bb-11a8-3317-8344e09c9cf4 image: X-AppImage-BuildId=1d7f2c70-e9bb-11a8-3317-8344e09c9cf4
/home/kamil/.cache/appimage-run/a70de60a6b53ab3d9ab954f42735320adc5648ac256906d446aca7c369556395//squashfs-root/app/beaker-browser: error while loading shared libraries: libatk-bridge-2.0.so.0: cannot open shared object file: No such file or directory

0.8.0-prerelease.9 works fine

mkroehnert commented 5 years ago

@kamilchm while I think, this should be a separate ticket, I can confirm the same issue on NixOS for both the 0.8.0 and the 0.8.1 appimage. When I have the time, I will crosscheck on NixOS IRC if this could be a problem with appimage-run.

kamilchm commented 5 years ago

@mkroehnert it looks like appimage-run issue. I've fixed it with https://github.com/NixOS/nixpkgs/pull/51060

kamilchm commented 5 years ago

@TheAssassin pointed me to the list of libraries excluded from AppImages https://github.com/AppImage/AppImages/blob/master/excludelist It looks like there's no libatk-bridge so it could be a potential error in the Beaker Browser packaging.

TheAssassin commented 5 years ago

@kamilchm can you check with lddtree which library pulls it in? It doesn't seem like a direct dependency at a first glance, so possibly one of the libraries within NixOS is built differently (i.e., w/o that dependency), leading to this bug.

kamilchm commented 5 years ago

I don't know how to interpret this:

$ lddtree /home/kamil/.cache/appimage-run/a70de60a6b53ab3d9ab954f42735320adc5648ac256906d446aca7c369556395//squashfs-root/app/beaker-browser
beaker-browser => /home/kamil/.cache/appimage-run/a70de60a6b53ab3d9ab954f42735320adc5648ac256906d446aca7c369556395//squashfs-root/app/beaker-browser (interpreter => /lib64/ld-linux-x86-64.so.2)
    libnode.so => /home/kamil/.cache/appimage-run/a70de60a6b53ab3d9ab954f42735320adc5648ac256906d446aca7c369556395//squashfs-root/app/libnode.so
    libpthread.so.0 => not found
    libgtk-3.so.0 => not found
    libgdk-3.so.0 => not found
    libpangocairo-1.0.so.0 => not found
    libpango-1.0.so.0 => not found
    libatk-1.0.so.0 => not found
    libcairo.so.2 => not found
    libgdk_pixbuf-2.0.so.0 => not found
    libgio-2.0.so.0 => not found
    libgobject-2.0.so.0 => not found
    libatk-bridge-2.0.so.0 => not found
    libdbus-1.so.3 => not found
    libX11-xcb.so.1 => not found
    libxcb.so.1 => not found
    libXi.so.6 => not found
    libXcursor.so.1 => not found
    libXdamage.so.1 => not found
    libXrandr.so.2 => not found
    libXcomposite.so.1 => not found
    libXext.so.6 => not found
    libXfixes.so.3 => not found
    libXrender.so.1 => not found
    libX11.so.6 => not found
    libXtst.so.6 => not found
    libXss.so.1 => not found
    libglib-2.0.so.0 => not found
    libnss3.so => not found
    libnssutil3.so => not found
    libsmime3.so => not found
    libnspr4.so => not found
    libffmpeg.so => /home/kamil/.cache/appimage-run/a70de60a6b53ab3d9ab954f42735320adc5648ac256906d446aca7c369556395//squashfs-root/app/libffmpeg.so
    libasound.so.2 => not found
    libcups.so.2 => not found
    librt.so.1 => not found
    libdl.so.2 => not found
    libfontconfig.so.1 => not found
    libexpat.so.1 => not found
    libm.so.6 => not found
    libgcc_s.so.1 => not found
    libc.so.6 => not found
    ld-linux-x86-64.so.2 => not found
TheAssassin commented 5 years ago

Not sure what this means either, it looks strange.

Does appimage-run really extract all AppImages? What a crappy design -- that degrades AppImages to self-extracting-archives!

TheAssassin commented 5 years ago

Checked locally, this output seems right (the libs are direct dependendencies, we can just not see their dependencies because of the not found issues).

An analysis of this issue on NixOS doesn't make sense, as they have some weird organization of their OS files.

jwmh commented 5 years ago

Update at my end: Using a newer version of Mint (18.3, instead of 17.3):

So, yes: Older versions (even by a couple years) of distros.... ain't gonna cut it w this browser (for now).