diff --git a/pkgs/applications/misc/inkcut/default.nix b/pkgs/applications/misc/inkcut/default.nix new file mode 100644 index 000000000000..6be6e842bde7 --- /dev/null +++ b/pkgs/applications/misc/inkcut/default.nix @@ -0,0 +1,54 @@ +{ lib, python3Packages, fetchFromGitHub, wrapQtAppsHook }: + +with python3Packages; + +buildPythonApplication rec { + pname = "inkcut"; + version = "2.1.1"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "1c0mfdfy9iq4l683f3aa7cm7x2w9px83dyigc7655wvaq3bxi2rp"; + }; + + nativeBuildInputs = [ wrapQtAppsHook ]; + + propagatedBuildInputs = [ + enamlx + twisted + lxml + qreactor + jsonpickle + pyserial + pycups + qtconsole + pyqt5 + ]; + + # QtApplication.instance() does not work during tests? + doCheck = false; + + pythonImportsCheck = [ + "inkcut" + "inkcut.cli" + "inkcut.console" + "inkcut.core" + "inkcut.device" + "inkcut.job" + "inkcut.joystick" + "inkcut.monitor" + "inkcut.preview" + ]; + + dontWrapQtApps = true; + makeWrapperArgs = [ "\${qtWrapperArgs[@]}" ]; + + meta = with lib; { + homepage = "https://www.codelv.com/projects/inkcut/"; + description = "Control 2D plotters, cutters, engravers, and CNC machines"; + license = licenses.gpl3; + maintainers = with maintainers; [ raboof ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 340991c8b4a6..e127e601c7c7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20817,6 +20817,8 @@ in # Impressive, formerly known as "KeyJNote". impressive = callPackage ../applications/office/impressive { }; + inkcut = libsForQt5.callPackage ../applications/misc/inkcut { }; + inkscape = callPackage ../applications/graphics/inkscape { lcms = lcms2; };