Commit Graph

473 Commits

Author SHA1 Message Date
Thomas Eizinger
28283a82c4 build(nix): add dependencies for launching GUI client (#9135)
In order to launch a debug build of the GUI client on NixOS, we need to
add the appindicator dependency and set the library lookup path
correctly.
2025-05-15 00:15:46 +00:00
Thomas Eizinger
b7451fcdae chore: release Gateway 1.4.9 (#9132) 2025-05-14 06:39:03 +00:00
Thomas Eizinger
a7ef588d86 chore: release headless client 1.4.8 (#9131) 2025-05-14 06:17:29 +00:00
Thomas Eizinger
5a4e72954f chore: release GUI client 1.4.13 (#9130) 2025-05-14 06:09:01 +00:00
Thomas Eizinger
f2e9ae51de build(nix): add GUI smoke test tools (#9086) 2025-05-12 13:07:11 +00:00
Jamil
4e61ba9582 fix(apple): set new project version on each build (#9072)
When developing the macOS app, we always build the exact same version
and build code for each build. ~~This _may_ be one reason why we
constantly have to deactivate the extension before the new one will
launch.~~ Edit: Just tested, and I can verify that this does fix the
issue on dev builds, so no more having to uninstall the sysex between
builds.

Even if that's not the reason, this is a cleaner approach than building
it in our prod-only scripts.

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2025-05-12 00:55:14 +00:00
Jamil
091b52ef07 ci: Prevent having to manually update provisioning profile UUIDs (#9074)
When updating the provisioning profiles (i.e. when changing anything the
Apple Developer Portal), we needed to manually update these build
scripts to point to the new UUIDs.

This can be made simpler to automatically pull it out of the profiles in
CI.
2025-05-11 22:54:14 +00:00
Jamil
3de8a1e405 fix(apple/iOS): Use pointer directly for libresolv API calls (#9038)
Somewhere between Xcode 16.0 and Xcode 16.3, the API for the libresolv
functions we call changed slightly, and we can now pass the return value
of `__res_9_state()` directly to the `res_9_ninit`, `res_9_ndestroy` and
`res_9_getservers` functions.
2025-05-06 03:32:35 +00:00
Thomas Eizinger
d833998b85 feat: update changelog as part of bump-versions script (#9019)
After we missed this again recently, I figured automating this shouldn't
actually be too difficult.

Co-authored-by: Claude
2025-05-05 21:44:31 +00:00
Thomas Eizinger
7d96953265 ci: add integration test with ECN enabled (#9012) 2025-05-02 10:25:12 +00:00
Jamil
6e0e7343ba chore: release Apple & Gateway with ECN fix (#9013) 2025-05-02 00:16:40 -07:00
Thomas Eizinger
ec4cd898ba chore: release Gateway v1.4.7 (#8943) 2025-04-30 13:37:32 +00:00
Jamil
2650d81444 chore: release clients with GSO fix (#8936) 2025-04-29 23:52:43 -07:00
Jamil
5db8e20f3b chore: release Apple and GUI clients (#8882)
- Apple clients 1.4.12
- GUI clients 1.4.11
2025-04-21 21:45:16 +00:00
Jamil
368ace2c6e ci: Release Android 1.4.7 (#8878)
App is live on Play store.
2025-04-21 21:12:27 +00:00
Jamil
5669c83835 ci: Bump Apple clients to 1.4.11 (#8848)
Includes a fix for auto-starting on launch when other VPN clients have
been connected previously.
2025-04-19 11:45:42 +00:00
Jamil
a2e32a4918 ci: Bump apple to 1.4.10 to ship PKG (#8797)
This publishes the 1.4.10 permalinks for the PKG download.
2025-04-17 15:13:44 +00:00
Jamil
54e60ca820 fix(ci): Use Developer ID Installer cert to sign pkg (#8796)
Apple requires standalone-distributed `PKG` installers to be signed with
a Developer ID Installer certificate.

Fixes
https://github.com/firezone/firezone/actions/runs/14497960810/job/40670440720#step:6:3500

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2025-04-16 18:29:59 +00:00
Jamil
fc7b6e3fb0 feat(ci): Publish installer PKG for macOS standalone (#8795)
Microsoft Intune's DMG provisioner currently fails unexpectedly when
trying to provision our published DMG file with the error:

> The DMG file couldn't be mounted for installation. Check the DMG file
if the error persists. (0x87D30139)

I ran the following verification commands locally, which all passed:

```
hdiutil verify -verbose <dmg>
hdiutil imageinfo -verbose <dmg>
hdiutil hfsanalyze -verbose <dmg>
hdiutil checksum -type SHA256 -verbose <dmg>
hdiutil info -verbose
hdiutil pmap -verbose <dmg>
```

So the issue appears to be most likely that Intune doens't like the
`/Applications` shortcut in the DMG. This is a UX feature to make it
easy to drag the application the /Applications folder upon opening the
DMG.

So we're publishing an PKG in addition to the DMG, which should be a
more reliable artifact for MDMs to use.

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2025-04-16 16:21:40 +00:00
Thomas Eizinger
4cf36cd8bd docs(kb): update path to Gateway to new location (#8794)
In #8480, we changed the location that `firezone-gateway` gets
downloaded to but forgot to update the knowledgebase with the new path.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
2025-04-16 13:20:28 +00:00
Jamil
aab691a67f ci: Release Apple clients 1.4.9 (#8793)
These contain the recent UDP thread enhancements.
2025-04-15 20:14:43 +00:00
Jamil
743f5fdfeb ci: bump clients/gateway to ship write improvements (#8792)
Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2025-04-15 06:21:23 +00:00
Thomas Eizinger
35da0a9cc8 chore(nix): bump to 24.11 and remove flake-utils (#8767)
In order to get more recent tools like `cargo deny` that support Rust
2024, we need to bump the nixpkgs release we depend on to 24.11. As part
of doing so, we simplify the flake to not depend on `flake-utils` as we
only build for a single system anyway.
2025-04-13 02:08:42 +00:00
Thomas Eizinger
7791fc143a ci: fix apple artifact upload (#8753) 2025-04-11 13:33:43 +00:00
Thomas Eizinger
42d742e3df chore: add bpftools to nix shell env (#8609) 2025-04-02 03:05:24 +00:00
Jamil
cf13e41e01 fix(gateway/docker): Handle missing gateway_id (#8534)
If the volume was not mapped correctly, or the install command was
modified, it's possible this file could be missing, which would fail the
upgrade script.

This gracefully handles that edge case.

See https://firezonehq.slack.com/archives/C069H865MHP/p1743128008276809
2025-03-28 04:28:24 +00:00
Thomas Eizinger
54274ebdc5 chore: add terraform to the nix config (#8531) 2025-03-28 03:17:10 +00:00
Jamil
effe169414 chore: release apple 1.4.8 (#8499)
Introduces the autoconnect and session end fixes.
2025-03-21 11:43:00 +00:00
Jamil
91db00f3d7 fix(gateway): Apply more specific firewall rules on start (#8483)
On some Linux distributions (Amazon Linux 2023), the default `iptables`
install includes a blanket deny rule in the `FORWARD` chain that
prevents packets from the tunnel interface from ever leaving the host.
To fix this, we ensure our `FORWARD` chain rules are inserted with
priority 1 which takes precedence over the blanket-deny rule.

We also update our MASQUERADE in the NAT table to apply only to the CIDR
range possible for Gateway tunnel IPs, as opposed to the default
`0.0.0.0/0`.

Fixes #8481
2025-03-19 05:32:50 +00:00
Jamil
9aa60b747e fix(gateway): Fix gateway install script for systemd 219 (#8480)
On older systemd versions (such as 219 bundled with Amazon Linux 2), the
`ExecStartPre` script isn't able to write to the `/usr/local/bin`
directory. This causes an error on unit startup.

To fix this, we update the `firezone-gateway-init` script to write to
`/opt/firezone` instead, which is `chown` `firezone:firezone`.

Tested to work on Amazon Linux 2.

Fixes #8471
2025-03-18 20:31:53 +00:00
Jamil
366215b1d6 fix(gateway): Prefer setting FIREZONE_ID over /var/lib/firezone (#8475)
When deploying a Gateway from the admin portal UI, we show various
environment variables required for setup. Until now, we've relied on the
`/var/lib/firezone` persistence method for identifying the Gateway.

However, this can cause issues on some systems that don't have writeable
access to /var/lib/firezone, or old versions of systemd that don't
support sandboxed access to this directory.

This PR updates each deployment method to use `FIREZONE_ID` instead
everywhere. Additionally, since the Docker upgrade script needs to
reinvoke the new container using the same arguments (more or less) as
the install, we need to extract the old `/var/lib/firezone/gateway_id`
file out of the existing container if it exists, and try to insert it
into the upgraded container.

Tested both scripts, including upgrades for the Docker script.

Fixes: #8471
2025-03-18 04:08:21 +00:00
Jamil
e642eefb35 chore: Cut all clients to ship search domains (#8442)
Waiting on app reviews to be approved, then this PR will be ready to
merge.
2025-03-17 17:25:11 +00:00
Jamil
a47b96bcad chore: Release android 1.4.4 (#8449)
This was already published on Google Play, but the other clients will
follow suit in #8442.
2025-03-15 17:13:17 -05:00
Jamil
06aa485e18 ci: Use search_domain for one resource in CI test (#8393)
- Adds a `search_domain` of `httpbin.test` in seeds
- Updates one of our DNS resources under CI test to use this
2025-03-15 13:27:22 +00:00
Jamil
25c708fb43 ci: Bump apple clients to 1.4.6 (#8418) 2025-03-12 04:09:49 +00:00
Jamil
f3e36a2253 ci: bump android to 1.4.3 (#8416) 2025-03-11 05:52:26 +00:00
Jamil
df5bbdd240 ci: Ship SRV/TXT for GUI/Headless/Gateway (#8413) 2025-03-10 21:30:23 -07:00
Jamil
280dc6c97b ci: Don't specify Xcode version (#8293)
A particular version of Xcode locks in particular versions of SDKs to
build against. If we hardcode this, the benefit is that we have a
predictable and repeatable build environment.

The downside is whenever GitHub updates its macOS runner images, we
could fail to build due to a version mismatch.

In general, drift between Xcode versions isn't a problem, and tracking
the latest will more closely track developer's machines.
2025-02-28 07:41:56 +00:00
Jamil
14436908d2 chore: Release GUI client 1.4.7 (#8275) 2025-02-25 23:30:44 -08:00
Jamil
48030f68d7 ci: Bump Apple clients to 1.4.5 (#8252)
These have been published. This fixes a critical bug preventing the
client from launching on macOS.
2025-02-24 23:41:38 -08:00
Jamil
0bc3895c3e ci: Bump Apple clients to 1.4.4 (#8245)
These have been released / published. Need to merge this to get website
links and changelog updated.
2025-02-24 09:01:45 -08:00
Thomas Eizinger
4cb2b01c26 build(nix): manage Rust installation via rustup (#8235)
Using `rustup` - even on NixOS - is easier to manage the Rust toolchain
as some tools rely on being able to use the `rustup` shims such as
`+nightly` to run a nightly toolchain.
2025-02-24 01:33:13 +00:00
Thomas Eizinger
6f68b97558 chore(gui-client): release v1.4.6 (#8211) 2025-02-20 04:25:38 +00:00
Jamil
e487272a1b chore(apple): Release Apple clients 1.4.3 (#8144) 2025-02-16 12:59:38 -08:00
Jamil
d38ec466b9 chore(android): Release Android 1.4.2 (#8145) 2025-02-16 12:59:12 -08:00
Jamil
39cbf60ec8 ci: Bump Apple clients to 1.4.2 (#8109)
Fixes a slew of memory leaks, crashes, and other papercuts.
2025-02-13 22:08:45 +00:00
Jamil
2b1e9ac17f fix(gateway): Use StateDirectory to create /var/lib/firezone (#8120)
This is needed on fresh installations.
2025-02-13 05:35:44 -08:00
Thomas Eizinger
0e5d91e266 build(nix): use more recent pnpm (#8106)
Updates to `pnpm` 9.
2025-02-13 01:01:23 +00:00
Jamil
5afeb30f6f ci: Bump GUI clients to 1.4.5 (#8113) 2025-02-12 20:56:27 +00:00
Jamil
36f06b84ea fix(gateway): Harden systemd gateway unit file (#8102)
Tested this with Vultr. No errors or issues reported for either IP or
CIDR resources.

Fixes:
https://firezonehq.slack.com/archives/C06L41XN05T/p1739275605563679?thread_ts=1739267494.554949&cid=C06L41XN05T
2025-02-12 11:09:27 +00:00