‘guix shell’ computes different package derivation than ‘guix build’
(address . bug-guix@gnu.org)
Look at this weird phenomenon.
First, with ‘guix build’, everything works as expected:
Toggle snippet (20 lines)
$ guix describe
Generation 247 Feb 27 2023 08:47:41 (current)
guix 17bd024
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 17bd0243310754045cdc6cc362c804db4a8f9317
$ guix build ungoo
ungoogled-chromium ungoogled-chromium-wayland
$ guix build ungoogled-chromium -n
The following grafts would be made:
/gnu/store/sb9bva92ycw40jiwvklvdwpr5pqs5y14-ungoogled-chromium-109.0.5414.119-1.drv
/gnu/store/88bvz2ch3wsiz66qcmhhpbz2i60ms14j-harfbuzz-5.3.1.drv
/gnu/store/pvrhcbpajl9cf2jjy8p01p5fh6kjf3fi-pipewire-0.3.63.drv
/gnu/store/mjm6k8l2d0j1j3j3p7rqrrrj2pla4cwa-jack2-1.9.21.drv
$ guix build ungoogled-chromium -n --no-grafts
/gnu/store/p984s3dna89qw3j1s9w1jpz3wjw1jmfg-ungoogled-chromium-109.0.5414.119-1
$ guix build ungoogled-chromium -n --no-grafts -d
/gnu/store/i8f4qri399l1r2k7hrwpdxxgc3q77izw-ungoogled-chromium-109.0.5414.119-1.drv
But now ‘guix shell’ (same revision) wants to build ungoogled-chromium:
Toggle snippet (21 lines)
$ guix shell ungoogled-chromium -n
The following derivations would be built:
/gnu/store/6kgc8cd8wn010ba3jnywj2qsjsjk511s-ungoogled-chromium-109.0.5414.119-1.drv
/gnu/store/xfiqj5qnnld9g8hdh879aa7gp7wprhaf-chromium-109.0.5414.119.tar.xz.drv
/gnu/store/4ic70ax830gng6fbaqk3mf3rf2x6vf1j-jsoncpp.patch.drv
/gnu/store/9sbl6km93sgb7wc2b14sc1fgf7alsb79-openjpeg.patch.drv
/gnu/store/jcx82l35b070dz91aiz6gffgkngcf1gl-zlib.patch.drv
1,930.3 MB would be downloaded
$ guix shell ungoogled-chromium -n --no-grafts
The following derivations would be built:
/gnu/store/mpfvrssy125chnxsy4qg61kk1a2s235d-profile.drv
/gnu/store/kyncllwl57l2pk63rc154zdfmbx8759v-ungoogled-chromium-109.0.5414.119-1.drv
/gnu/store/xfiqj5qnnld9g8hdh879aa7gp7wprhaf-chromium-109.0.5414.119.tar.xz.drv
/gnu/store/4ic70ax830gng6fbaqk3mf3rf2x6vf1j-jsoncpp.patch.drv
/gnu/store/9sbl6km93sgb7wc2b14sc1fgf7alsb79-openjpeg.patch.drv
/gnu/store/jcx82l35b070dz91aiz6gffgkngcf1gl-zlib.patch.drv
1,930.3 MB would be downloaded
Why does ‘guix shell’ want to build a different derivation for the same
package?
The derivation ‘guix shell’ computed depends on different *.patch.drv,
compared to the “right” one:
Toggle snippet (6 lines)
$ guix gc -R $(guix build ungoogled-chromium -d --no-grafts) |grep -E '(jsoncpp|openjpeg|zlib)\.patch\.drv'
/gnu/store/ysmmqzva7j49x7sswr5kdgdj59dsh8ip-zlib.patch.drv
/gnu/store/iamxhd6d0jqvmjfh458qwhm62bq2adb7-jsoncpp.patch.drv
/gnu/store/03hqmvhl97b8pxrcqahc9xk1bil2pbs3-openjpeg.patch.drv
To be continued…
Ludo’.