Author: domi-guest Date: 2004-04-17 00:53:03 -0600 (Sat, 17 Apr 2004) New Revision: 112
Modified: trunk/packages/kdelibs/debian/Packaging.txt Log: Commit a patch by Christopher Martin <[EMAIL PROTECTED]> explaining the current situation with Debian, KDE and FD.o menu systems. Thanks Christopher ! Modified: trunk/packages/kdelibs/debian/Packaging.txt =================================================================== --- trunk/packages/kdelibs/debian/Packaging.txt 2004-04-16 16:02:08 UTC (rev 111) +++ trunk/packages/kdelibs/debian/Packaging.txt 2004-04-17 06:53:03 UTC (rev 112) @@ -21,19 +21,66 @@ These templates include the bits mentioned in this file. -====================== -Debian/KDE Menu System -====================== +=============== +KDE Menu System +=============== -When building your package you will most likely end up with a -debian/menu file for creation of menu entries with the Debian menu -system. You need one modification for KDE specific packages, namely -the use of hints. If you are unfamiliar with hints you should read up -on menu and it's features. For all KDE based apps there needs to be a -menu tag of hints="KDE". +With the release of 3.2, KDE adopted the freedesktop.org desktop entry +specification for its menu system. This specification is available at +http://www.freedesktop.org/Standards/desktop-entry-spec. -With that said a typical menu file would look like this: +In versions of KDE prior to 3.2, a program's .desktop file existed in a +subdirectory of /usr/share/applnk, where the subdirectory name corresponded to +the desired submenu of the overall KDE menu. +Now, however, a program's menu entry .desktop file should exist in the +/usr/share/applications/kde directory, and should fully conform to the +freedesktop.org specification format. Note that the KDE submenu in which the +program's entry will appear is now determined by the values given to the +Categories key in the .desktop file. A list of suggested categories is +provided in the draft freedesktop.org menu specification, available at +http://www.freedesktop.org/Standards/menu-spec. + +Up-to-date upstream source should use the freedesktop.org standard location and +format. Presently, .desktop files in /usr/share/applnk and its subdirectories +are still incorporated into the KDE menu, for the sake of backwards +compatibility. However, unless backwards compatibility with pre-3.2 KDE +releases is explicitly desired, a .desktop file under /usr/share/applnk and/or +one which does not conform to the freedesktop.org format should be considered +a bug. + +Note that with KDE 3.2, the KDE submenu of entries generated from .desktop +files in /usr/share/applnk, and its subdirectories, is determined by the values +of the Categories key in the .desktop file, if that key exists. If it does +not, then the KDE submenu of the entry will be determined by the name of the +/usr/share/applnk subdirectory in which the .desktop file resides. + + +================== +Debian Menu System +================== + +Though KDE and GNOME have adopted freedesktop.org standards and thus +can share a common menu, most other desktop environments and window +managers have not, nor have most non-KDE and non-GNOME applications. +Thus Debian provides its own menu system (in the package "menu") that +all DEs and WMs use, making all installed applications consistently +accessible in all environments without configuration. A KDE +application must therefore provide a Debian menu entry, in addition to +its entry in the native KDE menu system. + +The Debian menu is added to by installing a file in /usr/lib/menu with the name +of the package. This file contains one or more menu entries describing the one +or more applications the package provides. + +The format of these menu files is described in the Debian menu policy +document, available at http://www.debian.org/doc/packaging-manuals/menu.html. +Note that Debian menu entries for KDE applications require the use of the hints +feature. Specifically, KDE based apps must include the "KDE" hint. The minimal +hints line in a the proper menu entry of a KDE application is thus hints="KDE". + +A typical menu file would therefore look like this: + ?package(konqueror):\ needs="x11"\ section="Apps/Net"\ @@ -41,8 +88,22 @@ hints="KDE,Web browsers"\ title="Konqueror"\ command="kfmclient openProfile webbrowsing" + +In Debian, versions of KDE prior to 3.2 broke down the various categories of +the Debian menu, and interspersed these menu entries throughout the KDE menu, +in subfolders named "Debian". To avoid the unnecessary and sometimes +problematic duplication of entries, the Debian menu files of KDE applications +contained the special "kderemove" tag, signalling KDE to hide the entries +of applications which it presumably already had an entry for in the native +KDE menu. +With KDE 3.2, however, the Debian menu hierarchy is taken intact and placed +into a single submenu of the KDE menu, named "Debian". This greater separation +between the KDE and Debian menus means that duplication is unobtrusive, and +therefore that the "kderemove" tag is no longer required, and should be +removed if present. + ============= Build-Depends ============= @@ -70,10 +131,10 @@ kdelibs4 (= 4:3.2.1-1), kdelibs-bin (= 4:3.2.1-1), libart-2.0-dev, libarts1-dev (>> 1.2.1), libaudio-dev, libc6-dev, libcupsys2-dev, libfam-dev, libfreetype6-dev, libjpeg62-dev, libmng-dev (>= 1.0.3), libpcre3-dev, libpng12-0-dev, libqt3c102-mt (= 3:3.2.3-2), libqt3-headers (= 3:3.2.3-2), libssl-dev, libxft-dev, libxml2-utils, libxcursor-dev, libxrender-dev, qt3-dev-tools (= 3:3.2.3-2), xlibmesa-gl-dev | libgl-dev, xlibmesa-glu-dev | libglu1-mesa-dev | libglu-dev, xlibs-dev (>= 4.2.1), zlib1g-dev 99% of the time that will more than cover a KDE app. There will of course -be specific stuff you'll need to add....for example knetfilter requires iptables -to be installed in order for it to build...kdemultimedia requires ncurses, -slang and other things to build. Either way you should make sure you get them -all. +be specific stuff you'll need to add. For example, knetfilter requires +iptables to be installed in order for it to build, while kdemultimedia requires +ncurses, slang and other things to build. Either way you should make sure you +get them all. =========== @@ -82,9 +143,9 @@ If your KDE based app uses the kde-common stuff you'll have a admin/ subdir which if it's recent will contain a debianrules perl script. -The current version of it does very little. The biggest job it has is +The current version of it does very little. The biggest job it has is to make sure that all the KDE variables are set properly for -build...this includes a configure line. +build; this includes a configure line. With the code in the rules file of the kde dh-make template, you can see we create a file called debian/debiandirs which contains all the @@ -125,7 +186,7 @@ ================== If there's something I'm missing from this document (and I'm sure there is) -please send mail off to debian-kde@lists.debian.org and I'll get it added +please send mail off to debian-qt-kde@lists.debian.org and I'll get it added for future releases. I'd like it if this could answer 99% of the questions one might have about packaging up a KDE based app for Debian.