Consider this file: --8<---------------cut here---------------start------------->8--- (use-modules (guix))
(lambda () (lower-object (load "overdrive1.scm") "aarch64-linux")) --8<---------------cut here---------------end--------------->8--- 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’.