From 73f836b2ee3bcbbd731ac6bd751f73208beb8d64 Mon Sep 17 00:00:00 2001 From: Psychotoxical Date: Mon, 16 Mar 2026 21:26:33 +0100 Subject: [PATCH] fix: AppImage EGL crash on modern distros, update link capability (v1.4.2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Switch Linux CI build from ubuntu-22.04 to ubuntu-24.04 — bundles WebKitGTK 2.44 which uses eglGetPlatformDisplay instead of the deprecated eglGetDisplay(EGL_DEFAULT_DISPLAY) that fails on Mesa 25.x (CachyOS/Arch with RDNA 4 and other modern hardware) - Add EGL_PLATFORM=x11 to AppRun as additional safeguard for XWayland - Fix shell:allow-open capability missing URL scope (update toast link was silently blocked by Tauri v2 without explicit allow-list) Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/release.yml | 4 ++-- CHANGELOG.md | 11 +++++++++++ package.json | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/capabilities/default.json | 2 +- src-tauri/tauri.conf.json | 2 +- 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b0eb97e7..f8a1b5e5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -89,7 +89,7 @@ jobs: needs: create-release permissions: contents: write - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v5 @@ -129,7 +129,7 @@ jobs: APPIMAGE=$(find src-tauri/target/release/bundle/appimage -name "*.AppImage" -not -name "*.tar.gz" | head -1) echo "Patching: $APPIMAGE" APPIMAGE_EXTRACT_AND_RUN=1 ./"$APPIMAGE" --appimage-extract - sed -i '/^exec /i export WEBKIT_DISABLE_COMPOSITING_MODE=1\nexport WEBKIT_DISABLE_DMABUF_RENDERER=1\nexport GDK_BACKEND=x11' squashfs-root/AppRun + sed -i '/^exec /i export WEBKIT_DISABLE_COMPOSITING_MODE=1\nexport WEBKIT_DISABLE_DMABUF_RENDERER=1\nexport GDK_BACKEND=x11\nexport EGL_PLATFORM=x11' squashfs-root/AppRun wget -q "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" \ -O appimagetool chmod +x appimagetool diff --git a/CHANGELOG.md b/CHANGELOG.md index e6727622..89169b41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.4.2] - 2026-03-16 + +### Fixed + +#### Linux AppImage — Modern Distro Compatibility +- **Build upgraded to Ubuntu 24.04**: The AppImage was previously built on Ubuntu 22.04 with WebKitGTK 2.36. On modern distros (CachyOS, Arch, etc.) with Mesa 25.x, `eglGetDisplay(EGL_DEFAULT_DISPLAY)` returns `EGL_BAD_PARAMETER` and aborts immediately because newer Mesa no longer accepts implicit platform detection. Building on Ubuntu 24.04 bundles WebKitGTK 2.44 which uses the correct `eglGetPlatformDisplay` API. +- **`EGL_PLATFORM=x11` added to AppRun**: Additional safeguard that explicitly tells Mesa's EGL loader to use the X11 platform when the app is running under XWayland. + +#### Shell — Update Link +- `shell:allow-open` capability now includes a URL scope (`https://**`), fixing the update toast link that silently did nothing in Tauri v2 without an explicit allow-list. + ## [1.4.1] - 2026-03-16 ### Fixed diff --git a/package.json b/package.json index bd77edf5..ba3b43f5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "psysonic", - "version": "1.4.1", + "version": "1.4.2", "private": true, "scripts": { "dev": "vite", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 0802ae0b..86d5e745 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "psysonic" -version = "1.4.1" +version = "1.4.2" description = "Psysonic Desktop Music Player" authors = [] license = "" diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index 80aa574d..84f79e7d 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -7,7 +7,7 @@ "permissions": [ "core:default", "shell:default", - "shell:allow-open", + { "identifier": "shell:allow-open", "allow": [{ "url": "https://**" }] }, "notification:default", "global-shortcut:allow-register", "global-shortcut:allow-unregister", diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 086416f2..3807f910 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Psysonic", - "version": "1.4.1", + "version": "1.4.2", "identifier": "dev.psysonic.app", "build": { "beforeDevCommand": "npm run dev",