gitbutlerapp / gitbutler

The GitButler version control client, backed by Git, powered by Tauri/Rust/Svelte
https://gitbutler.com
Other
12.45k stars 491 forks source link

Links doesn't open when clicked in Linux AppImage #2765

Closed YoussefMo7amed closed 4 days ago

YoussefMo7amed commented 7 months ago

Screenshot_20240216_234747 Screenshot_20240216_235113

Links doesn't open when clicked

theDevelopper commented 6 months ago

This also seems to prevent logging in

JokerQyou commented 1 month ago

Reproducible with Manjaro Linux (KDE plasma 6). Also the menu links does not work, clicking on Help > Documentation does nothing.

krlvi commented 1 month ago

Hmm, I wonder if the issue could be specific to KDE. @JokerQyou which app version did you test with? Is it a recent one? cc @ndom91

ndom91 commented 1 month ago

Hmm, I wonder if the issue could be specific to KDE. @JokerQyou which app version did you test with? Is it a recent one? cc @ndom91

Interesting, I just opened a PR which should fix this (https://github.com/gitbutlerapp/gitbutler/pull/4706)

We package the xdg-open binary in with the appimage, but it doesn't seem to be able to execute it to open links. If you open the appimage from the terminal and attempt to click a link, you should see it throw a shell error from tauri.

ndom91 commented 3 weeks ago

I would love to know if folks are still running into this issue with the latest releases (https://app.gitbutler.com/download).

I'm able to reproduce the broken xdg-open behavior on my local machine with NixOS. However, the AppImage open external link functionality works without issue on an Ubuntu VM of mine.

If you could mention your distro and version that would help me narrow down the platforms a lot :pray:

JokerQyou commented 2 weeks ago

v0.12.20 still has this issue. Sorry for the late response, somehow I missed notifications from this thread. Distro is Manjaro Linux (latest) with KDE Plasma 6.0.5 (also latest in Manjaro), X11 flavor.

plichard commented 2 weeks ago

Same on v0.12.21, fedora 40, plasma 6.1.3, frameworks 6.4.0, wayland

ndom91 commented 2 weeks ago

Thanks for the feedback! I'd love it if you could give this latest build a shot: https://github.com/gitbutlerapp/gitbutler/actions/runs/10600508432

The Ubuntu one should show up as an artifact to download from that GHA workflow run in a few min. It'll then also be published as the latest nightly shortly thereafter here.

Btw the GHA artifact labeled Ubuntu contains the deb, rpm and the appimage 🙏

JokerQyou commented 2 weeks ago

Nope, the nightly build (shows 0.5.700) downloaded from the link above still does not work.

plichard commented 2 weeks ago

Same here (0.5.701), any particular RUST_LOG configuration I could run that could help?

ndom91 commented 2 weeks ago

So the fix was just deployed in 0.5.700 (download link), the PR is not merged to master yet and therefore won't be in any following nightlies (yet).

However, I was able to confirm it works for me on the following machines using the 0.5.700 AppImage:

If you're having issues, it would help if you told us at least the following info:

ndom91 commented 2 weeks ago

Okay, another new build - this one worked for me on all of the above platforms and Fedora 39.

0.5.704 AppImage: https://releases.gitbutler.com/releases/nightly/0.5.704-1210/linux/x86_64/git-butler-nightly_0.5.704_amd64.AppImage.tar.gz

JokerQyou commented 1 week ago

Just tested 0.5.704 downloaded from above link, and it does not work on Manjaro Linux.

ndom91 commented 1 week ago

Just tested 0.5.704 downloaded from above link, and it does not work on Manjaro Linux.

Can you provide some more details? Which link(s) did you click? Can you start the appimage from the terminal and let us know if there are any error messages?

plichard commented 1 week ago

Oh, I noticed this (eventually :see_no_evil: ):

kde-open: symbol lookup error: /usr/lib64/libproxy/libpxbackend-1.0.so: undefined symbol: g_once_init_leave_pointer

xdg-open and kde-open work fine when run manually.

The library seems to come from libproxy.

Installed Packages
Name         : libproxy
Version      : 0.5.5
Release      : 1.fc40
Architecture : x86_64
Size         : 111 k
Source       : libproxy-0.5.5-1.fc40.src.rpm
Repository   : @System
From repo    : updates

edit: This was with 0.5.704, I no longer see the error with 0.5.712, but clicking the login button still does nothing.

There are all the logs after clicking the login button (with 0.5.712)

2024-09-02T07:39:36.645401Z  INFO delete_user:perform:write_command: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:935: close time.busy=6.66µs time.idle=7.81µs command=Auth(Some(External), Some([49, 48, 48, 48]))
2024-09-02T07:39:36.645425Z  INFO delete_user:perform:read_command: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:953: close time.busy=6.09µs time.idle=3.62µs
2024-09-02T07:39:36.645439Z  INFO delete_user:perform:write_command: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:935: close time.busy=4.53µs time.idle=3.23µs command=NegotiateUnixFD
2024-09-02T07:39:36.645451Z  INFO delete_user:perform:read_command: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:953: close time.busy=4.08µs time.idle=3.47µs
2024-09-02T07:39:36.645462Z  INFO delete_user:perform:write_command: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:935: close time.busy=3.26µs time.idle=3.04µs command=Begin
2024-09-02T07:39:36.645468Z  INFO delete_user:perform: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:382: close time.busy=91.5µs time.idle=8.13µs
2024-09-02T07:39:36.649285Z  INFO delete_user:socket reader: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/socket_reader.rs:33: close time.busy=104µs time.idle=3.66ms
2024-09-02T07:39:36.649314Z  INFO delete_user:perform:write_command: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:935: close time.busy=4.27µs time.idle=4.87µs command=Auth(Some(External), Some([49, 48, 48, 48]))
2024-09-02T07:39:36.649385Z  INFO delete_user:perform:read_command: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:953: close time.busy=10.6µs time.idle=50.5µs
2024-09-02T07:39:36.649407Z  INFO delete_user:perform:write_command: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:935: close time.busy=6.80µs time.idle=4.93µs command=NegotiateUnixFD
2024-09-02T07:39:36.649424Z  INFO delete_user:perform:read_command: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:953: close time.busy=5.06µs time.idle=3.94µs
2024-09-02T07:39:36.649434Z  INFO delete_user:perform:write_command: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:935: close time.busy=3.46µs time.idle=3.05µs command=Begin
2024-09-02T07:39:36.649441Z  INFO delete_user:perform: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/handshake.rs:382: close time.busy=100µs time.idle=46.0µs
2024-09-02T07:39:36.652908Z  INFO delete_user:socket reader: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zbus-3.15.2/src/socket_reader.rs:33: close time.busy=108µs time.idle=3.33ms
2024-09-02T07:39:36.652933Z  INFO delete_user: crates/gitbutler-tauri/src/users.rs:32: close time.busy=7.66ms time.idle=66.2µs
JokerQyou commented 1 week ago

Just tested 0.5.704 downloaded from above link, and it does not work on Manjaro Linux.

Can you provide some more details? Which link(s) did you click? Can you start the appimage from the terminal and let us know if there are any error messages?

Sorry about that. I did not know the nightly build would produce debug log via stdout. I tried links on the Before we begin UI, as well as the menu items like Documentation and X. Here are the logs:

dpi is invalid got from xsettings(Qt/DPI/ and Xft/DPI), fallback to get dpi from QXcbScreen::logicalDpi()
Gtk-Message: 15:56:25.207: Failed to load module "xapp-gtk3-module"

** (git-butler-nightly:208208): WARNING **: 15:56:26.387: webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
2024-09-02T07:56:26.447038Z  INFO crates/gitbutler-tauri/src/main.rs:98: starting app version=0.5.704 name=GitButler Nightly
Gtk-Message: 15:56:26.556: Failed to load module "xapp-gtk3-module"
2024-09-02T07:56:28.455421Z  INFO list_projects: crates/gitbutler-tauri/src/projects.rs:41: close time.busy=23.7µs time.idle=16.6µs
2024-09-02T07:56:28.467397Z  INFO get_user: crates/gitbutler-tauri/src/users.rs:10: close time.busy=55.7µs time.idle=28.9µs
2024-09-02T07:56:33.097410Z  INFO open_url: crates/gitbutler-tauri/src/open.rs:62: close time.busy=4.69ms time.idle=80.7µs url="https://docs.gitbutler.com/"
kde-open: symbol lookup error: /usr/lib/libproxy/libpxbackend-1.0.so: undefined symbol: g_once_init_leave_pointer
2024-09-02T07:56:41.023983Z  INFO open_url: crates/gitbutler-tauri/src/open.rs:62: close time.busy=1.34ms time.idle=91.1µs url="https://discord.com/invite/MmFkmaJ42D"
kde-open: symbol lookup error: /usr/lib/libproxy/libpxbackend-1.0.so: undefined symbol: g_once_init_leave_pointer
2024-09-02T07:56:48.977636Z  INFO open_url: crates/gitbutler-tauri/src/open.rs:62: close time.busy=1.38ms time.idle=113µs url="https://discord.gg/MmFkmaJ42D"
kde-open: symbol lookup error: /usr/lib/libproxy/libpxbackend-1.0.so: undefined symbol: g_once_init_leave_pointer
2024-09-02T07:56:50.006822Z  INFO open_url: crates/gitbutler-tauri/src/open.rs:62: close time.busy=1.47ms time.idle=99.0µs url="https://gitbutler.com/privacy"
kde-open: symbol lookup error: /usr/lib/libproxy/libpxbackend-1.0.so: undefined symbol: g_once_init_leave_pointer

** (git-butler-nightly:208208): WARNING **: 15:56:51.448: atk-bridge: get_device_events_reply: unknown signature
2024-09-02T07:56:54.383907Z  INFO open_url: crates/gitbutler-tauri/src/open.rs:62: close time.busy=1.23ms time.idle=80.4µs url="https://docs.gitbutler.com"
kde-open: symbol lookup error: /usr/lib/libproxy/libpxbackend-1.0.so: undefined symbol: g_once_init_leave_pointer
2024-09-02T07:56:58.563932Z  INFO open_url: crates/gitbutler-tauri/src/open.rs:62: close time.busy=1.63ms time.idle=107µs url="https://x.com/gitbutler"
kde-open: symbol lookup error: /usr/lib/libproxy/libpxbackend-1.0.so: undefined symbol: g_once_init_leave_pointer
ndom91 commented 1 week ago

Okay thanks a lot for the feedback, so you're both using KDE? Looks like there might be one env var that's still missing that needs to be cleaned up for libproxy's needs :thinking:. Looking into it now

Btw, the work on this is being done in this PR

ndom91 commented 1 week ago

Ahh so in the fix PR we removed all paths that contain /appimage-run, which is where the extracted appimage seemed to mount everything in the distros I tested. I thought that was universal for appimages.

It looks like under KDE that isn't the case and the cusotm libraries are mounted under a /tmp/.mount_git* directory.

image

EDIT: Modified the PR, publishing a new nightly with these changes atm. Will update here with links as soon as its done :pray:

ndom91 commented 1 week ago

Alright, the latest Nightly 0.5.713-1222 has antoher last tweak for KDE. Let me know if this works for you :pray:

https://releases.gitbutler.com/releases/nightly/0.5.713-1222/linux/x86_64/git-butler-nightly_0.5.713_amd64.AppImage.tar.gz

plichard commented 1 week ago

It works! Thank you :tada: :tada:

JokerQyou commented 1 week ago

It works now.

ndom91 commented 6 days ago

This has been fixed and merged to main last night. It's available in nightly 0.5.731+ (https://app.gitbutler.com/downloads).

Let us know if you have any issues with it :pray:

ndom91 commented 4 days ago

I'm going to close this issue as I haven't heard back from anyone that it doesn't work for them. Of course if yuo're still having issues, please feel free to open a new issue. Make sure to include which Distro, desktop environment / window manager, etc. that yuo're using :pray: