guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#69781] [PATCH v2] services: Add the Guix Home Service


From: Richard Sent
Subject: [bug#69781] [PATCH v2] services: Add the Guix Home Service
Date: Mon, 29 Apr 2024 11:21:44 -0400
User-agent: Gnus/5.13 (Gnus v5.13)

Hi Ludo!

Ludovic Courtès <ludo@gnu.org> writes:

> Ludovic Courtès <ludo@gnu.org> skribis:
>
> Silly me: I was using ‘home-service-type’ instead of
> ‘guix-home-service-type’. 🤦
>
> (Interestingly, this has no effect at all, but nothing complained,
> either.)
>
> Works like a charm after switching to ‘guix-home-service-type’!  :-)

Thanks for the response! I just started investigating that and was close
to entering the "losing my mind" phase of debugging. Glad to hear it
does in fact work!

>>   2. ‘guix home describe’ isn’t prepared to deal with that: it returns
>>      information from the last
>>      /var/guix/profiles/per-user/$USER/guix-home-*.
>
> That issue remains, but it’s less of a problem.

There are definitely some potential issues when running certain 'guix
home ...' commands that operate on generations while using
'guix-home-service. The "correct" behavior may not always be obvious
either. For example:

1. 'guix-home-service' reactivates the same home environment every time
the service is launched. If generations are created, how should that be
reflected if the user has a home environment activated by
'guix-home-service' (generation A), runs 'guix home reconfigure'
(generation B), and reboots? Consider it a silent roll back to A? Should
B be marked a garbage collection candidate? Or should generation C be
created?

2. Users may try 'guix home roll-back' or 'switch-generations', thinking
the change is persistent. Should this be transient? Or should the change
be made persistent somehow? (I'm strongly in favor of "transient", but I
figured I'd raise the point.)

I think this approach is best:

1. Create a new home generation when 'guix system reconfigure' and
'guix-home-service' are used.

2. Make 'guix home reconfigure', 'switch-generations', and 'roll-back'
all warn that the changes are temporary.

3. Disable 'guix home delete-generations' on any system-created home
generations. System-created home generations are deleted when the
corresponding system generation is deleted.

4. Adjust 'guix home list-generations' and 'describe' to indicate if a
home generation came from a particular system generation.

As for how to accomplish this or how feasible it is? No clue.

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]