Subject: Re: bug#42173: Nix on Guix System: can't update channels

From: Ludovic Courtès <[email-masked]>
Date: Wed, 22 Jul 2020 12:09:32 +0200

Hi Oleg,

Oleg Pykhalov <[email-masked]> skribis:

> Oleg Pykhalov <[email-masked]> writes:
>
> […]
>
>> Currently I don't see a way to mount
>> /gnu/store/57xj5gcy1jbl9ai2lnrqnpr0dald9i65-coreutils-8.32
>> dependencies (and other packages) inside the Nix sandbox.
>
> Found one way:
>
> (with-output-to-file "/etc/nix/nix.conf"
>   (lambda _
>     (display "sandbox = true")
>     (newline)
>     (format #t "build-sandbox-paths = ~{~a ~}~%"
>             '#$(package-closure (map (match-lambda ((name package) package))
>                                      (package-inputs nix))))))

That’s inaccurate: ‘package-closure’ does not capture non-package
inputs, and it’s the set of build-time dependencies, not references.

Using #:references-graphs solves that problem because it gives you
precisely the closure of each package, as returned by ‘guix gc -R’.

HTH!

Ludo’.