{ lib, newScope }: lib.makeScope newScope (self: { forgetScope = lib.flip lib.removeAttrs [ "override" "overrideDerivation" "overrideScope" "newScope" "packages" "forgetScope" ]; buildEnvVars = self.forgetScope ( self.callPackage ( { xdg-desktop-portal, virtiofsd }: { BIN_XDG_PERMISSION_STORE = "${xdg-desktop-portal}/libexec/xdg-permission-store"; BIN_XDG_DOCUMENT_PORTAL = "${xdg-desktop-portal}/libexec/xdg-document-portal"; BIN_VIRTIOFSD = "${virtiofsd}/bin/virtiofsd"; } ) { } ); rustPackage = { crate, cargoToml ? builtins.fromTOML (builtins.readFile ./${crate}/Cargo.toml), rustPlatform, buildEnvVars, }: rustPlatform.buildRustPackage { inherit (cargoToml.package) name version; src = ./.; cargoLock.lockFile = ./Cargo.lock; cargoLock.outputHashes = { "busd-0.5.0" = "sha256-IZZ2MeEmUbzRrH6SUz0pnecMH4f8Mh54WdhI4q44YfI="; }; buildAndTestSubdir = crate; env = buildEnvVars; }; sidebus-agent = self.callPackage self.rustPackage { crate = "sidebus-agent"; }; sidebus-broker = self.callPackage self.rustPackage { crate = "sidebus-broker"; }; })