Subject: ‘inferior-eval-with-store’ swallows inferior build output

From: Ludovic Courtès <[email-masked]>
Date: Sun, 24 Jan 2021 11:52:20 +0100

‘inferior-eval-with-store’ swallows build output.  Namely, the ‘proxy’
procedure proxies interactions between the daemon and the inferior,
without any interpretation.  Thus, the inferior gets to see build
output, which it may or may not display, depending on its
‘current-build-output-port’ binding, but the calling process itself
doesn’t see anything.

This is similar to <https://issues.guix.gnu.org/41930>.

To fix it would require either interpreting all the protocol as messages
are forwarded, or having another socket to forward build output from the
inferior to the caller.

(Another option might be to install a “build handler” in the inferior,
but older Guixes didn’t have that.)

Note that this issue is normally quite rare.  The one case where it
happens is when calling ‘inferior-package-derivation’ on a package where
grafts potentially apply; in this case, the inferior starts building the
ungrafted variant of the package, and it’s that build output that’s
swallowed.

Ludo’.