about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/openzwave
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/openzwave')
-rw-r--r--nixpkgs/pkgs/development/libraries/openzwave/default.nix61
1 files changed, 61 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/openzwave/default.nix b/nixpkgs/pkgs/development/libraries/openzwave/default.nix
new file mode 100644
index 000000000000..0a617561a892
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openzwave/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchFromGitHub
+, doxygen, fontconfig, graphviz-nox, libxml2, pkg-config, which
+, systemd }:
+
+let
+  version = "2019-12-08";
+
+in stdenv.mkDerivation {
+  pname = "openzwave";
+  inherit version;
+
+  # Use fork by Home Assistant because this package is mainly used for python.pkgs.homeassistant-pyozw.
+  # See https://github.com/OpenZWave/open-zwave/compare/master...home-assistant:hass for the difference.
+  src = fetchFromGitHub {
+    owner = "home-assistant";
+    repo = "open-zwave";
+    rev = "2cd2137025c529835e4893a7b87c3d56605b2681";
+    sha256 = "04g8fb4f4ihakvvsmzcnncgfdd2ikmki7s22i9c6layzdwavbwf1";
+  };
+
+  nativeBuildInputs = [ doxygen fontconfig graphviz-nox libxml2 pkg-config which ];
+
+  buildInputs = [ systemd ];
+
+  hardeningDisable = [ "format" ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    DESTDIR=$out PREFIX= pkgconfigdir=lib/pkgconfig make install $installFlags
+
+    runHook postInstall
+  '';
+
+  FONTCONFIG_FILE="${fontconfig.out}/etc/fonts/fonts.conf";
+  FONTCONFIG_PATH="${fontconfig.out}/etc/fonts/";
+
+  postPatch = ''
+    substituteInPlace cpp/src/Options.cpp \
+      --replace /etc/openzwave $out/etc/openzwave
+  '';
+
+  fixupPhase = ''
+    substituteInPlace $out/lib/pkgconfig/libopenzwave.pc \
+      --replace prefix= prefix=$out \
+      --replace dir=    dir=$out
+
+    substituteInPlace $out/bin/ozw_config \
+      --replace pcfile=${pkg-config} pcfile=$out
+  '';
+
+  meta = with lib; {
+    description = "C++ library to control Z-Wave Networks via a USB Z-Wave Controller";
+    homepage = "http://www.openzwave.net/";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ etu ];
+    platforms = platforms.linux;
+  };
+}