nymtech / nym

Nym provides strong network-level privacy against sophisticated end-to-end attackers, and anonymous transactions using blinded, re-randomizable, decentralized credentials.
https://nymtech.net
1.25k stars 231 forks source link

appimage fails to open on manjaro with plasma #1070

Closed soul-surfer closed 11 months ago

soul-surfer commented 2 years ago

Describe the issue Attempted to run ./nym-wallet_0.12.1_amd64_ubuntu20.04_ce55b6790b722ea378f445accdda11a4.AppImage but no window opens and the error below is displayed.

Unable to spawn a new child process: Failed to execute child process “/usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/WebKitNetworkProcess” (No such file or directory)

Steps to Reproduce Using manjaro with plasma desktop.

Operating System: Manjaro Linux KDE Plasma Version: 5.23.4 KDE Frameworks Version: 5.88.0 Qt Version: 5.15.2 Kernel Version: 5.10.84-1-MANJARO (64-bit) Graphics Platform: X11

DISTRIB_RELEASE=21.2.0

  1. downloaded https://github.com/nymtech/nym/releases/download/v0.12.1/nym-wallet_0.12.1_amd64_ubuntu20.04.AppImage
  2. clicked downloaded file to execute app
  3. selected integrate and run
  4. nothing happens so i opened a konsole window
  5. ran ./nym-wallet_0.12.1_amd64_ubuntu20.04_ce55b6790b722ea378f445accdda11a4.AppImage
  6. nothing happens but webkit2gtk-4.0/WebKitNetworkProcess error is displayed
tommyv1987 commented 2 years ago

Hi @soul-surfer

Thanks for raising this, we're exploring multi distribution builds at the in the near future, the best thing I would recommend in the interim, is building the wallet yourself.

If you clone the Nym project to your machine, then follow the README.md in nym-wallet as another user experience the same issues—Related issue

If you can, please ensure you have the latest tooling as specified in the README.md with that latest rust version (currently— 1.58.1)

If you can, let me know how you get on with building the wallet yourself, currently you should be able to build off our develop branch, and it will point to the respective environment.

Thanks

soul-surfer commented 2 years ago

Before building the wallet I decided to try a symlink for the missing x86_64-linux-gnu directory. The symlink enables the nym wallet to successfully open. Unfortunately there is still an error in the console. I haven't explored much of the wallet app yet since it's a TLS error. Is it safe to use the wallet due to the undefined symbol described below?

ln -s /usr/lib /usr/lib/x86_64-linux-gnu

~/Applications/nym-wallet_0.12.1_amd64_ubuntu20.04_ce55b6790b722ea378f445accdda11a4.AppImage

/usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so: undefined symbol: g_tls_channel_binding_error_quark Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so

The error displayed references a function available since v2.66

https://docs.gtk.org/gio/type_func.TlsChannelBindingError.quark.html

The libgiognutls.so library is part of the glib-networking package on my distro. I'm currently using v2.70.1. So I checked the binary for g_tls_channel_binding_error_quark

readelf -a -W /usr/lib/gio/modules/libgiognutls.so

And there it is

35: 0000000000000000 0 FUNC GLOBAL DEFAULT UND g_tls_channel_binding_error_quark

Is this a bug in the wallet or in libgiognutls? Are there any security risks involved in using the wallet as is with that tls error? If not, then a simple symlink makes the appimage compatible with Manjaro.

Dynamic section from the default libgiognutls library in Manjaro.

Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libgio-2.0.so.0] 0x0000000000000001 (NEEDED) Shared library: [libgobject-2.0.so.0] 0x0000000000000001 (NEEDED) Shared library: [libglib-2.0.so.0] 0x0000000000000001 (NEEDED) Shared library: [libgnutls.so.30] 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000c (INIT) 0x7000 0x000000000000000d (FINI) 0x16050 0x0000000000000019 (INIT_ARRAY) 0x1f2b8 0x000000000000001b (INIT_ARRAYSZ) 8 (bytes) 0x000000000000001a (FINI_ARRAY) 0x1f2c0 0x000000000000001c (FINI_ARRAYSZ) 8 (bytes) 0x000000006ffffef5 (GNU_HASH) 0x300 0x0000000000000005 (STRTAB) 0x2558 0x0000000000000006 (SYMTAB) 0x338 0x000000000000000a (STRSZ) 8506 (bytes) 0x000000000000000b (SYMENT) 24 (bytes) 0x0000000000000007 (RELA) 0x4a10 0x0000000000000008 (RELASZ) 8856 (bytes) 0x0000000000000009 (RELAENT) 24 (bytes) 0x0000000000000018 (BIND_NOW)
0x000000006ffffffb (FLAGS_1) Flags: NOW 0x000000006ffffffe (VERNEED) 0x4970 0x000000006fffffff (VERNEEDNUM) 3 0x000000006ffffff0 (VERSYM) 0x4692 0x000000006ffffff9 (RELACOUNT) 9 0x0000000000000000 (NULL) 0x0

soul-surfer commented 2 years ago

nym-arch.zip

I tried the build instructions and found a couple of issues. See the attached PKGBUILD. It will build and run as is but you'll have to close the wallet app for the packaging to continue.

Issue 1 - yarn build throws an error

yarn build

yarn run v1.22.17 $ run-s webpack:prod tauri:build $ yarn webpack --progress --config webpack.prod.js $ /home/user/AUR/nym-wallet/src/nym-0.12.1/nym-wallet/node_modules/.bin/webpack --progress --config webpack.prod.js error Command failed with signal "SIGILL". info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. ERROR: "webpack:prod" exited with 1. error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. ==> ERROR: A failure occurred in build(). Aborting...

Issue 2 - yarn dev automatically opens wallet after build

yarn dev

Compiling tauri-utils v1.0.0-beta.3 Compiling tauri-runtime v0.2.1 Compiling tauri-codegen v1.0.0-beta.4 Compiling tauri-runtime-wry v0.2.1 Compiling tauri-macros v1.0.0-beta.5 Finished dev [unoptimized + debuginfo] target(s) in 30m 50s Running /home/user/AUR/nym-wallet/src/nym-0.12.1/nym-wallet/target/debug/nym_wallet

The build process automatically opens the wallet. In order for makepkg to call the package() function in the PKGBUILD file you have to wait for the wallet to open and then close it. Is it possible to build the wallet without it automatically opening?

Other than those 2 issues it seems to run fine.

mmsinclair commented 1 year ago

@soul-surfer would you mind trying this package (https://aur.archlinux.org/packages/appimagelauncher) to launch the wallet AppImage and see if it makes a difference?