summaryrefslogtreecommitdiff
path: root/eclass/desktop.eclass
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-03-03 10:28:17 +0000
committerV3n3RiX <venerix@redcorelinux.org>2021-03-03 10:28:17 +0000
commitd99093fb4bb5652015c06274d64083daa2439e4f (patch)
treecf61513204d97974179580065e85df5c8009087c /eclass/desktop.eclass
parent463397cf1e064185110fe57c568d73f99a06f5d1 (diff)
gentoo resync : 03.03.2021
Diffstat (limited to 'eclass/desktop.eclass')
-rw-r--r--eclass/desktop.eclass13
1 files changed, 10 insertions, 3 deletions
diff --git a/eclass/desktop.eclass b/eclass/desktop.eclass
index 7d5c0f0f9a26..82e764e2a1a4 100644
--- a/eclass/desktop.eclass
+++ b/eclass/desktop.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: desktop.eclass
@@ -162,8 +162,15 @@ make_desktop_entry() {
else
local desktop_name="${PN}-${slot}"
fi
- local desktop="${exec%%[[:space:]]*}"
- desktop="${T}/${desktop##*/}-${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:+;}