Hi, I want to note that there's a difference between cross-compiling things and natively compiling things (even if only qemu transparent emulation). The resulting images between cross vs non-cross could be (and probably are) different. So I think there should be a command line parameter to the image script that specifies whether to cross-compile or not--there's no way around it that I can see. Also, this image generation thing is mostly for bootstrapping Guix, so it is fine if that only supports configurations we actually tested. Ludo said: > > However, I > > feel like is the wrong place for ‘system’ and ‘target’: the > > image format, conceptually, has nothing to do with whether we’re > > cross-compiling, compiling for a specific system, etc. It depends on what you mean. How the word "image format" is colloquially used in the VM world, it very much has to with what guest system (and even which emulator) this image is for, and that's not at all variable. But I agree that there are other things that could be variable per image target system, like the kernel version that actually works, the u-boot that actually works, the partition layout that actually works, the initrd modules, weird system packages and/or activation scripts that are required for booting etc. See buildroot. Mathieu said: > On the one hand, I agree that adding "system" and "target" to , > so that they can override the corresponding arguments doesn't feel > nice. On the other hand, I think that dealing with system/target is too > low level for most users. I agree. Also, I want to stress that if we do this kind of image generation, it has to be for Guix images we actually tested. So the general case with specifying a random system and target we never saw before cannot be supported anyway (and will likely not work), especially since bootloaders are anything but portable in general. > When using Yocto, Buildroot or even OpenWrt, you say "build me an image > for that board/machine" and not, "build me an image for that board by > cross-compiling to this mysterious triplet". I agree that we should not ask the user to specify a triplet to build a guix system image. It's obvious what the triplet is per image, since we tested it anyway (riiiight?). > If the user selects the image type "pine64" or "novena", it's obvious > that the image has to be built for ARM, so I think it makes sense to > hardcode it somewhere. I agree.