Помогаю migor@ пилить KMyMoney2 и в процессе этого прочитал на http://www.freesource.info/wiki/AltLinux/Razrabotchiku/OsobennostiSborkiPaketov про возможность генерировать menu-файлы из desktop-файлов. Решил попробовать. Вылетело несколько ошибок Argument "text" isn't numeric in numeric eq (==) at /usr/bin/freedesktop2menu.pl line 128. Argument "x11" isn't numeric in numeric eq (==) at /usr/bin/freedesktop2menu.pl line 128. Use of uninitialized value in concatenation (.) or string at /usr/bin/freedesktop2menu.pl line 173. Пришлось залезть в исходник и поправит. Попутно также переименовал переменную из MDKVERSION в ALTVERSION. Также у меня в desktop файле была такая строка: "ServiceTypes=" Она же попадала и в результирующий menu-файл. Это тоже поправил (там лишь изменил спецификатор в регулярном выражении). Ну и последнее это сделал более удобочитаемым вывод скрипта, добавил переводы строк и табуляцию. Патч сейчас приаттачу... P.S. Демонстрация: [c0der@mycomp ~]$ cat /usr/share/applications/kde/kmymoney2.desktop [Desktop Entry] Encoding=UTF-8 Name=KMyMoney Exec=kmymoney2 Comment=Personal Finance Manager Comment[de]=PersГ¶nlicher Finanzassistent Comment[fr]= MimeType=application/x-kmymoney;application/vnd.intu.qfx;application/x-ofx Type=Application DocPath=kmymoney2/index.html Icon=kmymoney2 MiniIcon=kmymoney2 ServiceTypes= Categories=Office;Finance [c0der@mycomp ~]$ freedesktop2menu.pl kmymoney2 "Office" /usr/share/applications/kde/kmymoney2.desktop kmymoney.orig I: found name: KMyMoney I: found command: kmymoney2 I: found comment: Personal Finance Manager I: found mimetype: application/x-kmymoney;application/vnd.intu.qfx;application/x-ofx I: found icon: kmymoney2 I: found hint: Office;Finance Argument "text" isn't numeric in numeric eq (==) at /usr/bin/freedesktop2menu.pl line 128. Argument "x11" isn't numeric in numeric eq (==) at /usr/bin/freedesktop2menu.pl line 128. Use of uninitialized value in concatenation (.) or string at /usr/bin/freedesktop2menu.pl line 173. [c0der@mycomp ~]$ cat kmymoney.orig ?package(kmymoney2): needs="x11" extra_filename="kmymoney2" section="Office" title="KMyMoney" icon="kmymoney2.png" command="kmymoney2" genericname="" longtitle="Personal Finance Manager" mimetypes="application/x-kmymoney,application/vnd.intu.qfx,application/x-ofx" hints="Office,Finance" extra_opt="\\nDocPath=kmymoney2/index.html\\nMiniIcon=kmymoney2\\nServiceTypes=" [c0der@mycomp ~]$ ./freedesktop2menu.pl kmymoney2 "Office" /usr/share/applications/kde/kmymoney2.desktop kmymoney.new I: found name: KMyMoney I: found command: kmymoney2 I: found comment: Personal Finance Manager W: This should never happen: Ignoring Comment[fr]= I: found mimetype: application/x-kmymoney;application/vnd.intu.qfx;application/x-ofx I: found icon: kmymoney2 W: This should never happen: Ignoring ServiceTypes= I: found hint: Office;Finance [c0der@mycomp ~]$ cat kmymoney.new ?package(kmymoney2):\ needs="x11" \ extra_filename="kmymoney2" \ section="Office" \ title="KMyMoney" \ icon="kmymoney2.png" \ command="kmymoney2" \ longtitle="Personal Finance Manager" \ mimetypes="application/x-kmymoney,application/vnd.intu.qfx,application/x-ofx" \ hints="Office,Finance" \ extra_mimetype="application/x-kmymoney,application/vnd.intu.qfx,application/x-ofx" \ extra_opt="\\nDocPath=kmymoney2/index.html\\nMiniIcon=kmymoney2" P.S. Еще я думаю, что неплохо было бы изменить имя макроса, вызывающего скрипт freedesktop2menu.pl, потому что %Md2m как-то не очень понятен и не говорит сам за себя :)
Created attachment 1109 [details] Патч для скрипта freedesktop2menu.pl А ничего так перловочка, есть можно :)
код freedesktop2menu.pl почищен полностью :-)