From c6b62f2381571cc83c6c32ef4984fabcbb4ca892 Mon Sep 17 00:00:00 2001 From: Jonas Chevalier Date: Thu, 13 May 2021 19:17:29 +0200 Subject: mkShell: introduce packages argument (#122180) The distinction between the inputs doesn't really make sense in the mkShell context. Technically speaking, we should be using the nativeBuildInputs most of the time. So in order to make this function more beginner-friendly, add "packages" as an attribute, that maps to nativeBuildInputs. This commit also updates all the uses in nixpkgs. --- pkgs/build-support/agda/default.nix | 2 +- pkgs/build-support/mkshell/default.nix | 24 ++++++++++++++---------- 2 files changed, 15 insertions(+), 11 deletions(-) (limited to 'pkgs/build-support') diff --git a/pkgs/build-support/agda/default.nix b/pkgs/build-support/agda/default.nix index 984d61f1f751..ed7d11a13147 100644 --- a/pkgs/build-support/agda/default.nix +++ b/pkgs/build-support/agda/default.nix @@ -1,6 +1,6 @@ # Builder for Agda packages. -{ stdenv, lib, self, Agda, runCommandNoCC, makeWrapper, writeText, mkShell, ghcWithPackages, nixosTests }: +{ stdenv, lib, self, Agda, runCommandNoCC, makeWrapper, writeText, ghcWithPackages, nixosTests }: with lib.strings; diff --git a/pkgs/build-support/mkshell/default.nix b/pkgs/build-support/mkshell/default.nix index a70dc0390cb5..7ca4cc23c1d5 100644 --- a/pkgs/build-support/mkshell/default.nix +++ b/pkgs/build-support/mkshell/default.nix @@ -3,18 +3,22 @@ # A special kind of derivation that is only meant to be consumed by the # nix-shell. { - inputsFrom ? [], # a list of derivations whose inputs will be made available to the environment - buildInputs ? [], - nativeBuildInputs ? [], - propagatedBuildInputs ? [], - propagatedNativeBuildInputs ? [], - ... + # a list of packages to add to the shell environment + packages ? [ ] +, # propagate all the inputs from the given derivations + inputsFrom ? [ ] +, buildInputs ? [ ] +, nativeBuildInputs ? [ ] +, propagatedBuildInputs ? [ ] +, propagatedNativeBuildInputs ? [ ] +, ... }@attrs: let mergeInputs = name: lib.concatLists (lib.catAttrs name - ([attrs] ++ inputsFrom)); + ([ attrs ] ++ inputsFrom)); rest = builtins.removeAttrs attrs [ + "packages" "inputsFrom" "buildInputs" "nativeBuildInputs" @@ -26,15 +30,15 @@ in stdenv.mkDerivation ({ name = "nix-shell"; - phases = ["nobuildPhase"]; + phases = [ "nobuildPhase" ]; buildInputs = mergeInputs "buildInputs"; - nativeBuildInputs = mergeInputs "nativeBuildInputs"; + nativeBuildInputs = packages ++ (mergeInputs "nativeBuildInputs"); propagatedBuildInputs = mergeInputs "propagatedBuildInputs"; propagatedNativeBuildInputs = mergeInputs "propagatedNativeBuildInputs"; shellHook = lib.concatStringsSep "\n" (lib.catAttrs "shellHook" - (lib.reverseList inputsFrom ++ [attrs])); + (lib.reverseList inputsFrom ++ [ attrs ])); nobuildPhase = '' echo -- cgit 1.4.1