nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 lib,
4 cmake,
5 cppzmq,
6 fetchFromGitLab,
7 libjpeg,
8 mariadb,
9 mariadb-connector-c,
10 omniorb,
11 opentelemetry-cpp,
12 protobuf,
13 tango-cpp,
14}:
15
16# NOTE: You need to manually set up the database structure to run Tango successfully.
17# See $out/share/tango/db/create_db.sh
18stdenv.mkDerivation (finalAttrs: {
19 pname = "tango-database";
20 version = "5.28";
21
22 src = fetchFromGitLab {
23 owner = "tango-controls";
24 repo = "TangoDatabase";
25 tag = "Database-Release-${finalAttrs.version}";
26 fetchSubmodules = true;
27 hash = "sha256-r8jrsDR22u30l1R6mK95KsLWHhheZa4/N6n/Xv4mKPc=";
28 };
29
30 nativeBuildInputs = [
31 cmake
32 ];
33
34 buildInputs = [
35 cppzmq
36 libjpeg
37 mariadb.client
38 mariadb-connector-c.dev
39 omniorb
40 (opentelemetry-cpp.override {
41 enableGrpc = true;
42 enableHttp = true;
43 })
44 protobuf
45 tango-cpp
46 ];
47
48 # their FindMySQL.cmake fails to find these libraries,
49 # maybe because mariadb-connector-c puts its libraries into $out/lib/mariadb, not $out/lib?
50 cmakeFlags = [
51 "-DMySQL_INCLUDE_DIR=${mariadb-connector-c.dev}/include/mysql"
52 "-DMySQL_LIBRARY_DEBUG=${mariadb-connector-c}/lib/mariadb/libmariadb.so"
53 "-DMySQL_LIBRARY_RELEASE=${mariadb-connector-c}/lib/mariadb/libmariadb.so"
54 ];
55
56 postFixup = ''
57 patchelf --add-rpath ${mariadb-connector-c}/lib/mariadb $out/bin/Databaseds
58 '';
59
60 meta = {
61 description = "Tango distributed control system - database server";
62 homepage = "https://gitlab.com/tango-controls/TangoDatabase";
63 changelog = "https://gitlab.com/tango-controls/TangoDatabase/-/blob/Database-Release-${finalAttrs.version}/RELEASE_NOTES.md";
64 license = lib.licenses.gpl3Plus;
65 platforms = lib.platforms.linux;
66 maintainers = [ lib.maintainers.gilice ];
67 };
68})