diff --git a/pkgs/development/libraries/adslib/default.nix b/pkgs/development/libraries/adslib/default.nix new file mode 100644 index 00000000000..49b54960b7e --- /dev/null +++ b/pkgs/development/libraries/adslib/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "adslib"; + version = "unstable-2020-08-28"; + + src = fetchFromGitHub { + owner = "stlehmann"; + repo = "ADS"; + rev = "c457b60d61d73325837ca50be2cc997c4792d481"; + sha256 = "11r86xa8fr4z957hd0abn8x7182nz30a198d02y7gzpbhpi3z43k"; + }; + + installPhase = '' + mkdir -p $out/lib + cp adslib.so $out/lib/adslib.so + ''; + + meta = with lib; { + description = "Beckhoff protocol to communicate with TwinCAT devices"; + homepage = "https://github.com/stlehmann/ADS"; + license = licenses.mit; + maintainers = with maintainers; [ jamiemagee ]; + }; +} diff --git a/pkgs/development/python-modules/pyads/default.nix b/pkgs/development/python-modules/pyads/default.nix new file mode 100644 index 00000000000..37d3b31a365 --- /dev/null +++ b/pkgs/development/python-modules/pyads/default.nix @@ -0,0 +1,30 @@ +{ adslib, buildPythonPackage, fetchFromGitHub, lib, pytestCheckHook, pytest +, pytestcov, pythonOlder }: + +buildPythonPackage rec { + pname = "pyads"; + version = "3.2.2"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "stlehmann"; + repo = pname; + rev = version; + sha256 = "1jd727pw0z73y4xhrykqkfcz1acrpy3rks58lr1y4yilfv11p6jb"; + }; + + buildInputs = [ adslib ]; + patchPhase = '' + substituteInPlace pyads/pyads_ex.py \ + --replace "ctypes.CDLL(adslib)" "ctypes.CDLL(\"${adslib}/lib/adslib.so\")" + ''; + checkInputs = [ pytestCheckHook pytest pytestcov ]; + + meta = with lib; { + description = "Python wrapper for TwinCAT ADS library"; + homepage = "https://github.com/MrLeeh/pyads"; + license = licenses.mit; + maintainers = with maintainers; [ jamiemagee ]; + }; +} diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 13cd0054d17..cd58c6fb103 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -10,7 +10,7 @@ "acmeda" = ps: with ps; [ ]; # missing inputs: aiopulse "actiontec" = ps: with ps; [ ]; "adguard" = ps: with ps; [ adguardhome ]; - "ads" = ps: with ps; [ ]; # missing inputs: pyads + "ads" = ps: with ps; [ pyads ]; "aftership" = ps: with ps; [ ]; # missing inputs: pyaftership "agent_dvr" = ps: with ps; [ ]; # missing inputs: agent-py "air_quality" = ps: with ps; [ ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 588c79b785d..d2bb1badd8f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11830,6 +11830,8 @@ in adns = callPackage ../development/libraries/adns { }; + adslib = callPackage ../development/libraries/adslib { }; + afflib = callPackage ../development/libraries/afflib { }; aften = callPackage ../development/libraries/aften { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f83a88f1644..9082d90bba5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4728,6 +4728,8 @@ in { pyacoustid = callPackage ../development/python-modules/pyacoustid { }; + pyads = callPackage ../development/python-modules/pyads { }; + pyaes = callPackage ../development/python-modules/pyaes { }; pyairvisual = callPackage ../development/python-modules/pyairvisual { };