Subject: Re: [PATCH v4 06/10] scripts: Make boot-parameters label include generation number and time.

From: Danny Milosavljevic <[email-masked]>
Date: Sat, 22 Apr 2017 22:32:42 +0200

On Fri, 21 Apr 2017 14:37:10 +0200
Danny Milosavljevic <[email-masked]> wrote:

>    (define (system->boot-parameters system number time)
>      (unless-file-not-found
> -     (let* ((params           (read-boot-parameters-file system)))
> -       params)))
> +     (let* ((params           (read-boot-parameters-file system))
> +            (label            (boot-parameters-label params)))
> +       (boot-parameters
> +         (inherit params)
> +         (label (string-append label " (#"
> +                               (number->string number) ", "
> +                               (seconds->string time) ")"))))))

Every time I see that I wonder whether I don't make some other part (like read-boot-parameters-file or something) to do the label extension.  In theory that would be nicer than fixing it up later - I do the latter here.

And on first sight, one might be able to do that for the old generations (because the timestr in the label is just the mtime of the system directory).  But the label should also contain the generation number - which is currently usually being extracted by the procedure "generation-numbers" for an entire profile (but the caller of system also is able to override the generation numbers of profile-boot-parameters and profile-grub-entries - not sure why); I don't find generation-numbers exactly straightforward - I'd rather not mess with it.  Also, the caller zips the result together with SYSTEMS somehow and it would be easy for me to mess up the association.

Therefore, I opted for this version - which is a lot less risky.

If someone is more familiar with generation-numbers and knows why it's possible to override the generation numbers (usually by a one-element list), please feel free to post a patch that integrates this part into read-boot-parameters-file later.

Note: The current generation doesn't need its label extended.