diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix index 15a8161ed26f..09f99f400aa6 100644 --- a/pkgs/applications/video/filebot/default.nix +++ b/pkgs/applications/video/filebot/default.nix @@ -1,8 +1,13 @@ -{ lib, stdenv, fetchurl, openjdk17, makeWrapper, autoPatchelfHook +{ lib, stdenv, fetchurl, coreutils, openjdk17, makeWrapper, autoPatchelfHook , zlib, libzen, libmediainfo, curlWithGnuTls, libmms, glib }: -stdenv.mkDerivation rec { +let + lanterna = fetchurl { + url = "https://search.maven.org/remotecontent?filepath=com/googlecode/lanterna/lanterna/3.1.1/lanterna-3.1.1.jar"; + hash = "sha256-7zxCeXYW5v9ritnvkwRpPKdgSptCmkT3HJOaNgQHUmQ="; + }; +in stdenv.mkDerivation rec { pname = "filebot"; version = "5.0.2"; @@ -17,6 +22,11 @@ stdenv.mkDerivation rec { buildInputs = [ zlib libzen libmediainfo curlWithGnuTls libmms glib ]; + postPatch = '' + # replace lanterna.jar to be able to specify `com.googlecode.lanterna.terminal.UnixTerminal.sttyCommand` + cp ${lanterna} jar/lanterna.jar + ''; + dontBuild = true; installPhase = '' mkdir -p $out/opt $out/bin @@ -25,7 +35,8 @@ stdenv.mkDerivation rec { # Filebot writes to $APP_DATA, which fails due to read-only filesystem. Using current user .local directory instead. substituteInPlace $out/opt/filebot.sh \ --replace 'APP_DATA="$FILEBOT_HOME/data/$(id -u)"' 'APP_DATA=''${XDG_DATA_HOME:-$HOME/.local/share}/filebot/data' \ - --replace '$FILEBOT_HOME/data/.license' '$APP_DATA/.license' + --replace '$FILEBOT_HOME/data/.license' '$APP_DATA/.license' \ + --replace '-jar "$FILEBOT_HOME/jar/filebot.jar"' '-Dcom.googlecode.lanterna.terminal.UnixTerminal.sttyCommand=${coreutils}/bin/stty -jar "$FILEBOT_HOME/jar/filebot.jar"' wrapProgram $out/opt/filebot.sh \ --prefix PATH : ${lib.makeBinPath [ openjdk17 ]} # Expose the binary in bin to make runnable.