Hi Stefan, On Tue, 17 Nov 2020 21:27:42 +0100 Stefan wrote: > For example the profile contains at least these folders from the grub package, plus the collection/: > > /gnu/store/…-bootloader-profile/collection > /gnu/store/…-bootloader-profile/etc > /gnu/store/…-bootloader-profile/share > /gnu/store/…-bootloader-profile/lib > /gnu/store/…-bootloader-profile/bin > /gnu/store/…-bootloader-profile/sbin Ohhh, that's right. It actually contains the grub installer--which it got from the grub-efi derivation. The actual boot EFI file is not in the grub-efi derivation. I wonder if it is possible (one day!) to have a package that actually contains the EFI boot file that the grub installer generated. That would be a lot nicer--though I'm not sure whether that stuff depends on the system and thus cannot be "pre-generated". > But the /boot/ folder finally contains something like this, with most of it being content from the collection/, where the GRUB files get installed belaw /boot/efi/: > > /boot/bcm2710-rpi-3-b.dtb > /boot/bootcode.bin > /boot/bootloader.txt > /boot/config.txt > /boot/custom.txt > /boot/efi/ > /boot/fixup.dat > /boot/gnu/ > /boot/grub/ > /boot/overlays/ > /boot/u-boot.bin > > Actually one could say that the profile hook is a kind of ‘pre-installer’ for everything not related to GRUB, able to prepare everything, but unable to write into the /boot folder. > > > If there are no good reasons to do it like that, I'd just put the > > profile into $output directly instead--it's easier to understand, and also it's > > how other profiles are being used. > > Not having the collection folder would mean that the installer would need to assume much more about the result of the profile hook, to copy the right files to /boot. I agree. Let's leave it inside subdir "collection". > > (2) The COPY-FILES? flag is kinda weird. > > I would prefer if INSTALLER just defaulted to a procedure that: does copy > > files, and then calls the final bootloader installer. > > If the user doesn't want it then the user could still pass a INSTALLER > > that doesn't (for example the user could pass #:installer > > (bootloader-installer final-bootloader)). > > Agreed. > Another possibility would be to remove the collection folder within a hook. I don't like that that much because it's mutating too much and thus composability goes down. > > I would prefer if the user would just change the INSTALLER in the case he wants > > to not use the profile (which is kinda weird?!) or pack it or whatever. > > OK, I see, in case of a custom installer we can skip the copying completely. That makes sense. Could you send an updated patch that does it like that? Or do you rather want the old variant ? > > (3) Why isn't the final bootloader installed last? I would have expected > > it to be installed last so that if it does packing of the profile contents > > in order to quickly find it at boot, it would have to have all the files > > of the profiles already, no? > > I thought about the order as well. My conclusion was that a file from the collection should be able to overwrite a file installed from final-bootloader, for example to install own device-tree files. Yeah, that makes sense--if a little unusual (thus should be documented).