Add Void Linux packaging; fix production builds embedding the frontend

Voiced now ships as a native Void Linux package:
- packaging/void/template: xbps-src template
- packaging/void/build-xbps.sh: builds and indexes a local .xbps repository
- packaging/void/voiced.desktop: application entry

Also fixes a real bug: the `custom-protocol` feature was never enabled, so
releases ran in development mode and tried to reach a dev server on
localhost:1420 instead of serving the embedded frontend. It is now declared
in Cargo.toml and passed explicitly by every build script.

The Void package output moved out of Vite's `dist/` (which is wiped on each
build) to `build/void/`.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
This commit is contained in:
2026-10-04 00:14:19 +05:30
co-authored by CommandCodeBot
parent 8414a070da
commit d2ee9e32b3
7 changed files with 193 additions and 2 deletions
+30
View File
@@ -90,6 +90,35 @@ distributions that don't package NSIS (e.g. Void Linux):
With those in place, `npm run app:build:windows` produces the NSIS `-setup.exe` and the
portable `voiced.exe`.
## Installing on Void Linux
Two ways to get a native `.xbps` package.
### Prebuilt binary package (no xbps-src needed)
```bash
./packaging/void/build-xbps.sh # -> build/void/repo/voiced-<version>_1.<arch>.xbps
echo "repository=$(pwd)/build/void/repo" | sudo tee /etc/xbps.d/99-voiced-local.conf
sudo xbps-install -Sy voiced
```
Launch **Voiced** from the application menu, or run `voiced`. Remove it with
`sudo xbps-remove voiced`.
The package installs `/usr/bin/voiced`, a desktop entry and hicolor icons, and depends on
`libwebkit2gtk41`.
### Building through xbps-src
Copy `packaging/void/template` into a `void-packages` checkout and build it the standard way:
```bash
cp -r packaging/void/template void-packages/srcpkgs/voiced/template
cd void-packages && ./xbps-src pkg voiced
```
See the comments at the top of the template about the private source archive and checksums.
## Where data lives
| What | Location |
@@ -108,6 +137,7 @@ src/ React + Carbon frontend
src-tauri/ Rust backend (Tauri commands, SQLite schema, asset store)
public/brand/ Bongbetic + vendor brand assets
public/fonts/ IBM Plex (woff/woff2)
packaging/void/ Void Linux packaging (xbps-src template + build script + desktop entry)
```
## Ownership