From e86e43b074841c05d217f44dfa58e41a569895d5 Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Wed, 8 Jul 2026 19:49:02 -0400 Subject: [PATCH 1/3] terra: remove cudatoolkit Signed-off-by: Ethan Carter Edwards --- pkgs/by-name/te/terra/package.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/te/terra/package.nix b/pkgs/by-name/te/terra/package.nix index c41332c7ad03a..48c3242c18841 100644 --- a/pkgs/by-name/te/terra/package.nix +++ b/pkgs/by-name/te/terra/package.nix @@ -1,4 +1,5 @@ { + config, lib, stdenv, fetchFromGitHub, @@ -8,7 +9,7 @@ libxml2, symlinkJoin, cudaPackages, - enableCUDA ? false, + enableCUDA ? config.cudaSupport, libffi, libpfm, }: @@ -37,8 +38,6 @@ let ]; }; - cuda = cudaPackages.cudatoolkit; - clangVersion = llvmPackages.clang-unwrapped.version; in @@ -60,7 +59,10 @@ stdenv.mkDerivation (finalAttrs: { libffi libxml2 ] - ++ lib.optionals enableCUDA [ cuda ] + ++ lib.optionals enableCUDA (with cudaPackages; [ + cuda_nvcc + cuda_cudart + ]) ++ lib.optional (!stdenv.hostPlatform.isDarwin) libpfm; cmakeFlags = From 58394f14e5fe2021a9b6091bef63ec5b852883af Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Wed, 8 Jul 2026 19:57:26 -0400 Subject: [PATCH 2/3] terra: enable strictDeps, __structuredAttrs Signed-off-by: Ethan Carter Edwards --- pkgs/by-name/te/terra/package.nix | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/te/terra/package.nix b/pkgs/by-name/te/terra/package.nix index 48c3242c18841..d8d661202d7d5 100644 --- a/pkgs/by-name/te/terra/package.nix +++ b/pkgs/by-name/te/terra/package.nix @@ -45,6 +45,9 @@ stdenv.mkDerivation (finalAttrs: { pname = "terra"; version = "1.2.0"; + strictDeps = true; + __structuredAttrs = true; + src = fetchFromGitHub { owner = "terralang"; repo = "terra"; @@ -52,17 +55,20 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-CukNCvTHZUhjdHyvDUSH0YCVNkThUFPaeyLepyEKodA="; }; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ cmake ] ++ lib.optionals enableCUDA [ cudaPackages.cuda_nvcc ]; buildInputs = [ llvmMerged ncurses libffi libxml2 ] - ++ lib.optionals enableCUDA (with cudaPackages; [ - cuda_nvcc - cuda_cudart - ]) + ++ lib.optionals enableCUDA ( + with cudaPackages; + [ + cuda_nvcc # crt/host_config.h; even though we include this in nativeBuildInputs, it's needed here too + cuda_cudart + ] + ) ++ lib.optional (!stdenv.hostPlatform.isDarwin) libpfm; cmakeFlags = From 0dd197d89733c61a267a2a83c8aa057b87321da3 Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Wed, 8 Jul 2026 20:05:14 -0400 Subject: [PATCH 3/3] terra: modernize slightly Signed-off-by: Ethan Carter Edwards --- pkgs/by-name/te/terra/package.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/te/terra/package.nix b/pkgs/by-name/te/terra/package.nix index d8d661202d7d5..a50217023466e 100644 --- a/pkgs/by-name/te/terra/package.nix +++ b/pkgs/by-name/te/terra/package.nix @@ -12,6 +12,7 @@ enableCUDA ? config.cudaSupport, libffi, libpfm, + versionCheckHook, }: let @@ -21,7 +22,7 @@ let luajitSrc = fetchFromGitHub { owner = "LuaJIT"; repo = "LuaJIT"; - rev = luajitRev; + tag = luajitRev; hash = "sha256-L9T6lc32dDLAp9hPI5mKOzT0c4juW9JHA3FJCpm7HNQ="; }; @@ -51,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "terralang"; repo = "terra"; - rev = "release-${finalAttrs.version}"; + tag = "release-${finalAttrs.version}"; hash = "sha256-CukNCvTHZUhjdHyvDUSH0YCVNkThUFPaeyLepyEKodA="; }; @@ -108,14 +109,21 @@ stdenv.mkDerivation (finalAttrs: { ''; installPhase = '' + runHook preInstall + install -Dm755 -t $bin/bin bin/terra install -Dm755 -t $out/lib lib/terra${stdenv.hostPlatform.extensions.sharedLibrary} install -Dm644 -t $static/lib lib/libterra_s.a mkdir -pv $dev/include cp -rv include/terra $dev/include + + runHook postInstall ''; + nativeInstallCheckInputs = [ versionCheckHook ]; + doInstallCheck = true; + meta = { description = "Low-level counterpart to Lua"; homepage = "https://terralang.org/"; @@ -131,5 +139,6 @@ stdenv.mkDerivation (finalAttrs: { # Linux Aarch64 broken above LLVM11 # https://github.com/terralang/terra/issues/597 broken = stdenv.hostPlatform.isAarch64; + mainProgram = "terra"; }; })