[Nix-dev] nix-store --query --deriver command gives the wrong derivation?

Eelco Dolstra eelco.dolstra at logicblox.com
Tue Jul 29 03:34:23 CEST 2014


Hi,

On 26/07/14 11:37, Roger Qiu wrote:

> I've tried using the `nix-store --query --deriver $(which binary)` in 
> order to get the path to the `.drv` file. However it never seems to give 
> me the right derivation file.

The deriver is not uniquely defined. Due to fixed-output derivations, there can
be any number of derivations that produce the same output path. (E.g. if you
change the URL in a fetchurl call, it changes the derivation but not the output
path.)

Yes, this makes the utility of storing the deriver in the database kinda
questionable...

> For example:
> 
> ```
> $ nix-store --query --deriver $(which firefox)
> /nix/store/x505j55hvf2si7pfpwnpj7sljjshai9d-firefox-29.0.1.drv
> 
> $ ls | grep firefox
> 2xzsarr6v7rscwwg4vmh4k8861ybbdpf-firefox-29.0.1
> 6i0lnsy8yg8r8rf0wb9ncfbzcmqj0jpx-firefox-29.0.1.drv
> j4axk28ghg7as3xi570p74dgmqn9saaa-firefox-29.0.1.source.tar.bz2.drv
> ```
> 
> As you can see the real drv file which is 
> `6i0lnsy8yg8r8rf0wb9ncfbzcmqj0jpx-firefox-29.0.1.drv` 

Did you do "nix-store -q
/nix/store/6i0lnsy8yg8r8rf0wb9ncfbzcmqj0jpx-firefox-29.0.1.drv" to check? It
could actually be a different derivation of Firefox 29.0.1 (e.g. due to a
changed dependency).

-- 
Eelco Dolstra | LogicBlox, Inc. | http://nixos.org/~eelco/


More information about the nix-dev mailing list