{ stdenv
, lib
, fetchurl
, makeWrapper
, ghostscript_headless  # for ps2pdf binary
}:

stdenv.mkDerivation rec {
  pname = "ccal";
  version = "2.5.3";
  src = fetchurl {
    url = "https://ccal.chinesebay.com/ccal-${version}.tar.gz";
    sha256 = "sha256-PUy9yfkFzgKrSEBB+79/C3oxmuajUMbBbWNuGlpQ35Y=";
  };

  nativeBuildInputs = [ makeWrapper ];

  makeFlags = [ "CXX:=$(CXX)" "BINDIR=$(out)/bin" "MANDIR=$(out)/share/man" ];
  installTargets = [ "install" "install-man" ];

  # ccalpdf depends on a `ps2pdf` binary in PATH
  postFixup = ''
    wrapProgram $out/bin/ccalpdf \
      --prefix PATH : ${lib.makeBinPath [ ghostscript_headless ]}:$out/bin
  '';

  meta = {
    homepage = "https://ccal.chinesebay.com/ccal.htm";
    description = "Command line Chinese calendar viewer, similar to cal";
    license = lib.licenses.gpl3;
    maintainers = with lib.maintainers; [ sharzy ];
    platforms = lib.platforms.all;
  };
}