[Nix-dev] warning if trying to install a package but it fails an assert.

Nicolas Pierron nicolas.b.pierron at gmail.com
Wed Dec 17 11:30:57 CET 2008


On Wed, Dec 17, 2008 at 07:54, Andres Loeh <andres.loeh at googlemail.com> wrote:
> I want to voice my support. Apart from the lacking error
> message/warning, which I would like, but for which I don't see an
> immediate option, I don't think an assertion as the above is in the
> spirit of NixOS. The assertion does some form of dependency
> management, but forces that to be dealt with manually by the user. If
> you want subversion support, you better enable perl support yourself.
> But that's like in classical Linux distributions.

I agree with you, we want would like nix to configure correctly
subversion by looking at its usages.  The fact that git requires
subversion's perl bindings is a detail of implementation and this
should not be visible by the end-user of Nix (not directly).

By the way this can cause trouble if you update your git version and
if you forgot to add another strange flag on a package that you
haven't plan to install.

> The NixOS way to do this is to say: if we need subversion with perl
> support, we better get subversion with perl support. There is no
> reason whatsoever why all the functions that build individual packages
> should be first order. So in this case, we should pass in a function
> for subversion that can still be applied to the desired value of
> perlBindings. So, if you say you want git with subversion support, and
> you hadn't installed it so far, it will just pull it as a dependency.

This problem has already been discussed on this mailing list months
ago.  The ""summary"" of this discussion is that installing many
versions of the same package could cause a huge in disk space because
if you install subversion and git you will get two subversion installs
for the same user.  In this discussion I suggested the idea of
updating your installed version of subversion when you install git,
therefore you will only get one subversion install for one user and
all user tools will be compatible.  This looks to me more like the
NixOS spirit.  The problems which are raised by this cascading upgrade
are the behaviour of the command "nix-env -u git" and how can we
handle incompatible option sets.

-- 
Nicolas Pierron
http://www.linkedin.com/in/nicolasbpierron
- If you are doing something twice then you should try to do it once.



More information about the nix-dev mailing list