{ pkgs, fenix, selfPkgs, ... }: let common = { RUST_BACKTRACE = 1; RUST_LOG = "all"; packages = with pkgs; [ gdb nix-output-monitor ]; }; in rec { nightly = pkgs.mkShell ( common // { inputsFrom = [ selfPkgs.servicepoint-binding-c-nightly-release ]; packages = with pkgs; [ cargo-expand cargo-tarpaulin nix-output-monitor gcc gnumake rustfmt xe libgcc libunwind pkgsStatic.gcc pkgsStatic.libgcc pkgsStatic.musl rust-cbindgen ]; }); stable = pkgs.mkShell (common // { inputsFrom = [ selfPkgs.servicepoint-binding-c selfPkgs.announce ]; packages = with pkgs; [ (pkgs.symlinkJoin { name = "rust-toolchain"; paths = with pkgs; [ rustc cargo rustPlatform.rustcSrc rustPlatform.rustLibSrc rustfmt clippy cargo-expand cargo-tarpaulin ]; }) cargo-expand cargo-tarpaulin gcc gnumake xe libgcc libunwind pkgsStatic.gcc pkgsStatic.libgcc pkgsStatic.musl ]; RUST_SRC_PATH = "${pkgs.rustPlatform.rustLibSrc}"; }); default = stable; }