diff --git a/pkgs/servers/ebusd/default.nix b/pkgs/servers/ebusd/default.nix new file mode 100644 index 000000000000..318c274cf270 --- /dev/null +++ b/pkgs/servers/ebusd/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, pkgs, fetchFromGitHub, argparse, mosquitto, cmake, autoconf, automake, libtool, pkg-config, openssl }: + +stdenv.mkDerivation rec { + pname = "ebusd"; + version = "23.2"; + + src = fetchFromGitHub { + owner = "john30"; + repo = "ebusd"; + rev = version; + sha256 = "2CkcTTxEzVrEPtUVVDxXPPkYqZT6+gsCcfTrt83sFv8="; + }; + + nativeBuildInputs = [ + cmake + autoconf + automake + libtool + pkg-config + ]; + + buildInputs = [ + argparse + mosquitto + openssl + ]; + + patches = [ + ./patches/ebusd-cmake.patch + ]; + + cmakeFlags = [ + "-DCMAKE_INSTALL_SYSCONFDIR=${placeholder "out"}/etc" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_LOCALSTATEDIR=${placeholder "TMPDIR"}" + ]; + + postInstall = '' + mv $out/usr/bin $out + rmdir $out/usr + ''; + + meta = with lib; { + description = "ebusd"; + homepage = "https://github.com/john30/ebusd"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ nathan-gs ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/servers/ebusd/patches/ebusd-cmake.patch b/pkgs/servers/ebusd/patches/ebusd-cmake.patch new file mode 100644 index 000000000000..347caa88a615 --- /dev/null +++ b/pkgs/servers/ebusd/patches/ebusd-cmake.patch @@ -0,0 +1,21 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -184,16 +184,11 @@ + add_subdirectory(src/lib/knx) + add_subdirectory(src/tools) + +-if(EXISTS "${ROOT}/etc/debian_version") +- install(FILES ${CMAKE_SOURCE_DIR}/contrib/debian/default/ebusd DESTINATION /etc/default/) +- install(FILES ${CMAKE_SOURCE_DIR}/contrib/debian/init.d/ebusd DESTINATION /etc/init.d/) +- install(FILES ${CMAKE_SOURCE_DIR}/contrib/debian/systemd/ebusd.service DESTINATION /lib/systemd/system/) +-endif() + if(HAVE_MQTT) + FILE(GLOB MQTT_CFG_FILES "${CMAKE_SOURCE_DIR}/contrib/etc/ebusd/mqtt-*.cfg") +- install(FILES ${MQTT_CFG_FILES} DESTINATION /etc/ebusd/) ++ install(FILES ${MQTT_CFG_FILES} DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/ebusd/) + endif(HAVE_MQTT) + if(HAVE_KNX) + FILE(GLOB KNX_CFG_FILES "${CMAKE_SOURCE_DIR}/contrib/etc/ebusd/knx*.cfg") +- install(FILES ${KNX_CFG_FILES} DESTINATION /etc/ebusd/) ++ install(FILES ${KNX_CFG_FILES} DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/ebusd/) + endif(HAVE_KNX) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b7da8703dac6..3e2ebbff2b9c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -583,6 +583,8 @@ with pkgs; each = callPackage ../tools/text/each { }; + ebusd = callPackage ../servers/ebusd { }; + eclipse-mat = callPackage ../development/tools/eclipse-mat { }; edgedb = callPackage ../tools/networking/edgedb {