From 6cf3ec0947b7b750c510db779ade0f7a57a832c4 Mon Sep 17 00:00:00 2001 From: "J. Neto" Date: Sun, 16 May 2021 03:02:00 -0300 Subject: [PATCH 1/8] terra: 1.0.0pre1175_ef6a75f -> 1.0.0-beta3 Contains the combined single-commit work by both @jnetod and myself from NixOS/nixpkgs#122665. Brings the build up to LLVM 10, switches to `symlinkJoin` for putting Clang where the CMake build expects it, and updates to a fresh update of Terra that works around a few LLVM bugs. --- pkgs/development/compilers/terra/default.nix | 61 +++++++++++-------- .../terra/disable-luajit-file-download.patch | 13 ++++ ...mpiler-from-envvar-fix-cpu-detection.patch | 31 ++++++++++ .../compilers/terra/nix-cflags.patch | 11 ++-- pkgs/top-level/all-packages.nix | 3 +- 5 files changed, 85 insertions(+), 34 deletions(-) create mode 100644 pkgs/development/compilers/terra/disable-luajit-file-download.patch create mode 100644 pkgs/development/compilers/terra/get-compiler-from-envvar-fix-cpu-detection.patch diff --git a/pkgs/development/compilers/terra/default.nix b/pkgs/development/compilers/terra/default.nix index bd50ea9caaa..b44cec95f6c 100644 --- a/pkgs/development/compilers/terra/default.nix +++ b/pkgs/development/compilers/terra/default.nix @@ -1,61 +1,70 @@ { lib, stdenv, fetchurl, fetchFromGitHub -, llvmPackages, ncurses, lua +, llvmPackages, ncurses, cmake, libxml2, symlinkJoin }: let - luajitArchive = "LuaJIT-2.0.5.tar.gz"; + luajitRev = "9143e86498436892cb4316550be4d45b68a61224"; + luajitArchive = "LuaJIT-${luajitRev}.tar.gz"; luajitSrc = fetchurl { - url = "http://luajit.org/download/${luajitArchive}"; - sha256 = "0yg9q4q6v028bgh85317ykc9whgxgysp76qzaqgq55y6jy11yjw7"; + url = "https://github.com/LuaJIT/LuaJIT/archive/${luajitRev}.tar.gz"; + sha256 = "0kasmyk40ic4b9dwd4wixm0qk10l88ardrfimwmq36yc5dhnizmy"; }; in stdenv.mkDerivation rec { pname = "terra"; - version = "1.0.0pre1175_${builtins.substring 0 7 src.rev}"; + version = "1.0.0-beta3"; src = fetchFromGitHub { - owner = "zdevito"; + owner = "terralang"; repo = "terra"; - rev = "ef6a75ffee15a30f3c74f4e6943851cfbc0fec3d"; - sha256 = "0aky17vbv3d9zng34hp17p9zb00dbzwhvzsdjzrrqvk9lmyvix0s"; + rev = "release-${version}"; + sha256 = "15ik32xnwyf3g57jvvaz24f6a18lv3a86341rzjbs30kd5045qzd"; }; - nativeBuildInputs = [ lua ]; - buildInputs = with llvmPackages; [ llvm clang-unwrapped ncurses ]; + nativeBuildInputs = [ cmake ]; + buildInputs = [ + (symlinkJoin { + name = "llvmClangMerged"; + paths = with llvmPackages; [ llvm clang-unwrapped ]; + }) + ncurses + libxml2 + ]; + + cmakeFlags = [ + "-DHAS_TERRA_VERSION=0" + "-DTERRA_VERSION=${src.rev}" + "-DTERRA_LUA=luajit" + ]; doCheck = true; enableParallelBuilding = true; hardeningDisable = [ "fortify" ]; outputs = [ "bin" "dev" "out" "static" ]; - patches = [ ./nix-cflags.patch ]; + patches = [ + # Should be removed as https://github.com/terralang/terra/pull/496 get merged and released. + ./get-compiler-from-envvar-fix-cpu-detection.patch + ./nix-cflags.patch + ./disable-luajit-file-download.patch + ]; postPatch = '' - substituteInPlace Makefile \ - --replace '-lcurses' '-lncurses' - substituteInPlace src/terralib.lua \ --subst-var-by NIX_LIBC_INCLUDE ${lib.getDev stdenv.cc.libc}/include ''; - preBuild = '' - cat >Makefile.inc<CPU = llvm::sys::getHostCPUName().str(); + ++ if (TT->CPU == "generic") { ++ TT->CPU = "x86-64"; ++ } ++ + if (!lua_isnil(L, 3)) + TT->Features = lua_tostring(L, 3); + else { +@@ -3198,10 +3202,13 @@ static int terra_disassemble(lua_State *L) { + static bool FindLinker(terra_State *T, LLVM_PATH_TYPE *linker, const char *target) { + #ifndef _WIN32 + #if LLVM_VERSION >= 36 +- *linker = *sys::findProgramByName("gcc"); ++ const char *linker_name = getenv("CC"); ++ if (!linker_name) linker_name = getenv("CXX"); ++ if (!linker_name) linker_name = "gcc"; ++ *linker = *sys::findProgramByName(linker_name); + return *linker == ""; + #else +- *linker = sys::FindProgramByName("gcc"); ++ *linker = sys::FindProgramByName(getenv("CXX")); + return *linker == ""; + #endif + #else diff --git a/pkgs/development/compilers/terra/nix-cflags.patch b/pkgs/development/compilers/terra/nix-cflags.patch index 339ae23cef6..90ba7e63f1d 100644 --- a/pkgs/development/compilers/terra/nix-cflags.patch +++ b/pkgs/development/compilers/terra/nix-cflags.patch @@ -1,12 +1,11 @@ diff --git a/src/terralib.lua b/src/terralib.lua -index 351238d..e638c90 100644 +index 532ed18..2c265dc 100644 --- a/src/terralib.lua +++ b/src/terralib.lua -@@ -3395,6 +3395,17 @@ function terra.includecstring(code,cargs,target) +@@ -3426,6 +3426,16 @@ function terra.includecstring(code,cargs,target) args:insert("-internal-isystem") args:insert(path) end -+ + -- NOTE(aseipp): include relevant Nix header files + args:insert("-isystem") + args:insert("@NIX_LIBC_INCLUDE@") @@ -17,6 +16,6 @@ index 351238d..e638c90 100644 + args:insert(w) + end + end - - if cargs then - args:insertall(cargs) + -- Obey the SDKROOT variable on macOS to match Clang behavior. + local sdkroot = os.getenv("SDKROOT") + if sdkroot then diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 530ba52493e..8a37a17e121 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11978,8 +11978,7 @@ in tbb = callPackage ../development/libraries/tbb { }; terra = callPackage ../development/compilers/terra { - llvmPackages = llvmPackages_6; - lua = lua5_1; + llvmPackages = llvmPackages_10; }; teyjus = callPackage ../development/compilers/teyjus ( From da04b1f00fb1a112c65187271c5ff91bfe58f5ae Mon Sep 17 00:00:00 2001 From: Sable Seyler Date: Sat, 5 Jun 2021 16:48:45 -0700 Subject: [PATCH 2/8] terra: update to use LLVM's split derivations A patch has been added to inject environment variables into the CMake test runner, the `INCLUDE_PATH` variable has been specified, and the merged LLVM derivation has been updated to refer to the split outputs. --- pkgs/development/compilers/terra/default.nix | 47 +++++++++++-------- .../compilers/terra/nix-add-test-paths.patch | 16 +++++++ 2 files changed, 44 insertions(+), 19 deletions(-) create mode 100644 pkgs/development/compilers/terra/nix-add-test-paths.patch diff --git a/pkgs/development/compilers/terra/default.nix b/pkgs/development/compilers/terra/default.nix index b44cec95f6c..53c6b839f1f 100644 --- a/pkgs/development/compilers/terra/default.nix +++ b/pkgs/development/compilers/terra/default.nix @@ -1,6 +1,5 @@ -{ lib, stdenv, fetchurl, fetchFromGitHub -, llvmPackages, ncurses, cmake, libxml2, symlinkJoin -}: +{ lib, stdenv, fetchurl, fetchFromGitHub, llvmPackages, ncurses, cmake, libxml2 +, symlinkJoin, breakpointHook }: let luajitRev = "9143e86498436892cb4316550be4d45b68a61224"; @@ -9,27 +8,30 @@ let url = "https://github.com/LuaJIT/LuaJIT/archive/${luajitRev}.tar.gz"; sha256 = "0kasmyk40ic4b9dwd4wixm0qk10l88ardrfimwmq36yc5dhnizmy"; }; -in -stdenv.mkDerivation rec { + llvmMerged = symlinkJoin { + name = "llvmClangMerged"; + paths = with llvmPackages; [ + llvm.out + llvm.dev + llvm.lib + clang-unwrapped.out + clang-unwrapped.dev + clang-unwrapped.lib + ]; + }; +in stdenv.mkDerivation rec { pname = "terra"; version = "1.0.0-beta3"; src = fetchFromGitHub { - owner = "terralang"; - repo = "terra"; - rev = "release-${version}"; + owner = "terralang"; + repo = "terra"; + rev = "release-${version}"; sha256 = "15ik32xnwyf3g57jvvaz24f6a18lv3a86341rzjbs30kd5045qzd"; }; nativeBuildInputs = [ cmake ]; - buildInputs = [ - (symlinkJoin { - name = "llvmClangMerged"; - paths = with llvmPackages; [ llvm clang-unwrapped ]; - }) - ncurses - libxml2 - ]; + buildInputs = [ llvmMerged ncurses libxml2 ]; cmakeFlags = [ "-DHAS_TERRA_VERSION=0" @@ -47,10 +49,17 @@ stdenv.mkDerivation rec { ./get-compiler-from-envvar-fix-cpu-detection.patch ./nix-cflags.patch ./disable-luajit-file-download.patch + ./nix-add-test-paths.patch ]; + + INCLUDE_PATH = "${llvmMerged}/lib/clang/10.0.1/include"; + postPatch = '' substituteInPlace src/terralib.lua \ --subst-var-by NIX_LIBC_INCLUDE ${lib.getDev stdenv.cc.libc}/include + + substituteInPlace src/CMakeLists.txt \ + --subst-var INCLUDE_PATH ''; preConfigure = '' @@ -69,9 +78,9 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A low-level counterpart to Lua"; - homepage = "http://terralang.org/"; - platforms = platforms.x86_64; + homepage = "http://terralang.org/"; + platforms = platforms.x86_64; maintainers = with maintainers; [ jb55 thoughtpolice ]; - license = licenses.mit; + license = licenses.mit; }; } diff --git a/pkgs/development/compilers/terra/nix-add-test-paths.patch b/pkgs/development/compilers/terra/nix-add-test-paths.patch new file mode 100644 index 00000000000..cd3ea431cd0 --- /dev/null +++ b/pkgs/development/compilers/terra/nix-add-test-paths.patch @@ -0,0 +1,16 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 5de3e53..475659a 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -386,6 +386,11 @@ foreach(TERRA_TEST ${TERRA_TESTS}) + COMMAND $ ${TERRA_TEST} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests + ) ++ set_tests_properties( ++ ${TERRA_TEST} PROPERTIES ++ ENVIRONMENT "LUA_PATH=./?.lua" ++ ENVIRONMENT "INCLUDE_PATH=@INCLUDE_PATH@" ++ ) + endforeach() + foreach(TERRA_TEST ${TERRA_TESTS_INSTALL}) + get_filename_component(TERRA_TEST_DIR ${TERRA_TEST} DIRECTORY) From 59a07bc60f51980fd9a407cd0580fdc6d2706ec8 Mon Sep 17 00:00:00 2001 From: Sable Seyler Date: Sat, 5 Jun 2021 18:02:08 -0700 Subject: [PATCH 3/8] terra: add seylerius as a maintainer --- maintainers/maintainer-list.nix | 36 ++++++++++++-------- pkgs/development/compilers/terra/default.nix | 2 +- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 1989c99c1ea..c72a8ae93c6 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -758,7 +758,7 @@ keys = [{ longkeyid = "rsa4096/0xAAA50652F0479205"; fingerprint = "BF8B F725 DA30 E53E 7F11 4ED8 AAA5 0652 F047 9205"; - }]; + }]; }; ar1a = { email = "aria@ar1as.space"; @@ -5271,7 +5271,7 @@ github = "kho-dialga"; githubId = 55767703; name = "Iván Brito"; - }; + }; khumba = { email = "bog@khumba.net"; github = "khumba"; @@ -5966,8 +5966,8 @@ githubId = 7243783; name = "Bernardo Meurer"; keys = [{ - longkeyid = "rsa4096/0xF4C0D53B8D14C246"; - fingerprint = "F193 7596 57D5 6DA4 CCD4 786B F4C0 D53B 8D14 C246"; + longkeyid = "rsa4096/0xF4C0D53B8D14C246"; + fingerprint = "F193 7596 57D5 6DA4 CCD4 786B F4C0 D53B 8D14 C246"; }]; }; lowfatcomputing = { @@ -8146,12 +8146,10 @@ github = "poscat0x04"; githubId = 53291983; name = "Poscat Tarski"; - keys = [ - { - longkeyid = "rsa4096/2D2595A00D08ACE0"; - fingerprint = "48AD DE10 F27B AFB4 7BB0 CCAF 2D25 95A0 0D08 ACE0"; - } - ]; + keys = [{ + longkeyid = "rsa4096/2D2595A00D08ACE0"; + fingerprint = "48AD DE10 F27B AFB4 7BB0 CCAF 2D25 95A0 0D08 ACE0"; + }]; }; pradeepchhetri = { email = "pradeep.chhetri89@gmail.com"; @@ -9237,6 +9235,16 @@ fingerprint = "A317 37B3 693C 921B 480C C629 4A2A AAA3 82F8 294C"; }]; }; + seylerius = { + name = "Sable Seyler"; + email = "sable@seyleri.us"; + github = "seylerius"; + githubId = 1145981; + keys = [{ + longkeyid = "rsa4096/0xDC26B921A9E9DBDE"; + fingerprint = "7246 B6E1 ABB9 9A48 4395 FD11 DC26 B921 A9E9 DBDE"; + }]; + }; sfrijters = { email = "sfrijters@gmail.com"; github = "sfrijters"; @@ -9762,10 +9770,10 @@ name = "Felix Bühler"; }; stupremee = { - email = "jutus.k@protonmail.com"; - github = "Stupremee"; - githubId = 39732259; - name = "Justus K"; + email = "jutus.k@protonmail.com"; + github = "Stupremee"; + githubId = 39732259; + name = "Justus K"; }; suhr = { email = "suhr@i2pmail.org"; diff --git a/pkgs/development/compilers/terra/default.nix b/pkgs/development/compilers/terra/default.nix index 53c6b839f1f..e18f92a4fef 100644 --- a/pkgs/development/compilers/terra/default.nix +++ b/pkgs/development/compilers/terra/default.nix @@ -80,7 +80,7 @@ in stdenv.mkDerivation rec { description = "A low-level counterpart to Lua"; homepage = "http://terralang.org/"; platforms = platforms.x86_64; - maintainers = with maintainers; [ jb55 thoughtpolice ]; + maintainers = with maintainers; [ jb55 seylerius thoughtpolice ]; license = licenses.mit; }; } From 0a44bbbb3dcffe68ef71c5d73d5b455970cc5b1e Mon Sep 17 00:00:00 2001 From: Sable Seyler Date: Sat, 5 Jun 2021 19:11:02 -0700 Subject: [PATCH 4/8] terra: add toggle argument for CUDA support Terra can be built with CUDA support, and this commit adds a toggle to the arguments, `enableCUDA`, for enabling it. --- pkgs/development/compilers/terra/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/terra/default.nix b/pkgs/development/compilers/terra/default.nix index e18f92a4fef..78c09591df2 100644 --- a/pkgs/development/compilers/terra/default.nix +++ b/pkgs/development/compilers/terra/default.nix @@ -1,5 +1,5 @@ { lib, stdenv, fetchurl, fetchFromGitHub, llvmPackages, ncurses, cmake, libxml2 -, symlinkJoin, breakpointHook }: +, symlinkJoin, breakpointHook, cudaPackages, enableCUDA ? false }: let luajitRev = "9143e86498436892cb4316550be4d45b68a61224"; @@ -19,6 +19,7 @@ let clang-unwrapped.lib ]; }; + cuda = cudaPackages.cudatoolkit_11; in stdenv.mkDerivation rec { pname = "terra"; version = "1.0.0-beta3"; @@ -31,13 +32,13 @@ in stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake ]; - buildInputs = [ llvmMerged ncurses libxml2 ]; + buildInputs = [ llvmMerged ncurses libxml2 ] ++ lib.optional enableCUDA cuda; cmakeFlags = [ "-DHAS_TERRA_VERSION=0" "-DTERRA_VERSION=${src.rev}" "-DTERRA_LUA=luajit" - ]; + ] ++ lib.optional enableCUDA "-DTERRA_ENABLE_CUDA=ON"; doCheck = true; enableParallelBuilding = true; From 999e5d9cdf99eaa54130da8154bd9dc43922988f Mon Sep 17 00:00:00 2001 From: Sable Seyler Date: Sun, 13 Jun 2021 01:15:16 -0700 Subject: [PATCH 5/8] terra: add override for `CLANG_RESOURCE_DIR` --- pkgs/development/compilers/terra/default.nix | 21 ++++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/pkgs/development/compilers/terra/default.nix b/pkgs/development/compilers/terra/default.nix index 78c09591df2..8006f47ab5f 100644 --- a/pkgs/development/compilers/terra/default.nix +++ b/pkgs/development/compilers/terra/default.nix @@ -8,6 +8,7 @@ let url = "https://github.com/LuaJIT/LuaJIT/archive/${luajitRev}.tar.gz"; sha256 = "0kasmyk40ic4b9dwd4wixm0qk10l88ardrfimwmq36yc5dhnizmy"; }; + llvmMerged = symlinkJoin { name = "llvmClangMerged"; paths = with llvmPackages; [ @@ -19,7 +20,11 @@ let clang-unwrapped.lib ]; }; + cuda = cudaPackages.cudatoolkit_11; + + clangVersion = llvmPackages.clang-unwrapped.version; + in stdenv.mkDerivation rec { pname = "terra"; version = "1.0.0-beta3"; @@ -36,8 +41,9 @@ in stdenv.mkDerivation rec { cmakeFlags = [ "-DHAS_TERRA_VERSION=0" - "-DTERRA_VERSION=${src.rev}" + "-DTERRA_VERSION=release-1.0.0-beta3" "-DTERRA_LUA=luajit" + "-DCLANG_RESOURCE_DIR=${llvmMerged}/lib/clang/${clangVersion}" ] ++ lib.optional enableCUDA "-DTERRA_ENABLE_CUDA=ON"; doCheck = true; @@ -45,22 +51,11 @@ in stdenv.mkDerivation rec { hardeningDisable = [ "fortify" ]; outputs = [ "bin" "dev" "out" "static" ]; - patches = [ - # Should be removed as https://github.com/terralang/terra/pull/496 get merged and released. - ./get-compiler-from-envvar-fix-cpu-detection.patch - ./nix-cflags.patch - ./disable-luajit-file-download.patch - ./nix-add-test-paths.patch - ]; - - INCLUDE_PATH = "${llvmMerged}/lib/clang/10.0.1/include"; + patches = [ ./nix-cflags.patch ./disable-luajit-file-download.patch ]; postPatch = '' substituteInPlace src/terralib.lua \ --subst-var-by NIX_LIBC_INCLUDE ${lib.getDev stdenv.cc.libc}/include - - substituteInPlace src/CMakeLists.txt \ - --subst-var INCLUDE_PATH ''; preConfigure = '' From 709dd2dc6406a089ead5dfcd068bf85a80f9bbfc Mon Sep 17 00:00:00 2001 From: Sable Seyler Date: Sun, 13 Jun 2021 01:18:10 -0700 Subject: [PATCH 6/8] terra: delete now-unnecessary patches --- ...mpiler-from-envvar-fix-cpu-detection.patch | 31 ------------------- .../compilers/terra/nix-add-test-paths.patch | 16 ---------- 2 files changed, 47 deletions(-) delete mode 100644 pkgs/development/compilers/terra/get-compiler-from-envvar-fix-cpu-detection.patch delete mode 100644 pkgs/development/compilers/terra/nix-add-test-paths.patch diff --git a/pkgs/development/compilers/terra/get-compiler-from-envvar-fix-cpu-detection.patch b/pkgs/development/compilers/terra/get-compiler-from-envvar-fix-cpu-detection.patch deleted file mode 100644 index 5f29f9859ae..00000000000 --- a/pkgs/development/compilers/terra/get-compiler-from-envvar-fix-cpu-detection.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/src/tcompiler.cpp b/src/tcompiler.cpp -index 873d25e..61f3517 100644 ---- a/src/tcompiler.cpp -+++ b/src/tcompiler.cpp -@@ -312,6 +312,10 @@ int terra_inittarget(lua_State *L) { - else - TT->CPU = llvm::sys::getHostCPUName().str(); - -+ if (TT->CPU == "generic") { -+ TT->CPU = "x86-64"; -+ } -+ - if (!lua_isnil(L, 3)) - TT->Features = lua_tostring(L, 3); - else { -@@ -3198,10 +3202,13 @@ static int terra_disassemble(lua_State *L) { - static bool FindLinker(terra_State *T, LLVM_PATH_TYPE *linker, const char *target) { - #ifndef _WIN32 - #if LLVM_VERSION >= 36 -- *linker = *sys::findProgramByName("gcc"); -+ const char *linker_name = getenv("CC"); -+ if (!linker_name) linker_name = getenv("CXX"); -+ if (!linker_name) linker_name = "gcc"; -+ *linker = *sys::findProgramByName(linker_name); - return *linker == ""; - #else -- *linker = sys::FindProgramByName("gcc"); -+ *linker = sys::FindProgramByName(getenv("CXX")); - return *linker == ""; - #endif - #else diff --git a/pkgs/development/compilers/terra/nix-add-test-paths.patch b/pkgs/development/compilers/terra/nix-add-test-paths.patch deleted file mode 100644 index cd3ea431cd0..00000000000 --- a/pkgs/development/compilers/terra/nix-add-test-paths.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 5de3e53..475659a 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -386,6 +386,11 @@ foreach(TERRA_TEST ${TERRA_TESTS}) - COMMAND $ ${TERRA_TEST} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests - ) -+ set_tests_properties( -+ ${TERRA_TEST} PROPERTIES -+ ENVIRONMENT "LUA_PATH=./?.lua" -+ ENVIRONMENT "INCLUDE_PATH=@INCLUDE_PATH@" -+ ) - endforeach() - foreach(TERRA_TEST ${TERRA_TESTS_INSTALL}) - get_filename_component(TERRA_TEST_DIR ${TERRA_TEST} DIRECTORY) From da575846cb1bf27e692c95888c8895362b0c01ef Mon Sep 17 00:00:00 2001 From: Sable Seyler Date: Sun, 13 Jun 2021 01:21:12 -0700 Subject: [PATCH 7/8] terra: update to support new override --- pkgs/development/compilers/terra/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/terra/default.nix b/pkgs/development/compilers/terra/default.nix index 8006f47ab5f..463d2893df7 100644 --- a/pkgs/development/compilers/terra/default.nix +++ b/pkgs/development/compilers/terra/default.nix @@ -32,8 +32,8 @@ in stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "terralang"; repo = "terra"; - rev = "release-${version}"; - sha256 = "15ik32xnwyf3g57jvvaz24f6a18lv3a86341rzjbs30kd5045qzd"; + rev = "99ff93f8c60c89bbe2dc7c63eab9bfe2f4c4833e"; + sha256 = "0ww54xjvv6p8jwsh6hml3v527zgnv2gj58gpb818bbg4k1jwa5fl"; }; nativeBuildInputs = [ cmake ]; From c49d9adc385ccff57ef020456f3700fe6878619d Mon Sep 17 00:00:00 2001 From: Sable Seyler Date: Thu, 17 Jun 2021 10:54:22 -0700 Subject: [PATCH 8/8] terra: fix LuaJIT fetch per @jnetod in #125896 --- pkgs/development/compilers/terra/default.nix | 26 ++++++++++++------- .../terra/disable-luajit-file-download.patch | 13 ---------- 2 files changed, 17 insertions(+), 22 deletions(-) delete mode 100644 pkgs/development/compilers/terra/disable-luajit-file-download.patch diff --git a/pkgs/development/compilers/terra/default.nix b/pkgs/development/compilers/terra/default.nix index 463d2893df7..ac1851a683b 100644 --- a/pkgs/development/compilers/terra/default.nix +++ b/pkgs/development/compilers/terra/default.nix @@ -1,12 +1,15 @@ -{ lib, stdenv, fetchurl, fetchFromGitHub, llvmPackages, ncurses, cmake, libxml2 +{ lib, stdenv, fetchFromGitHub, llvmPackages, ncurses, cmake, libxml2 , symlinkJoin, breakpointHook, cudaPackages, enableCUDA ? false }: let luajitRev = "9143e86498436892cb4316550be4d45b68a61224"; - luajitArchive = "LuaJIT-${luajitRev}.tar.gz"; - luajitSrc = fetchurl { - url = "https://github.com/LuaJIT/LuaJIT/archive/${luajitRev}.tar.gz"; - sha256 = "0kasmyk40ic4b9dwd4wixm0qk10l88ardrfimwmq36yc5dhnizmy"; + luajitBase = "LuaJIT-${luajitRev}"; + luajitArchive = "${luajitBase}.tar.gz"; + luajitSrc = fetchFromGitHub { + owner = "LuaJIT"; + repo = "LuaJIT"; + rev = luajitRev; + sha256 = "1zw1yr0375d6jr5x20zvkvk76hkaqamjynbswpl604w6r6id070b"; }; llvmMerged = symlinkJoin { @@ -27,7 +30,7 @@ let in stdenv.mkDerivation rec { pname = "terra"; - version = "1.0.0-beta3"; + version = "1.0.0-beta3_${builtins.substring 0 7 src.rev}"; src = fetchFromGitHub { owner = "terralang"; @@ -41,7 +44,7 @@ in stdenv.mkDerivation rec { cmakeFlags = [ "-DHAS_TERRA_VERSION=0" - "-DTERRA_VERSION=release-1.0.0-beta3" + "-DTERRA_VERSION=${version}" "-DTERRA_LUA=luajit" "-DCLANG_RESOURCE_DIR=${llvmMerged}/lib/clang/${clangVersion}" ] ++ lib.optional enableCUDA "-DTERRA_ENABLE_CUDA=ON"; @@ -51,16 +54,21 @@ in stdenv.mkDerivation rec { hardeningDisable = [ "fortify" ]; outputs = [ "bin" "dev" "out" "static" ]; - patches = [ ./nix-cflags.patch ./disable-luajit-file-download.patch ]; + patches = [ ./nix-cflags.patch ]; postPatch = '' + sed -i '/file(DOWNLOAD "''${LUAJIT_URL}" "''${LUAJIT_TAR}")/d' \ + cmake/Modules/GetLuaJIT.cmake + substituteInPlace src/terralib.lua \ --subst-var-by NIX_LIBC_INCLUDE ${lib.getDev stdenv.cc.libc}/include ''; preConfigure = '' mkdir -p build - cp ${luajitSrc} build/${luajitArchive} + ln -s ${luajitSrc} build/${luajitBase} + tar --mode="a+rwX" -chzf build/${luajitArchive} -C build ${luajitBase} + rm build/${luajitBase} ''; installPhase = '' diff --git a/pkgs/development/compilers/terra/disable-luajit-file-download.patch b/pkgs/development/compilers/terra/disable-luajit-file-download.patch deleted file mode 100644 index 7d7d71b26f4..00000000000 --- a/pkgs/development/compilers/terra/disable-luajit-file-download.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/cmake/Modules/GetLuaJIT.cmake b/cmake/Modules/GetLuaJIT.cmake -index 023b5c2..8564b92 100644 ---- a/cmake/Modules/GetLuaJIT.cmake -+++ b/cmake/Modules/GetLuaJIT.cmake -@@ -63,8 +63,6 @@ string(CONCAT - "${CMAKE_SHARED_LIBRARY_SUFFIX}" - ) - --file(DOWNLOAD "${LUAJIT_URL}" "${LUAJIT_TAR}") -- - execute_process( - COMMAND "${CMAKE_COMMAND}" -E tar xzf "${LUAJIT_TAR}" - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}