summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey C. Ollie <jeff@ocjtech.us>2025-02-14 10:08:40 -0600
committerMitchell Hashimoto <m@mitchellh.com>2025-03-23 14:41:55 -0700
commit8bd3073cb77110c1dec429117a9a2749d371bf78 (patch)
treedb13eae0d30934ecf2f782ad0ded2d014da35d52
parentacafe881a06ed359b4f95a50ab247ae0540de9f8 (diff)
build: generate a build.zig.zon.txt file for easy zig fetch scripting
This fixes a regression in 1.1.1/1.1.2 where our PACKAGING docs mention using `fetch-zig-cache.sh` but it was removed. This commit adds it back, generating its contents from the build.zig.zon file (via zon2nix which we use for our Nix packaging). For packagers, there are no dependency changes: you still need Zig and POSIX sh. For release time, Ghostty has a new dependency on `jq` but otherwise the release process is the same. The check-zig-cache.sh script is updated to generate the new build.zig.zon.txt file.
-rw-r--r--.gitattributes2
-rw-r--r--.gitignore1
-rw-r--r--PACKAGING.md14
-rw-r--r--build.zig.zon8
-rw-r--r--build.zig.zon.nix20
-rw-r--r--build.zig.zon.txt38
-rw-r--r--build.zig.zon2json-lock192
-rwxr-xr-xnix/build-support/check-zig-cache.sh22
-rwxr-xr-xnix/build-support/fetch-zig-cache.sh25
-rw-r--r--nix/devShell.nix2
-rw-r--r--pkg/wuffs/build.zig.zon2
11 files changed, 287 insertions, 39 deletions
diff --git a/.gitattributes b/.gitattributes
index 148515873..e6f3c2789 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,4 +1,6 @@
build.zig.zon.nix linguist-generated=true
+build.zig.zon.txt linguist-generated=true
+build.zig.zon2json-lock linguist-generated=true
vendor/** linguist-vendored
website/** linguist-documentation
pkg/breakpad/vendor/** linguist-vendored
diff --git a/.gitignore b/.gitignore
index b37c80ebe..db8457e1f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,4 +18,3 @@ glad.zip
/Box_test.ppm
/Box_test_diff.ppm
/ghostty.qcow2
-/build.zig.zon2json-lock
diff --git a/PACKAGING.md b/PACKAGING.md
index 82c7c5673..6a4c01b6f 100644
--- a/PACKAGING.md
+++ b/PACKAGING.md
@@ -23,13 +23,6 @@ https://release.files.ghostty.org/VERSION/ghostty-VERSION.tar.gz
https://release.files.ghostty.org/VERSION/ghostty-VERSION.tar.gz.minisig
```
-> [!NOTE]
->
-> **Version 1.0.0 the filename is `ghostty-source.tar.gz`.** Future
-> versions will use the `ghostty-VERSION.tar.gz` format since it is more
-> typical for source tarballs. But for version 1.0.0, the filename is
-> `ghostty-source.tar.gz`.
-
Signature files are signed with
[minisign](https://jedisct1.github.io/minisign/)
using the following public key:
@@ -88,6 +81,13 @@ for system packages which separate a build and install step, since the
install step can then be done with a `mv` or `cp` command (from `/tmp/ghostty`
to wherever the package manager expects it).
+> [!NOTE]
+>
+> **Version 1.1.1 and 1.1.2 are missing `fetch-zig-cache.sh`.** This was
+> an oversight on the release process. You can use the script from version
+> 1.1.0 to fetch the Zig cache for these versions. Future versions will
+> restore the script.
+
### Build Options
Ghostty uses the Zig build system. You can see all available build options by
diff --git a/build.zig.zon b/build.zig.zon
index 06155d83e..6930e992c 100644
--- a/build.zig.zon
+++ b/build.zig.zon
@@ -14,11 +14,11 @@
.lazy = true,
},
.vaxis = .{
- .url = "git+https://github.com/rockorager/libvaxis/?ref=main#6d729a2dc3b934818dffe06d2ba3ce02841ed74b",
+ .url = "https://github.com/rockorager/libvaxis/archive/6d729a2dc3b934818dffe06d2ba3ce02841ed74b.tar.gz",
.hash = "12200df4ebeaed45de26cb2c9f3b6f3746d8013b604e035dae658f86f586c8c91d2f",
},
.z2d = .{
- .url = "git+https://github.com/vancluever/z2d?ref=v0.4.0#4638bb02a9dc41cc2fb811f092811f6a951c752a",
+ .url = "https://github.com/vancluever/z2d/archive/4638bb02a9dc41cc2fb811f092811f6a951c752a.tar.gz",
.hash = "12201f0d542e7541cf492a001d4d0d0155c92f58212fbcb0d224e95edeba06b5416a",
},
.zig_objc = .{
@@ -38,7 +38,7 @@
.hash = "12209ca054cb1919fa276e328967f10b253f7537c4136eb48f3332b0f7cf661cad38",
},
.zf = .{
- .url = "git+https://github.com/natecraddock/zf/?ref=main#ed99ca18b02dda052e20ba467e90b623c04690dd",
+ .url = "https://github.com/natecraddock/zf/archive/ed99ca18b02dda052e20ba467e90b623c04690dd.tar.gz",
.hash = "1220edc3b8d8bedbb50555947987e5e8e2f93871ca3c8e8d4cc8f1377c15b5dd35e8",
},
.gobject = .{
@@ -76,7 +76,7 @@
.hash = "12201a57c6ce0001aa034fa80fba3e1cd2253c560a45748f4f4dd21ff23b491cddef",
},
.plasma_wayland_protocols = .{
- .url = "git+https://github.com/KDE/plasma-wayland-protocols?ref=main#db525e8f9da548cffa2ac77618dd0fbe7f511b86",
+ .url = "https://github.com/KDE/plasma-wayland-protocols/archive/db525e8f9da548cffa2ac77618dd0fbe7f511b86.tar.gz",
.hash = "12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566",
},
diff --git a/build.zig.zon.nix b/build.zig.zon.nix
index 56a55a3ef..4ffc264be 100644
--- a/build.zig.zon.nix
+++ b/build.zig.zon.nix
@@ -143,8 +143,8 @@ in
name = "12200df4ebeaed45de26cb2c9f3b6f3746d8013b604e035dae658f86f586c8c91d2f";
path = fetchZigArtifact {
name = "vaxis";
- url = "git+https://github.com/rockorager/libvaxis/?ref=main#6d729a2dc3b934818dffe06d2ba3ce02841ed74b";
- hash = "sha256-fFf79fCy4QQFVNcN722tSMjB6FyVEzCB36oH1olk9JQ=";
+ url = "https://github.com/rockorager/libvaxis/archive/6d729a2dc3b934818dffe06d2ba3ce02841ed74b.tar.gz";
+ hash = "sha256-OCNs6Gl2ruq5dBm4uIxs93hoXw/+n+x1+bIDfQGDx3s=";
};
}
{
@@ -167,8 +167,8 @@ in
name = "12201f0d542e7541cf492a001d4d0d0155c92f58212fbcb0d224e95edeba06b5416a";
path = fetchZigArtifact {
name = "z2d";
- url = "git+https://github.com/vancluever/z2d?ref=v0.4.0#4638bb02a9dc41cc2fb811f092811f6a951c752a";
- hash = "sha256-YpWXn1J3JKQSCrWB25mAfzd1/T56QstEZnhPzBwxgoM=";
+ url = "https://github.com/vancluever/z2d/archive/4638bb02a9dc41cc2fb811f092811f6a951c752a.tar.gz";
+ hash = "sha256-P0UJ54RO/vVyDa+UkBl+QEOjzoMMEFSOTexQP/uBXfc=";
};
}
{
@@ -207,8 +207,8 @@ in
name = "1220edc3b8d8bedbb50555947987e5e8e2f93871ca3c8e8d4cc8f1377c15b5dd35e8";
path = fetchZigArtifact {
name = "zf";
- url = "git+https://github.com/natecraddock/zf/?ref=main#ed99ca18b02dda052e20ba467e90b623c04690dd";
- hash = "sha256-t6QNrEJZ4GZZsYixjYvpdrYoCmNbG8TTUmGs2MFa4sU=";
+ url = "https://github.com/natecraddock/zf/archive/ed99ca18b02dda052e20ba467e90b623c04690dd.tar.gz";
+ hash = "sha256-/oLryY3VQfjbtQi+UP+n6FJTVA/YxIetjO+6Ovrh6/E=";
};
}
{
@@ -247,8 +247,8 @@ in
name = "12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566";
path = fetchZigArtifact {
name = "plasma_wayland_protocols";
- url = "git+https://github.com/KDE/plasma-wayland-protocols?ref=main#db525e8f9da548cffa2ac77618dd0fbe7f511b86";
- hash = "sha256-iWRv3+OfmHxmeCJ8m0ChjgZX6mwXlcFmK8P/Vt8gDj4=";
+ url = "https://github.com/KDE/plasma-wayland-protocols/archive/db525e8f9da548cffa2ac77618dd0fbe7f511b86.tar.gz";
+ hash = "sha256-XFi6IUrNjmvKNCbcCLAixGqN2Zeymhs+KLrfccIN9EE=";
};
}
{
@@ -367,8 +367,8 @@ in
name = "12207ff340169c7d40c570b4b6a97db614fe47e0d83b5801a932dcd44917424c8806";
path = fetchZigArtifact {
name = "pixels";
- url = "git+https://github.com/make-github-pseudonymous-again/pixels?ref=main#d843c2714d32e15b48b8d7eeb480295af537f877";
- hash = "sha256-kXYGO0qn2PfyOYCrRA49BHIgTzdmKhI8SNO1ZKfUYEE=";
+ url = "https://github.com/make-github-pseudonymous-again/pixels/archive/d843c2714d32e15b48b8d7eeb480295af537f877.tar.gz";
+ hash = "sha256-Veg7FtCRCCUCvxSb9FfzH0IJLFmCZQ4/+657SIcb8Ro=";
};
}
{
diff --git a/build.zig.zon.txt b/build.zig.zon.txt
new file mode 100644
index 000000000..4808ba6c4
--- /dev/null
+++ b/build.zig.zon.txt
@@ -0,0 +1,38 @@
+git+https://github.com/rockorager/libvaxis/?ref=main#dc0a228a5544988d4a920cfb40be9cd28db41423
+git+https://github.com/zigimg/zigimg#3a667bdb3d7f0955a5a51c8468eac83210c1439e
+https://codeberg.org/atman/zg/archive/v0.13.2.tar.gz
+https://deps.files.ghostty.org/fontconfig-2.14.2.tar.gz
+https://deps.files.ghostty.org/wayland-9cb3d7aa9dc995ffafdbdef7ab86a949d0fb0e7d.tar.gz
+https://deps.files.ghostty.org/wayland-protocols-258d8f88f2c8c25a830c6316f87d23ce1a0f12d9.tar.gz
+https://deps.files.ghostty.org/zig-wayland-fbfe3b4ac0b472a27b1f1a67405436c58cbee12d.tar.gz
+https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz
+https://github.com/GNOME/libxml2/archive/refs/tags/v2.11.5.tar.gz
+https://github.com/KDE/plasma-wayland-protocols/archive/db525e8f9da548cffa2ac77618dd0fbe7f511b86.tar.gz
+https://github.com/KhronosGroup/SPIRV-Cross/archive/476f384eb7d9e48613c45179e502a15ab95b6b49.tar.gz
+https://github.com/KhronosGroup/glslang/archive/refs/tags/14.2.0.tar.gz
+https://github.com/freetype/freetype/archive/refs/tags/VER-2-13-2.tar.gz
+https://github.com/getsentry/breakpad/archive/b99f444ba5f6b98cac261cbb391d8766b34a5918.tar.gz
+https://github.com/getsentry/sentry-native/archive/refs/tags/0.7.8.tar.gz
+https://github.com/glennrp/libpng/archive/refs/tags/v1.6.43.tar.gz
+https://github.com/google/highway/archive/refs/tags/1.1.0.tar.gz
+https://github.com/google/wuffs/archive/refs/tags/v0.4.0-alpha.9.tar.gz
+https://github.com/harfbuzz/harfbuzz/archive/refs/tags/8.4.0.tar.gz
+https://github.com/ianprime0509/zig-gobject/releases/download/v0.2.2/bindings-gnome47.tar.zst
+https://github.com/kkos/oniguruma/archive/refs/tags/v6.9.9.tar.gz
+https://github.com/madler/zlib/archive/refs/tags/v1.3.1.tar.gz
+https://github.com/make-github-pseudonymous-again/pixels/archive/d843c2714d32e15b48b8d7eeb480295af537f877.tar.gz
+https://github.com/mbadolato/iTerm2-Color-Schemes/archive/db227d159adc265818f2e898da0f70ef8d7b580e.tar.gz
+https://github.com/mitchellh/glfw/archive/b552c6ec47326b94015feddb36058ea567b87159.tar.gz
+https://github.com/mitchellh/libxev/archive/31eed4e337fed7b0149319e5cdbb62b848c24fbd.tar.gz
+https://github.com/mitchellh/mach-glfw/archive/37c2995f31abcf7e8378fba68ddcf4a3faa02de0.tar.gz
+https://github.com/mitchellh/vulkan-headers/archive/04c8a0389d5a0236a96312988017cd4ce27d8041.tar.gz
+https://github.com/mitchellh/wayland-headers/archive/5f991515a29f994d87b908115a2ab0b899474bd1.tar.gz
+https://github.com/mitchellh/x11-headers/archive/2ffbd62d82ff73ec929dd8de802bc95effa0ef88.tar.gz
+https://github.com/mitchellh/xcode-frameworks/archive/69801c154c39d7ae6129ea1ba8fe1afe00585fc8.tar.gz
+https://github.com/mitchellh/zig-js/archive/d0b8b0a57c52fbc89f9d9fecba75ca29da7dd7d1.tar.gz
+https://github.com/mitchellh/zig-objc/archive/9b8ba849b0f58fe207ecd6ab7c147af55b17556e.tar.gz
+https://github.com/natecraddock/zf/archive/ed99ca18b02dda052e20ba467e90b623c04690dd.tar.gz
+https://github.com/nemtrif/utfcpp/archive/refs/tags/v4.0.5.tar.gz
+https://github.com/ocornut/imgui/archive/e391fe2e66eb1c96b1624ae8444dc64c23146ef4.tar.gz
+https://github.com/rockorager/libvaxis/archive/6d729a2dc3b934818dffe06d2ba3ce02841ed74b.tar.gz
+https://github.com/vancluever/z2d/archive/4638bb02a9dc41cc2fb811f092811f6a951c752a.tar.gz
diff --git a/build.zig.zon2json-lock b/build.zig.zon2json-lock
new file mode 100644
index 000000000..c4ad47795
--- /dev/null
+++ b/build.zig.zon2json-lock
@@ -0,0 +1,192 @@
+{
+ "1220ebf88622c4d502dc59e71347e4d28c47e033f11b59aff774ae5787565c40999c": {
+ "name": "libxev",
+ "url": "https://github.com/mitchellh/libxev/archive/31eed4e337fed7b0149319e5cdbb62b848c24fbd.tar.gz",
+ "hash": "sha256-VHP90NTytIZ8UZsYRKOOxN490/I6yv6ec40sP8y5MJ8="
+ },
+ "12206ed982e709e565d536ce930701a8c07edfd2cfdce428683f3f2a601d37696a62": {
+ "name": "mach_glfw",
+ "url": "https://github.com/mitchellh/mach-glfw/archive/37c2995f31abcf7e8378fba68ddcf4a3faa02de0.tar.gz",
+ "hash": "sha256-HhXIvWUS8/CHWY4VXPG2ZEo+we8XOn3o5rYJCQ1n8Nk="
+ },
+ "1220736fa4ba211162c7a0e46cc8fe04d95921927688bff64ab5da7420d098a7272d": {
+ "name": "glfw",
+ "url": "https://github.com/mitchellh/glfw/archive/b552c6ec47326b94015feddb36058ea567b87159.tar.gz",
+ "hash": "sha256-IeBVAOQmtyFqVxzuXPek1onuPwIamcOyYtxqKpPEQjU="
+ },
+ "12202adbfecdad671d585c9a5bfcbd5cdf821726779430047742ce1bf94ad67d19cb": {
+ "name": "xcode_frameworks",
+ "url": "https://github.com/mitchellh/xcode-frameworks/archive/69801c154c39d7ae6129ea1ba8fe1afe00585fc8.tar.gz",
+ "hash": "sha256-mP/I2coL57UJm/3+4Q8sPAgQwk8V4zM+S4VBBTrX2To="
+ },
+ "122004bfd4c519dadfb8e6281a42fc34fd1aa15aea654ea8a492839046f9894fa2cf": {
+ "name": "vulkan_headers",
+ "url": "https://github.com/mitchellh/vulkan-headers/archive/04c8a0389d5a0236a96312988017cd4ce27d8041.tar.gz",
+ "hash": "sha256-K+zrRudgHFukOM6En1StRYRMNYkeRk+qHTXvrXaG+FU="
+ },
+ "1220b3164434d2ec9db146a40bf3a30f490590d68fa8529776a3138074f0da2c11ca": {
+ "name": "wayland_headers",
+ "url": "https://github.com/mitchellh/wayland-headers/archive/5f991515a29f994d87b908115a2ab0b899474bd1.tar.gz",
+ "hash": "sha256-uFilLZinKkZt6RdVTV3lUmJpzpswDdFva22FvwU/XQI="
+ },
+ "122089c326186c84aa2fd034b16abc38f3ebf4862d9ae106dc1847ac44f557b36465": {
+ "name": "x11_headers",
+ "url": "https://github.com/mitchellh/x11-headers/archive/2ffbd62d82ff73ec929dd8de802bc95effa0ef88.tar.gz",
+ "hash": "sha256-EhV2bmTY/OMYN1wEul35gD0hQgS/Al262jO3pVr0O+c="
+ },
+ "12200df4ebeaed45de26cb2c9f3b6f3746d8013b604e035dae658f86f586c8c91d2f": {
+ "name": "vaxis",
+ "url": "https://github.com/rockorager/libvaxis/archive/6d729a2dc3b934818dffe06d2ba3ce02841ed74b.tar.gz",
+ "hash": "sha256-OCNs6Gl2ruq5dBm4uIxs93hoXw/+n+x1+bIDfQGDx3s="
+ },
+ "1220dd654ef941fc76fd96f9ec6adadf83f69b9887a0d3f4ee5ac0a1a3e11be35cf5": {
+ "name": "zigimg",
+ "url": "git+https://github.com/zigimg/zigimg#3a667bdb3d7f0955a5a51c8468eac83210c1439e",
+ "hash": "sha256-oLf3YH3yeg4ikVO/GahMCDRMTU31AHkfSnF4rt7xTKo="
+ },
+ "122055beff332830a391e9895c044d33b15ea21063779557024b46169fb1984c6e40": {
+ "name": "zg",
+ "url": "https://codeberg.org/atman/zg/archive/v0.13.2.tar.gz",
+ "hash": "sha256-2x9hT7bYq9KJYWLVOf21a+QvTG/F7HWT+YK15IMRzNY="
+ },
+ "12201f0d542e7541cf492a001d4d0d0155c92f58212fbcb0d224e95edeba06b5416a": {
+ "name": "z2d",
+ "url": "https://github.com/vancluever/z2d/archive/4638bb02a9dc41cc2fb811f092811f6a951c752a.tar.gz",
+ "hash": "sha256-P0UJ54RO/vVyDa+UkBl+QEOjzoMMEFSOTexQP/uBXfc="
+ },
+ "1220e17e64ef0ef561b3e4b9f3a96a2494285f2ec31c097721bf8c8677ec4415c634": {
+ "name": "zig_objc",
+ "url": "https://github.com/mitchellh/zig-objc/archive/9b8ba849b0f58fe207ecd6ab7c147af55b17556e.tar.gz",
+ "hash": "sha256-H+HIbh2T23uzrsg9/1/vl9Ir1HCAa2pzeTx6zktJH9Q="
+ },
+ "12205a66d423259567764fa0fc60c82be35365c21aeb76c5a7dc99698401f4f6fefc": {
+ "name": "zig_js",
+ "url": "https://github.com/mitchellh/zig-js/archive/d0b8b0a57c52fbc89f9d9fecba75ca29da7dd7d1.tar.gz",
+ "hash": "sha256-fyNeCVbC9UAaKJY6JhAZlT0A479M/AKYMPIWEZbDWD0="
+ },
+ "12207831bce7d4abce57b5a98e8f3635811cfefd160bca022eb91fe905d36a02cf25": {
+ "name": "ziglyph",
+ "url": "https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz",
+ "hash": "sha256-cse98+Ft8QUjX+P88yyYfaxJOJGQ9M7Ymw7jFxDz89k="
+ },
+ "12209ca054cb1919fa276e328967f10b253f7537c4136eb48f3332b0f7cf661cad38": {
+ "name": "zig_wayland",
+ "url": "https://deps.files.ghostty.org/zig-wayland-fbfe3b4ac0b472a27b1f1a67405436c58cbee12d.tar.gz",
+ "hash": "sha256-RtAystqK/GRYIquTK1KfD7rRSCrfuzAvCD1Z9DE1ldc="
+ },
+ "1220edc3b8d8bedbb50555947987e5e8e2f93871ca3c8e8d4cc8f1377c15b5dd35e8": {
+ "name": "zf",
+ "url": "https://github.com/natecraddock/zf/archive/ed99ca18b02dda052e20ba467e90b623c04690dd.tar.gz",
+ "hash": "sha256-/oLryY3VQfjbtQi+UP+n6FJTVA/YxIetjO+6Ovrh6/E="
+ },
+ "1220c72c1697dd9008461ead702997a15d8a1c5810247f02e7983b9f74c6c6e4c087": {
+ "name": "vaxis",
+ "url": "git+https://github.com/rockorager/libvaxis/?ref=main#dc0a228a5544988d4a920cfb40be9cd28db41423",
+ "hash": "sha256-QWN4jOrA91KlbqmeEHHJ4HTnCC9nmfxt8DHUXJpAzLI="
+ },
+ "12208d70ee791d7ef7e16e1c3c9c1127b57f1ed066a24f87d57fc9f730c5dc394b9d": {
+ "name": "gobject",
+ "url": "https://github.com/ianprime0509/zig-gobject/releases/download/v0.2.2/bindings-gnome47.tar.zst",
+ "hash": "sha256-UU97kNv/bZzQPKz1djhEDLapLguvfBpFfWVb6FthtcI="
+ },
+ "12202cdac858abc52413a6c6711d5026d2d3c8e13f95ca2c327eade0736298bb021f": {
+ "name": "wayland",
+ "url": "https://deps.files.ghostty.org/wayland-9cb3d7aa9dc995ffafdbdef7ab86a949d0fb0e7d.tar.gz",
+ "hash": "sha256-6kGR1o5DdnflHzqs3ieCmBAUTpMdOXoyfcYDXiw5xQ0="
+ },
+ "12201a57c6ce0001aa034fa80fba3e1cd2253c560a45748f4f4dd21ff23b491cddef": {
+ "name": "wayland_protocols",
+ "url": "https://deps.files.ghostty.org/wayland-protocols-258d8f88f2c8c25a830c6316f87d23ce1a0f12d9.tar.gz",
+ "hash": "sha256-XO3K3egbdeYPI+XoO13SuOtO+5+Peb16NH0UiusFMPg="
+ },
+ "12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566": {
+ "name": "plasma_wayland_protocols",
+ "url": "https://github.com/KDE/plasma-wayland-protocols/archive/db525e8f9da548cffa2ac77618dd0fbe7f511b86.tar.gz",
+ "hash": "sha256-XFi6IUrNjmvKNCbcCLAixGqN2Zeymhs+KLrfccIN9EE="
+ },
+ "12203d2647e5daf36a9c85b969e03f422540786ce9ea624eb4c26d204fe1f46218f3": {
+ "name": "iterm2_themes",
+ "url": "https://github.com/mbadolato/iTerm2-Color-Schemes/archive/db227d159adc265818f2e898da0f70ef8d7b580e.tar.gz",
+ "hash": "sha256-Iyf7U4rpvNkPX4AOEbYSYGte5+SjRwsWD2luOn1Hz8U="
+ },
+ "1220bc6b9daceaf7c8c60f3c3998058045ba0c5c5f48ae255ff97776d9cd8bfc6402": {
+ "name": "imgui",
+ "url": "https://github.com/ocornut/imgui/archive/e391fe2e66eb1c96b1624ae8444dc64c23146ef4.tar.gz",
+ "hash": "sha256-oF/QHgTPEat4Hig4fGIdLkIPHmBEyOJ6JeYD6pnveGA="
+ },
+ "1220b81f6ecfb3fd222f76cf9106fecfa6554ab07ec7fdc4124b9bb063ae2adf969d": {
+ "name": "freetype",
+ "url": "https://github.com/freetype/freetype/archive/refs/tags/VER-2-13-2.tar.gz",
+ "hash": "sha256-QnIB9dUVFnDQXB9bRb713aHy592XHvVPD+qqf/0quQw="
+ },
+ "1220aa013f0c83da3fb64ea6d327f9173fa008d10e28bc9349eac3463457723b1c66": {
+ "name": "libpng",
+ "url": "https://github.com/glennrp/libpng/archive/refs/tags/v1.6.43.tar.gz",
+ "hash": "sha256-/syVtGzwXo4/yKQUdQ4LparQDYnp/fF16U/wQcrxoDo="
+ },
+ "1220fed0c74e1019b3ee29edae2051788b080cd96e90d56836eea857b0b966742efb": {
+ "name": "zlib",
+ "url": "https://github.com/madler/zlib/archive/refs/tags/v1.3.1.tar.gz",
+ "hash": "sha256-F+iIY/NgBnKrSRgvIXKBtvxNPHYr3jYZNeQ2qVIU0Fw="
+ },
+ "12201149afb3326c56c05bb0a577f54f76ac20deece63aa2f5cd6ff31a4fa4fcb3b7": {
+ "name": "fontconfig",
+ "url": "https://deps.files.ghostty.org/fontconfig-2.14.2.tar.gz",
+ "hash": "sha256-O6LdkhWHGKzsXKrxpxYEO1qgVcJ7CB2RSvPMtA3OilU="
+ },
+ "122032442d95c3b428ae8e526017fad881e7dc78eab4d558e9a58a80bfbd65a64f7d": {
+ "name": "libxml2",
+ "url": "https://github.com/GNOME/libxml2/archive/refs/tags/v2.11.5.tar.gz",
+ "hash": "sha256-bCgFni4+60K1tLFkieORamNGwQladP7jvGXNxdiaYhU="
+ },
+ "1220b8588f106c996af10249bfa092c6fb2f35fbacb1505ef477a0b04a7dd1063122": {
+ "name": "harfbuzz",
+ "url": "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/8.4.0.tar.gz",
+ "hash": "sha256-nxygiYE7BZRK0c6MfgGCEwJtNdybq0gKIeuHaDg5ZVY="
+ },
+ "12205c83b8311a24b1d5ae6d21640df04f4b0726e314337c043cde1432758cbe165b": {
+ "name": "highway",
+ "url": "https://github.com/google/highway/archive/refs/tags/1.1.0.tar.gz",
+ "hash": "sha256-NUqLRTm1iOcLmOxwhEJz4/J0EwLEw3e8xOgbPRhm98k="
+ },
+ "1220c15e72eadd0d9085a8af134904d9a0f5dfcbed5f606ad60edc60ebeccd9706bb": {
+ "name": "oniguruma",
+ "url": "https://github.com/kkos/oniguruma/archive/refs/tags/v6.9.9.tar.gz",
+ "hash": "sha256-ABqhIC54RI9MC/GkjHblVodrNvFtks4yB+zP1h2Z8qA="
+ },
+ "1220446be831adcca918167647c06c7b825849fa3fba5f22da394667974537a9c77e": {
+ "name": "sentry",
+ "url": "https://github.com/getsentry/sentry-native/archive/refs/tags/0.7.8.tar.gz",
+ "hash": "sha256-KsZJfMjWGo0xCT5HrduMmyxFsWsHBbszSoNbZCPDGN8="
+ },
+ "12207fd37bb8251919c112dcdd8f616a491857b34a451f7e4486490077206dc2a1ea": {
+ "name": "breakpad",
+ "url": "https://github.com/getsentry/breakpad/archive/b99f444ba5f6b98cac261cbb391d8766b34a5918.tar.gz",
+ "hash": "sha256-bMqYlD0amQdmzvYQd8Ca/1k4Bj/heh7+EijlQSttatk="
+ },
+ "1220d4d18426ca72fc2b7e56ce47273149815501d0d2395c2a98c726b31ba931e641": {
+ "name": "utfcpp",
+ "url": "https://github.com/nemtrif/utfcpp/archive/refs/tags/v4.0.5.tar.gz",
+ "hash": "sha256-/8ZooxDndgfTk/PBizJxXyI9oerExNbgV5oR345rWc8="
+ },
+ "122037b39d577ec2db3fd7b2130e7b69ef6cc1807d68607a7c232c958315d381b5cd": {
+ "name": "wuffs",
+ "url": "https://github.com/google/wuffs/archive/refs/tags/v0.4.0-alpha.9.tar.gz",
+ "hash": "sha256-nkzSCr6W5sTG7enDBXEIhgEm574uLD41UVR2wlC+HBM="
+ },
+ "12207ff340169c7d40c570b4b6a97db614fe47e0d83b5801a932dcd44917424c8806": {
+ "name": "pixels",
+ "url": "https://github.com/make-github-pseudonymous-again/pixels/archive/d843c2714d32e15b48b8d7eeb480295af537f877.tar.gz",
+ "hash": "sha256-Veg7FtCRCCUCvxSb9FfzH0IJLFmCZQ4/+657SIcb8Ro="
+ },
+ "12201278a1a05c0ce0b6eb6026c65cd3e9247aa041b1c260324bf29cee559dd23ba1": {
+ "name": "glslang",
+ "url": "https://github.com/KhronosGroup/glslang/archive/refs/tags/14.2.0.tar.gz",
+ "hash": "sha256-FKLtu1Ccs+UamlPj9eQ12/WXFgS0uDPmPmB26MCpl7U="
+ },
+ "1220fb3b5586e8be67bc3feb34cbe749cf42a60d628d2953632c2f8141302748c8da": {
+ "name": "spirv_cross",
+ "url": "https://github.com/KhronosGroup/SPIRV-Cross/archive/476f384eb7d9e48613c45179e502a15ab95b6b49.tar.gz",
+ "hash": "sha256-tStvz8Ref6abHwahNiwVVHNETizAmZVVaxVsU7pmV+M="
+ }
+}
diff --git a/nix/build-support/check-zig-cache.sh b/nix/build-support/check-zig-cache.sh
index 3f724dacf..bbe1a3eb9 100755
--- a/nix/build-support/check-zig-cache.sh
+++ b/nix/build-support/check-zig-cache.sh
@@ -1,4 +1,16 @@
#!/usr/bin/env bash
+#
+# This script checks if the build.zig.zon.nix file is up-to-date.
+# If the `--update` flag is passed, it will update all necessary
+# files to be up to date.
+#
+# The files owned by this are:
+#
+# - build.zig.zon.nix
+# - build.zig.zon.txt
+# - build.zig.zon2json-lock
+#
+# All of these are auto-generated and should not be edited manually.
# Nothing in this script should fail.
set -e
@@ -27,9 +39,11 @@ help() {
echo ""
}
-BUILD_ZIG_ZON="$(realpath "$(dirname "$0")/../../build.zig.zon")"
-BUILD_ZIG_ZON_LOCK="$(realpath "$(dirname "$0")/../../build.zig.zon2json-lock")"
-BUILD_ZIG_ZON_NIX="$(realpath "$(dirname "$0")/../../build.zig.zon.nix")"
+ROOT="$(realpath "$(dirname "$0")/../../")"
+BUILD_ZIG_ZON="$ROOT/build.zig.zon"
+BUILD_ZIG_ZON_LOCK="$ROOT/build.zig.zon2json-lock"
+BUILD_ZIG_ZON_NIX="$ROOT/build.zig.zon.nix"
+BUILD_ZIG_ZON_TXT="$ROOT/build.zig.zon.txt"
if [ -f "${BUILD_ZIG_ZON_NIX}" ]; then
OLD_HASH=$(sha512sum "${BUILD_ZIG_ZON_NIX}" | awk '{print $1}')
@@ -42,7 +56,6 @@ fi
rm -f "$BUILD_ZIG_ZON_LOCK"
zon2nix "$BUILD_ZIG_ZON" > "$WORK_DIR/build.zig.zon.nix"
alejandra --quiet "$WORK_DIR/build.zig.zon.nix"
-rm -f "$BUILD_ZIG_ZON_LOCK"
NEW_HASH=$(sha512sum "$WORK_DIR/build.zig.zon.nix" | awk '{print $1}')
@@ -57,6 +70,7 @@ elif [ "$1" != "--update" ]; then
help
exit 1
else
+ jq -r '.[] .url' "$BUILD_ZIG_ZON_LOCK" | sort > "$BUILD_ZIG_ZON_TXT"
mv "$WORK_DIR/build.zig.zon.nix" "$BUILD_ZIG_ZON_NIX"
echo -e "\nOK: build.zig.zon.nix updated."
exit 0
diff --git a/nix/build-support/fetch-zig-cache.sh b/nix/build-support/fetch-zig-cache.sh
index cb6b52a1c..8ff00cad0 100755
--- a/nix/build-support/fetch-zig-cache.sh
+++ b/nix/build-support/fetch-zig-cache.sh
@@ -1,19 +1,13 @@
#!/bin/sh
# NOTE THIS IS A TEMPORARY SCRIPT TO SUPPORT PACKAGE MAINTAINERS.
-# Since #5439[1], we've been moving away from this and using an alternate
-# nix-based approach to cache our dependencies. #5733 aims to make this more
-# readily consumable by people who don't have Nix installed so that Nix
-# is not a hard dependency.
#
-# Further, a future Zig version will hopefully fix the issue where
-# `zig build --fetch` doesn't fetch transitive dependencies[3]. When that
+# A future Zig version will hopefully fix the issue where
+# `zig build --fetch` doesn't fetch transitive dependencies[1]. When that
# is resolved, we won't need any special machinery for the general use case
# at all and packagers can just use `zig build --fetch`.
#
-# [1]: https://github.com/ghostty-org/ghostty/pull/5439
-# [2]: https://github.com/ghostty-org/ghostty/pull/5733
-# [3]: https://github.com/ziglang/zig/issues/20976
+# [1]: https://github.com/ziglang/zig/issues/20976
if [ -z ${ZIG_GLOBAL_CACHE_DIR+x} ]
then
@@ -21,6 +15,13 @@ then
exit 1
fi
-zig build --fetch
-zig fetch git+https://github.com/zigimg/zigimg#3a667bdb3d7f0955a5a51c8468eac83210c1439e
-zig fetch git+https://github.com/mitchellh/libxev#f6a672a78436d8efee1aa847a43a900ad773618b
+# Go through each line of our build.zig.zon.txt and fetch it.
+SCRIPT_PATH="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
+ZON_TXT_FILE="$SCRIPT_PATH/../../build.zig.zon.txt"
+while IFS= read -r url; do
+ echo "Fetching: $url"
+ zig fetch "$url" >/dev/null 2>&1 || {
+ echo "Failed to fetch: $url" >&2
+ exit 1
+ }
+done < "$ZON_TXT_FILE"
diff --git a/nix/devShell.nix b/nix/devShell.nix
index b3dccef25..7cfef64c2 100644
--- a/nix/devShell.nix
+++ b/nix/devShell.nix
@@ -49,6 +49,7 @@
simdutf,
zlib,
alejandra,
+ jq,
minisign,
pandoc,
hyperfine,
@@ -97,6 +98,7 @@ in
packages =
[
# For builds
+ jq
llvmPackages_latest.llvm
minisign
ncurses
diff --git a/pkg/wuffs/build.zig.zon b/pkg/wuffs/build.zig.zon
index d84d6957e..dc35b22cd 100644
--- a/pkg/wuffs/build.zig.zon
+++ b/pkg/wuffs/build.zig.zon
@@ -8,7 +8,7 @@
},
.pixels = .{
- .url = "git+https://github.com/make-github-pseudonymous-again/pixels?ref=main#d843c2714d32e15b48b8d7eeb480295af537f877",
+ .url = "https://github.com/make-github-pseudonymous-again/pixels/archive/d843c2714d32e15b48b8d7eeb480295af537f877.tar.gz",
.hash = "12207ff340169c7d40c570b4b6a97db614fe47e0d83b5801a932dcd44917424c8806",
},