Version: Deno 2.9.2
Description
On Linux, deno desktop builds that use an output basename containing dots fail at launch with:
No runtime library found. Set LAUFEY_RUNTIME_PATH or use --runtime <path>
The runtime .so is present in the bundle, but the webview launcher looks for the wrong filename.
Steps to reproduce
- Create a Vite + Vue project (or any
deno desktop project).
- Build for Linux with an output name that contains dots:
deno desktop --target x86_64-unknown-linux-gnu --output "./out/my-app.AppImage" .
Example basename: template-deno2.9.2-desktop-vue3-vite8
- Run the produced AppImage or launcher binary:
Expected behavior
The app should start and load its bundled runtime library automatically.
Actual behavior
The launcher exits immediately with:
No runtime library found. Set LAUFEY_RUNTIME_PATH or use --runtime <path>
Root cause (observed)
The Linux webview launcher appears to derive the runtime library path from the executable basename by treating everything after the last dot as a file extension.
| Launcher binary |
Looks for |
Actual runtime file |
template-deno2.9 |
template-deno2.so |
template-deno2.9.so |
test-myapp |
test-myapp.so |
test-myapp.so |
When the output basename is template-deno2.9.2-desktop-vue3-vite8, Deno also truncates the launcher name to template-deno2.9, which then resolves to template-deno2.so instead of template-deno2.9.so.
Workarounds
- Use a dot-free output basename (e.g.
template-deno292-desktop-vue3-vite8).
- Pass the runtime explicitly:
./template-deno2.9 --runtime ./template-deno2.9.so
- Set
LAUFEY_RUNTIME_PATH to the correct .so path.
Environment
- OS: Linux (Pop!_OS / Ubuntu-based)
- Deno: 2.9.2 (stable, release, x86_64-unknown-linux-gnu)
- Target:
x86_64-unknown-linux-gnu
- Backend: webview (default)
- Output format: AppImage (also affects plain app directory builds)
Additional context
The launcher uses /proc/self/exe to locate itself and then searches for a sibling .so with the basename stripped at the last dot. This breaks for version numbers or identifiers embedded in the app name (e.g. myapp.v1.2.3, deno2.9.2-...).
Relevant launcher strings include ./libruntime.so, --runtime, LAUFEY_RUNTIME_PATH, and No runtime library found. Set LAUFEY_RUNTIME_PATH or use --runtime <path>.
EDIT: posted with wrong account, subsequent replies will be made by @KaKi87. Thanks
Version: Deno 2.9.2
Description
On Linux,
deno desktopbuilds that use an output basename containing dots fail at launch with:The runtime
.sois present in the bundle, but the webview launcher looks for the wrong filename.Steps to reproduce
deno desktopproject).Example basename:
template-deno2.9.2-desktop-vue3-vite8Expected behavior
The app should start and load its bundled runtime library automatically.
Actual behavior
The launcher exits immediately with:
Root cause (observed)
The Linux webview launcher appears to derive the runtime library path from the executable basename by treating everything after the last dot as a file extension.
template-deno2.9template-deno2.sotemplate-deno2.9.sotest-myapptest-myapp.sotest-myapp.soWhen the output basename is
template-deno2.9.2-desktop-vue3-vite8, Deno also truncates the launcher name totemplate-deno2.9, which then resolves totemplate-deno2.soinstead oftemplate-deno2.9.so.Workarounds
template-deno292-desktop-vue3-vite8).LAUFEY_RUNTIME_PATHto the correct.sopath.Environment
x86_64-unknown-linux-gnuAdditional context
The launcher uses
/proc/self/exeto locate itself and then searches for a sibling.sowith the basename stripped at the last dot. This breaks for version numbers or identifiers embedded in the app name (e.g.myapp.v1.2.3,deno2.9.2-...).Relevant launcher strings include
./libruntime.so,--runtime,LAUFEY_RUNTIME_PATH, andNo runtime library found. Set LAUFEY_RUNTIME_PATH or use --runtime <path>.EDIT: posted with wrong account, subsequent replies will be made by @KaKi87. Thanks