Subject: bug#49100: make check fails: %derivation-cache

From: Ludovic Courtès <[email-masked]>
Date: Sun, 20 Jun 2021 23:17:27 +0200

Hi Chris,

Chris Marusich <[email-masked]> skribis:

> On core-updates (a6c292a6f123acc86429722619ccb51ca54f844f), "make check"
> errors out in tests/builders.scm:
>
> Backtrace:
>            1 (primitive-load-path "tests/builders.scm")
> In guix/tests.scm:
>     146:8  0 (call-with-external-store #<procedure 7f92ff4f7d60 at i…>)
>
> guix/tests.scm:146:8: In procedure call-with-external-store:
> error: %derivation-cache: unbound variable
>
> The problem appears to have been caused by
> 7d873f194ca69d6096d28d7a224ab78e83e34fe1 ("build-system: Rewrite using
> gexps.").

Oops, my bad.

> The attached patch fixes the issue for me.  However, since I'm not sure
> how %derivation-cache is or was supposed to be used, I would appreciate
> a second opinion.

You forgot to attach the patch, but I think it’s enough to remove the
‘hash-clear!’ call from ‘call-with-external-store’.

I haven’t checked but if the tests that rely on
‘call-with-external-store’ work for you, feel free to push!

> Note that %derivation-cache has been used to refer to two different
> things in the past (see: 3182539875a67f5989c73c3c654fe3138bbc275c).

(@@ (guix packages) %derivation-cache) on ‘master’ maps <package>
records to the corresponding derivation.  In ‘core-updates’, this cache
no longer exists; it’s superseded by the “object cache”, which is
per-session (part of <store-connection>.)

> Note also that even after applying this fix, some tests relying on
> call-with-external-store still fail when run (see: bug 47018).

Oh right.

HTH,
Ludo’.