{ stdenv , lib , fetchurl , dpkg , libredirect , makeWrapper , busybox , jsvc , mongodb , jre8_headless }: stdenv.mkDerivation rec { pname = "omada-sdn"; version = "5.13.22"; src = fetchurl { url = "https://static.tp-link.com/upload/software/2023/202312/20231201/Omada_SDN_Controller_v${version}_Linux_x64.deb"; sha256 = "sha256-rXtkY1QsiOm4k86ILBjkEV8tPlngUeJG1Lp9R197cbM="; }; nativeBuildInputs = [ dpkg makeWrapper ]; unpackPhase = '' runHook preUnpack dpkg -x $src ./src runHook postUnpack ''; installPhase = '' runHook preInstall mkdir -p "$out" cp -r src/* "$out" mv "$out/usr/"* "$out/" rmdir "$out/usr" for f in "$out/lib/systemd/system/"*.service; do substituteInPlace "$f" \ --replace "/usr/" "$out/" done for p in "$out/bin/"*; do wrapProgram "$p" \ --set NIX_REDIRECTS "/usr/share=$out/share:/usr/bin=$out/bin" \ --prefix PATH : "${lib.makeBinPath [ busybox jsvc mongodb jre8_headless ]}" done runHook postInstall ''; meta = with lib; { description = "Omada SDN Controller Software"; platforms = with platforms; [ "x86_64-linux" ]; }; }