diff --git a/pkgs/lix/lix-plugins/0001-implement-lix-support.patch b/pkgs/lix/lix-plugins/0001-implement-lix-support.patch index 2736fb0..5956ad3 100644 --- a/pkgs/lix/lix-plugins/0001-implement-lix-support.patch +++ b/pkgs/lix/lix-plugins/0001-implement-lix-support.patch @@ -1,14 +1,14 @@ -From db0c0622ec4bfdc18e1ff53f47f0b922dacb111f Mon Sep 17 00:00:00 2001 +From 5e42fc10f1e0b276fc32600dcab7cd560cc3e00f Mon Sep 17 00:00:00 2001 From: xenia Date: Sat, 21 Dec 2024 15:33:10 -0500 Subject: [PATCH] implement lix support --- CMakeLists.txt | 27 --------------------------- - extra-builtins.cc | 29 +++++------------------------ + extra-builtins.cc | 34 +++++++++------------------------- meson.build | 18 ++++++++++++++++++ nix-plugins-config.h.in | 3 --- - 4 files changed, 23 insertions(+), 54 deletions(-) + 4 files changed, 27 insertions(+), 55 deletions(-) delete mode 100644 CMakeLists.txt create mode 100644 meson.build delete mode 100644 nix-plugins-config.h.in @@ -47,7 +47,7 @@ index 9674fe8..0000000 - -install(TARGETS nix-extra-builtins DESTINATION lib/nix/plugins) diff --git a/extra-builtins.cc b/extra-builtins.cc -index 3a0f90e..7262d2f 100644 +index 3a0f90e..03947ef 100644 --- a/extra-builtins.cc +++ b/extra-builtins.cc @@ -1,12 +1,8 @@ @@ -63,7 +63,7 @@ index 3a0f90e..7262d2f 100644 using namespace nix; -@@ -24,12 +20,13 @@ static GlobalConfig::Register rp(&extraBuiltinsSettings); +@@ -24,13 +20,17 @@ static GlobalConfig::Register rp(&extraBuiltinsSettings); static void extraBuiltins(EvalState & state, const PosIdx pos, Value ** _args, Value & v) { @@ -75,12 +75,17 @@ index 3a0f90e..7262d2f 100644 try { auto fun = state.allocValue(); -+ state.allowPath(extraBuiltinsFile.path.abs()); -+ state.allowPath(state.checkSourcePath(extraBuiltinsFile).path.abs()); - state.evalFile(extraBuiltinsFile, *fun); +- state.evalFile(extraBuiltinsFile, *fun); ++ ++ // bypass the source path checking by directly reading and evaluating the file ++ // this also bypasses the eval cache but oh well ++ Expr& e = state.parseExprFromFile(extraBuiltinsFile); ++ state.eval(e, *fun); ++ Value * arg; if (evalSettings.enableNativeCode) { -@@ -56,7 +53,7 @@ static void extraBuiltins(EvalState & state, const PosIdx pos, + arg = state.baseEnv.values[0]; +@@ -56,7 +56,7 @@ static void extraBuiltins(EvalState & state, const PosIdx pos, } v.mkApp(fun, arg); state.forceValue(v, pos); @@ -89,7 +94,7 @@ index 3a0f90e..7262d2f 100644 v.mkNull(); } } -@@ -66,19 +63,3 @@ static RegisterPrimOp rp1({ +@@ -66,19 +66,3 @@ static RegisterPrimOp rp1({ .arity = 0, .fun = extraBuiltins, });