{ pkgs, fenix, selfPkgs, ... }: let defaultAdditionalPkgs = with pkgs; [ rustfmt clippy cargo-expand cargo-tarpaulin gdb ]; in (builtins.mapAttrs ( packageName: package: pkgs.mkShell { inputsFrom = [ package ]; packages = defaultAdditionalPkgs; RUST_BACKTRACE = 1; RUST_LOG = "all"; } ) selfPkgs) // { default = pkgs.mkShell { inputsFrom = [ selfPkgs.servicepoint-binding-c selfPkgs.announce ]; packages = defaultAdditionalPkgs ++ (with pkgs; [ (pkgs.symlinkJoin { name = "rust-toolchain"; paths = with pkgs; [ rustc cargo rustPlatform.rustcSrc rustPlatform.rustLibSrc rustfmt clippy cargo-expand cargo-tarpaulin ]; }) gcc gnumake xe libgcc libunwind pkgsStatic.gcc pkgsStatic.libgcc pkgsStatic.musl ]); RUST_SRC_PATH = "${pkgs.rustPlatform.rustLibSrc}"; }; }