{ lib, stdenv, fetchurl, fetchpatch2, openssl, pkg-config, withPerl ? false, perl, withPython ? false, python3, withTcl ? false, tcl, withCyrus ? true, cyrus_sasl, withUnicode ? true, icu, withZlib ? true, zlib, withIPv6 ? true, withDebug ? false, }: stdenv.mkDerivation rec { pname = "znc"; version = "1.8.2"; src = fetchurl { url = "https://znc.in/releases/archive/${pname}-${version}.tar.gz"; sha256 = "03fyi0j44zcanj1rsdx93hkdskwfvhbywjiwd17f9q1a7yp8l8zz"; }; patches = [ (fetchpatch2 { name = "CVE-2024-39844.patch"; url = "https://github.com/znc/znc/commit/8cbf8d628174ddf23da680f3f117dc54da0eb06e.patch"; hash = "sha256-JeKirXReiCiNDUS9XodI0oHASg2mPDvQYtV6P4L0mHM="; }) ]; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ] ++ lib.optional withPerl perl ++ lib.optional withPython python3 ++ lib.optional withTcl tcl ++ lib.optional withCyrus cyrus_sasl ++ lib.optional withUnicode icu ++ lib.optional withZlib zlib; configureFlags = [ (lib.enableFeature withPerl "perl") (lib.enableFeature withPython "python") (lib.enableFeature withTcl "tcl") (lib.withFeatureAs withTcl "tcl" "${tcl}/lib") (lib.enableFeature withCyrus "cyrus") ] ++ lib.optionals (!withIPv6) [ "--disable-ipv6" ] ++ lib.optionals withDebug [ "--enable-debug" ]; enableParallelBuilding = true; meta = with lib; { description = "Advanced IRC bouncer"; homepage = "https://wiki.znc.in/ZNC"; maintainers = with maintainers; [ schneefux lnl7 ]; license = licenses.asl20; platforms = platforms.unix; }; }