From 7b23172d235062d43292e5bc284c73e868516caf Mon Sep 17 00:00:00 2001 From: Alexis Gaget Date: Wed, 20 Dec 2023 17:07:11 +0100 Subject: [PATCH] support/twincat-ads: add ESS ADS driver support (Beckhoff TwinCAT) --- pkgs/default.nix | 1 + pkgs/epnix/support/ads/default.nix | 45 +++++++++++++++++++++++++++++ pkgs/epnix/support/ads/fixDep.patch | 0 3 files changed, 46 insertions(+) create mode 100644 pkgs/epnix/support/ads/default.nix create mode 100644 pkgs/epnix/support/ads/fixDep.patch diff --git a/pkgs/default.nix b/pkgs/default.nix index 7a8353de..5330dbe3 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -48,6 +48,7 @@ in snmp = callPackage ./epnix/support/snmp {}; sscan = callPackage ./epnix/support/sscan {}; StreamDevice = callPackage ./epnix/support/StreamDevice {}; + twincat-ads = callPackage ./epnix/support/twincat-ads {}; }); # EPICS related tools and extensions diff --git a/pkgs/epnix/support/ads/default.nix b/pkgs/epnix/support/ads/default.nix new file mode 100644 index 00000000..917dc065 --- /dev/null +++ b/pkgs/epnix/support/ads/default.nix @@ -0,0 +1,45 @@ +{ + lib, + epnixLib, + epnix, + mkEpicsPackage, + fetchFromGitLab, + local_config_site ? {}, + local_release ? {}, +}: +mkEpicsPackage rec { + pname = "ads"; + version = "2023.08.20"; + varname = "ADS"; + + inherit local_config_site local_release; + + src = fetchFromGitLab { + domain = "gitlab.esss.lu.se"; + owner = "epics-modules"; + repo = "epics-twincat-ads"; + rev = "f07f73cd20320e40e908ed281527a81a4799bbce"; + fetchSubmodules = true; + sha256 = "sha256-NCuT2EpEBEVMzQw4cU8l0AUYVXa9fUtEOGpynG5Z85M="; + }; + + # Patch used to fix parallelization compilation issue caused by EPNix compare to standard compilation. + # Wait for PR https://gitlab.esss.lu.se/epics-modules/epics-twincat-ads/-/merge_requests/3 + patches = [./fixDep.patch]; + + propagatedBuildInputs = with epnix.support; [asyn calc]; + + preBuild = '' + touch configure/RELEASE_PATHS.local + touch configure/RELEASE_LIBS.local + ''; + + meta = { + description = "Module providing EPICS support for ADS Protocol (Automation Device Specification)"; + homepage = "https://gitlab.esss.lu.se/epics-modules/epics-twincat-ads"; + # Wait for ESS team answer about the license : https://gitlab.esss.lu.se/epics-modules/epics-twincat-ads/-/issues/1 + # lib.licenses.free don't work in EPNIX for now + license = epnixLib.licenses.epics; + maintainers = with epnixLib.maintainers; [agaget]; + }; +} diff --git a/pkgs/epnix/support/ads/fixDep.patch b/pkgs/epnix/support/ads/fixDep.patch new file mode 100644 index 00000000..e69de29b