From ba194e35d8ec33c53b7c4457646afaa4312c498d Mon Sep 17 00:00:00 2001 From: Fabian <80212635+FabPei@users.noreply.github.com> Date: Mon, 19 Oct 2026 16:57:48 +0200 Subject: [PATCH 1/2] fix: DeckCraft upstream #955 README: the Linux runtime libraries a tarball or musl install has to provide, with the Alpine and Void package names and what each one is for. --- README.md | 35 +++++++++++++++++++++++++++++++++++ ROADMAP.md | 1 + 2 files changed, 36 insertions(+) diff --git a/README.md b/README.md index eeaf1cf6..2620c98c 100644 --- a/README.md +++ b/README.md @@ -217,6 +217,41 @@ DirectX 12 shaders are compiled with FXC, which is part of Windows, so no `dxcom RISC-V 64 (riscv64): `deckcraft--linux-riscv64.tar.gz`, a tarball only (cross-compiled; needs glibc 2.39+, e.g. Ubuntu 24.04+). +**Runtime libraries.** The window-system, GPU and file-dialog libraries DeckCraft needs are opened +when the app starts (`dlopen` through `x11-dl`, `xkbcommon-dl`, `ash`, `glutin` and `rfd`) instead +of being linked in, so `ldd` shows none of them: an install that satisfies the linked dependencies +can still fail at start-up with a loader error and no hint of what to install. Only +`libasound.so.2` (slide-show sound) is a hard link-time dependency, and only of the `deckcraft` +GUI — `deckcraft-cli` uses neither sound nor a display. The `.deb` and `.rpm` declare the set in +`packaging/linux/nfpm.yaml`; a tarball install or a musl system has to provide it itself: + +```sh +apk add libx11 libxcursor libxrandr libxi libxkbcommon xkeyboard-config \ + wayland-libs-client alsa-lib \ + vulkan-loader mesa-vulkan-swrast \ + mesa-gl mesa-egl mesa-dri-gallium \ + xdg-desktop-portal +``` + +Alpine Linux `v3.22` names above; Void's musl variant uses the same `/lib/ld-musl-x86_64.so.1` +loader and the same libraries as `libX11 libXcursor libXrandr libXi libxkbcommon xkeyboard-config +wayland alsa-lib vulkan-loader mesa xdg-desktop-portal`. There is no musl build among the release +artifacts yet — this is what a build from source on musl needs at run time, and what a future musl +artifact will need (#954). + +- `mesa-vulkan-swrast` is the software Vulkan driver: it runs anywhere, VMs and containers + included. On a real GPU install your vendor's driver instead (`mesa-vulkan-intel`, + `mesa-vulkan-radeon`, `mesa-vulkan-nouveau`, …). +- Without Vulkan the app falls back to CPU rendering through Mesa's GL drivers. It works, but + slowly — a driver limit, not a DeckCraft bug. +- `xdg-desktop-portal` (with `xdg-desktop-portal-gtk`, `-kde` or `-wlr`) is what the Open and Save + dialogs talk to; `xkeyboard-config` holds the XKB keyboard data `libxkbcommon` reads. +- fontconfig and freetype are not needed: DeckCraft reads `/usr/share/fonts` itself and embeds its + presentation fonts. + +Building from source on musl also needs `build-base pkgconf alsa-lib-dev` beside the ALSA headers +above. + ### FreeBSD | Build | File | diff --git a/ROADMAP.md b/ROADMAP.md index 933bc7d1..65b09437 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -131,6 +131,7 @@ app's JSON control channel (`deckcraft --control PORT`). | Date | What landed | |---|---| +| 2026-10-19 | README: the Linux runtime libraries a tarball or musl install has to provide — the `dlopen`ed X11/Vulkan/GL/dialog libraries with their Alpine and Void package names, the software-Vulkan fallback, and why fontconfig and freetype are not among them (#955) | | 2026-10-17 | Opening a file caps absurd effect sizes (glow, soft edges, shadows, reflections, on shapes, text and table text) at what Format Shape allows: a glow of 10^18 pt in a .pptx made rendering ask for 34 GB and abort | | 2026-10-17 | Opening a .deckcraft file whose shapes repeat an id gives the repeats fresh ids (groups, layouts and masters too), so the deck validates and edits by id find one shape | | 2026-10-17 | Edit Points: turning a shape into a freeform is one undo step, so Undo brings the original shape back (it used to stay a freeform) | From 07cbe5c9082be9be42ba649e54f9dfd91636f210 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 23 Oct 2026 17:13:32 -0400 Subject: [PATCH 2/2] README: Alpine's AMD Vulkan driver is mesa-vulkan-ati; -wlr has no file chooser CodeRabbit review notes. Co-Authored-By: Claude Opus 5.5 --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2620c98c..7bf15fa7 100644 --- a/README.md +++ b/README.md @@ -241,16 +241,16 @@ artifact will need (#954). - `mesa-vulkan-swrast` is the software Vulkan driver: it runs anywhere, VMs and containers included. On a real GPU install your vendor's driver instead (`mesa-vulkan-intel`, - `mesa-vulkan-radeon`, `mesa-vulkan-nouveau`, …). + `mesa-vulkan-ati`, `mesa-vulkan-nouveau`, …). - Without Vulkan the app falls back to CPU rendering through Mesa's GL drivers. It works, but slowly — a driver limit, not a DeckCraft bug. -- `xdg-desktop-portal` (with `xdg-desktop-portal-gtk`, `-kde` or `-wlr`) is what the Open and Save - dialogs talk to; `xkeyboard-config` holds the XKB keyboard data `libxkbcommon` reads. +- `xdg-desktop-portal` (with `xdg-desktop-portal-gtk` or `-kde`; `-wlr` has no file chooser, so + on wlroots compositors install `zenity`) is what the Open and Save dialogs talk to; `xkeyboard-config` holds the XKB keyboard data `libxkbcommon` reads. - fontconfig and freetype are not needed: DeckCraft reads `/usr/share/fonts` itself and embeds its presentation fonts. -Building from source on musl also needs `build-base pkgconf alsa-lib-dev` beside the ALSA headers -above. +Building from source on musl also needs `build-base pkgconf alsa-lib-dev` (`alsa-lib-dev` is the +ALSA headers). ### FreeBSD