diff options
Diffstat (limited to 'messages')
-rw-r--r-- | messages/default.nix | 56 |
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/ ''; } |