eclass/desktop: Sync with gentoo

It's from gentoo commit f6212ee060d6a2962ac27cf57ffd721d14b64215.
This commit is contained in:
Krzesimir Nowak 2021-12-21 09:53:57 +01:00
parent d532eb6390
commit b1d75df15c

View File

@ -1,4 +1,4 @@
# Copyright 1999-2018 Gentoo Foundation
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: desktop.eclass
@ -10,7 +10,7 @@ if [[ -z ${_DESKTOP_ECLASS} ]]; then
_DESKTOP_ECLASS=1
# @FUNCTION: make_desktop_entry
# @USAGE: make_desktop_entry(<command>, [name], [icon], [type], [fields])
# @USAGE: <command> [name] [icon] [type] [fields]
# @DESCRIPTION:
# Make a .desktop file.
#
@ -162,8 +162,15 @@ make_desktop_entry() {
else
local desktop_name="${PN}-${slot}"
fi
local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop"
#local desktop=${T}/${exec%% *:-${desktop_name}}.desktop
local desktop_exec="${exec%%[[:space:]]*}"
desktop_exec="${desktop_exec##*/}"
# Prevent collisions if a file with the same name already exists #771708
local desktop="${desktop_exec}-${desktop_name}" count=0
while [[ -e ${ED}/usr/share/applications/${desktop}.desktop ]]; do
desktop="${desktop_exec}-$((++count))-${desktop_name}"
done
desktop="${T}/${desktop}.desktop"
# Don't append another ";" when a valid category value is provided.
type=${type%;}${type:+;}