Hi,

Updating:

--8<---------------cut here---------------start------------->8---
$ guix pull -p /tmp/new
Updating channel 'guix' from Git repository at 
'https://git.savannah.gnu.org/git/guix.git'...
Authenticating channel 'guix', commits 9edb3f6 to 3bd7d7e (74 new commits)...
Building from this channel:
  guix      https://git.savannah.gnu.org/git/guix.git   3bd7d7e
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://bordeaux.guix.gnu.org'...   
0.0%guix substitute: warning: bordeaux.guix.gnu.org: connection failed: 
Connection refused
substitute: 
substitute: looking for substitutes on 'https://guix.bordeaux.inria.fr'... 
100.0%
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
 module-import-compiled  1.3MiB       755KiB/s 00:02 ▕██████████████████▏ 100.0%
 module-import-compiled  1.3MiB       667KiB/s 00:02 ▕██████████████████▏ 100.0%
building /gnu/store/235dhgh8brdi5w662rqgk76844s8jw9v-module-import.drv...
building /gnu/store/hvwvyc8pqzgxz52dmvmfn5g3fg335cyd-module-import.drv...
building 
/gnu/store/dyr1bs9f2abkrds7wmaif4a97idklr4p-compute-guix-derivation.drv...
Computing Guix derivation for 'x86_64-linux'... -

The following derivations will be built:
  /gnu/store/946qvmyl7n8cndzbqbp99gyd379vn014-guix-extra-modules.drv
  /gnu/store/fxwhk243hfdwskwp1krlc1zjw9w0mh9z-guix-packages-modules.drv
  /gnu/store/g3ffypy02pbvy4dq2rc3fg84da55r40h-guix-system-modules.drv
  /gnu/store/kdyyfn4fza286igpqnciqvg43avn0z23-guix-cli-core-modules.drv
  /gnu/store/m2qzyrrjpxmwqbn41syl0jvrx1dpmcy8-guix-home-modules.drv
  /gnu/store/mxxbbmhz37lrb3n6fsh90y7cwpckkgld-guix-system-tests-modules.drv
  /gnu/store/nc018hvxh4h33a969v8khkkjqk6j7cak-guix-packages-base-modules.drv
  /gnu/store/apc9bpz83sxn6nnf7vhmlsdvgwzjf6ax-config.scm.drv
  /gnu/store/wzlkml2bxgaf6li0ayzk72s9b038f8ff-guix-config-source.drv
  /gnu/store/zas3mxpxi156qi4nl5v1xs2ikx806ck7-guix-config.drv
  /gnu/store/p0248v4zg0gi4l5gi964hygbfhik0vw6-guix-config-modules.drv
  /gnu/store/s4z84fj9qi731nhaxprymvi7k35d8w4k-guix-cli-modules.drv
  /gnu/store/i4kqpxj22nsr576z3c01zpvrjj75zki5-guix-3bd7d7ef1-modules.drv
  /gnu/store/c0nl8bhr9wpk7qvbbrmb72bipmc1vm6h-guix-module-union.drv
  /gnu/store/qz58745nijdcalvja5ml82rnsmz80n7v-guix-command.drv
  /gnu/store/7sg7zmci0g4mc047159p546b9ni4f558-guix-daemon.drv
  /gnu/store/vv056h33070z9jr32yjxq89mpgm22ib9-guix-3bd7d7ef1.drv
  /gnu/store/r1m7ir60shl4yvigly500w9n6icfbydz-profile.drv
  /gnu/store/hp74iwxy4cms52igwg6m5l0qwfqydnmw-inferior-script.scm.drv
  /gnu/store/22hf00y7dpngilkz16wqcvaavki3xz1z-profile.drv

[...]
--8<---------------cut here---------------end--------------->8---

So far, so good!

And now the new Guix points to git.guix.gnu.org, cool!

--8<---------------cut here---------------start------------->8---
$ /tmp/new/bin/guix describe
Generation 1    Jun 17 2025 18:53:43    (current)
  guix 3bd7d7e
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 3bd7d7ef19c199554c29925a84f53fcb4f4e9016
--8<---------------cut here---------------end--------------->8---

Then I’m surprised by triggering more computations than I thought with:

--8<---------------cut here---------------start------------->8---
$ /tmp/new/bin/guix pull --commit=3bd7d7ef19c199554c29925a84f53fcb4f4e9016
Updating channel 'guix' from Git repository at 
'https://git.guix.gnu.org/guix.git'...
Building from this channel:
  guix      https://git.guix.gnu.org/guix.git   3bd7d7e

[...]

The following derivations will be built:
  /gnu/store/rcjdlsqna541y30xji0bhy100744fi85-config.scm.drv
  /gnu/store/936h1vi87vcs7n0nwyvqp2hibav9cm2m-guix-config-source.drv
  /gnu/store/18kj93jg5hslyx8jfc798kivhckgny56-guix-config.drv
  /gnu/store/p5zqlxk5j07sbkvj4w3rmhp5phyrbmnq-guix-config-modules.drv
  /gnu/store/k85n52wjwgvkvw9pwissycbyi9jc3f84-guix-3bd7d7ef1-modules.drv
  /gnu/store/855k646wf0mn1fqmr8iyyjmsdgdrv0j5-guix-module-union.drv
  /gnu/store/6k770p6l1wfhh52vcyl577c0z29y7rhq-guix-command.drv
  /gnu/store/gpfzgksgrbqb1bvz5qkavdjzlg1w9q4z-guix-daemon.drv
  /gnu/store/aclxllkkdxli1dx0p6j8npaqm4giq498-guix-3bd7d7ef1.drv
  /gnu/store/sgyr79ycppf2yvaqf6q89kgq9w7cirvy-profile.drv
  /gnu/store/vjapj9y8ca04ildnxshbawzwyind98cz-inferior-script.scm.drv
  /gnu/store/8d2j2acmfg5zbcsp8ayqa8js8xzpvn80-profile.drv

[...]
--8<---------------cut here---------------end--------------->8---

My question was: Why does it need to recompute all that since it’s the
exact same commit?

Well, “all that” builds very fast. :-)  That’s my question buy why.

In other words, since everything is essentially content-addressed, if a
meaningless difference is at the root then all the hashes are different.

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?

Somehow, because of this, it defeats the essentially content-addressed,
no?

It would appear to me better to have all the derivations for configuring
and building independent of these metadata and maybe just keep them in
the profile derivation.

Can someone explain me the rationale to keep this metadata inside the
configuration builders?

Thanks in advance. :-)

Cheers,
simon

Reply via email to