Subject: Re: bug#30916: Request: add a short description field for os-configuration

From: ng0 <[email-masked]>
Date: Sat, 24 Mar 2018 17:00:46 +0000

Danny Milosavljevic transcribed 2.9K bytes:
> Hi Martin,
> 
> On Sat, 24 Mar 2018 14:56:03 +0100
> Martin Castillo <[email-masked]> wrote:
> 
> > ng0 wrote:
> > > So basically you want a field in the operating-system declaration where you
> > > can _manually_ set a description of a certain maximum length which will be
> > > added to the GRUB entry of the generated system generation?  
> > yes
> 
> I wonder whether this description can be generated instead - we have all
> the information we need - the packages, the users that are there etc.

But how much space do we have in the GRUB descriptions? I have computers with 800x600 or what
it was resolution for the screen, and while this would be a nice feature I wonder if there's
some implications in GRUB menu readability.
I'm not an expert in GRUB, I can boot without a menu, but GRUB is a small operating system
on its own :)

> 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.

-- 
A88C8ADD129828D7EAC02E52E22F9BBFEE348588
https://n0.is