From 21bb62e4ed715edb342bc6f1ca0983bd706228af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Johannes=20L=C3=B6thberg?= <johannes@kyriasis.com>
Date: Fri, 29 May 2015 20:53:54 +0200
Subject: [PATCH] xdg-desktop-menu: Drop obsolete GNOME support

This commit drops the obsolete support for the GNOME-specific directory
for .desktop files, since it has not been needed since GNOME 2.10, and
since it forces the creation of ~/.gnome whether you want it or not.

https://bugs.freedesktop.org/show_bug.cgi?id=90775
---
 scripts/xdg-desktop-menu.in | 47 +++++++++------------------------------------
 1 file changed, 9 insertions(+), 38 deletions(-)

diff --git a/scripts/xdg-desktop-menu.in b/scripts/xdg-desktop-menu.in
index 13159cb..8654764 100644
--- a/scripts/xdg-desktop-menu.in
+++ b/scripts/xdg-desktop-menu.in
@@ -126,22 +126,18 @@ update_submenu()
     DEBUG 3 "xdg_global_dir: $xdg_global_dir"
     DEBUG 3 "kde_user_dir: $kde_user_dir"
     DEBUG 3 "kde_global_dir: $kde_global_dir"
-    DEBUG 3 "gnome_user_dir: $gnome_user_dir"
-    DEBUG 3 "gnome_global_dir: $gnome_global_dir"
 
     if [ x"$mode" = x"user" ] ; then
         xdg_dir="$xdg_user_dir"
         kde_dir="$kde_user_dir"
-        gnome_dir="$gnome_user_dir"
         my_umask=077
         my_chmod=0600
     else
         xdg_dir="$xdg_global_dir"
         kde_dir="$kde_global_dir"
-        gnome_dir="$gnome_global_dir"
         my_umask=022
         my_chmod=0644
-        if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then
+        if [ -z "${xdg_dir}${kde_dir}" ] ; then
             exit_failure_operation_impossible "No writable system menu directory found."
         fi
     fi
@@ -158,15 +154,6 @@ update_submenu()
         return
     fi
 
-    if [ $action = "install" ] && [ -f "/etc/xdg/menus/gnome-applications.menu" ] ; then
-        # Work around for Debian Gnome
-        gnome_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/gnome-applications-merged^'`
-        if [ ! -e "$gnome_xdg_dir" ] ; then
-            DEBUG 1 "Debian Workaround: Link '$xdg_dir' to '$gnome_xdg_dir'"
-            mkdir -p `dirname "$gnome_xdg_dir"`
-            eval 'ln -s "applications-merged" "$gnome_xdg_dir"'$xdg_redirect_output
-        fi
-    fi
     if [ $action = "install" ] && [ -f "/etc/mandrake-release" ] ; then
         # Work around for Mandriva 2006
         mandrake_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/applications-mdk-merged^'`
@@ -489,20 +476,16 @@ DEBUG 3 "xdg_user_dir: $xdg_user_dir"
 DEBUG 3 "xdg_global_dir: $xdg_global_dir"
 DEBUG 3 "kde_user_dir: $kde_user_dir"
 DEBUG 3 "kde_global_dir: $kde_global_dir"
-DEBUG 3 "gnome_user_dir: $gnome_user_dir"
-DEBUG 3 "gnome_global_dir: $gnome_global_dir"
 
 if [ x"$mode" = x"user" ] ; then
     xdg_dir="$xdg_user_dir"
     kde_dir="$kde_user_dir"
-    gnome_dir="$gnome_user_dir"
     my_umask=077
 else
     xdg_dir="$xdg_global_dir"
     kde_dir="$kde_global_dir"
-    gnome_dir="$gnome_global_dir"
     my_umask=022
-    if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then
+    if [ -z "${xdg_dir}${kde_dir}" ] ; then
         exit_failure_operation_impossible "No writable system menu directory found."
     fi
 fi
@@ -510,14 +493,14 @@ fi
 for desktop_file in $directory_files; do
     basefile=`basename "$desktop_file"`
 
-    DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir $gnome_dir"
+    DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir"
 
     case $action in
         install)
             save_umask=`umask`
             umask $my_umask
 
-            for x in $xdg_dir $kde_dir $gnome_dir ; do
+            for x in $xdg_dir $kde_dir ; do
                 mkdir -p $x
                 eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output
             done
@@ -526,7 +509,7 @@ for desktop_file in $directory_files; do
             ;;
 
         uninstall)
-            for x in $xdg_dir $kde_dir $gnome_dir ; do
+            for x in $xdg_dir $kde_dir ; do
                 rm -f $x/$basefile
             done
 
@@ -555,29 +538,21 @@ kde_user_dir=`kde${KDE_SESSION_VERSION}-config --path apps 2> /dev/null | cut -d
 kde_global_dir=`kde${KDE_SESSION_VERSION}-config --path apps 2> /dev/null | cut -d ':' -f 2`
 [ -w $kde_global_dir ] || kde_global_dir=
 
-gnome_user_dir="$HOME/.gnome/apps"
-gnome_global_dir="/usr/share/gnome/apps"
-[ -w $gnome_global_dir ] || gnome_global_dir=
-
 DEBUG 3 "Install locations for *.desktop files:"
 DEBUG 3 "xdg_user_dir: $xdg_user_dir"
 DEBUG 3 "xdg_global_dir: $xdg_global_dir"
 DEBUG 3 "kde_user_dir: $kde_user_dir"
 DEBUG 3 "kde_global_dir: $kde_global_dir"
-DEBUG 3 "gnome_user_dir: $gnome_user_dir"
-DEBUG 3 "gnome_global_dir: $gnome_global_dir"
 
 if [ x"$mode" = x"user" ] ; then
     xdg_dir="$xdg_user_dir"
     kde_dir="$kde_user_dir"
-    gnome_dir="$gnome_user_dir"
     my_umask=077
 else
     xdg_dir="$xdg_global_dir"
     kde_dir="$kde_global_dir"
-    gnome_dir="$gnome_global_dir"
     my_umask=022
-    if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then
+    if [ -z "${xdg_dir}${kde_dir}" ] ; then
         exit_failure_operation_impossible "No writable system menu directory found."
     fi
 fi
@@ -589,14 +564,14 @@ for desktop_file in $desktop_files; do
 
     basefile=`basename "$desktop_file"`
 
-    DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir $gnome_dir"
+    DEBUG 1 "$action $desktop_file in $xdg_dir $kde_dir"
 
     case $action in
         install)
             save_umask=`umask`
             umask $my_umask
 
-            for x in $xdg_dir $kde_dir $gnome_dir ; do
+            for x in $xdg_dir $kde_dir ; do
                 mkdir -p $x
                 eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output
             done
@@ -605,17 +580,13 @@ for desktop_file in $desktop_files; do
                 echo "OnlyShowIn=Old;" >> $kde_dir/$basefile
             fi
 
-            if [ -f $gnome_dir/$basefile ] ; then
-                echo "OnlyShowIn=Old;" >> $gnome_dir/$basefile
-            fi
-
             make_lazy_default "$xdg_dir" "$basefile"
 
             umask $save_umask
             ;;
 
         uninstall)
-            for x in $xdg_dir $kde_dir $gnome_dir ; do
+            for x in $xdg_dir $kde_dir ; do
                 rm -f $x/$basefile
             done
 
-- 
2.4.2
