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.
This commit is contained in:
Peter Simons 2013-07-31 10:52:15 +02:00
parent 7e0bd8d360
commit 53ffc6e0ef

View File

@ -5740,11 +5740,11 @@ let
python3Packages = python33Packages; python3Packages = python33Packages;
python33Packages = recurseIntoAttrs (import ./python-packages.nix { python33Packages = import ./python-packages.nix {
inherit pkgs; inherit pkgs;
inherit (lib) lowPrio; inherit (lib) lowPrio;
python = python33; python = python33;
}); };
python32Packages = import ./python-packages.nix { python32Packages = import ./python-packages.nix {
inherit pkgs; inherit pkgs;
@ -5758,11 +5758,11 @@ let
python = python27; python = python27;
}); });
pypyPackages = recurseIntoAttrs (import ./python-packages.nix { pypyPackages = import ./python-packages.nix {
inherit pkgs; inherit pkgs;
inherit (lib) lowPrio; inherit (lib) lowPrio;
python = pypy; python = pypy;
}); };
plone41Packages = import ../development/web/plone/4.1.nix { plone41Packages = import ../development/web/plone/4.1.nix {
inherit pkgs; inherit pkgs;