libghostty-vt: fix linker tests for darwin

This commit is contained in:
Sander
2026-05-01 15:31:07 +02:00
parent d17e5517c7
commit 7123bddc18

View File

@@ -103,14 +103,25 @@ stdenv.mkDerivation (finalAttrs: {
--replace-fail "$out" "$dev"
'';
passthru.tests = {
passthru.tests = let
sharedExt = stdenv.hostPlatform.extensions.sharedLibrary;
sharedLibName = version:
if stdenv.hostPlatform.isDarwin
then "libghostty-vt.${version}${sharedExt}"
else "libghostty-vt${sharedExt}.${version}";
linkCheck = bin: pat:
if stdenv.hostPlatform.isDarwin
then ''otool -L "${bin}" | grep -q ${pat}''
else ''ldd "${bin}" 2>/dev/null | grep -q ${pat}'';
in {
sanity-check = let
version = "${lib.versions.major finalAttrs.version}.${lib.versions.minor finalAttrs.version}.${lib.versions.patch finalAttrs.version}";
in
runCommand "sanity-check" {} (builtins.concatStringsSep "\n" [
''
${lib.getExe' stdenv.cc "nm"} "${finalAttrs.finalPackage}/lib/libghostty-vt.so.${version}" | grep -q 'T ghostty_terminal_new'
${lib.getExe' stdenv.cc "nm"} "${finalAttrs.finalPackage.dev}/lib/libghostty-vt.a" | grep -q 'T ghostty_terminal_new'
set +o pipefail
${lib.getExe' stdenv.cc "nm"} "${finalAttrs.finalPackage}/lib/${sharedLibName version}" | grep -qE 'T _?ghostty_terminal_new'
${lib.getExe' stdenv.cc "nm"} "${finalAttrs.finalPackage.dev}/lib/libghostty-vt.a" | grep -qE 'T _?ghostty_terminal_new'
''
(
lib.optionalString simd
@@ -167,7 +178,7 @@ stdenv.mkDerivation (finalAttrs: {
then "yes"
else "no"
}"
ldd "$out/bin/test" 2>/dev/null | grep -q libghostty-vt
${linkCheck "$out/bin/test" "libghostty-vt"}
runHook postInstallCheckHooks
'';
@@ -205,7 +216,7 @@ stdenv.mkDerivation (finalAttrs: {
then "yes"
else "no"
}"
! ldd "$out/bin/test" 2>/dev/null | grep -q libghostty-vt
! ${linkCheck "$out/bin/test" "libghostty-vt"}
runHook postInstallCheckHooks
'';
@@ -240,7 +251,7 @@ stdenv.mkDerivation (finalAttrs: {
installCheckPhase = ''
runHook preInstallCheckHooks
ldd "$out/bin/test" 2>/dev/null | grep -q libghostty-vt
${linkCheck "$out/bin/test" "libghostty-vt"}
runHook postInstallCheckHooks
'';