Subject: bug#36376: Application menu of desktop environment not automatically updated

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 06 Nov 2020 13:56:10 -0500

Hey Ludovic,

Ludovic Courtès <[email-masked]> writes:

> Hi Maxim,
>
> Maxim Cournoyer <[email-masked]> skribis:
>
>> From a79645c565e56ac201e66936d9f9883ad9387b06 Mon Sep 17 00:00:00 2001
>> From: Maxim Cournoyer <[email-masked]>
>> Date: Thu, 5 Nov 2020 00:24:29 -0500
>> Subject: [PATCH] gdesktopappinfo: Fix monitoring of a Guix profile
>>  XDG_DATA_DIR.
>> MIME-Version: 1.0
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> Fixes <https://issues.guix.gnu.org/35594>.
>>
>> Treat the $HOME/.guix-profile/share and /run/current-system/share
>> XDG_DATA_DIRS file names specially so that the inotify-based monitors
>> placed by GLib monitor their parent link rather than an immutable
>> directory.
>>
>> Co-authored by Ludovic Courtès <[email-masked]>.
>                                   ^
> This is LATIN SMALL LETTER L WITH CEDILLA.  :-)
>
>> ---
>>  gio/gdesktopappinfo.c | 17 +++++++++++++++--
>>  1 file changed, 15 insertions(+), 2 deletions(-)
>
> I like that it’s short and sweet, nice!

I thought too, but it doesn't work, because these entries never make it
to XDG_DATA_DIRS in the first place, at least for the system profile.

I also gave a try to 1) a modified version of your patch that added
support for /run/current-system and 2) your patch unmodified with
inconclusive results so far.

I did see things being scanned in response to /run/current-system
changing, but I believe this was because I goofed up the dir path to
"/run/current-system/share" (it should have been
""/run/current-system/profile/share"), and there's some code
gdesktopappinfo.c (desktop_file_dir_get_alternative_dir) that sets the
monitored directory to a parent when the directory doesn't exist.

In either version, strace failed to show any activity upon recreating
the ~/.guix-profile (that is /root/.guix-profile since I was testing as
root in the VM) link, different to what you had found.

So, to be continued...

Maxim