2008-11-12 13:56:03 |
Roderick B. Greening |
bug |
|
|
added bug |
2008-11-12 14:31:18 |
Harald Sitter |
description |
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. |
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 |
|
2008-11-12 14:32:45 |
Harald Sitter |
bug |
|
|
assigned to kdebase-workspace (Ubuntu) |
2008-11-12 14:33:08 |
Harald Sitter |
kde4libs: status |
New |
Triaged |
|
2008-11-12 14:33:08 |
Harald Sitter |
kde4libs: importance |
Undecided |
High |
|
2008-11-12 14:33:08 |
Harald Sitter |
kde4libs: statusexplanation |
|
|
|
2008-11-12 14:33:26 |
Harald Sitter |
kdebase-workspace: status |
New |
Triaged |
|
2008-11-12 14:33:26 |
Harald Sitter |
kdebase-workspace: importance |
Undecided |
High |
|
2008-11-12 14:33:26 |
Harald Sitter |
kdebase-workspace: statusexplanation |
|
|
|
2008-11-12 14:39:37 |
Roderick B. Greening |
kde4libs: assignee |
|
roderick-greening |
|
2008-11-12 14:39:51 |
Roderick B. Greening |
kdebase-workspace: assignee |
|
roderick-greening |
|
2008-11-12 15:20:13 |
Roderick B. Greening |
bug |
|
|
added attachment 'kubuntu_65_kde4_applications_menu.diff' (kubuntu_65_kde4_applications_menu.diff) |
2008-11-12 15:20:59 |
Roderick B. Greening |
bug |
|
|
added attachment 'kubuntu_65_kde4_applications_menu.diff' (kubuntu_65_kde4_applications_menu.diff) |
2008-11-12 15:48:57 |
Roderick B. Greening |
bug |
|
|
added attachment 'kubuntu_54_use_xdg_menu_prefix.diff' (kubuntu_54_use_xdg_menu_prefix.diff) |
2008-11-12 17:33:34 |
Harald Sitter |
kdebase-workspace: status |
Triaged |
Invalid |
|
2008-11-12 17:33:34 |
Harald Sitter |
kdebase-workspace: statusexplanation |
|
Changes have to made in kdelibs exclusively, various standard KDE widgets rely on the menutree, so setting the env var in startkde would be insufficient. |
|
2008-11-12 18:03:39 |
Roderick B. Greening |
bug |
|
|
added attachment 'kubuntu_65_kde4_applications_menu.diff' (kubuntu_65_kde4_applications_menu.diff) |
2008-11-12 18:04:46 |
Roderick B. Greening |
bug |
|
|
added attachment 'kubuntu_65_kde4_applications_menu.diff' (kubuntu_65_kde4_applications_menu.diff) |
2008-11-26 12:40:14 |
Harald Sitter |
kdebase-workspace: status |
New |
Invalid |
|
2008-11-26 12:40:14 |
Harald Sitter |
kdebase-workspace: statusexplanation |
|
|
|
2008-11-26 12:40:47 |
Harald Sitter |
kde4libs: status |
Triaged |
In Progress |
|
2008-11-26 12:40:47 |
Harald Sitter |
kde4libs: assignee |
roderick-greening |
apachelogger |
|
2008-11-26 12:40:47 |
Harald Sitter |
kde4libs: statusexplanation |
|
|
|
2008-11-26 12:41:37 |
Harald Sitter |
kde4libs: status |
New |
Triaged |
|
2008-11-26 12:41:37 |
Harald Sitter |
kde4libs: assignee |
|
roderick-greening |
|
2008-11-26 12:41:37 |
Harald Sitter |
kde4libs: statusexplanation |
|
http://svn.debian.org/wsvn/pkg-kde/branches/kde4/packages/kdelibs/debian |
|
2008-11-26 12:42:16 |
Harald Sitter |
kde4libs: importance |
Undecided |
High |
|
2008-11-26 12:42:16 |
Harald Sitter |
kde4libs: statusexplanation |
http://svn.debian.org/wsvn/pkg-kde/branches/kde4/packages/kdelibs/debian |
|
|
2008-12-01 14:15:22 |
Harald Sitter |
kde4libs: status |
In Progress |
Fix Released |
|
2008-12-01 14:15:22 |
Harald Sitter |
kde4libs: statusexplanation |
|
kde4libs (4:4.1.80-0ubuntu1) jaunty; urgency=low
[ Jonathan Thomas ]
* New upstream beta release
- kdelibs5 conflicts/replaces kio-bookmarks since the KIO slave is in
kdelibs now
- Updated various .install files, several trailing whitespace fixes
- Bump build-dep and runtime-dep versions
* Add /usr/bin/preparetips to debian/not-installed
[ Harald Sitter ]
* Renamed 11_kde4_applications_menu.diff to
kubuntu_54_use_xdg_menu_prefix.diff
+ Made the patch not break the menu spec implementation. The spec suggests
to set the XDG_PREFIX_MENU var, however various KDE widgets rely on a
working menutree, so we are forcing the appropriate variable within
the parsing code to always use "kde4-" as prefix, unless the user
overrides this with the mentioned environment variable (LP: 297195)
-- Harald Sitter < apachelogger@ubuntu.com> Sun, 23 Nov 2008 14:35:19 +0100 |
|
2010-03-30 20:59:34 |
Sergio Zanchetta |
kde4libs (Ubuntu Intrepid): status |
Triaged |
Won't Fix |
|