Hello, As was discussed last week, I've added a blurb to kdelibs4-dev's Packaging.txt document, describing some changes that occurred with the move to the freedesktop.org menu spec that might be handy for packagers to know. I've also made a few minor formatting tweaks.
I'm just learning as I go, so if anyone spots any misconceptions or outright errors, let me know and I'll revise the patch. Thanks, Christopher Martin
--- Packaging.txt (revision 99) +++ Packaging.txt (working copy) @@ -21,9 +21,9 @@ These templates include the bits mentioned in this file. -====================== -Debian/KDE Menu System -====================== +================== +Debian 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 @@ -70,10 +70,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 +82,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 @@ -97,6 +97,41 @@ out of 10 you won't have to do a thing. +=============== +KDE Menu System +=============== + +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. + +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. + + ==== CDBS ==== @@ -125,7 +160,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.