about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/nix-plugins
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/nix-plugins')
-rw-r--r--nixpkgs/pkgs/development/libraries/nix-plugins/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/nix-plugins/nix-2.9.patch35
2 files changed, 61 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/nix-plugins/default.nix b/nixpkgs/pkgs/development/libraries/nix-plugins/default.nix
new file mode 100644
index 000000000000..e626c3abfe2f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/nix-plugins/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, nix, cmake, pkg-config, boost }:
+
+stdenv.mkDerivation rec {
+  pname = "nix-plugins";
+  version = "9.0.0";
+
+  src = fetchFromGitHub {
+    owner = "shlevy";
+    repo = "nix-plugins";
+    rev = version;
+    hash = "sha256-AkHsZpYM4EY8SNuF6LhxF2peOjp69ICGc3kOLkDms64=";
+  };
+
+  patches = [ ./nix-2.9.patch ];
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ nix boost ];
+
+  meta = {
+    description = "Collection of miscellaneous plugins for the nix expression language";
+    homepage = "https://github.com/shlevy/nix-plugins";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/nix-plugins/nix-2.9.patch b/nixpkgs/pkgs/development/libraries/nix-plugins/nix-2.9.patch
new file mode 100644
index 000000000000..f1dc2909175d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/nix-plugins/nix-2.9.patch
@@ -0,0 +1,35 @@
+diff --git a/extra-builtins.cc b/extra-builtins.cc
+index 617807a..c417cb3 100644
+--- a/extra-builtins.cc
++++ b/extra-builtins.cc
+@@ -27,7 +27,7 @@ static ExtraBuiltinsSettings extraBuiltinsSettings;
+ 
+ static GlobalConfig::Register rp(&extraBuiltinsSettings);
+ 
+-static void extraBuiltins(EvalState & state, const Pos & pos,
++static void extraBuiltins(EvalState & state, const PosIdx pos,
+     Value ** _args, Value & v)
+ {
+     static auto extraBuiltinsFile = absPath(extraBuiltinsSettings.extraBuiltinsFile);
+@@ -44,10 +44,10 @@ static void extraBuiltins(EvalState & state, const Pos & pos,
+             auto attrs = state.buildBindings(2);
+ 
+             auto sExec = state.symbols.create("exec");
+-            attrs.alloc(sExec).mkPrimOp(new PrimOp { .fun = prim_exec, .arity = 1, .name = sExec });
++            attrs.alloc(sExec).mkPrimOp(new PrimOp { .fun = prim_exec, .arity = 1, .name = "exec" });
+ 
+             auto sImportNative = state.symbols.create("importNative");
+-            attrs.alloc(sImportNative).mkPrimOp(new PrimOp { .fun = prim_importNative, .arity = 2, .name = sImportNative });
++            attrs.alloc(sImportNative).mkPrimOp(new PrimOp { .fun = prim_importNative, .arity = 2, .name = "importNative" });
+ 
+             arg = state.allocValue();
+             arg->mkAttrs(attrs);
+@@ -64,7 +64,7 @@ static void extraBuiltins(EvalState & state, const Pos & pos,
+ static RegisterPrimOp rp1("__extraBuiltins", 0,
+     extraBuiltins);
+ 
+-static void cflags(EvalState & state, const Pos & _pos,
++static void cflags(EvalState & state, const PosIdx _pos,
+     Value ** _args, Value & v)
+ {
+     auto attrs = state.buildBindings(3);