[[Vorlage(Getestet, general)]] {{{#!vorlage Hinweis Es gibt Programme, die bereits von sich aus über das Makefile automatisch einen Menüeintrag erstellen. Dann kann man sich dies alles hier schenken. Dies sollte man also zuerst überprüfen, bevor man sich die Mühe macht dies von Hand zu erledigen. }}} [[Inhaltsverzeichnis(2)]] Etwas verwirrend kann zu Beginn das Erstellen eines Menüeintrages für eine Anwendung sein, die man paketiert. Wichtig ist zu wissen, dass Ubuntu nicht die Debian-Menüstruktur benutzt, sondern den Freedesktopstandard. Dies bedeutet, dass man nicht wie unter Debian eine '''.menu'''-Datei erstellen muss und diese nach '''/usr/share/menu''' verschiebt, wofür es einen simplen Befehl in der '''debian/rules''' geben würde, sondern man muss eine Datei '''.desktop''' erstellen und auf eine andere Weise an den richtigen Ort bringen. Trotzdem erstellen viele Leute die Pakete für Ubuntu aus Kompatibilitätsgründen mit einer Menüdatei für Debian in ihrem Paket. = Ubuntu-Menüeintrag = == Erstellen einer .desktop-Datei == Die Datei, die man erstellen muss, trägt den Namen '''PAKETNAME.desktop'''. Paketiert man also zum Beispiel Vidalia, würde die entsprechende Datei '''vidalia.desktop''' lauten. Eine solche Datei kann eine große Anzahl von möglichen Einträgen enthalten. Eine vollständige Liste des momentanen Standards kann man auf [http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html freedesktop.org] {en} einsehen. Mehr über den Aufbau und einige Beispiele für '''.desktop'''-Dateien kann man dem Artikel [:Programmstarter:] entnehmen. === Das Icon === Das Icon kann im '''.png'''-Format sein, sollte aber im Optimalfall im '''.xpm'''-Format vorliegen. Außerdem darf es maximal 32x32 Pixel groß sein und 24 Farben besitzen. Der Name des Icons muss wieder '''PAKETNAME.xpm''' bzw. '''PAKETNAME.png''' lauten. Das Icon kopiert man am besten nach '''/usr/share/pixmaps/'''. Falls das Makefile des Programmes, das man paketiert, dies nicht automatisch macht, fügt man es am besten dort ein, oder, wenn das Programm gar kein Makefile besitzt, macht man es in der '''debian/rules'''. Dann fügt man dort einfach im "`install: build`"-Abschnitt eine Zeile ein, wie zum Beispiel: {{{#!code make cp vidalia.xpm debian/vidalia/usr/share/pixmaps }}} Dies geht dabei davon aus, dass das Bild im Root-Verzeichnis des Paketes liegt, also im Überordner von '''debian'''. Damit dies funktioniert, muss man den Pfad, wohin das Icon kopiert werden soll, in die '''debian/dirs''' eintragen: {{{#!code usr/share/pixmaps }}} == Der richtige Ort == Zuletzt muss man noch veranlassen, dass bei Installation des Debianpaketes die '''.desktop'''-Datei an den richtigen Ort verschoben wird. Der richtige Ort ist abhängig davon, wohin man das Programm installiert. Programme aus den offiziellen Paketquellen kommen nach '''usr/''', alle anderen nach '''usr/local/'''. Danach richtet sich auch der richtige Ort für die '''.desktop'''-Datei. Sie gehört entweder nach '''usr/share/applications''' oder nach '''usr/local/share/applications'''. Dorthin bekommt man sie, wie zum Icon bereits erläutert, entweder über das Makefile oder, wenn es ein solches nicht gibt, über die '''debian/rules'''. Auch hier darf aber nicht vergessen werden, den entsprechenden Ziel-Pfad in die '''debian/dirs''' einzutragen. Weitere Informationen gibt es im Artikel [:Programmstarter:]. = Debian-Menüeintrag = {{{#!vorlage Hinweis Seit ein paar Jahren verwendet Debian auch '''.desktop'''-Datei. Seit Debian 8 (Jessie) wird das Programm für Menüeinträge auch nicht mehr vorinstalliert und wurde von '''.desktop'''-Datein abgelöst. Siehe dazu die [https://lists.debian.org/debian-devel-announce/2015/09/msg00000.html {en} Ankündigung des technischen Komitees]. }}} Einen Debian-Menüeintrag zu erstellen geht etwas einfacher. Man erstellt im '''debian/'''-Ordner einfach eine Datei, die den Namen '''PAKETNAME.menu''' trägt. Eine Datei mit minimalem Inhalt, die aber trotzdem ihren Dienst tut, sieht zum Beispiel so aus: {{{#!code ?package(vidalia): needs="X11" \ section="Apps/Net" \ title="Vidalia" \ command="/usr/local/bin/vidalia" \ icon="/usr/local/share/pixmaps/vidalia.xpm" }}} Die einzelnen Abschnitte sind eigentlich selbsterklärend. Hat man die Datei für sein Programm erstellt, muss man nur noch in der '''debian/rules''' den Befehl `dh_installmenu` einkommentieren bzw. unterhalb vom Abschnitt `build install` einfügen. Weiterführende Informationen über das Erstellen eines Debianmenüeintrages kann man unter [http://www.debian.org/doc/packaging-manuals/menu.html/ debian.org] {en} finden. = Links = * [http://standards.freedesktop.org/desktop-entry-spec/latest/index.html Aufbau der *.desktop Dateien] {en} * [http://standards.freedesktop.org/menu-spec/latest/ Weitere Informationen wie mögliche Werte für Categories,...] {en} * [http://www.debian.org/doc/packaging-manuals/menu.html/ Erstellen einer *.menu Datei für Debian] {en} # tag: Programmierung, Paketbau