yuezk / GlobalProtect-openconnect

A GlobalProtect VPN client for Linux, written in Rust, based on OpenConnect and Tauri, supports SSO with MFA, Yubikey, and client certificate authentication, etc.
GNU General Public License v3.0
1.41k stars 157 forks source link

Gui error on readonly filesystem #434

Closed m1dugh closed 1 month ago

m1dugh commented 1 month ago

When starting gpclient launch-gui, a pop-up starts, indicating a connection refused on a port (probably the port of the service).

Expected behavior The process should open the default browser and start the authentication process.

Screenshots image

Logs

[2024-10-23T13:59:45Z INFO  gpservice::cli] gpservice started: 2.3.7 (2024-10-21)
[2024-10-23T13:59:45Z INFO  gpservice::ws_server] WS server listening on port: 34861
[2024-10-23T13:59:45Z INFO  gpapi::process::gui_launcher] Check version failed: Failed to parse version: 
[2024-10-23T13:59:45Z INFO  gpapi::process::gui_helper_launcher] Launching gpgui-helper
[2024-10-23T13:59:45Z INFO  gpgui_helper::cli] gpgui-helper started: 2.3.7 (2024-10-21)

** (gpgui-helper:434324): WARNING **: 15:59:45.734: webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
Could not determine the accessibility bus address
[2024-10-23T13:59:45Z INFO  gpgui_helper::updater] Update GUI, version: 2.3.7
[2024-10-23T13:59:45Z INFO  gpgui_helper::updater] Downloading file: https://github.com/yuezk/GlobalProtect-openconnect/releases/download/v2.3.7/gpgui_x86_64.bin.tar.xz
[2024-10-23T13:59:46Z INFO  gpgui_helper::downloader] Content length: 4235672
[2024-10-23T13:59:46Z INFO  gpgui_helper::downloader] Downloaded to: "/tmp/.tmp1Ri55J"
[2024-10-23T13:59:46Z INFO  gpgui_helper::updater] Checksum success
[2024-10-23T13:59:46Z INFO  gpservice::handlers] Update GUI: UpdateGuiRequest { path: "/tmp/.tmp1Ri55J", checksum: "e82fafa81991473a65829e1821690f4d716b5c27fc819ef9914d2cef8f2d2fac" }
[2024-10-23T13:59:46Z INFO  gpservice::handlers] Verifying checksum
[2024-10-23T13:59:46Z INFO  gpservice::handlers] Installing GUI
[2024-10-23T13:59:46Z INFO  gpservice::handlers] Unpacking GUI archive
[2024-10-23T13:59:46Z WARN  gpservice::handlers] Failed to install GUI: Read-only file system (os error 30)
[2024-10-23T13:59:46Z WARN  gpgui_helper::updater] Install error: HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:34861/update-gui)
[2024-10-23T13:59:58Z INFO  gpapi::process::gui_helper_launcher] gpgui-helper exited with: exit status: 0
[2024-10-23T13:59:58Z WARN  gpservice::cli] Failed to launch GUI: Failed to parse version: 
[2024-10-23T13:59:58Z INFO  gpservice::cli] Shutdown request received, shutting down
[2024-10-23T13:59:58Z INFO  gpservice::vpn_task] VPN task cancelled
[2024-10-23T13:59:58Z INFO  gpservice::vpn_task] VPN is not connected, skip disconnect
[2024-10-23T13:59:58Z INFO  gpservice::ws_server] WS server cancelled
[2024-10-23T13:59:58Z INFO  gpservice::cli] gpservice stopped

Environment:

Additional context I suspect the issue comes from the download of the gui which shouldn't be necessary since the gpgui binary is already present on the system and has no need to be downloaded (I guess ?).

The packages are built using the provided flake, and the gpgui binary is downloaded from the remote github release.

The no gui version works fine with my browser, and all the portals are properly configured so that the browser callback works fine.

PS: it works fine when starting manually gp service but another error occurs

m1dugh commented 1 month ago

Turns out it works if the path to gpgui is correctly set.