{
  lib,
  stdenv,
  fetchFromGitHub,
  autoreconfHook,
  gmpxx,
  flint,
  nauty,
}:

stdenv.mkDerivation (finalAttrs: {
  pname = "normaliz";
  version = "3.11.1";

  src = fetchFromGitHub {
    owner = "normaliz";
    repo = "normaliz";
    rev = "v${finalAttrs.version}";
    hash = "sha256-+puqgmLtn+49rv6aTybbNG7MC/ksKijH2KQOEBKbmMQ=";
  };

  buildInputs = [
    gmpxx
    flint
    nauty
  ];

  outputs = [
    "out"
    "lib"
    "dev"
  ];

  nativeBuildInputs = [
    autoreconfHook
  ];

  meta = {
    homepage = "https://www.normaliz.uni-osnabrueck.de/";
    description = "Open source tool for computations in affine monoids, vector configurations, lattice polytopes, and rational cones";
    maintainers = with lib.maintainers; [ yannickulrich ];
    platforms = with lib.platforms; unix ++ windows;
    license = lib.licenses.gpl3Plus;
    mainProgram = "normaliz";
  };
})
