Bug 29129 - <MergeDir>applications-merged</MergeDir>
Summary: <MergeDir>applications-merged</MergeDir>
Status: REOPENED
Alias: None
Product: Branch p7
Classification: Distributions
Component: altlinux-freedesktop-menu-xfce (show other bugs)
Version: не указана
Hardware: all Linux
: P3 normal
Assignee: Andrey Cherepanov
QA Contact: qa-p7@altlinux.org
URL:
Keywords:
: 26017 27893 (view as bug list)
Depends on:
Blocks: 27893
  Show dependency tree
 
Reported: 2013-07-03 18:09 MSK by Sergey V Turchin
Modified: 2016-06-29 16:11 MSK (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey V Turchin 2013-07-03 18:09:07 MSK
xfce-applications.menu содержит недопустимую конструкцию
<MergeDir>applications-merged</MergeDir>
, из-за которой в xfce падает kbuildsycoca4 и ничего не запускается из kde4-шного.
Comment 1 Sergey V Turchin 2013-07-03 18:13:31 MSK
То же самое во всех остальных файлах, содержащих такую конструкцию.
Comment 2 Mikhail Efremov 2013-07-03 21:00:23 MSK
А почему она недопустимая?
Comment 3 Sergey V Turchin 2013-07-04 15:02:43 MSK
(В ответ на комментарий №2)
> А почему она недопустимая?
Ее быть не должно, т.к. в спецификации написано, что она _обязана_ обрабатываться автоматически.
То же самое, что <MergeDir>/</MergeDir>. Давайте и такую включим.
Comment 4 Sergey V Turchin 2013-07-04 15:05:12 MSK
Хотя, вру. В примере есть http://standards.freedesktop.org/menu-spec/latest/ar01s08.html .
Comment 5 Sergey V Turchin 2013-07-04 15:08:52 MSK
http://standards.freedesktop.org/menu-spec/menu-spec-latest.html
$XDG_CONFIG_DIRS/menus/applications-merged/
The default merge directories included in the <DefaultMergeDirs> element.
Comment 6 Sergey V Turchin 2013-07-04 15:18:41 MSK
<MergeDir>xfce-applications-merged</MergeDir> тоже не должно быть, т.к. оно должно автоматом обрабатываться при XDG_CONFIG_PREFIX="xfce-"
Comment 7 Sergey V Turchin 2013-07-04 15:30:39 MSK
(В ответ на комментарий №6)
> <MergeDir>xfce-applications-merged</MergeDir> тоже не должно быть, т.к. оно
> должно автоматом обрабатываться при XDG_CONFIG_PREFIX="xfce-"
Хотя, это вряд ли.
Comment 8 Pyatachet 2013-07-15 16:51:37 MSK
Прошу прощения за назойливость, а когда примерно исправление будет? Привык к K3b, а оно в Simply не работает.
Comment 9 viy 2013-07-15 18:11:36 MSK
сорри, пропустил баг, был в отъезде.
Comment 10 viy 2013-07-15 19:46:58 MSK
отправил
altlinux-freedesktop-menu-0.65-alt1
Comment 11 Mikhail Efremov 2013-07-15 21:06:21 MSK
При этом garcon applications-merged не использует совсем. 
Я не уверен, что конструкция <MergeDir>applications-merged</MergeDir> ошибочна, если я правильно понимаю, то это аналог <DefaultMergeDirs/>. В стандарте написано именно это, а не то, что applications-merged обрабатывается всегда.
Comment 12 viy 2013-07-15 21:16:57 MSK
(В ответ на комментарий №11)
> При этом garcon applications-merged не использует совсем. 
> Я не уверен, что конструкция <MergeDir>applications-merged</MergeDir> ошибочна,
> если я правильно понимаю, то это аналог <DefaultMergeDirs/>. В стандарте
> написано именно это, а не то, что applications-merged обрабатывается всегда.

Я так понимаю, что конструкция <MergeDir>applications-merged</MergeDir>
вполне допустимая, но поскольку kbuildsycoca4 на ней глючит,
лучше ее убрать пока, чтобы не страдали пользователи.

2 года назад, когда писал эти меню, 
kbuildsycoca4 даже на некоторых комментарях глючил,
пришлось чистить меню файлы от комментариев :(
Comment 13 viy 2013-07-15 21:24:19 MSK
можно сказать, есть 2 бага:
1) крошится kbuildsycoca4
2) в garkon не хватает поддержки 
<DefaultMergeDirs/> == <MergeDir>applications-merged</MergeDir>
повесить оба бага в апстримы,
если починят kbuildsycoca4 -  верну <MergeDir>applications-merged</MergeDir>
если починят garkon - то <DefaultMergeDirs/> уже есть, поэтму
можно будет не возвращать <MergeDir>applications-merged</MergeDir>.
Comment 14 Sergey V Turchin 2013-07-16 14:47:54 MSK
(В ответ на комментарий №12)
> > Я не уверен, что конструкция
>> <MergeDir>applications-merged</MergeDir> ошибочна,
Явно не видно нигде запрета, но исходя из спецификации -- _абсолютно_ лишняя.

> > если я правильно понимаю, то это аналог <DefaultMergeDirs/>.
Она обязана быть в нее встроена по спецификации.

> > В стандарте написано именно это,
> > а не то, что applications-merged обрабатывается всегда.
Написано, что обрабатывается всегда:
"$XDG_CONFIG_DIRS/menus/applications-merged/
The default merge directories included in the <DefaultMergeDirs> element."

> 2 года назад, когда писал эти меню, 
> kbuildsycoca4 даже на некоторых комментарях глючил,
> пришлось чистить меню файлы от комментариев :(
Это я припоминаю.
Comment 15 Sergey V Turchin 2013-07-16 14:51:26 MSK
(В ответ на комментарий №11)
> При этом garcon applications-merged не использует совсем. 
Что можно запустить через strace, чтоб посмотреть, где он шерстит?
Comment 16 Sergey V Turchin 2013-07-16 14:54:41 MSK
Вообще, я из спецификации понял, что XDG_MENU_PREFIX относится только к appllications.menu и более ни к чему. Т.е. к applications-merged не относится. Нужно проверить не применяет ли его garcon к applications-merged.
Comment 17 Mikhail Efremov 2013-07-16 18:57:27 MSK
(В ответ на комментарий №15)
> Что можно запустить через strace, чтоб посмотреть, где он шерстит?

Если только xfce4-panel с плагином меню (garcon - это библиотека).

(В ответ на комментарий №16)
> Вообще, я из спецификации понял, что XDG_MENU_PREFIX относится только к
> appllications.menu и более ни к чему. Т.е. к applications-merged не относится.
> Нужно проверить не применяет ли его garcon к applications-merged.

Да, похоже что применяет. Я вижу попытки открыть /etc/xdg/menus/altlinux-application-merged в выводе strace.

Сейчас проблема в том, что текущий вариант ломает использование меню в SL (там свое меню).
Поэтому я предлагаю пока откатить изменение (или написать <DefaultMergeDirs/> в этом месте, так тоже работает). И дальше уже разбираться в менее авральном режиме.
Comment 18 Mikhail Efremov 2013-07-16 18:58:22 MSK
Переоткрываю.
Comment 19 Sergey V Turchin 2013-07-16 19:04:21 MSK
(В ответ на комментарий №17)
> /etc/xdg/menus/altlinux-application-merged в выводе strace.
Если не "application", а "applications", то, вроде, нормально.
IIRC на каждый X.menu должно проверять X-application-merged .
Comment 20 Sergey V Turchin 2013-07-16 19:05:20 MSK
(В ответ на комментарий №19)
> IIRC на каждый X.menu должно проверять X-application-merged .
Точнее, на каждый X.menu  должно проверять X-merged .
Comment 21 Sergey V Turchin 2013-07-16 19:09:04 MSK
" For example in a system that uses a preferences.menu file to describe an additional menu, the default merge directories included in the <DefaultMergeDirs> element in the preferences.menu file would become $XDG_CONFIG_DIRS/menus/preferences-merged/ "
Comment 22 Sergey V Turchin 2013-07-16 19:10:16 MSK
А так же
" 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 "
Comment 23 Sergey V Turchin 2013-07-16 19:11:43 MSK
Т.е. каталоги типа xfce4-applications-merged нужно включать явно.
Comment 24 Mikhail Efremov 2013-07-16 19:17:09 MSK
(В ответ на комментарий №21)
> " For example in a system that uses a preferences.menu file to describe an
> additional menu, the default merge directories included in the
> <DefaultMergeDirs> element in the preferences.menu file would become
> $XDG_CONFIG_DIRS/menus/preferences-merged/ "

Да, я тоже только что это читал. Т.е. получается, что раскрытие <DefaultMergeDirs> в altlinux-application-merged из altlinux-application.menu как раз правильно.

Из xfce-applications.menu же <DefaultMergeDirs> раскрывается в applications-merged видимо по аналогии с gnome-applications.menu и kde-applications.menu.
Comment 25 Sergey V Turchin 2013-07-16 19:22:35 MSK
(В ответ на комментарий №24)
> получается, что раскрытие
> <DefaultMergeDirs> в altlinux-application-merged из altlinux-application.menu
> как раз правильно.
Да. Только просьба на всякий не путать буквы.
applicationS, а не application.

> Из xfce-applications.menu же <DefaultMergeDirs> раскрывается в
> applications-merged видимо по аналогии с gnome-applications.menu и
> kde-applications.menu.
Если раскрывается, то явно включать applications-merged не нужно, что исправляет падение kbuildsycoca4.
Comment 26 Mikhail Efremov 2013-07-16 19:41:08 MSK
(В ответ на комментарий №25)
> (В ответ на комментарий №24)
> > получается, что раскрытие
> > <DefaultMergeDirs> в altlinux-application-merged из altlinux-application.menu
> > как раз правильно.
> Да. Только просьба на всякий не путать буквы.
> applicationS, а не application.

Да, действительно, извиняюсь.

> > Из xfce-applications.menu же <DefaultMergeDirs> раскрывается в
> > applications-merged видимо по аналогии с gnome-applications.menu и
> > kde-applications.menu.
> Если раскрывается, то явно включать applications-merged не нужно, что
> исправляет падение kbuildsycoca4.

Нет. Я не вижу в спецификации, чтобы applications-merged использовался всегда. Там лишь написано, что <DefaultMergeDirs> по умолчанию раскрывается в applications-merged и что также должно быть в случае использования gnome-applications.menu или kde-applications.menu. То, что garcon ведет себя аналогично и в случае xfce-applications.menu - это уже самодеятельность, впрочем вреда от этого нет. Но другие реализации не обязаны знать, что <DefaultMergeDirs> из xfce-applications.menu должно раскрываться в applications-merged, поэтому явно прописать <MergeDir>applications-merged</MergeDir> как раз самый правильный способ.
Бага в kbuildsycoca4, он должен корректно обрабатывать такую ситуацию.
Comment 27 Sergey V Turchin 2013-07-17 14:09:33 MSK
(В ответ на комментарий №26)
> Нет. Я не вижу в спецификации,
> чтобы applications-merged использовался всегда.
Всегда.
applications.menu используется всегда, занчит и applications-merged используется всегда, как любой X.menu c X-merged. 
Исключение -- к applications.menu может быть добавлен XDG_MENU_PREFIX, но на applications-merged это не влияет.

> Там лишь написано, что <DefaultMergeDirs> по умолчанию раскрывается в
> applications-merged
Нет. Написаано, что applications-merged _всегда_ входит в <DefaultMergeDirs>.

> и что также должно быть в случае использования
> gnome-applications.menu или kde-applications.menu.
Они так называются из-за XDG_MENU_PREFIX.

> То, что garcon ведет себя
> аналогично и в случае xfce-applications.menu - это уже самодеятельность,
Если не цепляет applications-merged при наличии <DefaultMergeDirs>, то да.

> впрочем вреда от этого нет. 
Если приходится явно включать applications-merged, то, как видмте, есть.

> Но другие реализации не обязаны знать, что
> <DefaultMergeDirs> из xfce-applications.menu должно раскрываться в
> applications-merged,
Обязаны, т.к. всем им сказали считать главным файлом именно xfce-applications.menu .

> поэтому явно прописать
> <MergeDir>applications-merged</MergeDir> как раз самый правильный способ.
Нет, т.к. присутствует <DefaultMergeDirs> .

> Бага в kbuildsycoca4, он должен корректно обрабатывать такую ситуацию.
Некорректную ситуацию не должен.
Comment 28 Mikhail Efremov 2013-07-17 15:25:26 MSK
(В ответ на комментарий №27)
> (В ответ на комментарий №26)
> > Нет. Я не вижу в спецификации,
> > чтобы applications-merged использовался всегда.
> Всегда.
> applications.menu используется всегда, занчит и applications-merged
> используется всегда, как любой X.menu c X-merged. 
> Исключение -- к applications.menu может быть добавлен XDG_MENU_PREFIX, но на
> applications-merged это не влияет.

> > Там лишь написано, что <DefaultMergeDirs> по умолчанию раскрывается в
> > applications-merged
> Нет. Написаано, что applications-merged _всегда_ входит в <DefaultMergeDirs>.

Там ниже же сказано, что the first part of the name of the default merge directory is derived from the name of the .menu file.
Впрочем, похоже в главном меню оно действительно должно раскрываться в applications-merged, в спецификации это как-то не слишком ясно написано.

> > Но другие реализации не обязаны знать, что
> > <DefaultMergeDirs> из xfce-applications.menu должно раскрываться в
> > applications-merged,
> Обязаны, т.к. всем им сказали считать главным файлом именно
> xfce-applications.menu .

Да, может быть, см. выше.

> > поэтому явно прописать
> > <MergeDir>applications-merged</MergeDir> как раз самый правильный способ.
> Нет, т.к. присутствует <DefaultMergeDirs> .

Не присутствует. Поэтому applications-merged сейчас и не используется совсем. Я же говорю, если на место <MergeDir>applications-merged</MergeDir> поставить <DefaultMergeDirs/>, то все опять работает как надо.

> > Бага в kbuildsycoca4, он должен корректно обрабатывать такую ситуацию.
> Некорректную ситуацию не должен.

Вообще любая программа должна корректно обрабатывать неправильные входные данные и не падать, это же основы.
Но да ладно,  на самом деле он падает на меню SL, похоже. Если его убрать, то вроде не падает и с <MergeDir>applications-merged</MergeDir>.
Так что прошу вернуть как было (ну или вместо <MergeDir>applications-merged</MergeDir> написать <DefaultMergeDirs/>, даже не знаю как лучше/правильнее).
С меню же SL будем разбираться отдельно, я сейчас его почитаю.
Comment 29 AEN 2013-07-17 15:30:38 MSK
(В ответ на комментарий №28)
> Так что прошу вернуть как было (ну или вместо
> <MergeDir>applications-merged</MergeDir> написать <DefaultMergeDirs/>, даже не
> знаю как лучше/правильнее).

Решите уж как лучше и проверьте, чтобы viy@ еще раз не дергать.
Comment 30 Sergey V Turchin 2013-07-17 15:44:43 MSK
(В ответ на комментарий №28)
> Там ниже же сказано, что the first part of the name of the default merge
> directory is derived from the name of the .menu file.
X.menu --> X-merged

> Впрочем, похоже в главном меню оно действительно должно раскрываться в
> applications-merged, в спецификации это как-то не слишком ясно написано.
applications.menu --> applications-merged
Исключение: $XDG_MENU_PREFIX  может добавляться к applications.menu и только к нему.
Вполне ясно.

> > Нет, т.к. присутствует <DefaultMergeDirs> .
> Не присутствует.
Блин! Присутствует.
<MergeFile>altlinux-applications.menu</MergeFile> что делает там тогда?
Comment 31 Mikhail Efremov 2013-07-17 16:18:42 MSK
> Но да ладно,  на самом деле он падает на меню SL, похоже.

Не, это я не туда смотрел куда-то. Так и падает и с <MergeDir>applications-merged</MergeDir>, и с <DefaultMergeDirs/>.

(В ответ на комментарий №30)
> > Там ниже же сказано, что the first part of the name of the default merge
> > directory is derived from the name of the .menu file.
> X.menu --> X-merged

Ну да.

> > > Нет, т.к. присутствует <DefaultMergeDirs> .
> > Не присутствует.
> Блин! Присутствует.

Нет. В xfce-applications.menu <DefaultMergeDirs> нет.

> <MergeFile>altlinux-applications.menu</MergeFile> что делает там тогда?

<DefaultMergeDirs> в нем раскрывается в altlinux-applications-merged в полном соответствии со спецификацией. Ведь XDG_MENU_PREFIX="xfce-".
Comment 32 Sergey V Turchin 2013-07-17 17:11:34 MSK
(В ответ на комментарий №31)
> > > > Нет, т.к. присутствует <DefaultMergeDirs> .
> > > Не присутствует.
> > Блин! Присутствует.
> Нет. В xfce-applications.menu <DefaultMergeDirs> нет.
Он есть в altlinux-applications.menu, т.е. присутствует.
 
> > <MergeFile>altlinux-applications.menu</MergeFile> что делает там тогда?
> <DefaultMergeDirs> в нем раскрывается в altlinux-applications-merged в полном
> соответствии со спецификацией.
Не имеет значения по теме.

> Ведь XDG_MENU_PREFIX="xfce-".
Поэтому xfce-applications.menu обязан раскрываться в applications-merged, значит явно мержить не нужно.
Comment 33 Mikhail Efremov 2013-07-17 17:16:10 MSK
Кстати, ln -s applications-merged/ /etc/xdg/menus/altlinux-applications-merged может быть workaround'ом.
Comment 34 Sergey V Turchin 2013-07-17 17:19:18 MSK
А-а-а. Я понял, в чем мои непонятки с <DefaultMergeDirs>.
Я считаю, что он глобальный.
Comment 35 Mikhail Efremov 2013-07-17 17:20:55 MSK
(В ответ на комментарий №32)
> (В ответ на комментарий №31)
> > > > > Нет, т.к. присутствует <DefaultMergeDirs> .
> > > > Не присутствует.
> > > Блин! Присутствует.
> > Нет. В xfce-applications.menu <DefaultMergeDirs> нет.
> Он есть в altlinux-applications.menu, т.е. присутствует.

Не уверен, что спецификацию нужно трактовать именно так. Надо внимательно почитать стандарт по поводу merge.
Comment 36 Sergey V Turchin 2013-07-17 17:27:21 MSK
(В ответ на комментарий №34)
> А-а-а. Я понял, в чем мои непонятки с <DefaultMergeDirs>.
> Я считаю, что он глобальный.
Я сужу по оригинальной реализации -- KDE.
applications-merged там подхватывается в любом случае. Даже если <DefaultMergeDirs> не глобальный, чего не следует из спецификации.
Comment 37 Mikhail Efremov 2013-07-17 18:04:10 MSK
(В ответ на комментарий №36)
> (В ответ на комментарий №34)
> > А-а-а. Я понял, в чем мои непонятки с <DefaultMergeDirs>.
> > Я считаю, что он глобальный.
> Я сужу по оригинальной реализации -- KDE.

Судить надо по стандартам.

> applications-merged там подхватывается в любом случае. Даже если
> <DefaultMergeDirs> не глобальный, чего не следует из спецификации.

В каком смысле глобальный? Всегда присутствует неявно, что ли? Не вижу такого в стандарте. Это такой же элемент как и любой другой, как, например, <Menu>. И должен быть прописан явно в нужном месте (потому что от места тоже многое зависит).
Другое дело, что надо разобраться во что он должен раскрываться в случае включения в меню другого меню через MergeFile. Если MergeFile - тупо загрузка содержимого из файла и интерпретация всех элементов происходит уже после, то garcon неправ и <DefaultMergeDirs> должен раскрываться как будто он стоит в самом xfce-applications.menu. Если же раскрытие <DefaultMergeDirs> происходит во время merge, то он ведет себя корректно.
Comment 38 Sergey V Turchin 2013-07-17 18:19:21 MSK
(В ответ на комментарий №37)
> В каком смысле глобальный?
Значит, если присутствует, то обрабатывается не только применительно к файлу, в котором включен, а ко всем.
Comment 39 Sergey V Turchin 2013-07-17 18:27:56 MSK
В KDE при загрузке любого "X.menu" список для DefaultMergeDirs дополняется элементом "X-merge".
Comment 40 Mikhail Efremov 2013-07-18 17:25:57 MSK
(В ответ на комментарий №39)
> В KDE при загрузке любого "X.menu" список для DefaultMergeDirs дополняется
> элементом "X-merge".

Нигде не сказано, что дополняется. В стандарте написано не слишком внятно, но судя по фразе:
For example in a system that uses a preferences.menu file to describe an additional menu, the default merge directories included in the <DefaultMergeDirs> element in the preferences.menu file would become $XDG_CONFIG_DIRS/menus/preferences-merged/
я скорее согласен с авторами garcon'а, default merge directories _становятся_ X-merged, т.е. default меняется с applications-merged на X-merged.
Согласно http://standards.freedesktop.org/menu-spec/menu-spec-1.0.html#merge-algorithm при включении меню через MergeFile рекурсивно обрабатываются все <MergeFile>, <MergeDir>, <LegacyDir> во включаемом файле. Про DefaultMergeDirs ничего не сказано, но очевидно, что элемент надо раскрыть, чтобы обработать и построить "combined menu". А значит раскрывается он в X-merged (т.е. в altlinux-applications-merged в нашем случае).
В самом же xfce-applications.menu <DefaultMergeDirs/> нет, поэтому applications-merged не используется.
Правильным решением будет заменить <DefaultMergeDirs/> в altlinux-applications.menu на <MergeDir>applications-merged</MergeDir> (потому что именно это там и имелось в виду, я так понимаю).
При этом у меня kbuildsycoca4 не падает и garcon работает правильно.
Сама же конструкция <MergeDir>applications-merged</MergeDir> вполне корректна, конечно, она есть тут, например: http://standards.freedesktop.org/menu-spec/menu-spec-1.0.html#merge-algorithm.
В любом случае решать с этой багой что-то надо, т.к. меню в xfce сейчас сломано, причем сломано и в p7, что задерживает выпуск SL-7.0.1. А я в отпуск хочу :).
Comment 41 AEN 2013-07-18 17:29:11 MSK
(В ответ на комментарий №40)
> В любом случае решать с этой багой что-то надо, т.к. меню в xfce сейчас
> сломано, причем сломано и в p7, что задерживает выпуск SL-7.0.1. А я в отпуск
> хочу :).

2sem@: viy@ сейчас очень-очень занят, хорошо бы решить без него или с его минимальным участием (консультативным).
Comment 42 Sergey V Turchin 2013-07-18 18:33:04 MSK
(В ответ на комментарий №40)
>  т.е. default меняется с applications-merged на X-merged.
Никогда не меняется. 
" $XDG_CONFIG_DIRS/menus/applications-merged/
The default merge directories included in the <DefaultMergeDirs> element. "
Исходя из этого applications-merged обязан быть в него включен!

Исходя из этого же было бы глупо его включать 10 раз при каждом <DefaultMergeDirs> на файл.
Comment 43 Sergey V Turchin 2013-07-18 18:34:47 MSK
(В ответ на комментарий №42)
> Исходя из этого же было бы глупо его включать 10 раз при каждом
> <DefaultMergeDirs> на файл.
Следовательно, достаточно одного <DefaultMergeDirs> на всё.
Comment 44 Sergey V Turchin 2013-07-18 18:41:52 MSK
(В ответ на комментарий №40)
> http://standards.freedesktop.org/menu-spec/menu-spec-1.0.html#merge-algorithm
> при включении меню через MergeFile рекурсивно
> обрабатываются все <MergeFile>,
> <MergeDir>, <LegacyDir> во включаемом файле.
> Про DefaultMergeDirs ничего не
> сказано, но очевидно, что элемент надо раскрыть
Значит, это нужно сделать 1 раз глобально.
Comment 45 Mikhail Efremov 2013-07-18 18:42:56 MSK
(В ответ на комментарий №42)
> (В ответ на комментарий №40)
> >  т.е. default меняется с applications-merged на X-merged.
> Никогда не меняется. 
> " $XDG_CONFIG_DIRS/menus/applications-merged/
> The default merge directories included in the <DefaultMergeDirs> element. "
> Исходя из этого applications-merged обязан быть в него включен!

Нет, написано что в DefaultMergeDirs default merge directories - $XDG_CONFIG_DIRS/menus/applications-merged/

Но 
the default merge directories included in the
<DefaultMergeDirs> element in the preferences.menu file would become
$XDG_CONFIG_DIRS/menus/preferences-merged/

Те.е. default merge directories теперь $XDG_CONFIG_DIRS/menus/preferences-merged/.
X-merged

> Исходя из этого же было бы глупо его включать 10 раз при каждом
> <DefaultMergeDirs> на файл.

Если нужно включить только applications-merged, то <DefaultMergeDirs> достаточно один раз в файле главного меню.
Comment 46 Mikhail Efremov 2013-07-18 18:45:06 MSK
(В ответ на комментарий №41)
> 2sem@: viy@ сейчас очень-очень занят, хорошо бы решить без него или с его
> минимальным участием (консультативным).

Ok, task #100189.
Comment 47 Sergey V Turchin 2013-07-18 18:47:45 MSK
(В ответ на комментарий №46)
> Ok, task #100189.
" When expanding <DefaultMergeDirs> to a list of <MergeDir>, the default locations "
Их много, а вы сейчас в task#100189 сделали ошибку, заменив на один "applications-merged".
Comment 48 Sergey V Turchin 2013-07-18 18:54:12 MSK
(В ответ на комментарий №45)
>  написано что в DefaultMergeDirs default merge directories -
> $XDG_CONFIG_DIRS/menus/applications-merged/
DIRS, а не DIR.
Comment 49 Mikhail Efremov 2013-07-18 19:10:44 MSK
(В ответ на комментарий №47)
> (В ответ на комментарий №46)
> > Ok, task #100189.
> " When expanding <DefaultMergeDirs> to a list of <MergeDir>, the default
> locations "
> Их много, а вы сейчас в task#100189 сделали ошибку, заменив на один
> "applications-merged".

Ок, вобщем вопрос спорный, я по прежнему не вижу, что applications-merged всегда включен в <DefaultMergeDirs>. Возможно убирание <DefaultMergeDirs> действительно приведет к неожиданным эффектам. И вообще не стоит ставить такие эксперименты в p7.
Я бы просто откатил изменения в p7, ломать меню xfce ради запуска в xfce kde-приложений - это странно. К тому же kbuildsycoca4 все равно надо чинить, падать оно не должно.
Пока я просто в SL-меню буду использовать altlinux-applications-merged вместо applications-merged.
Это грязный хак, конечно, меню все равно остается сломанным, но я не вижу сейчас других вариантов.
Comment 50 Sergey V Turchin 2013-07-19 15:49:21 MSK
(В ответ на комментарий №49)
> не вижу, что applications-merged
> всегда включен в <DefaultMergeDirs>
Это черным по белому написано.
А так же DIRS DIRS DIRS DIRS DIRS DIRS.

> в SL-меню буду использовать altlinux-applications-merged вместо
> applications-merged.
Да не вместо, а вместе!
В какой из них класть меню-хи -- уже не важно, если структура меню останется в задуманном виде.
Comment 51 Sergey V Turchin 2013-09-03 19:31:23 MSK
*** Bug 27893 has been marked as a duplicate of this bug. ***
Comment 52 Sergey V Turchin 2013-11-20 18:50:31 MSK
При множественных DefaultMergeDirs тоже падает.
Когда убрал дубли, в LXDE стало возможно пользовать kde4-k3b, например.
Comment 53 Anton Farygin 2015-04-01 16:29:32 MSK
Народ, уже два года баге. Чего не исправляете ?
Comment 54 viy 2015-04-04 22:12:30 MSK
Вопрос, от меня что-то нужно?
2 года назад я <MergeDir>applications-merged</MergeDir> убрал из altlinux-freedesktop-menu-xfce,
что сейчас убрать?
в каком меню дубликаты DefaultMergeDirs вылезают?
Comment 55 Sergey V Turchin 2015-04-06 15:39:07 MSK
(В ответ на комментарий №54)
> в каком меню дубликаты DefaultMergeDirs вылезают?
Если дубликатов больше нигде нет, то закрывайте.

P.S.
kbuildsycoca4 можете сами попробовать.
Comment 56 viy 2015-04-06 16:21:11 MSK
т.е. чтобы воспроизвести креш, что надо?
установить XFCE и под ним запустить kbuildsycoca4?
Comment 57 Sergey V Turchin 2015-04-06 16:24:47 MSK
(В ответ на комментарий №56)
> т.е. чтобы воспроизвести креш, что надо?
Установить все DE , пользующиеся /etc/xdg/menus, кроме KDE4 и запустить в каждом kbuildsycoca4.
Comment 58 Mikhail Efremov 2015-04-06 16:38:09 MSK
С текущим altlinux-freedesktop-menu-xfce в garcon не работает applications-merged/ совсем. В SL я это объехал использованием xfce-applications-merged/ вместо applications-merged/. 
Почитав же стандарт, я был скорее согласен с авторами garcon в их трактовке этого стандарта. Сейчас я уже плохо все это помню, надо опять читать стандарт и код.
Comment 59 Sergey V Turchin 2015-04-06 16:49:03 MSK
 Я тоже на вскижку уже не помню, должени ли цепляться 
applications-merged/ при указании XDG_MENU_PREFIX.

(В ответ на комментарий №58)
> я был скорее согласен с авторами garcon в их трактовке
> этого стандарта.
Если их тарактовка никому из правильно трактующих не мешает жить, то мне всё равно.
Comment 60 Sergey V Turchin 2015-04-06 16:54:58 MSK
Судя по спецификации -- должен.
http://standards.freedesktop.org/menu-spec/latest/ar01s02.html
Comment 61 viy 2015-04-06 17:32:56 MSK
(В ответ на комментарий №57)
> (В ответ на комментарий №56)
> > т.е. чтобы воспроизвести креш, что надо?
> Установить все DE , пользующиеся /etc/xdg/menus, кроме KDE4 и запустить в
> каждом kbuildsycoca4.

ок, понял, спасибо.
Comment 62 Sergey V Turchin 2015-04-07 14:57:06 MSK
(В ответ на комментарий №57)
> запустить в каждом kbuildsycoca4.
Для уверенности даже лучше запускать
kbuildsycoca4 --noincremental
Comment 63 Sergey V Turchin 2016-06-29 16:11:01 MSK
*** Bug 26017 has been marked as a duplicate of this bug. ***