(address . bug-guix@gnu.org)
Consider this file:
Toggle snippet (6 lines)
(use-modules (guix))
(lambda ()
(lower-object (load "overdrive1.scm") "aarch64-linux"))
When ran on x86_64-linux, these two commands return different
derivations, contrary to what one might expect:
guix build -f that-file.scm -d --no-grafts -s aarch64-linux
guix build -f that-file.scm -d --no-grafts
That demonstrates that the result depends on (%current-system), even
though it shouldn’t because we’re explicitly specifying the system.
This has implications on ‘guix deploy’: if you try to deploy
aarch64-linux boxes from x86_64-linux (say), some of the derivations are
going to be for x86_64-linux instead of aarch64-linux, which can lead to
unbootable systems, as Ricardo reported a while back.
In particular, /gnu/store/…-activate.scm.drv (a direct dependency
/gnu/store/…-system.drv) is one of those derivations sensitive to
(%current-system).
Ludo’.