[Bug 297195] Re: Gnome/KDE applications.menu collision resolution breaks searching in applications-merged dir

Harald Sitter apachelogger at ubuntu.com
Wed Nov 12 14:31:18 UTC 2008


** Description changed:

- Binary package hint: kdelibs5-data
- 
  Since Gnome uses the default applications.menu to house its menu
  structure, KDE is forced to use an alternate prefix like
  kde4-applications.menu, to prevent menu collisions.
  
  To make this happen, a simple patch was introduced to tell KDE to use
  the new prefix. Unfortunately, the inadvertant side effect is that the
  prefix is inherited, and used to for DefaultMergeDirs, which means
  applications-merged never gets searched for new menu entries.
  
  A proper fix needs to be introduced to allow KDE to use the
  DefaultMergeDirs directive correctly.
  
  For now, if you manually insert a MergeDir directive into the
  kde4-applications.menu, pointing at applications-merged, things will
  work, but this is not the correct way as the spec is stil broken at this
  point.
+ 
+ The issue is caused by kbuildsycoca4 (the component responsible for parsing desktop files and creating the menu tree) using the variable which holds the default file name ($XDG_CONFIG_DIRS/menus/applications.menu) in order to compose the path for the applications-merged/ directory (which holds menu files from 3rd parties which are to be merged into the desktop's default structure or enhance the very same).
+ Since Ubuntu includes GNOME, KDE 3 and KDE 4 we have applications.menu (GNOME) kde-applications.menu (KDE 3) and kde4-applications.menu (KDE 4). Because kbuildsycoca4 uses the default file's basename to compose the merged directorie's with the current patch it will end up with kde4-applications-merged. This is for one pointless because this directory would only be used by someone who wants to manipulate KDE 4's menu structure only and for another breaking the spec implimentation:
+ Quoting about the applications-merged directory [1]:
+     Note that a system that uses either gnome-applications.menu or kde-applications.menu depending on the desktop environment in  
+     use must still use applications-merged as the default merge directory in both cases.
+ 
+ KDE 4 doesn't do this because it composes kde4-applications-merged as default merge directory. One possible fix would be to alter the affected patch to hardcode applications-merged as directory name.
+ However, this approach would still not follow the specification completely. The very first section of [1] describes the most accurate way to handle multiple desktop installation.
+ 
+ Applied to KDE this means: revising the affected to patch to only change
+ the installation path to kde4-applications.menu, but not the hardcoded
+ name, and adding export $XDG_MENU_PREFIX="kde4-" to startkde (or
+ possibly a custom start script) in order to make kbuildsycoca4 use this
+ file instead of applications.menu.
+ 
+ In addition to this GNOME should use the very same approach and most
+ importantly use gnome-applications.menu rather than applications.menu.
+ This is a different bug though.
+ 
+ [1] http://standards.freedesktop.org/menu-spec/menu-spec-latest.html

** Also affects: kdebase-workspace (Ubuntu)
   Importance: Undecided
       Status: New

** Changed in: kde4libs (Ubuntu)
   Importance: Undecided => High
       Status: New => Triaged

** Changed in: kdebase-workspace (Ubuntu)
   Importance: Undecided => High
       Status: New => Triaged

-- 
Gnome/KDE applications.menu collision resolution breaks searching in applications-merged dir
https://bugs.launchpad.net/bugs/297195
You received this bug notification because you are a member of Kubuntu
Bugs, which is subscribed to kde4libs in ubuntu.




More information about the kubuntu-bugs mailing list