From db84e6ce2983352cc7569b351b489a254957a432 Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Wed, 29 May 2024 12:02:09 +0200 Subject: [PATCH] sbt: add ncurses as propagated build input `infocmp` from ncurses is used at run time. Without it, in a pure shell: ``` copying runtime jar... [info] [launcher] getting org.scala-sbt sbt 1.10.0 (this may take some time)... [info] [launcher] getting Scala 2.12.19 (for sbt)... May 29, 2024 9:59:01 AM org.jline.utils.Log logr WARNING: Unable to retrieve infocmp for type xterm-kitty java.io.IOException: Cannot run program "infocmp": error=2, No such file or directory at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089) at org.jline.utils.InfoCmp.getInfoCmp(InfoCmp.java:544) at org.jline.terminal.impl.AbstractTerminal.parseInfoCmp(AbstractTerminal.java:207) at org.jline.terminal.impl.PosixSysTerminal.(PosixSysTerminal.java:46) at org.jline.terminal.impl.exec.ExecTerminalProvider.posixSysTerminal(ExecTerminalProvider.java:100) at org.jline.terminal.impl.exec.ExecTerminalProvider.sysTerminal(ExecTerminalProvider.java:66) at org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:428) at org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:362) at sbt.internal.util.JLine3$.system(JLine3.scala:64) at sbt.internal.util.Terminal$.newConsoleTerminal(Terminal.scala:805) at sbt.internal.util.Terminal$.withStreams(Terminal.scala:386) at sbt.xMain$.withStreams$1(Main.scala:88) at sbt.xMain$.run(Main.scala:123) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at sbt.internal.XMainConfiguration.run(XMainConfiguration.java:59) at sbt.xMain.run(Main.scala:47) at xsbt.boot.Launch$.$anonfun$run$1(Launch.scala:149) at xsbt.boot.Launch$.withContextLoader(Launch.scala:176) at xsbt.boot.Launch$.run(Launch.scala:149) at xsbt.boot.Launch$.$anonfun$apply$1(Launch.scala:44) at xsbt.boot.Launch$.launch(Launch.scala:159) at xsbt.boot.Launch$.apply(Launch.scala:44) at xsbt.boot.Launch$.apply(Launch.scala:21) at xsbt.boot.Boot$.runImpl(Boot.scala:78) at xsbt.boot.Boot$.run(Boot.scala:73) at xsbt.boot.Boot$.main(Boot.scala:21) at xsbt.boot.Boot.main(Boot.scala) Caused by: java.io.IOException: error=2, No such file or directory at java.base/java.lang.ProcessImpl.forkAndExec(Native Method) at java.base/java.lang.ProcessImpl.(ProcessImpl.java:295) at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:225) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126) ... 28 more ``` --- pkgs/development/tools/build-managers/sbt/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix index 3596f94b61de..7d6f608ad827 100644 --- a/pkgs/development/tools/build-managers/sbt/default.nix +++ b/pkgs/development/tools/build-managers/sbt/default.nix @@ -4,6 +4,7 @@ , jre , autoPatchelfHook , zlib +, ncurses }: stdenv.mkDerivation (finalAttrs: { @@ -26,6 +27,11 @@ stdenv.mkDerivation (finalAttrs: { zlib ]; + propagatedBuildInputs = [ + # for infocmp + ncurses + ]; + installPhase = '' runHook preInstall