feat: add Nix flake package, AppImage and .deb packaging
- flake: build teleportfling and teleportfling-gui as nixpkgs packages (buildGoModule) with a .desktop entry and icon for the GUI - packaging/appimage.sh: bundle the GUI + runtime libs (recursive ldd) into a self-contained AppImage via appimagetool - packaging/deb.sh: build a .deb for Debian/Ubuntu with both binaries, desktop entry, icon and declared runtime dependencies - README: document all three packaging methods - .gitignore: ignore dist/
This commit is contained in:
@@ -78,6 +78,47 @@ TeleportFling itself.
|
||||
See `contrib/README.md` — `contrib/install-daemon.sh` installs a per-user
|
||||
systemd unit that runs the headless CLI with its own config.
|
||||
|
||||
## Packaging
|
||||
|
||||
Three distribution formats are provided:
|
||||
|
||||
### Nix / NixOS
|
||||
|
||||
The flake builds both binaries as packages:
|
||||
|
||||
```sh
|
||||
nix build .#teleportfling # headless CLI
|
||||
nix build .#teleportfling-gui # desktop GUI + tray (default)
|
||||
nix run .#teleportfling-gui
|
||||
```
|
||||
|
||||
The GUI package also installs a `.desktop` entry and icon.
|
||||
|
||||
### AppImage
|
||||
|
||||
A self-contained AppImage of the GUI (bundles the runtime libraries):
|
||||
|
||||
```sh
|
||||
./packaging/appimage.sh
|
||||
# → dist/TeleportFling-0.1.0-x86_64.AppImage
|
||||
```
|
||||
|
||||
Requires `appimagetool` in `dist/` (see the script header) and the flake dev
|
||||
shell for building.
|
||||
|
||||
### Debian / Ubuntu
|
||||
|
||||
A `.deb` for Debian/Ubuntu (both binaries + desktop entry + icon):
|
||||
|
||||
```sh
|
||||
./packaging/deb.sh
|
||||
# → dist/teleportfling_0.1.0_amd64.deb
|
||||
```
|
||||
|
||||
Install with `sudo dpkg -i dist/teleportfling_0.1.0_amd64.deb` (then
|
||||
`sudo apt-get install -f` to pull dependencies if needed). The binaries
|
||||
require glibc ≥ 2.34, so Ubuntu 22.04+ / Debian 12+ are supported.
|
||||
|
||||
## Development
|
||||
|
||||
- `go build ./...` — build
|
||||
|
||||
Reference in New Issue
Block a user