desktop.eclass: Sanitize filename of desktop entry.
authorUlrich Müller <ulm@gentoo.org>
Wed, 25 Mar 2020 07:50:42 +0000 (08:50 +0100)
committerUlrich Müller <ulm@gentoo.org>
Fri, 27 Mar 2020 07:27:28 +0000 (08:27 +0100)
commit2884bb5a7f44da2fcca598329ce14bff0d12289c
tree8cae3c37e7d24af865b36e09cef0e8daa095eee0
parent1b5fd0a8fdeef3517452cfb6298c17a76f018988
desktop.eclass: Sanitize filename of desktop entry.

make_desktop_entry() extracts the first component of the filename from
the Exec key in the desktop entry. This can however include arguments
which will end up in the filename. For example, www-client/links has
"Exec=links -g %u", resulting in links_-g_%u-links-2.desktop as the
name of the file.

The current extraction pattern originates from this CVS commit:
https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/eclass/eutils.eclass?r1=1.271&r2=1.272
with the commit message "scrub exec filename in case someone does
something silly like pass the fullpath to a binary".

Before that commit, anything after a space in Exec would have been
removed. Restore that behaviour, and in addition use only the
executable's basename.

While at it, get rid of the sed call and handle everything in bash.

Signed-off-by: Ulrich Müller <ulm@gentoo.org>
eclass/desktop.eclass