From 38d6451d73f342877db2d83651e4de60573a57ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Wed, 15 Apr 2026 18:15:41 +0100 Subject: [PATCH 1/3] libghostty-vt: emit resolved include/lib dirs in .pc files `${prefix}/include` and `${prefix}/lib` are wrong under split-prefix installs (e.g. Nix multi-output). Use `b.h_dir` / `b.lib_dir` instead and drop the unneeded Nix postInstall/postFixup hooks. Co-Authored-By: Sander --- nix/libghostty-vt.nix | 18 ++++++------------ src/build/GhosttyLibVt.zig | 19 ++++++++++++++----- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/nix/libghostty-vt.nix b/nix/libghostty-vt.nix index 35c3cbc3679..abecceaaca1 100644 --- a/nix/libghostty-vt.nix +++ b/nix/libghostty-vt.nix @@ -59,6 +59,9 @@ stdenv.mkDerivation (finalAttrs: { "-Dapp-runtime=none" "-Demit-lib-vt=true" "-Dsimd=${lib.boolToString simd}" + # Install headers directly into the `dev` output + "--prefix-include-dir" + "${placeholder "dev"}/include" ]; zigCheckFlags = finalAttrs.zigBuildFlags ++ ["test-lib-vt"]; @@ -69,17 +72,10 @@ stdenv.mkDerivation (finalAttrs: { postInstall = '' mkdir -p "$dev/lib" - mv "$out/lib/libghostty-vt.a" "$dev/lib" - rm "$out/lib/libghostty-vt.so" - mv "$out/include" "$dev" - mv "$out/share" "$dev" - - ln -sf "$out/lib/libghostty-vt.so.${lib.versions.major finalAttrs.version}" "$dev/lib/libghostty-vt.so" + mv "$out/lib/libghostty-vt.a" "$dev/lib/" ''; postFixup = '' - substituteInPlace "$dev/share/pkgconfig/libghostty-vt.pc" \ - --replace-fail "$out" "$dev" substituteInPlace "$dev/share/pkgconfig/libghostty-vt-static.pc" \ --replace-fail "$out" "$dev" ''; @@ -128,8 +124,7 @@ stdenv.mkDerivation (finalAttrs: { runHook preBuildHooks cc -o test test_libghostty_vt.c \ - ''$(pkg-config --cflags --libs libghostty-vt) \ - -Wl,-rpath,"${finalAttrs.finalPackage}/lib" + ''$(pkg-config --cflags --libs libghostty-vt) runHook postBuildHooks ''; @@ -207,8 +202,7 @@ stdenv.mkDerivation (finalAttrs: { runHook preBuildHooks cc -o test main.c \ - ''$(pkg-config --cflags --libs libghostty-vt) \ - -Wl,-rpath,"${finalAttrs.finalPackage}/lib" + ''$(pkg-config --cflags --libs libghostty-vt) runHook postBuildHooks ''; diff --git a/src/build/GhosttyLibVt.zig b/src/build/GhosttyLibVt.zig index ffd4962d958..cf4f88e8d0b 100644 --- a/src/build/GhosttyLibVt.zig +++ b/src/build/GhosttyLibVt.zig @@ -371,8 +371,8 @@ fn pkgConfigFiles( return .{ .shared = wf.add("libghostty-vt.pc", b.fmt( \\prefix={s} - \\includedir=${{prefix}}/include - \\libdir=${{prefix}}/lib + \\includedir={s} + \\libdir={s} \\ \\Name: libghostty-vt \\URL: https://github.com/ghostty-org/ghostty @@ -382,11 +382,18 @@ fn pkgConfigFiles( \\Libs: -L${{libdir}} -lghostty-vt \\Libs.private: {s} \\Requires.private: {s} - , .{ b.install_prefix, zig.version, libs_private, requires_private })), + , .{ + b.install_prefix, + b.h_dir, + b.lib_dir, + zig.version, + libs_private, + requires_private, + })), .static = wf.add("libghostty-vt-static.pc", b.fmt( \\prefix={s} - \\includedir=${{prefix}}/include - \\libdir=${{prefix}}/lib + \\includedir={s} + \\libdir={s} \\ \\Name: libghostty-vt-static \\URL: https://github.com/ghostty-org/ghostty @@ -398,6 +405,8 @@ fn pkgConfigFiles( \\Requires.private: {s} , .{ b.install_prefix, + b.h_dir, + b.lib_dir, zig.version, staticLibraryName(os_tag), libs_private, From 733abbcc391f99c4bea3b91058486fe038ccfae2 Mon Sep 17 00:00:00 2001 From: Sander Date: Tue, 21 Apr 2026 22:54:53 +0200 Subject: [PATCH 2/3] libghostty-vt: revert .pc changes and use Nix to fix them Keeps the .pc files templated and instead uses Nix to rewrite the libdir for the static library. --- nix/libghostty-vt.nix | 3 --- src/build/GhosttyLibVt.zig | 19 +++++-------------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/nix/libghostty-vt.nix b/nix/libghostty-vt.nix index abecceaaca1..c4f621fe884 100644 --- a/nix/libghostty-vt.nix +++ b/nix/libghostty-vt.nix @@ -59,9 +59,6 @@ stdenv.mkDerivation (finalAttrs: { "-Dapp-runtime=none" "-Demit-lib-vt=true" "-Dsimd=${lib.boolToString simd}" - # Install headers directly into the `dev` output - "--prefix-include-dir" - "${placeholder "dev"}/include" ]; zigCheckFlags = finalAttrs.zigBuildFlags ++ ["test-lib-vt"]; diff --git a/src/build/GhosttyLibVt.zig b/src/build/GhosttyLibVt.zig index cf4f88e8d0b..ffd4962d958 100644 --- a/src/build/GhosttyLibVt.zig +++ b/src/build/GhosttyLibVt.zig @@ -371,8 +371,8 @@ fn pkgConfigFiles( return .{ .shared = wf.add("libghostty-vt.pc", b.fmt( \\prefix={s} - \\includedir={s} - \\libdir={s} + \\includedir=${{prefix}}/include + \\libdir=${{prefix}}/lib \\ \\Name: libghostty-vt \\URL: https://github.com/ghostty-org/ghostty @@ -382,18 +382,11 @@ fn pkgConfigFiles( \\Libs: -L${{libdir}} -lghostty-vt \\Libs.private: {s} \\Requires.private: {s} - , .{ - b.install_prefix, - b.h_dir, - b.lib_dir, - zig.version, - libs_private, - requires_private, - })), + , .{ b.install_prefix, zig.version, libs_private, requires_private })), .static = wf.add("libghostty-vt-static.pc", b.fmt( \\prefix={s} - \\includedir={s} - \\libdir={s} + \\includedir=${{prefix}}/include + \\libdir=${{prefix}}/lib \\ \\Name: libghostty-vt-static \\URL: https://github.com/ghostty-org/ghostty @@ -405,8 +398,6 @@ fn pkgConfigFiles( \\Requires.private: {s} , .{ b.install_prefix, - b.h_dir, - b.lib_dir, zig.version, staticLibraryName(os_tag), libs_private, From 2a3d93f77ba42ebb099bc7d686e65f6978ff4a94 Mon Sep 17 00:00:00 2001 From: "ghostty-vouch[bot]" <262049992+ghostty-vouch[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 15:56:43 +0000 Subject: [PATCH 3/3] Update VOUCHED list (#12374) Triggered by [discussion comment](https://github.com/ghostty-org/ghostty/discussions/12168#discussioncomment-16672511) from @jcollie. Vouch: @mattn Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/VOUCHED.td | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/VOUCHED.td b/.github/VOUCHED.td index b9bb509d5ef..bdb4670e586 100644 --- a/.github/VOUCHED.td +++ b/.github/VOUCHED.td @@ -148,6 +148,7 @@ markhuot marler8997 marrocco-simone matkotiric +mattn micaeljarniac michielvk miguelelgallo