Hello,

Simon Tournier <zimon.touto...@gmail.com> writes:

> Here the difference comes from config.scm-builder which stores the URL.
>
>        (define %channel-metadata
>          (quote
>           (repository
>            (version 0)
>            (url "https://git.guix.gnu.org/guix.git";)
>            (branch "master")
>            (commit "3bd7d7ef19c199554c29925a84f53fcb4f4e9016")
>            (name guix)
>            (introduction
>             (channel-introduction
>              (version 0)
>              (commit "9edb3f66fd807b096b48283debdcddccfea34bad")
>              (signer "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 
> 54FA"))))))
>
>
> Therefore, the derivation guix-3bd7d7ef1.drv and its output are not
> exactly the same depending on which URL it comes from.
>
> My question reads: Why do we need to store this URL information in the
> builders?  Or in the outputs?

This is the same tradeoff as with the ‘--save-provenance’ option of
‘guix pack’: provenance info as shown above is “silent” (it doesn’t
change the result) yet it can introduce differences as you wrote.

In the case of ‘guix pull’, it was considered that the benefits of
keeping provenance info, and thus being able to run ‘guix describe’,
outweigh the costs (the fact that irrelevant data like the URL change
the resulting derivation).

(Since this metadata appears in the end result, it must necessarily
appear somewhere in a derivation or in a builder.)

Thanks,
Ludo’.

Reply via email to