{ lib , stdenv , fetchFromGitHub , fetchpatch , cmake , fontconfig , libX11 , libXi , freetype , mesa }: stdenv.mkDerivation rec { pname = "brlcad"; version = "7.38.2"; src = fetchFromGitHub { owner = "BRL-CAD"; repo = "brlcad"; rev = "refs/tags/rel-${lib.replaceStrings [ "." ] [ "-" ] version}"; hash = "sha256-23UTeH4gY2x/QGYZ64glAkf6LmsXBAppIOHgoUdxgpo="; }; patches = [ # This commit was bringing an impurity in the rpath resulting in: # RPATH of binary /nix/store/rq2hjvfgq2nvh5zxch51ij34rqqdpark-brlcad-7.38.0/bin/tclsh contains a forbidden reference to /build/ (fetchpatch { url = "https://github.com/BRL-CAD/brlcad/commit/fbdbf042b2db4c7d46839a17bbf4985cdb81f0ae.patch"; revert = true; hash = "sha256-Wfihd7TLkE8aOpLdDtYmhhd7nZijiVGh1nbUjWr/BjQ="; }) ]; nativeBuildInputs = [ cmake ]; buildInputs = [ fontconfig libX11 libXi freetype mesa ]; cmakeFlags = [ "-DBRLCAD_ENABLE_STRICT=OFF" ]; env.NIX_CFLAGS_COMPILE = toString [ # Needed with GCC 12 "-Wno-error=array-bounds" ]; meta = with lib; { homepage = "https://brlcad.org"; description = "BRL-CAD is a powerful cross-platform open source combinatorial solid modeling system"; changelog = "https://github.com/BRL-CAD/brlcad/releases/tag/${src.rev}"; license = with licenses; [ lgpl21 bsd2 ]; maintainers = with maintainers; [ GaetanLepage ]; platforms = platforms.linux; # error Exactly one of ON_LITTLE_ENDIAN or ON_BIG_ENDIAN should be defined. broken = stdenv.system == "aarch64-linux"; }; }