{ lib, stdenv, fetchurl, perl, pkg-config, glib, ncurses
, enablePlugin ? false }:

# Enabling the plugin and using it with a recent irssi, segafults on join:
# http://marc.info/?l=silc-devel&m=125610477802211

stdenv.mkDerivation rec {
  pname = "silc-client" + lib.optionalString enablePlugin "-irssi-plugin";
  version = "1.1.11";

  src = fetchurl {
    url = "mirror://sourceforge/silc/silc/client/sources/silc-client-${version}.tar.bz2";
    sha256 = "13cp3fmdnj8scjak0d2xal3bfvs2k7ssrwdhp0zl6jar5rwc7prn";
  };

  enableParallelBuilding = true;

  dontDisableStatic = true;

  hardeningDisable = [ "format" ];

  configureFlags = [ "--with-ncurses=${ncurses.dev}" ];

  preConfigure = lib.optionalString enablePlugin ''
    configureFlags="$configureFlags --with-silc-plugin=$out/lib/irssi"
  '';

  nativeBuildInputs = [ pkg-config ];
  buildInputs = [ perl glib ncurses ];

  meta = {
    homepage = "http://silcnet.org/";
    description = "Secure Internet Live Conferencing server";
    mainProgram = "silc";
    license = lib.licenses.gpl2;
    maintainers = [ ];
    platforms = with lib.platforms; linux;
  };
}
