From 53ffc6e0ef395a2bd7651423d9783ad8184be1d0 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 31 Jul 2013 10:52:15 +0200 Subject: [PATCH] Drop recurseIntoAttrs from python33Packages and pypyPackages. We cannot import the packages from all of these three packages sets into the global namespace, because they are indistinguishable. For example: $ nix-env -qaP \* | grep pylint pypyPackages.pylint pylint-0.26.0 python33Packages.pylint pylint-0.26.0 python27Packages.pylint pylint-0.26.0 When someone tries to install pylint by running "nix-env -i pylint", then it's impossible to tell which one of these three versions was chosen. I can think of two ways to remedy this problem with recurseIntoAttrs: 1) Bake the name of the Python interpreter into every package's name, i.e. offer "python27-pylint", "python33-pylint", and so on. 2) Ensure that all non-default package sets mark all their packages 'lowPrio' to unsure that the choice during installation is deterministic. --- pkgs/top-level/all-packages.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c10e737ba97..8ecd352e72c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5740,11 +5740,11 @@ let python3Packages = python33Packages; - python33Packages = recurseIntoAttrs (import ./python-packages.nix { + python33Packages = import ./python-packages.nix { inherit pkgs; inherit (lib) lowPrio; python = python33; - }); + }; python32Packages = import ./python-packages.nix { inherit pkgs; @@ -5758,11 +5758,11 @@ let python = python27; }); - pypyPackages = recurseIntoAttrs (import ./python-packages.nix { + pypyPackages = import ./python-packages.nix { inherit pkgs; inherit (lib) lowPrio; python = pypy; - }); + }; plone41Packages = import ../development/web/plone/4.1.nix { inherit pkgs;