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

Nicolas Pierron nicolas.b.pierron at gmail.com
Wed Jul 30 17:40:10 CEST 2008


On Wed, Jul 30, 2008 at 15:52, Andres Loeh <andres.loeh at googlemail.com> wrote:
> Hi Marc.
>
> On Wed, Jul 30, 2008 at 7:19 AM, Marc Weber <marco-oweber at gmx.de> wrote:
>> Which is the best way to catch this case:
>> You forget to enable perl bindings in subversion,
>> you enable svnSupport in git and wonder why git-svn can't find all
>> libraries..
>
> My personal preference is to avoid assertions, and instead have
> packages select the dependencies they really need. Assuming we
> have a function

I also like this approach but this is apparently not the policy of
NixPkgs as people answered me before on the same nix-expression.

The problem of specifying dependencies is that you may have many
installs of the same program with different set of configurations.  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.

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

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



More information about the nix-dev mailing list