aboutsummaryrefslogtreecommitdiff
path: root/messages/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'messages/default.nix')
-rw-r--r--messages/default.nix56
1 files changed, 43 insertions, 13 deletions
diff --git a/messages/default.nix b/messages/default.nix
index a1e03b9..4b1e734 100644
--- a/messages/default.nix
+++ b/messages/default.nix
@@ -1,6 +1,29 @@
-with (import <nixpkgs> {}); let
+with (import <nixpkgs> { }); let
+ node-protoc-precompiled = pkgs.fetchzip {
+ name = "node-protoc-precompiled";
+ url = "https://node-precompiled-binaries.grpc.io/grpc-tools/v1.10.0/linux-x64.tar.gz";
+ sha256 = "0dl1anpw3610q58mxf7r9dcp768krwvpa4053cjxn5r8b5xfbh4l";
+ };
-in yarn2nix-moretea.mkYarnPackage rec {
+ node-protoc-patched = pkgs.stdenv.mkDerivation {
+ name = "node-protoc";
+ buildInputs = [ pkgs.gcc-unwrapped.lib ];
+ nativeBuildInputs = [ pkgs.autoPatchelfHook ];
+ dontAutoPatchelf = true;
+ dontUnpack = true;
+ # protoc: symbol lookup error: /nix/store/...-node-protoc/bin/protoc: undefined symbol: , version
+ dontStrip = true;
+ installPhase = ''
+ install -D -m755 ${node-protoc-precompiled}/grpc_node_plugin $out/bin/grpc_node_plugin
+ install -D -m755 ${node-protoc-precompiled}/protoc $out/bin/protoc
+
+ autoPatchelf $out/bin/{grpc_node_plugin,protoc}
+ :
+ '';
+ };
+
+in
+yarn2nix-moretea.mkYarnPackage rec {
pname = "workadventuremessages";
version = "unstable";
@@ -11,22 +34,29 @@ in yarn2nix-moretea.mkYarnPackage rec {
sha256 = "1f1vi226kas7x9y8zw810q5vg1ikn4bb6ha9vnzvqk9y7jlc1n8q";
} + "/messages";
- # packageJSON = src + "/back/package.json";
- # yarnLock = src + "/back/yarn.lock";
# NOTE: this is optional and generated dynamically if omitted
yarnNix = ./yarn.nix;
- # pkgConfig = {
- # grpc = {
- # postInstall = ''
- # install -D -m755 ${node-grpc-patched}/bin/grpc_node.node src/node/extension_binary/node-v72-linux-x64-glibc/grpc_node.node
- # '';
- # };
- # };
+ pkgConfig = {
+ grpc-tools = {
+ postInstall = ''
+ install -D -m755 ${node-protoc-patched}/bin/grpc_node_plugin bin/grpc_node_plugin
+ install -D -m755 ${node-protoc-patched}/bin/protoc bin/protoc
+ '';
+ };
+ };
+
+ dontStrip = true;
buildPhase = ''
mkdir -p $out
- HOME=$TMPDIR yarn --offline proto
- find
+ HOME=$TMPDIR yarn --offline run proto
+ '';
+
+ distPhase = ":";
+
+ installPhase = ''
+ cp -r deps/workadventure-messages/generated $out/
+ cp -r node_modules $out/
'';
}