[Nix-dev] distutils2nix/python4nix

Marc Weber marco-oweber at gmx.de
Fri Sep 23 23:12:14 CEST 2011


Excerpts from Peter Simons's message of Fri Sep 23 21:21:16 +0200 2011:
> One issue that you might want to consider is that the "pythonPackages"
> set needs to support several different versions of Python, i.e. the
> python interpreter needs to be an argument to that expression.
> Currently, we cannot build our python packages with Python 3.x, for
> example, which is really a shame.

And that's the issue: The python packages don't say "I'm tested with
python-2.7". There are some wired automatic conversion tools.

Before we start writing cabal2nix, perl2nix, X2nix: How should the
result look like?
There are 20.000 ruby packages!
And I personally don't like seeing more and more individual "let me
update just this package and then that cause I need it right now and I
don't know what this might break.." There is no choice unless we start
supporting constraints.

In theory I've packaged all of those ruby packages. But do we really
want to checkout such masses of .nix files to get only 10 packages?

Or would it be much better to query PyPi package database, cpan, ..
lazily (which would require changing nix?)

For python there is another issue: You have to run the setup.py file in
most cases to learn about package dependencies.

I already have written kind python 2 nix and its good enough to install
some packages on the fly but still needs much more love.

If you want to learn about this way (which perfectly work for all ruby
versions) I'll point you to the code and explain how to use it.

I personally believe that the final solution should take version
constraints into account so that you can fail early.

How should this all look in the future (there are vim, emacs, perl,
ruby, python, eclipse, zsh, haxe, java, scala, ... ) packages to package.
And eg for scala, java it almost impossible to keep up to date using the
current manual way. It may be possible to tune the tools (sbt, maven,
..) to use the nix store as cache at least..
And I'm pretty sure that I've forgotten tons of package solutions (eg
ocaml)

Thoughts?

Marc Weber


More information about the nix-dev mailing list