Subject: bug#57585: guix gc removed home config

From: Andrew Tropin <[email-masked]>
Date: Mon, 05 Sep 2022 09:01:58 +0300

On 2022-09-04 21:17, Julien Lepiller wrote:

> Actually I figured this out:
>
> Generation 16 used an older guix version where guix home added a . at
> the end of file names, so my config looked like this:
>
> (simple-service 'xfce4-terminal home-files-service-type               
>   `(("config/xfce4/terminal/terminalrc"
>     ,(local-file
>       "files/xfce4-terminal/terminalrc"))))
>
> Then, I updated Guix without changing my home configuration, so on
> generation 17, guix home created $HOME/config instead of $HOME/.config.
> So $HOME/.config/xfce4/terminal/terminalrc (and all other config files)
> kept pointing to generation 16's files. After removing the generation
> and "guix gc", these files no longer exist, and I'm in trouble :)

BTW, there is xdg-configuration-files-service-type, which hides away
those details and helps to migrate seamlessly.  May be helpful for
future readers:
https://guix.gnu.org/en/manual/devel/en/guix.html#index-home_002dxdg_002dconfiguration_002dfiles_002dservice_002dtype

>
> So, guix home and guix gc are working as intended, but the change to
> no longer adding a "." at the beginning of file names (which makes
> total sense) tripped me up.
>
> Le Sun, 4 Sep 2022 20:32:58 +0200,
> Julien Lepiller <[email-masked]> a écrit :
>
>> Hi Guix!
>> 
>> Today I ran "guix home delete-generations" to remove my old home
>> generations. It removed generations 0 and 17. I'm on generation 18.
>> 
>> Then I ran "guix gc" and after I noticed I couldn't run a program from
>> my window manager (its menu is managed from guix home), I tried to
>> look at what was happening. My config files managed by guix home are
>> now symlinks that point to non existent store items. Spooky.
>> 
>> Please let me know how I can help diagnose the issue
>> 
>> 
>> 
>
>
>
>

-- 
Best regards,
Andrew Tropin