[Nix-dev] git-svn and subversion perl bindings ..

Nicolas Pierron nicolas.b.pierron at gmail.com
Wed Jul 30 19:26:55 CEST 2008


On Wed, Jul 30, 2008 at 18:53, Andres Loeh <andres.loeh at googlemail.com> wrote:
> Hi Nicolas.
>
>> I also like this approach but this is apparently not the policy of
>> NixPkgs as people answered me before on the same nix-expression.
>
> It's not current practice. I'm not sure if it's against current
> policy, but policy can be changed :)
>
>> The problem of specifying dependencies is that you may have many
>> installs of the same program with different set of configurations.
>
> Yes, but that's possible with NixOS, and we should not necessarily
> be afraid of it when it happens.

Yes, but some people have limited hard-drive or limited disk-image.

>> As
>> far as I know there is currently no implementation that change your
>> subversion configuration because git is using it in order to keep only
>> one fully compatible install.
>
> I'm not convinced that this is desired. If I select a subversion
> installation for my profile, I don't know if I want it updated just
> because I install another package. At least not automatically.

Why not ?  Non-Unix & Unix users are mainly asking for a stable
system.  So I do not really see why this should not be the default
case.

>> Hopefully, I think that the approach that I am currently testing on
>> NixOs could also work to solve this kind of problem.  This approach
>> use some kind of "this pointer" on the evaluated set of your
>> configuration that you are defining.  This way of doing things implies
>> that your subversion configuration will change with your installation
>> of git and be restored if you remove it.
>>
>> $ nix-env -i subversion
>> install suversion { perlBindings = false; }
>> $ nix-env -i git
>> % As subversion is requested to be installed, git would be installed
>> with subversion supports (except if you override it)
>> % As git have subversion support, subversion should have perlBindings
>> = true (except if you override it)
>> remove suversion { perlBindings = false; }
>> install subverson { perlBindings = true; }
>> install git { svnSupport = true; }
>> $ nix-env -e git
>> % This is a bit weird but at least you are really coming back to the
>> previous state.
>> remove git { svnSupport = true; }
>> remove subverson { perlBindings = true; }
>> install suversion { perlBindings = false; }
>
> What would happen if subversion is not installed in my profile before?
> Would it still be added? What if subversion is installed in the system
> profile, but I'm installing git to my personal profile? What if I *want*
> subversion without perl bindings in my profile? [Not all these examples
> make sense for the subversion/perl example, but there are similar situations
> where all this can happen.]

If you are using other user-environment as done with the
system-environment this is at your own risk if your tools are not
compatible.  The current behaviour is nice, you just have to install
them on your own profile.  Of course, your user-environment does not
depends on the super-user-environment but it still depends on the
computer configuration.

> As I said before, I don't really see why this behaviour of implicitly
> changing what you have is necessary. If the wishes of the user and the
> dependencies of packages imply that multiple variants of the same package
> are needed, then let's have them.

I agree, this should be possible. With the system that I am trying to
add in NixOs, I do not have a good solution for it yet.

-- 
Nicolas Pierron
- If you are doing something twice then you should try to do it once.



More information about the nix-dev mailing list