You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[`doc/`](doc/)| Quarto documentation site (ggsql.org) | Quarto project |[`doc/CLAUDE.md`](doc/CLAUDE.md)|
30
31
31
-
The Cargo workspace (`/Cargo.toml`) has four members: `tree-sitter-ggsql`, `src`, `ggsql-jupyter`, `ggsql-wasm`. Default workspace members exclude `ggsql-wasm` (it needs the wasm32 target and is built separately).
32
+
The Cargo workspace (`/Cargo.toml`) has five members: `tree-sitter-ggsql`, `src`, `ggsql-cli`, `ggsql-jupyter`, `ggsql-wasm`. Default workspace members exclude `ggsql-wasm` (it needs the wasm32 target and is built separately).
32
33
33
34
## High-level pipeline
34
35
@@ -48,13 +49,16 @@ For details — module layout, traits, where extension points live — see [`src
Copy file name to clipboardExpand all lines: INSTALLERS.md
+60-34Lines changed: 60 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,52 +1,69 @@
1
1
# Building Cross-Platform Installers
2
2
3
-
ggsql uses [cargo-packager](https://github.com/crabnebula-dev/cargo-packager) to create native installers for Windows, macOS, and Linux.
3
+
ggsql ships native installers for Windows, macOS, and Linux. Windows (NSIS / MSI) and Linux (Deb) installers are built via [cargo-packager](https://github.com/crabnebula-dev/cargo-packager); macOS installers are built directly with Apple's `pkgbuild`, then code-signed and notarized.
4
4
5
5
## Quick Start
6
6
7
7
### Prerequisites
8
8
9
-
1.**Install cargo-packager**:
9
+
1.**For Windows / Linux installers — install cargo-packager**:
10
10
11
11
```bash
12
12
cargo install cargo-packager --locked
13
13
```
14
14
15
15
2.**Platform-specific requirements**:
16
16
-**Windows**: No additional requirements (uses built-in NSIS, optionally WiX if installed)
17
-
-**macOS**: Xcode Command Line Tools
17
+
-**macOS**: Xcode Command Line Tools, plus [`dylibbundler`](https://github.com/auriamg/macdylibbundler) (`brew install dylibbundler`) for bundling Arrow / DuckDB dynamic libraries
CI additionally codesigns the binaries with `entitlements.plist` (Developer ID Application), signs the `.pkg` (Developer ID Installer), and notarizes via `xcrun notarytool` — see [`.github/workflows/release-packages.yml`](.github/workflows/release-packages.yml). Local builds without those creds produce an unsigned `.pkg` that's fine for testing but will be Gatekeeper-blocked on other machines.
Installer configuration is in `src/Cargo.toml` under `[package.metadata.packager]`:
77
+
Windows / Linux installer configuration is in `ggsql-cli/Cargo.toml` under `[package.metadata.packager]` (the macOS `.pkg` build is driven entirely by the `pkgbuild` invocation in the workflow, not by this metadata):
This happens with unsigned installers. Click "More info" → "Run anyway". For production, sign the installer with a code signing certificate.
167
189
168
-
### macOS: "ggsql.app is damaged"
190
+
### macOS: ".pkg can't be opened" / "unidentified developer"
169
191
170
-
This happens with unsigned apps. Run:
192
+
Locally-built `.pkg` files are unsigned and Gatekeeper will block double-clicking them. Either install from the command line:
171
193
172
194
```bash
173
-
xattr -cr /Applications/ggsql.app
195
+
sudo installer -pkg ggsql-dev.pkg -target /
174
196
```
175
197
198
+
…or right-click → Open to bypass Gatekeeper for that file. Official releases from GitHub are signed with the Developer ID Installer certificate and notarized, so they install without warnings.
199
+
176
200
### Linux: Missing dependencies
177
201
178
202
If the Deb/RPM package fails to install, ensure you have the required system libraries:
@@ -191,7 +215,9 @@ Build for different architectures:
0 commit comments