Files
sovereign_ai/SovereignAI-Starter/flutter_app/linux/packaging/README.md
T

47 lines
1.6 KiB
Markdown

# Linux desktop build and runtime
The Linux desktop entry, installed icon, and GTK application must all use the
same application ID: `com.mithqal.ai`.
## Ubuntu and Debian build dependencies
Install Flutter's Linux desktop toolchain and the native secret-storage
development library:
```sh
sudo apt-get update
sudo apt-get install -y \
clang cmake ninja-build pkg-config libgtk-3-dev libstdc++-12-dev \
libsecret-1-dev libsecret-1-0
```
Then check the host and build the release bundle:
```sh
flutter doctor -v
flutter devices
flutter pub get
flutter build linux --release
```
The executable bundle is produced at
`build/linux/x64/release/bundle/`. Distribute the complete bundle and verify
its native runtime dependencies on the target distribution, for example with
`ldd build/linux/x64/release/bundle/flutter_app`.
## Secure session storage
`flutter_secure_storage` uses Libsecret on Linux. Build machines need
`libsecret-1-dev`; packaged applications need the runtime library
`libsecret-1-0`. The desktop session must also provide D-Bus and an unlocked
Secret Service keyring, commonly GNOME Keyring or KDE Wallet. Run the
application in an interactive desktop session to verify login, token
persistence after restart, and logout deletion. Do not treat a successful
Linux build as proof that secure storage works: headless sessions and CI may
have no unlocked keyring.
Upstream setup references:
- [Flutter Linux development setup](https://docs.flutter.dev/platform-integration/linux/setup)
- [flutter_secure_storage Linux implementation](https://pub.dev/documentation/flutter_secure_storage_linux/latest/)