{ static ? false }: let # Pinned Nixpkgs for reproducibility nixpkgs = import (builtins.fetchTarball { name = "nixpkgs-21.05-ee90403e147"; url = "https://github.com/nixos/nixpkgs/archive/ee90403e147.tar.gz"; sha256 = "1mk3s4ncfa8z8mr6vrgjh74s8dci12yam7plpc1bqgz12wld73ax"; }) {}; # Exclude this file and build artifacts source = builtins.filterSource (path: type: !builtins.elem path [ "configure.mk" "default.nix" ] && baseNameOf path != "build") ./.; inherit (nixpkgs) lib pkgs; in pkgs.stdenv.mkDerivation rec { pname = "gray"; version = "0.1"; src = source; nativeBuildInputs = with pkgs; [ makefile2graph graphviz gfortran ]; buildInputs = lib.optional static pkgs.glibc.static; hardeningDisable = [ "format" ]; configureFlags = [ (lib.enableFeature static "static") "GIT_REV=${version}" "GIT_DIRTY=" ]; meta = { homepage = "https://doi.org/10.13182/FST07-A1494"; description = "A quasi-optical beam-tracing code for EC waves in tokamaks"; platforms = lib.platforms.unix; # license? }; }