{ lib, stdenv, fetchurl }:

stdenv.mkDerivation rec {
  pname   = "stun";
  version = "0.97";

  src = fetchurl {
    url    = "mirror://sourceforge/${pname}/stund-${version}.tgz";
    sha256 = "1mxirnnqfqdwb9x8hfjjsscp6lx3468ph6ddx32l94ir46fbzqc3";
  };

  srcManpages = fetchurl {
    url    = "mirror://ubuntu/pool/universe/s/stun/stun_0.97~dfsg-2.debian.tar.xz";
    name   = "stun-debian.tar.xz";
    sha256 = "1pr6zrdhia0aafsvywl1hrhlgl00vahp63bw1z2mzvdxri7q88f0";
  };

  outputs = [ "out" "server" ];

  preBuild = ''
    tar Jxvf ${srcManpages} debian/manpages
    gzip -9n debian/manpages/stun.1
    gzip -9n debian/manpages/stund.8
  '';

  installPhase = ''
    mkdir -p $out/bin $server/bin $out/man/man1 $server/man/man8
    cp -v client $out/bin/stun
    cp -v server $server/bin/stund
    cp -v debian/manpages/stun.1.gz  $out/man/man1
    cp -v debian/manpages/stund.8.gz $server/man/man8
  '';

  meta = with lib; {
    description = "Stun server and test client";
    homepage    = "https://sourceforge.net/projects/stun/";
    license     = licenses.vsl10;
    maintainers = with maintainers; [ marcweber obadz ];
    platforms   = platforms.linux;
    mainProgram = "stun";
  };
}
