diff --git a/pkgs/development/python-modules/opcua-widgets/default.nix b/pkgs/development/python-modules/opcua-widgets/default.nix new file mode 100644 index 000000000000..386ced76a918 --- /dev/null +++ b/pkgs/development/python-modules/opcua-widgets/default.nix @@ -0,0 +1,38 @@ +{ pkgs +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, pyqt5 +, asyncua +}: + +buildPythonPackage rec { + pname = "opcua-widgets"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "FreeOpcUa"; + repo = pname; + rev = version; + hash = "sha256-ABJlKYN5H/1k8ynvSTSoJBX12vTTyavuNUAmTJ84mn0="; + }; + + disabled = pythonOlder "3.10"; + + propagatedBuildInputs = [ + pyqt5 + asyncua + ]; + + pythonImportChecks = [ "opcua-widgets" ]; + + #This test is broken, when updating this package check if the test was fixed. + doCheck = false; + + meta = with pkgs.lib; { + description = "Common widgets for opcua-modeler og opcua-client-gui"; + homepage = "https://github.com/FreeOpcUa/opcua-widgets"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ janik ]; + }; +} diff --git a/pkgs/misc/opcua-client-gui/default.nix b/pkgs/misc/opcua-client-gui/default.nix new file mode 100644 index 000000000000..2c684060758f --- /dev/null +++ b/pkgs/misc/opcua-client-gui/default.nix @@ -0,0 +1,50 @@ +{ lib +, python3 +, fetchFromGitHub +, makeDesktopItem +, copyDesktopItems +}: + +python3.pkgs.buildPythonApplication rec { + pname = "opcua-client-gui"; + version = "0.8.4"; + + src = fetchFromGitHub { + owner = "FreeOpcUa"; + repo = pname; + rev = version; + hash = "sha256-0BH1Txr3z4a7iFcsfnovmBUreXMvIX2zpZa8QivQVx8="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + pyqt5 + asyncua + opcua-widgets + numpy + pyqtgraph + ]; + + #This test uses a deprecated libarby, when updating the package check if the test was updated as well + doCheck = false; + + desktopItems = [ + (makeDesktopItem { + name = "opcua-client"; + exec = "opcua-client"; + comment = "OPC UA Client"; + type = "Application"; + #no icon because the app dosn't have one + desktopName = "opcua-client"; + terminal = false; + categories = [ "Utility" ]; + }) + ]; + + meta = with lib; { + description = "OPC UA GUI Client"; + homepage = "https://github.com/FreeOpcUa/opcua-client-gui"; + platforms = platforms.linux; + license = licenses.gpl3Only; + maintainers = with maintainers; [ janik ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a518418cd3b8..9e7c5d4ee71e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -32712,6 +32712,8 @@ with pkgs; opcr-policy = callPackage ../development/tools/opcr-policy { }; + opcua-client-gui = callPackage ../misc/opcua-client-gui { }; + open-policy-agent = callPackage ../development/tools/open-policy-agent { buildGoModule = buildGo119Module; # go 1.20 build failure }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e74a45dd12ea..9f2309f864cf 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6969,6 +6969,8 @@ self: super: with self; { oocsi = callPackage ../development/python-modules/oocsi { }; + opcua-widgets = callPackage ../development/python-modules/opcua-widgets { }; + open-garage = callPackage ../development/python-modules/open-garage { }; open-meteo = callPackage ../development/python-modules/open-meteo { };