See https://github.com/NixOS/nix/pull/213 
<https://github.com/NixOS/nix/pull/213>. The comment chain is long, but it’s 
important to read up to 
https://github.com/NixOS/nix/pull/213#issuecomment-43674771 
<https://github.com/NixOS/nix/pull/213#issuecomment-43674771>.

~Shea

> On Mar 18, 2015, at 12:02 PM, Thomas Hunger <[email protected]> wrote:
> 
> Apologies, here's the rest of my email:
> 
> .. but I could not find anything that looks like "evaluate at build time" - 
> is that code somewhere public?
> 
> Thanks,
> Tom
> 
> [1]
> https://github.com/shlevy/nix <https://github.com/shlevy/nix>
> 
> 
> On 18 March 2015 at 16:01, Thomas Hunger <[email protected] 
> <mailto:[email protected]>> wrote:
> Hi Shea,
> 
> I checked your github version of nix [1]
> 
> 
> [1]
> 
> 
> On 18 March 2015 at 14:39, Shea Levy <[email protected] 
> <mailto:[email protected]>> wrote:
> You can already do this. “import foo” will build any derivations that “foo” 
> depends on at evaluation time.
> 
> Note though that really “build at evaluation time” is for several reasons 
> inferior to “evaluate at build time”, i.e. recursive nix. I have an 
> implementation for that but it doesn’t look like it will be accepted.
> 
> ~Shea
> 
>> On Mar 18, 2015, at 8:36 AM, Kirill Elagin <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> I’d say there is a more general problem.
>> 
>> Imagine, that one day [in a far far away future] people start shipping 
>> derivations in `default.nix` in their sources (I guess people who develop on 
>> NixOS/with nixpkgs already do this as they have the file for their build 
>> environment anyway, so why not commit it). And then we have two copies of 
>> derivations: in the source repository and in `nixpkgs`.
>> 
>> So it really looks like having something like `fetchDerivation("…url…")` 
>> would be handy. This function should fetch the source, unpack it, extract 
>> `default.nix` and use it as derivation to build the already fetched source. 
>> This way the `nixpkgs` repository itself is not required for packages that 
>> have this kind of information shipped and other projects can depend directly 
>> on the urls of repos. Then nixpkgs could be thought as a database of 
>> “well-known” packages with their urls.
>> 
>> On Wed, Mar 18, 2015 at 2:53 PM Luca Bruno <[email protected] 
>> <mailto:[email protected]>> wrote:
>> On 18/03/2015 12:37, Thomas Hunger wrote:
>> > Thanks.
>> >
>> > That would require having the shell.nix library locally already
>> > AFAICT. To rephrase slightly. Ideally I'd like to be able to do:
>> >
>> > myLibrary = fetchurl { ... };
>> > extraDepends = import "${myLibrary}/depends.nix";
>> > buildDepends = [ ... ] ++ extraDepends;
>> >
>> > Does that make sense?
>> I understand that, but I think the best fit of nix usage is having all
>> the nix expressions in the same repository, instead of spreading nix
>> files on every repository. That is, what's nixpkgs is doing.
>> 
>> So I would create a repo of all nix files, which fetch sources from your
>> other repos.
>> _______________________________________________
>> nix-dev mailing list
>> [email protected] <mailto:[email protected]>
>> http://lists.science.uu.nl/mailman/listinfo/nix-dev 
>> <http://lists.science.uu.nl/mailman/listinfo/nix-dev>
>> _______________________________________________
>> nix-dev mailing list
>> [email protected] <mailto:[email protected]>
>> http://lists.science.uu.nl/mailman/listinfo/nix-dev 
>> <http://lists.science.uu.nl/mailman/listinfo/nix-dev>
> 
> 
> 

_______________________________________________
nix-dev mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to