Subject: warning: '.desktop' file refers to '', which cannot be found

From: Brendan Tildesley <[email-masked]>
Date: Fri, 9 Apr 2021 12:56:35 +0200 (CEST)

The Exec paths in these files already refer to absolute paths, infact, /gnu/store paths
Thus the regex:

("^Exec=([^/[:blank:]\r\n]*)(.*)$" _ binary rest)

with binary = empty string and rest = everything after Exec=

Why? The second subexpression [^/[:blank:]\r\n]* is bound to binary, but it means anything
that is a series of anything that is not /, space, or newline. absolute paths start with /, so it matches nothing (empty string), and continues to call (which "").

I notice this phase hasn't been edited in 5 years and has other issues, for example:

1. patch-dot-desktop-files only searches the output of the package for paths, not the inputs. This means for example xfce4-settings fails to patch references to exo-open in desktop files.

The code should be remade to be more /correct/, and handle all unexpected inputs. In this case the phase is accidentally doing the right thing by failing in a harmless way and correctly not patching the files, but emitting a warning.