diff --git a/pkgs/development/tools/scry/default.nix b/pkgs/development/tools/scry/default.nix index 03e7c64f5496..05f7805a55ac 100644 --- a/pkgs/development/tools/scry/default.nix +++ b/pkgs/development/tools/scry/default.nix @@ -1,9 +1,8 @@ -{ stdenv, fetchFromGitHub, crystal, shards, which }: +{ stdenv, lib, fetchFromGitHub, crystal, shards, llvm, which }: stdenv.mkDerivation rec { pname = "scry"; - # 0.7.1 doesn't work with crystal > 0.25 - version = "0.7.1.20180919"; + version = "0.8.0"; src = fetchFromGitHub { owner = "crystal-lang-tools"; @@ -12,7 +11,9 @@ stdenv.mkDerivation rec { sha256 = "1yq7jap3y5pr2yqc6fn6bxshzwv7dz3w97incq7wpcvi7ibb4lcn"; }; - nativeBuildInputs = [ crystal shards which ]; + patches = lib.optional (lib.versionAtLeast crystal.version "0.28") ./fix_for_crystal_0_28_and_above.patch; + + nativeBuildInputs = [ crystal shards llvm which ]; buildPhase = '' runHook preBuild diff --git a/pkgs/development/tools/scry/fix_for_crystal_0_28_and_above.patch b/pkgs/development/tools/scry/fix_for_crystal_0_28_and_above.patch new file mode 100644 index 000000000000..909b790b81a8 --- /dev/null +++ b/pkgs/development/tools/scry/fix_for_crystal_0_28_and_above.patch @@ -0,0 +1,20 @@ +diff --git a/src/scry/completion_provider.cr b/src/scry/completion_provider.cr +index 29e0d36..f67438c 100644 +--- a/src/scry/completion_provider.cr ++++ b/src/scry/completion_provider.cr +@@ -1,4 +1,5 @@ + require "./log" ++require "compiler/crystal/codegen/target" + require "compiler/crystal/crystal_path" + require "./completion/*" + +diff --git a/src/scry/parse_analyzer.cr b/src/scry/parse_analyzer.cr +index d87eca4..bbe9ed5 100644 +--- a/src/scry/parse_analyzer.cr ++++ b/src/scry/parse_analyzer.cr +@@ -1,4 +1,5 @@ + require "compiler/crystal/syntax" ++require "compiler/crystal/codegen/target" + require "compiler/crystal/crystal_path" + require "./workspace" + require "./text_document"