Hi Martin,
On Sat, 24 Mar 2018 14:56:03 +0100
Martin Castillo <castilma@uni-bremen.de> wrote:
I wonder whether this description can be generated instead - we have all
the information we need - the packages, the users that are there etc.
Or a description could be generated only if a custom description is not specified.
In fact it's easy to add this and would be a nice intro project for a
person interested in Guix development. I can mentor.
The thing used to fill the Guix bootloader entries is <boot-parameters>.
There's a procedure "operating-system-boot-parameters" which is used
to generate <boot-parameters> instances from an <operating-system>
declaration.
(operating-system-bootcfg calls operating-system-boot-parameters)
(perform-action calls operating-system-bootcfg)
(perform-action is in the top-level guix script)
<boot-parameters> are serialized to disk into:
/var/guix/profiles/system-704-link$ cat parameters
(boot-parameters (version 0) (label "GNU with Linux-Libre 4.14.14 (beta)") (root-device "dayas:/") (kernel "/gnu/store/fnk2xhicbrjsvbq082p6x0ch6npkrg0z-linux-libre-4.14.14/bzImage") (kernel-arguments ("crashkernel=256M" "modprobe.blacklist=pcspkr,snd_pcsp" "quiet" "acpi_osi=Linux" "clocksource=acpi_pm" "allow-discards" "root_trim=yes")) (initrd "/gnu/store/nvhkdssz1m1p8xrggi78y8pd7jz4p3ng-raw-initrd/initrd") (bootloader-name grub) (store (device "dayas:/") (mount-point "/")))
But I wouldn't change the serialization format or what fields <boot-parameters> contain.
Just change operating-system-bootcfg to take a "description" parameter.
And change operating-system-boot-parameters to take a "description" parameter and
use it to calculate the label.
And change perform-action to calculate the value for to "description" parameter in this way:
- Taking it from <operating-system> (or the command line?)
- Falling back to an automatic value (comparing it to the previous generation) otherwise.
That's it.