From 6aceebd8147af85e9fd446967846be688b61f59d Mon Sep 17 00:00:00 2001 From: algorithmiker <104317939+algorithmiker@users.noreply.github.com> Date: Fri, 22 Aug 2025 18:14:11 +0200 Subject: [PATCH 1/4] tango-idl: init at 6.0.4 Co-authored-by: Sandro --- pkgs/by-name/ta/tango-idl/package.nix | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 pkgs/by-name/ta/tango-idl/package.nix diff --git a/pkgs/by-name/ta/tango-idl/package.nix b/pkgs/by-name/ta/tango-idl/package.nix new file mode 100644 index 0000000000000..3c470b6bae469 --- /dev/null +++ b/pkgs/by-name/ta/tango-idl/package.nix @@ -0,0 +1,36 @@ +{ + stdenv, + lib, + fetchFromGitLab, + fetchpatch, + cmake, +}: +stdenv.mkDerivation rec { + pname = "tango-idl"; + version = "6.0.4"; + + src = fetchFromGitLab { + owner = "tango-controls"; + repo = "tango-idl"; + tag = version; + hash = "sha256-etXjey4X5mNCHLtu3TyQv0S9uP4BSfZVNN8YDc/fp68="; + }; + + patches = [ + # corresponds to PR https://gitlab.com/tango-controls/tango-idl/-/merge_requests/31/ + (fetchpatch { + url = "https://gitlab.com/tango-controls/tango-idl/-/commit/8fd75a4079bf96544697f7783c2de0027d030b8e.patch"; + hash = "sha256-2NMfHakoHzxnYqxVDvH2LnEtLe8S8K88prT9AAs95MA="; + }) + ]; + + nativeBuildInputs = [ cmake ]; + + meta = { + description = "Tango CORBA IDL file"; + homepage = "https://gitlab.com/tango-controls/tango-idl"; + license = lib.licenses.lgpl3; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.gilice ]; + }; +} From a8232d04bb65be8da7a1f599877d14adabbd9b48 Mon Sep 17 00:00:00 2001 From: algorithmiker <104317939+algorithmiker@users.noreply.github.com> Date: Fri, 22 Aug 2025 18:08:16 +0200 Subject: [PATCH 2/4] tango-cpp: init at 10.1.1 Note: the repo name for this is cppTango, but it is convenient to call it tango-cpp for easier discoverability (tango-* will list all tango-related packages). The AUR [1] calls it tango-cpp likewise, Debian [2] calls it libtango10. [1]: https://aur.archlinux.org/packages/tango-database [2]: https://packages.debian.org/sid/libtango10 Of course, the package entry can always be renamed in the future. Co-authored-by: Sandro --- pkgs/by-name/ta/tango-cpp/package.nix | 63 +++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 pkgs/by-name/ta/tango-cpp/package.nix diff --git a/pkgs/by-name/ta/tango-cpp/package.nix b/pkgs/by-name/ta/tango-cpp/package.nix new file mode 100644 index 0000000000000..4940bf661168a --- /dev/null +++ b/pkgs/by-name/ta/tango-cpp/package.nix @@ -0,0 +1,63 @@ +{ + stdenv, + lib, + cmake, + cppzmq, + curl, + fetchFromGitLab, + fetchpatch, + libjpeg, + omniorb, + openssl, + opentelemetry-cpp, + protobuf, + tango-idl, + zeromq, +}: +stdenv.mkDerivation rec { + pname = "tango-cpp"; + version = "10.1.1"; + + src = fetchFromGitLab { + owner = "tango-controls"; + repo = "cppTango"; + tag = version; + fetchSubmodules = true; + hash = "sha256-Edv7ZGnESjpuwt0Hentl0qgV2PfBgXWED7v9pUvTW0o="; + }; + + patches = [ + # corresponds to PR https://gitlab.com/tango-controls/cppTango/-/merge_requests/1525 + (fetchpatch { + url = "https://gitlab.com/tango-controls/cppTango/-/commit/66bd2d9deb79fb557eb2314376f9559e7476d3a1.patch"; + hash = "sha256-ZUcBS4apVfXmXKnpGOQJ9DF8t79qJ2yqKXwaseiOC6U="; + }) + ]; + + nativeBuildInputs = [ + cmake + cppzmq + tango-idl + ]; + + buildInputs = [ + curl + libjpeg + omniorb + openssl + (opentelemetry-cpp.override { + enableGrpc = true; + enableHttp = true; + }) + protobuf + zeromq + ]; + + meta = { + description = "Tango Distributed Control System - C++ library"; + homepage = "https://gitlab.com/tango-controls/cppTango"; + license = lib.licenses.lgpl3; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.gilice ]; + }; +} From 1b23d3eddfb44a2bb9f9221531cf2fea68923b0e Mon Sep 17 00:00:00 2001 From: algorithmiker <104317939+algorithmiker@users.noreply.github.com> Date: Fri, 22 Aug 2025 18:15:45 +0200 Subject: [PATCH 3/4] tango-database: init at 5.25 Co-authored-by: Sandro --- pkgs/by-name/ta/tango-database/package.nix | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 pkgs/by-name/ta/tango-database/package.nix diff --git a/pkgs/by-name/ta/tango-database/package.nix b/pkgs/by-name/ta/tango-database/package.nix new file mode 100644 index 0000000000000..b23b5e96cd01a --- /dev/null +++ b/pkgs/by-name/ta/tango-database/package.nix @@ -0,0 +1,67 @@ +{ + stdenv, + lib, + cmake, + cppzmq, + fetchFromGitLab, + libjpeg, + mariadb, + mariadb-connector-c, + omniorb, + opentelemetry-cpp, + protobuf, + tango-cpp, +}: + +# NOTE: You need to manually set up the database structure to run Tango successfully. +# See $out/share/tango/db/create_db.sh +stdenv.mkDerivation rec { + pname = "tango-database"; + version = "5.25"; + + src = fetchFromGitLab { + owner = "tango-controls"; + repo = "TangoDatabase"; + tag = "Database-Release-${version}"; + fetchSubmodules = true; + hash = "sha256-hu2TIPxXyUtLK3bHFHuBYho23TGLkmsHfxEabsjsvmE="; + }; + + nativeBuildInputs = [ + cmake + ]; + + buildInputs = [ + cppzmq + libjpeg + mariadb.client + mariadb-connector-c.dev + omniorb + (opentelemetry-cpp.override { + enableGrpc = true; + enableHttp = true; + }) + protobuf + tango-cpp + ]; + + # their FindMySQL.cmake fails to find these libraries, + # maybe because mariadb-connector-c puts its libraries into $out/lib/mariadb, not $out/lib? + cmakeFlags = [ + "-DMySQL_INCLUDE_DIR=${mariadb-connector-c.dev}/include/mysql" + "-DMySQL_LIBRARY_DEBUG=${mariadb-connector-c}/lib/mariadb/libmariadb.so" + "-DMySQL_LIBRARY_RELEASE=${mariadb-connector-c}/lib/mariadb/libmariadb.so" + ]; + + postFixup = '' + patchelf --add-rpath ${mariadb-connector-c}/lib/mariadb $out/bin/Databaseds + ''; + + meta = { + description = "Tango distributed control system - database server"; + homepage = "https://gitlab.com/tango-controls/TangoDatabase"; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.gilice ]; + }; +} From 54b5cfa978739e77b0cbb870f77dfe80bc19ed47 Mon Sep 17 00:00:00 2001 From: algorithmiker <104317939+algorithmiker@users.noreply.github.com> Date: Fri, 22 Aug 2025 18:16:16 +0200 Subject: [PATCH 4/4] jive: init at 7.45 Co-authored-by: Sandro --- pkgs/by-name/ji/jive/package.nix | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pkgs/by-name/ji/jive/package.nix diff --git a/pkgs/by-name/ji/jive/package.nix b/pkgs/by-name/ji/jive/package.nix new file mode 100644 index 0000000000000..fa5fa418a6d34 --- /dev/null +++ b/pkgs/by-name/ji/jive/package.nix @@ -0,0 +1,40 @@ +{ + stdenv, + lib, + fetchurl, + makeWrapper, + jre, +}: +stdenv.mkDerivation rec { + pname = "jive"; + version = "7.45"; + + src = fetchurl { + url = "https://repo.maven.apache.org/maven2/org/tango-controls/Jive/${version}/Jive-${version}-jar-with-dependencies.jar"; + hash = "sha256-a/I4jMlTVYWN9zNBQnWbvT2MBHItexnwPly1XyOeR8U="; + }; + + dontUnpack = true; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/java + cp $src $out/share/java/jive.jar + makeWrapper ${jre}/bin/java $out/bin/jive \ + --add-flags "-classpath $out/share/java/jive.jar jive3.MainPanel" + + runHook postInstall + ''; + + meta = { + description = "Standalone JAVA application designed to browse and edit the static TANGO database"; + homepage = "https://gitlab.com/tango-controls/jive"; + license = lib.licenses.gpl3; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.gilice ]; + sourceProvenance = [ lib.sourceTypes.binaryBytecode ]; + }; +}