Unverified Commit e1c3cec8 authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

domoticz: fix build on GCC 14, Boost 1.87 (#387121)

parents 452d96c4 fe92c2a6
Loading
Loading
Loading
Loading
+27 −11
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
  lib,
  stdenv,
  fetchFromGitHub,
  fetchpatch,
  makeWrapper,
  cmake,
  python3,
@@ -17,20 +18,29 @@
  git,
  libusb-compat-0_1,
  cereal,
  minizip,
  versionCheckHook,
}:

stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
  pname = "domoticz";
  version = "2024.7";

  src = fetchFromGitHub {
    owner = "domoticz";
    repo = pname;
    rev = version;
    repo = "domoticz";
    tag = finalAttrs.version;
    hash = "sha256-D8U1kK3m1zT83YvZ42hGSU9PzBfS1VGr2mxUYbM2vNQ=";
    fetchSubmodules = true;
  };

  patches = [
    # Boost 1.87 compatibility, remove once upgraded to 2025.1
    (fetchpatch {
      url = "https://github.com/domoticz/domoticz/commit/5d0db89bbd120ed5dc05b4ff8c136f14a42f0cd3.patch";
      hash = "sha256-FPe83yJKJEgnY3kABy9CTRe1CBh42dPG1ZWCUE5PO8E=";
    })
  ];

  buildInputs = [
    openssl
    python3
@@ -44,6 +54,7 @@ stdenv.mkDerivation rec {
    git
    libusb-compat-0_1
    cereal
    minizip
  ];

  nativeBuildInputs = [
@@ -60,7 +71,7 @@ stdenv.mkDerivation rec {
    "-DUSE_BUILTIN_ZLIB=false"
    "-DUSE_OPENSSL_STATIC=false"
    "-DUSE_STATIC_BOOST=false"
    "-DUSE_BUILTIN_MINIZIP=true"
    "-DUSE_BUILTIN_MINIZIP=false"
  ];

  installPhase = ''
@@ -75,19 +86,24 @@ stdenv.mkDerivation rec {
    wrapProgram $out/bin/domoticz --set LD_LIBRARY_PATH ${python3}/lib;
  '';

  meta = with lib; {
  nativeInstallCheckInputs = [
    versionCheckHook
  ];
  doInstallCheck = true;

  meta = {
    description = "Home automation system";
    longDescription = ''
      Domoticz is a home automation system that lets you monitor and configure
      various devices like: lights, switches, various sensors/meters like
      temperature, rain, wind, UV, electra, gas, water and much more
    '';
    maintainers = with maintainers; [ edcragg ];
    maintainers = with lib.maintainers; [ edcragg ];
    homepage = "https://www.domoticz.com/";
    changelog = "https://github.com/domoticz/domoticz/blob/${version}/History.txt";
    license = licenses.gpl3Plus;
    platforms = platforms.all;
    changelog = "https://github.com/domoticz/domoticz/blob/${finalAttrs.version}/History.txt";
    license = lib.licenses.gpl3Plus;
    platforms = lib.platforms.all;
    broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/domoticz.x86_64-darwin
    mainProgram = "domoticz";
  };
}
})