Commit 93e91c15 authored by OPNA2608's avatar OPNA2608 Committed by Weijia Wang
Browse files

ayatana-indicator-messages: Fix desktop parsing

Not *great*, but a start.

MessagingMenu has a function for mapping an app to desktop file data. This relies on GLib to parse the desktop file,
which needs the binary from the 'Exec=' entry on PATH, otherwise it bails.

messaging_menu_app_set_desktop_id calls g_desktop_app_info_new:
https://github.com/AyatanaIndicators/ayatana-indicator-messages/blob/334668ad5ad33c6bd342f34b159dbcbed8c65df1/libmessaging-menu/messaging-menu-app.c#L245-L252

Which, after some jumps inbetween, ends up in g_desktop_app_info_load_from_keyfile and calls g_find_program_for_path:
https://github.com/GNOME/glib/blob/204a76669bd46c5eb656946e21bd746685c67174/gio/gdesktopappinfo.c#L1920-L1951

Which uses PATH:
https://github.com/GNOME/glib/blob/204a76669bd46c5eb656946e21bd746685c67174/glib/gutils.c#L371
parent 8d0a5773
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -119,6 +119,15 @@ stdenv.mkDerivation (finalAttrs: {
    chmod +w doc/reference/html/*
  '';

  # Indicators that talk to it may issue requests to parse desktop files, which needs binaries in Exec on PATH
  # messaging_menu_app_set_desktop_id -> g_desktop_app_info_new -...-> g_desktop_app_info_load_from_keyfile -> g_find_program_for_path
  # When launched via systemd, PATH is very narrow
  preFixup = ''
    gappsWrapperArgs+=(
      --suffix PATH : '/run/current-system/sw/bin'
    )
  '';

  passthru = {
    ayatana-indicators = [
      "ayatana-indicator-messages"