From 7e89f8b86b79ac8557be3bb6fa8661e6f347722f Mon Sep 17 00:00:00 2001 From: Philipp Jungkamp Date: Fri, 16 Jun 2023 16:10:32 +0200 Subject: [PATCH 1/5] packaging-nix: allow disabling GPL code from override Signed-off-by: Philipp Jungkamp --- packaging/nix/villas.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packaging/nix/villas.nix b/packaging/nix/villas.nix index 8659975eb..dc5d08fbc 100644 --- a/packaging/nix/villas.nix +++ b/packaging/nix/villas.nix @@ -2,6 +2,7 @@ # general configuration src, version, + withGpl ? true, withAllExtras ? false, withAllFormats ? false, withAllHooks ? false, @@ -69,12 +70,12 @@ stdenv.mkDerivation { inherit src version; pname = "villas"; - cmakeFlags = - [ - "-DDOWNLOAD_GO=OFF" - "-DCMAKE_BUILD_TYPE=Release" - ] + cmakeFlags = [] + ++ lib.optionals (!withGpl) ["-DWITHOUT_GPL=ON"] ++ lib.optionals withFormatProtobuf ["-DCMAKE_FIND_ROOT_PATH=${protobufcBuildBuild}/bin"]; + postPatch = '' + patchShebangs --host ./tools + ''; preConfigure = '' rm -df common rm -df fpga @@ -82,7 +83,6 @@ stdenv.mkDerivation { ${lib.optionalString withNodeFpga "ln -s ${fpga} fpga"} ''; postInstall = '' - patchShebangs --build $out/bin/villas wrapProgram $out/bin/villas \ --set PATH ${lib.makeBinPath [(placeholder "out") gnugrep coreutils]} ''; From f1dfccd8ef8d831c3d14e11c03851c01d3b86d8c Mon Sep 17 00:00:00 2001 From: Philipp Jungkamp Date: Thu, 15 Jun 2023 16:51:30 +0200 Subject: [PATCH 2/5] fix release compile errors Signed-off-by: Philipp Jungkamp --- lib/nodes/iec60870.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/nodes/iec60870.cpp b/lib/nodes/iec60870.cpp index 126c145d7..65be0d701 100644 --- a/lib/nodes/iec60870.cpp +++ b/lib/nodes/iec60870.cpp @@ -203,7 +203,7 @@ std::optional ASDUData::checkASDU(CS101_ASDU const &asdu) cons } default: - assert(!"unreachable"); + throw RuntimeError { "unsupported asdu type" }; } std::optional time_cp56; @@ -761,7 +761,7 @@ int SlaveNode::parse(json_t *json, const uuid_t sn_uuid) break; default: - assert(!"unreachable"); + throw RuntimeError { "unsupported signal type" }; } } else initial_value.f = 0.0; From 5eb947ad564ae5160113fa869e4c70348be9d743 Mon Sep 17 00:00:00 2001 From: Philipp Jungkamp Date: Thu, 15 Jun 2023 17:22:38 +0200 Subject: [PATCH 3/5] packaging-nix: Use correct binary path for villas-api Signed-off-by: Philipp Jungkamp --- packaging/nix/villas.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packaging/nix/villas.nix b/packaging/nix/villas.nix index dc5d08fbc..c47d36afb 100644 --- a/packaging/nix/villas.nix +++ b/packaging/nix/villas.nix @@ -33,6 +33,7 @@ coreutils, fpga, graphviz, + jq, lib, makeWrapper, pkg-config, @@ -70,7 +71,11 @@ stdenv.mkDerivation { inherit src version; pname = "villas"; - cmakeFlags = [] + outputs = ["out" "dev"]; + cmakeFlags = + [ + "-DDOWNLOAD_GO=OFF" + ] ++ lib.optionals (!withGpl) ["-DWITHOUT_GPL=ON"] ++ lib.optionals withFormatProtobuf ["-DCMAKE_FIND_ROOT_PATH=${protobufcBuildBuild}/bin"]; postPatch = '' @@ -85,6 +90,8 @@ stdenv.mkDerivation { postInstall = '' wrapProgram $out/bin/villas \ --set PATH ${lib.makeBinPath [(placeholder "out") gnugrep coreutils]} + wrapProgram $out/bin/villas-api \ + --set PATH ${lib.makeBinPath [coreutils curl jq]} ''; nativeBuildInputs = [ cmake From 7b03598aa13f5d943f7a72044709b7a338a83452 Mon Sep 17 00:00:00 2001 From: Philipp Jungkamp Date: Mon, 19 Jun 2023 17:50:17 +0200 Subject: [PATCH 4/5] packaging-nix: remove DOWNLOAD_GO option Signed-off-by: Philipp Jungkamp --- packaging/nix/villas.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packaging/nix/villas.nix b/packaging/nix/villas.nix index c47d36afb..5c696af53 100644 --- a/packaging/nix/villas.nix +++ b/packaging/nix/villas.nix @@ -72,10 +72,7 @@ stdenv.mkDerivation { inherit src version; pname = "villas"; outputs = ["out" "dev"]; - cmakeFlags = - [ - "-DDOWNLOAD_GO=OFF" - ] + cmakeFlags = [] ++ lib.optionals (!withGpl) ["-DWITHOUT_GPL=ON"] ++ lib.optionals withFormatProtobuf ["-DCMAKE_FIND_ROOT_PATH=${protobufcBuildBuild}/bin"]; postPatch = '' From 8a2aac434b489c283997e35c5f2857164f938914 Mon Sep 17 00:00:00 2001 From: Philipp Jungkamp Date: Mon, 19 Jun 2023 17:55:04 +0200 Subject: [PATCH 5/5] packaging-nix: add separateDebugInfo to all packages Signed-off-by: Philipp Jungkamp --- packaging/nix/lib60870.nix | 1 + packaging/nix/libdatachannel.nix | 1 + packaging/nix/libiec61850.nix | 1 + packaging/nix/villas.nix | 1 + 4 files changed, 4 insertions(+) diff --git a/packaging/nix/lib60870.nix b/packaging/nix/lib60870.nix index bb0404279..b1595ab44 100644 --- a/packaging/nix/lib60870.nix +++ b/packaging/nix/lib60870.nix @@ -8,6 +8,7 @@ stdenv.mkDerivation { pname = "lib60870"; version = "villas"; src = src; + separateDebugInfo = true; nativeBuildInputs = [cmake]; preConfigure = "cd lib60870-C"; meta = with lib; { diff --git a/packaging/nix/libdatachannel.nix b/packaging/nix/libdatachannel.nix index 8821842e9..388c845eb 100644 --- a/packaging/nix/libdatachannel.nix +++ b/packaging/nix/libdatachannel.nix @@ -12,6 +12,7 @@ stdenv.mkDerivation { pname = "libdatachannel"; version = "villas"; src = src; + separateDebugInfo = true; nativeBuildInputs = [cmake pkg-config]; buildInputs = [libnice libpcap openssl]; cmakeFlags = [ diff --git a/packaging/nix/libiec61850.nix b/packaging/nix/libiec61850.nix index 44d939efd..df8426ed1 100644 --- a/packaging/nix/libiec61850.nix +++ b/packaging/nix/libiec61850.nix @@ -8,6 +8,7 @@ stdenv.mkDerivation { pname = "libiec61850"; version = "villas"; src = src; + separateDebugInfo = true; nativeBuildInputs = [cmake]; meta = with lib; { description = "open-source library for the IEC 61850 protocols"; diff --git a/packaging/nix/villas.nix b/packaging/nix/villas.nix index 5c696af53..534967fcc 100644 --- a/packaging/nix/villas.nix +++ b/packaging/nix/villas.nix @@ -72,6 +72,7 @@ stdenv.mkDerivation { inherit src version; pname = "villas"; outputs = ["out" "dev"]; + separateDebugInfo = true; cmakeFlags = [] ++ lib.optionals (!withGpl) ["-DWITHOUT_GPL=ON"] ++ lib.optionals withFormatProtobuf ["-DCMAKE_FIND_ROOT_PATH=${protobufcBuildBuild}/bin"];