Subject: ’guix shell [email-masked]’downloads [email-masked]

From: zimoun <[email-masked]>
Date: Mon, 10 Jan 2022 17:15:55 +0100

Hi,

Using 3dcc74d, I get an unexpected behaviour.  First, all expected:

--8<---------------cut here---------------start------------->8---
$ guix build [email-masked] -n
122,4 MB would be downloaded:
   /gnu/store/p8rk5cp1p4b2zky4zj1shfqb11qb5nmk-ghc-8.10.7-doc
   /gnu/store/i92h6i23rnvrvn7xva6w9x7gjkljmfws-ghc-8.10.7

$ guix build [email-masked] -n
/gnu/store/5gp4k7ly1smhkx95rhq21nvxmyg687bv-ghc-8.4.4-doc
/gnu/store/wxfr2naibx3qpy4w243a7ga98mchf6g3-ghc-8.4.4
--8<---------------cut here---------------end--------------->8---

I have [email-masked] in my local store, but not [email-masked].  In addition, no
path between [email-masked] and [email-masked],

--8<---------------cut here---------------start------------->8---
$ guix graph --path [email-masked] [email-masked]
guix graph: error: no path from [email-masked]' to [email-masked]'
--8<---------------cut here---------------end--------------->8---

Even, [email-masked] is used in the bootstrap chain of [email-masked],

--8<---------------cut here---------------start------------->8---
$ guix graph --path [email-masked] [email-masked]
[email-masked]
[email-masked]
[email-masked]
[email-masked]
--8<---------------cut here---------------end--------------->8---

However, tandam!

--8<---------------cut here---------------start------------->8---
$ guix shell -C [email-masked]
The following derivation will be built:
   /gnu/store/rx0spryh76az0ll6ddy7f7hy8ykhglnh-profile.drv

117,7 MB will be downloaded
 ghc-8.10.7  112.3MiB                                                                                                         3.3MiB/s 00:01 [                  ]   1.9%  C-c C-c
--8<---------------cut here---------------end--------------->8---

>From the profile.drv, the culprit is identified:
/gnu/store/…-ghc-package-cache.drv,

--8<---------------cut here---------------start------------->8---
Derive
([("out","/gnu/store/mcmwdg13f5rc9vdklgbmsn6h84bgdp3q-ghc-package-cache","","")]
 ,[("/gnu/store/8m7vppxy4l824yk4036iisk2zy7qzgcx-ghc-8.4.4.drv",["out"])
   ,("/gnu/store/bc5cm1g1b884nvgiysq8x0i0wxplkqhl-ghc-8.10.7.drv",["out"])
   ,("/gnu/store/m0nbbk3vgl637ibrz7z72r5v0dkswpi2-guile-3.0.7.drv",["out"])
   ,("/gnu/store/qcksap17gs36gpnjj3by4d7r7yxfq405-module-import-compiled.drv",["out"])]
 ,["/gnu/store/45dpf18lzvzs6sbmihifw6ch9p6y20yr-ghc-package-cache-builder","/gnu/store/4j2xcm5s0hvmpjm8fdbmb02ipvr6wyxn-module-import"]
 ,"x86_64-linux","/gnu/store/fidl08nms5v63lkqv627zibxpd85zxqb-guile-3.0.7/bin/guile",["--no-auto-compile","-L","/gnu/store/4j2xcm5s0hvmpjm8fdbmb02ipvr6wyxn-module-import","-C","/gnu/store/n7687sw6nkrhpjkdgysgz7baihzipgl0-module-import-compiled","/gnu/store/45dpf18lzvzs6sbmihifw6ch9p6y20yr-ghc-package-cache-builder"]
 ,[("allowSubstitutes","0")
   ,("guix properties","((type . profile-hook) (hook . ghc-package-cache))")
   ,("out","/gnu/store/mcmwdg13f5rc9vdklgbmsn6h84bgdp3q-ghc-package-cache")
   ,("preferLocalBuild","1")])
--8<---------------cut here---------------end--------------->8---

>From my perspective, it is a bug from (guix profiles)
’ghc-package-cache-file’ which always includes ’ghc’, currently pointing
to [email-masked].

--8<---------------cut here---------------start------------->8---
  (define ghc                                     ;lazy reference
    (module-ref (resolve-interface '(gnu packages haskell)) 'ghc))
--8<---------------cut here---------------end--------------->8---

Well, the fix is not jumping to my eyes.  If someone has an idea to
conditionally remove this reference to ’ghc’?

Cheers,
simon