diff --git a/pkgs/default.nix b/pkgs/default.nix index 032bc44e..1e848b36 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -10,6 +10,7 @@ let blueprint-compiler = callPackage ./blueprint-compiler.nix { }; butler = callPackage ./butler.nix { }; clidle = callPackage ./clidle.nix { }; + domterm = callPackage ./domterm { }; freerct = callPackage ./freerct.nix { }; distant = callPackage ./distant.nix { }; devdocs-desktop = callPackage ./devdocs-desktop.nix { }; diff --git a/pkgs/domterm/default.nix b/pkgs/domterm/default.nix new file mode 100644 index 00000000..c6675252 --- /dev/null +++ b/pkgs/domterm/default.nix @@ -0,0 +1,58 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, desktop-file-utils, pkg-config +, libwebsockets, json_c, openssl, asciidoctor, unixtools, zlib, + +# For including Java classes. Take note it doesn't compile them properly and it +# still builds successfully so including them is disabled by default. +openjdk, + +# For Qt backend which is included by default. +qt5, + +enableQt ? true, enableJava ? false }: + +# TODO: Compile with the experimental wry backend. +# * Wait until gdk-pixbuf is >=3.0. +stdenv.mkDerivation rec { + pname = "domterm"; + version = "unstable-2022-05-13"; + + src = fetchFromGitHub { + owner = "PerBothner"; + repo = "DomTerm"; + rev = "b78f55a595b82a28042ac5297a1c1b0cce30cdc3"; + sha256 = "sha256-U0w9i3Eb/tAUTRWuIjhO4xfOgR0Xa4I4hSpkHuVeG9c="; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ] + ++ lib.optional enableQt qt5.wrapQtAppsHook; + + buildInputs = [ + asciidoctor + desktop-file-utils + json_c + libwebsockets + openssl + unixtools.xxd + zlib + ] ++ lib.optionals enableQt (with qt5; [ qtbase qtwebengine qtwebchannel ]) + ++ lib.optional enableJava openjdk; + + configureFlags = [ + "--disable-java-pty" + "--with-libwebsockets" + + # Until the dependencies are updated (e.g., `gdk-pixbuf >= 3.0`), this is + # going to be painful to build. + "--without-wry" + ] ++ lib.optional enableJava "--with-java" + ++ lib.optional enableQt "--with-qt"; + + # Force Java to take input as UTF-8 instead of ASCII. + JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF8"; + + meta = with lib; { + homepage = "https://domterm.org/"; + description = "Terminal emulator based on web technologies."; + license = licenses.bsd3; + }; +}