On Fri, Jul 6, 2012 at 2:45 PM, Lluís Batlle i Rossell <[email protected]> wrote: > On Fri, Jul 06, 2012 at 02:25:25PM +0200, Mathijs Kwik wrote: >> On Fri, Jul 6, 2012 at 2:12 PM, Marc Weber <[email protected]> wrote: >> > Excerpts from Mathijs Kwik's message of Fri Jul 06 11:53:28 +0200 2012: >> >> packageOverrides = pkgs: >> >> { foo = "string"; >> >> bar = pkgs.foo + " concatenation"; >> >> }; >> > >> > solution a) use rec: >> > >> > >> > (rec { >> > foo = ... >> > bar = foo >> > ; >> > }) >> >> >> I'l make myself more clear... the example was simplified. >> I want to do something like callPackage. >> >> packageOverrides = pkgs: >> { myPackage1 = import ./my-package1 { inherit pkgs; }; >> myPackage2 = import ./my-package2 { inherit pkgs; }; >> } >> >> the expressions for myPackage1 and 2 need a "pkgs" argument which is >> the full packages-tree, so the original one _and_ my extensions. So >> myPackage2 wants to depend on myPackage1 and (for example) stdenv. Now >> I can of course pass myPackage1 as explicit argument to myPackage2, >> but I prefer to have a unified pkgs set. >> >> so I can't use your solution. > > I have a maybe similar use case. I use usernixos, and in usernixos I need to > pass pkgs, and I have some ovverrides I want to be used in it. I have some of > my > overrides in a file apart (and my public old svn's configuration directory), > and > I use them this way in my ~/nixpkgs/config.nix. That's not as nice as having > all > recursively nice applied, of course. > > let > mypkgs = import ./myconfigs/nixpkgs-overrides.nix; > in > { > usernixos = {pkgs, config, ...}: { > mercurialwsgi.all = { > destination = "/home/viric/public_html/wsgi-bin/hgweb.wsgi"; > hgwebConfig = '' > [web] > motd = "Hello" > style = gitweb > > [collections] > /home/viric/hg = /home/viric/hg > ''; > }; > ..... > } > > packageOverrides = pkgs : with pkgs; > (mypkgs pkgs) // rec { > usernixos = import ./usernixos { pkgs = pkgs // (mypkgs pkgs); }; > > # This will not be available to usernixos, but 'mypkgs' yes. > btarEnv = pkgs.myEnvFun { > name = "btar"; > buildInputs = [ stdenv librsync ]; > }; > ..... > }; > } >
Seems similar indeed. Basically what I'm trying to achieve has to do with user environments as well, passing pre-defined package sets, to nix-env. In the end I want users to be able to write a simple nix expression for an "application" (mostly web apps / node js / snap / rails), leading to a derivation with the source code, database config, ssl config, monit config, cronjobs and a simple startup-script to activate these. so I think I should have a look at usernixos some time soon =) But I'm not just looking for a solution, I prefer learning a lot along the way. I'm gonna try a different solution now though. With the new NIX_PATH stuff, I can probably just create my own package collection and make it available as <mynixpkgs> and have that import/extend <nixpkgs>. > > (For my usernixos: > https://viric.name/cgi-bin/usernixos/timeline ) > > Regards, > Lluís. _______________________________________________ nix-dev mailing list [email protected] http://lists.science.uu.nl/mailman/listinfo/nix-dev
