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;
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;