{ stdenv, fetchurl, undmg, cpio, xar, lib }: stdenv.mkDerivation rec { pname = "fpc-binary"; version = "3.2.2"; src = if stdenv.hostPlatform.system == "i686-linux" then fetchurl { url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.i386-linux.tar"; sha256 = "f62980ac0b2861221f79fdbff67836aa6912a4256d4192cfa4dfa0ac5b419958"; } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.x86_64-linux.tar"; sha256 = "5adac308a5534b6a76446d8311fc340747cbb7edeaacfe6b651493ff3fe31e83"; } else if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl { url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.aarch64-linux.tar"; sha256 = "b39470f9b6b5b82f50fc8680a5da37d2834f2129c65c24c5628a80894d565451"; } else if stdenv.isDarwin then fetchurl { url = "mirror://sourceforge/project/freepascal/Mac%20OS%20X/${version}/fpc-${version}.intelarm64-macosx.dmg"; sha256 = "05d4510c8c887e3c68de20272abf62171aa5b2ef1eba6bce25e4c0bc41ba8b7d"; } else throw "Not supported on ${stdenv.hostPlatform.system}."; nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ undmg xar cpio ]; builder = if stdenv.hostPlatform.isLinux then ./binary-builder.sh else if stdenv.hostPlatform.isDarwin then ./binary-builder-darwin.sh else throw "Not supported on ${stdenv.hostPlatform}."; meta = { description = "Free Pascal Compiler from a binary distribution"; }; }