Internal
Public Access
docs: close out Milestone 9 and document Windows/macOS packaging
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,8 +13,8 @@ Supported target platforms:
|
||||
|
||||
OrbitHub is in active development.
|
||||
|
||||
- Milestones completed: M0-M5, M7, and M8
|
||||
- Current milestone: Milestone 9 (Packaging and Distribution)
|
||||
- Milestones completed: M0-M5, and M7-M9
|
||||
- Current milestone: Milestone 10 (v1.0 Stabilization)
|
||||
- Deferred milestone: Milestone 6 (VNC Fully Working)
|
||||
- Latest checkpoint tag: `v0-m8-done`
|
||||
- VNC implementation milestone (M6) is currently deferred
|
||||
@@ -90,18 +90,35 @@ cmake --build build
|
||||
./build/orbithub
|
||||
```
|
||||
|
||||
## Packaging (Linux)
|
||||
## Packaging
|
||||
|
||||
Detailed packaging instructions for all platforms:
|
||||
- [docs/BUILDING.md](docs/BUILDING.md)
|
||||
|
||||
Linux (`.deb`):
|
||||
|
||||
```bash
|
||||
./packaging/linux/build-deb.sh
|
||||
```
|
||||
|
||||
Optional Flatpak bundle:
|
||||
Linux (Flatpak):
|
||||
|
||||
```bash
|
||||
./packaging/flatpak/build-flatpak.sh
|
||||
```
|
||||
|
||||
Windows (Inno Setup installer):
|
||||
|
||||
```powershell
|
||||
.\packaging\windows\build-installer.ps1
|
||||
```
|
||||
|
||||
macOS (`.dmg`):
|
||||
|
||||
```bash
|
||||
./packaging/macos/build-dmg.sh
|
||||
```
|
||||
|
||||
## Dependencies
|
||||
|
||||
Core dependencies:
|
||||
|
||||
@@ -106,3 +106,37 @@ sudo apt-get install -y flatpak flatpak-builder
|
||||
|
||||
Output path:
|
||||
- `dist/flatpak/org.darksingularity.OrbitHub.flatpak`
|
||||
|
||||
## Windows Packaging
|
||||
|
||||
Requires [Inno Setup 6](https://jrsoftware.org/isinfo.php) (`winget install -e --id JRSoftware.InnoSetup`).
|
||||
|
||||
From a configured and built `build\` directory (see Windows build steps above):
|
||||
|
||||
```powershell
|
||||
.\packaging\windows\build-installer.ps1
|
||||
```
|
||||
|
||||
Output path:
|
||||
- `dist\windows\OrbitHub-Setup-<version>.exe`
|
||||
|
||||
## macOS Packaging
|
||||
|
||||
Requires `qt@6` from Homebrew (for `macdeployqt`). For a custom volume icon on
|
||||
the `.dmg`, also install `SetFile` (via Xcode's "Additional Tools", from
|
||||
[developer.apple.com/download/all](https://developer.apple.com/download/all))
|
||||
or `brew install fileicon` — packaging still works without either, just with
|
||||
the generic disk image icon.
|
||||
|
||||
```bash
|
||||
./packaging/macos/build-dmg.sh
|
||||
```
|
||||
|
||||
This runs `cmake --install`, then `macdeployqt` to bundle Qt frameworks and
|
||||
plugins into the `.app`, then re-signs the bundle (ad hoc, since there is no
|
||||
Developer ID certificate) so it passes macOS's launch-time code-integrity
|
||||
check. The result is unsigned/unnotarized, so first launch requires
|
||||
right-click → **Open** to bypass Gatekeeper's unidentified-developer warning.
|
||||
|
||||
Output path:
|
||||
- `dist/macos/OrbitHub-<version>.dmg`
|
||||
|
||||
+19
-5
@@ -177,12 +177,26 @@ Git:
|
||||
|
||||
## Milestone 9 - Packaging and Distribution
|
||||
|
||||
Status: Planned
|
||||
Status: Completed
|
||||
|
||||
Planned Scope:
|
||||
- Build distributable artifacts for Windows/Linux/macOS
|
||||
- Document runtime dependencies and install prerequisites
|
||||
- Add reproducible release packaging steps/scripts
|
||||
Delivered:
|
||||
- Linux `.deb` (`packaging/linux/build-deb.sh`) and Flatpak (`packaging/flatpak/build-flatpak.sh`) packages, both verified installed and launched with working SSH/RDP
|
||||
- Renamed the app's reverse-DNS identity from `io.orbithub.OrbitHub` to `org.darksingularity.OrbitHub` (desktop file, AppStream metainfo, Flatpak manifest, macOS bundle identifier) to reflect a domain actually owned by the project
|
||||
- Fixed Linux taskbar/panel pin matching (`StartupWMClass`) so a pinned launcher merges with its running window instead of creating a duplicate entry
|
||||
- Replaced the stale, mismatched hand-authored launcher SVG with PNG icons rendered directly from the app's own `createOrbitHubAppIcon()` at each hicolor theme size
|
||||
- Windows installer via Inno Setup (`packaging/windows/orbithub.iss`, `packaging/windows/build-installer.ps1`), verified installed silently and launched cleanly with no crash events
|
||||
- macOS `.dmg` via `cmake --install` + `macdeployqt` + `hdiutil` (`packaging/macos/build-dmg.sh`), verified installed and launched after fixing:
|
||||
- a launch crash caused by `macdeployqt` invalidating the code signature (fixed with ad hoc re-signing)
|
||||
- a missing-library crash caused by the Linux-only `$ORIGIN` rpath token and vendored dylibs installing outside the `.app` bundle (fixed with `APPLE`-specific `@executable_path`/`Contents/Frameworks` layout)
|
||||
- the dmg showing the generic disk icon instead of the app icon
|
||||
- README and `docs/BUILDING.md` Packaging sections documented for all three platforms
|
||||
|
||||
Validation:
|
||||
- All three installers built, installed, and launched successfully with working SSH/RDP sessions
|
||||
- Code signing is ad hoc only (no purchased Apple Developer ID or Windows code-signing certificate), so macOS Gatekeeper and Windows SmartScreen still show first-run warnings by design
|
||||
|
||||
Git:
|
||||
- Tag: Pending user approval
|
||||
|
||||
## Milestone 10 - v1.0 Stabilization
|
||||
|
||||
|
||||
Reference in New Issue
Block a user