From 0d69a0eefb3d604e491188a38df1ad75e38ed7f8 Mon Sep 17 00:00:00 2001 From: Philipp Jungkamp Date: Mon, 12 Jun 2023 17:57:04 +0200 Subject: [PATCH] packaging-nix: add libdatachannel for webrtc node Signed-off-by: Philipp Jungkamp --- packaging/nix/flake.lock | 20 ++++++++++++++++++++ packaging/nix/flake.nix | 14 +++++++++++++- packaging/nix/libdatachannel.nix | 19 +++++++++++++++++++ packaging/nix/villas.nix | 3 +++ 4 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 packaging/nix/libdatachannel.nix diff --git a/packaging/nix/flake.lock b/packaging/nix/flake.lock index 0a88ba39e..cf50b6fb7 100644 --- a/packaging/nix/flake.lock +++ b/packaging/nix/flake.lock @@ -51,6 +51,25 @@ "type": "github" } }, + "libdatachannel": { + "flake": false, + "locked": { + "lastModified": 1683797946, + "narHash": "sha256-kSK+5gFMG6tq89R1m08gNBKPdwyR/mLEDhWXQ/uk34o=", + "ref": "refs/tags/v0.18.4", + "rev": "7a5e01071ae635e06f175233abd11d623f09cbb8", + "revCount": 2459, + "submodules": true, + "type": "git", + "url": "https://github.com/paullouisageneau/libdatachannel.git" + }, + "original": { + "ref": "refs/tags/v0.18.4", + "submodules": true, + "type": "git", + "url": "https://github.com/paullouisageneau/libdatachannel.git" + } + }, "libiec61850": { "flake": false, "locked": { @@ -88,6 +107,7 @@ "common": "common", "fpga": "fpga", "lib60870": "lib60870", + "libdatachannel": "libdatachannel", "libiec61850": "libiec61850", "nixpkgs": "nixpkgs" } diff --git a/packaging/nix/flake.nix b/packaging/nix/flake.nix index 9e44ff140..70c21e9bf 100644 --- a/packaging/nix/flake.nix +++ b/packaging/nix/flake.nix @@ -19,6 +19,14 @@ flake = false; }; + libdatachannel = { + type = "git"; + url = "https://github.com/paullouisageneau/libdatachannel.git"; + ref = "refs/tags/v0.18.4"; + submodules = true; + flake = false; + }; + libiec61850 = { url = "github:mz-automation/libiec61850/v1.5.1"; flake = false; @@ -79,6 +87,10 @@ src = inputs.lib60870; }; + libdatachannel = pkgs.callPackage ./libdatachannel.nix { + src = inputs.libdatachannel; + }; + libiec61850 = pkgs.callPackage ./libiec61850.nix { src = inputs.libiec61850; }; @@ -98,7 +110,7 @@ # standard flake attribute allowing you to add the villas packages to your nixpkgs overlays = { - default = overlay; + default = overlay; }; # standard flake attribute for defining developer environments diff --git a/packaging/nix/libdatachannel.nix b/packaging/nix/libdatachannel.nix new file mode 100644 index 000000000..64aec66e5 --- /dev/null +++ b/packaging/nix/libdatachannel.nix @@ -0,0 +1,19 @@ +{ + cmake, + lib, + stdenv, + src, + openssl, +}: +stdenv.mkDerivation { + pname = "libdatachannel"; + version = "villas"; + src = src; + nativeBuildInputs = [cmake]; + buildInputs = [openssl]; + meta = with lib; { + description = "C/C++ WebRTC network library featuring Data Channels, Media Transport, and WebSockets"; + homepage = "https://libdatachannel.org/"; + license = licenses.mpl20; + }; +} diff --git a/packaging/nix/villas.nix b/packaging/nix/villas.nix index 3c44f0446..803df8cbb 100644 --- a/packaging/nix/villas.nix +++ b/packaging/nix/villas.nix @@ -24,6 +24,7 @@ withNodeSocket ? withAllNodes, withNodeTemper ? withAllNodes, withNodeUldaq ? withAllNodes, + withNodeWebrtc ? withAllNodes, withNodeZeromq ? withAllNodes, # minimal dependencies cmake, @@ -43,6 +44,7 @@ jansson, lib60870, libconfig, + libdatachannel, libiec61850, libnl, libre, @@ -117,6 +119,7 @@ stdenv.mkDerivation { ++ lib.optionals withNodeSocket [libnl] ++ lib.optionals withNodeTemper [libusb] ++ lib.optionals withNodeUldaq [libuldaq] + ++ lib.optionals withNodeWebrtc [libdatachannel] ++ lib.optionals withNodeZeromq [czmq libsodium]; meta = with lib; { mainProgram = "villas";