Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bug] AppImage bundle gives warning about loading shared object #6992

Closed
Risto-Stevcev opened this issue May 18, 2023 · 2 comments · Fixed by #6996
Closed

[bug] AppImage bundle gives warning about loading shared object #6992

Risto-Stevcev opened this issue May 18, 2023 · 2 comments · Fixed by #6996
Assignees
Labels
platform: Linux scope: bundler The bundler used in our cli to make installers status: needs triage This issue needs to triage, applied to new issues type: bug

Comments

@Risto-Stevcev
Copy link
Contributor

Describe the bug

The AppImage build is giving a warning that it can't load the injected bundle for webkit2gtk.
I tried debugging a bit by running the AppImage with the --appimage-mount flag to inspect the squashfs, and from what I can tell, it's looking up the wrong path: ././lib64/... instead of ./usr/lib64/.... As a result, it can't find the bundled shared object, and it looks like it's falling back to the system-wide shared object instead. I haven't tested it on a linux system without the webkit2gtk dependency, but it looks like it's not self-contained based on the warning/error.

Reproduction

$ cargo create-tauri-app
$ sed -i -e 's/com.tauri.dev/com.tauri.demo/g' src-tauri/tauri.conf.json
$ npm run tauri build
> [email protected] tauri
> tauri build

    Updating crates.io index
    ...
    Finished 1 bundle at:
        /home/risto/projects/tauri-app/src-tauri/target/release/bundle/appimage/tauri-app_0.0.0_amd64.AppImage

$ ./src-tauri/target/release/bundle/appimage/tauri-app_0.0.0_amd64.AppImage

** (WebKitWebProcess:20519): WARNING **: 16:13:50.451: Error loading the injected bundle (././/lib64/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so): ././/lib64/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so: cannot open shared object file: No such file or directory

Expected behavior

I think the warning shouldn't exist, and it should open the shared object file from the AppImage bundle instead of the system-wide one.

Platform and versions

$ npm run tauri info

> [email protected] tauri
> tauri info


[✔] Environment
    - OS: Linux Rolling Release X64
    ✔ webkit2gtk-4.0: 2.40.0
    ✔ rsvg2: 2.52.2
    ✔ rustc: 1.69.0 (84c898d65 2023-04-16)
    ✔ Cargo: 1.69.0 (6e9a83356 2023-04-12)
    ✔ rustup: 1.26.0 (2023-04-26)
    ✔ Rust toolchain: stable-x86_64-unknown-linux-gnu (default)
    - node: 20.1.0
    - npm: 9.6.4

[-] Packages
    - tauri [RUST]: 1.3.0
    - tauri-build [RUST]: 1.3.0
    - wry [RUST]: 0.24.3
    - tao [RUST]: 0.16.1
    - @tauri-apps/api [NPM]: 0.0.0 (outdated, latest: 1.3.0)
    - @tauri-apps/cli [NPM]: 1.3.1

[-] App
    - build-type: bundle
    - CSP: unset
    - distDir: ../src
    - devPath: ../src


### Stack trace

_No response_

### Additional context

I'm using Void Linux

λ uname -a
Linux voidristo 6.1.27_1 #1 SMP PREEMPT_DYNAMIC Tue May 9 03:35:06 UTC 2023 x86_64 GNU/Linux

@Risto-Stevcev Risto-Stevcev added status: needs triage This issue needs to triage, applied to new issues type: bug labels May 18, 2023
@FabianLars FabianLars added platform: Linux scope: bundler The bundler used in our cli to make installers labels May 18, 2023
@FabianLars
Copy link
Member

FabianLars commented May 18, 2023

Thanks for the report!

i did a quick test (actually wasn't "quick". i'm not used to these old-school linux installers anymore 😅) and the issue seems to be that /usr/lib64 on void is just a symlink to /usr/lib. The appimage bundler only picks up the "real" file while webkitgtk is still looking for it at the symlink location ;/

p.s. these weird looking paths are correct, its working dir is <appimage>/usr

Edit: I'll assign myself for this issue for now but since i'll be busy over the weekend anyway it's okay (and encouraged) if someone else wants to take a look at it :) It's hopefully as simple as telling the cp command to not follow symlinks...

@Risto-Stevcev
Copy link
Contributor Author

@FabianLars Ah ok, thanks. I gave it a try on my system and I managed to get it to work with find -L, but I've only tested it on Void Linux. I referenced the PR in case that fixes it without any changes.

wusyong pushed a commit that referenced this issue May 19, 2023
…6992) (#6996)

* Updated appimage script to follow symlinks for /usr/lib*

* Added appimage-follow-symlinks change file
lucasfernog added a commit that referenced this issue May 30, 2023
Co-authored-by: wusyong <[email protected]>
Co-authored-by: Fabian-Lars <[email protected]>
Co-authored-by: Lucas Nogueira <[email protected]>
Co-authored-by: Simon Hyll <[email protected]>
Co-authored-by: Lucas Fernandes Nogueira <[email protected]>
Co-authored-by: Lucas Nogueira <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Fernandes Nogueira <[email protected]>
Co-authored-by: Amr Bashir <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: chip <[email protected]>
Co-authored-by: Raphii <[email protected]>
Co-authored-by: Ronie Martinez <[email protected]>
Co-authored-by: hanaTsuk1 <[email protected]>
Co-authored-by: nathan-fall <[email protected]>
Co-authored-by: Akshay <[email protected]>
Co-authored-by: KurikoMoe <[email protected]>
Co-authored-by: Guilherme Oenning <[email protected]>
Co-authored-by: Pierre Cashon <[email protected]>
Co-authored-by: Jack Wills <[email protected]>
Co-authored-by: Amirhossein Akhlaghpour <[email protected]>
Co-authored-by: Risto Stevcev <[email protected]>
Co-authored-by: Soumt <[email protected]>
Co-authored-by: yutotnh <[email protected]>
Co-authored-by: Gökçe Merdun <[email protected]>
Co-authored-by: Nathanael Rea <[email protected]>
Co-authored-by: Usman Rajab <[email protected]>
Co-authored-by: Francis The Basilisk <[email protected]>
Co-authored-by: Lej77 <[email protected]>
Co-authored-by: Tomáš Diblík <[email protected]>
Co-authored-by: Jonas Kruckenberg <[email protected]>
Co-authored-by: Pascal Sommer <[email protected]>
Co-authored-by: Bo <[email protected]>
Co-authored-by: Kevin Yue <[email protected]>
fixed grammar and typos (#6937)
Fix api.js docs pipeline with updated typedoc dependencies (#6945)
closes #6887 (#6922)
fix(core): Fix `WindowBuilder::on_navigation` handler never registerd, closes #6865 (#6921)
fix(core): Fix `WindowBuilder::on_navigation` handler never registerd, closes #6865
fix broken symlinks in license files (#6336)
fix(cli): fix cli connection timeout to dev server (fix #6045) (#6046)
fix(bundler): ensure that there are no duplicate extension arguments when bundling on Windows, fixes #6103 (#6917)
fix(bundler): ensure that there are no duplicate extension arguments during bundling on Windows (fix #6103)
closes #5491 (#6408)
fix(nsis): prefill $INSTDIR with previous install path and respect `/D` flag, closes #6928 (#6935)
fix(nsis): prefill $INSTDIR with previous install path and respect `/D` flag, closes #6928
fix(updater): emit `UPTODATE` when server responds with 204, closes #6934 (#6970)
fix(core): unpin all dependencies, closes #6944 (#6966)
fix(bundler): Add new lang_file option in persian variant. (#6972)
fix(core/ipc): access url through webview native object, closes #6889 (#6976)
fix(core): remove trailing slash in http scope url, closes #5208 (#6974)
fix(core): remove trailing slash in http scope url, closes #5208
fix(cli): find correct binary when `--profile` is used, closes #6954 (#6979)
fix(cli): find correct binary when `--profile` is used, closes #6954
closes #6955 (#6987)
closes #6955
closes #6158 (#6969)
closes #6158
fix(cli): improve vs build tools detection (#6982)
fix: updated appimage script to follow symlinks for /usr/lib* (fix: #6992) (#6996)
fix(cli): correctly remove Cargo features (#7013)
Fix typo (#7012)
fix(cli): revert metadata.json field rename from #6795 (#7029)
closes #6732 (#6736)
fix: add missing file properties on Windows, closes #6676 (#6693)
fix(cli.js): detect node-20 binary (#6667)
fix version-or-publish workflow (#7031)
fix(cli/devserver): inject autoreload into HTML only, closes #6997 (#7032)
fix(bundler/nsis): write installer templates UTF16LE encoded, closes #7036 (#7040)
fix(bundler/nsis): write installer templates UTF16LE encoded, closes #7036
fix(core): rewrite `asset` protocol streaming, closes #6375 (#6390)
closes #5939 (#5960)
fix(core): use `safe_block_on` (#7047)
closes #6859 (#6933)
closes #6955 (#6998)
fix(core): populate webview_attrs from config, closes #6794 (#6797)
closes #5176 (#5180)
fix: sound for notifications on windows (fix #6652) (#6680)
close native window's buttons, closes #2353 (#6665)
fix(bundler/nsis): calculate accurate app size, closes #7056 (#7057)
fix(tests): only download update when it is available (#7061)
closes #6706 (#6712)
fix(doc): correct the doc of `content_protected()` (#7065)
closes #6472 (#6530)
fix(macros): use full path to Result to avoid issues with type aliases (#7071)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
platform: Linux scope: bundler The bundler used in our cli to make installers status: needs triage This issue needs to triage, applied to new issues type: bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants