kbuildsycoca неумеренно потребляет процессор и память при запуске в среде GNOME
http://usalug.org/phpBB2/viewtopic.php?t=14163&sid=619579b1dbf59bac5d7fb04f432f1e9c Похоже, она один раз так делает.
(В ответ на комментарий №1) > http://usalug.org/phpBB2/viewtopic.php?t=14163&sid=619579b1dbf59bac5d7fb04f432f1e9c > > Похоже, она один раз так делает. Нет. Циклит. И именно на Gnome
Как воспроизвести?
(В ответ на комментарий №3) > Как воспроизвести? В среде Gnome запустить kturtle и наблюдать за top
с gnome-овским меню что-то накосячили все работает, если unset XDG_MENU_PREFIX
*** Bug 21046 has been marked as a duplicate of this bug. ***
В нем не должно быть строки <MergeFile>applications.menu</MergeFile> Скопируйте себе в gnome-applications.menu содержимое applications.menu, если оно нужно
Сергей, спасибо!
Досадно :( А почему так происходит, можно пояснить?
(В ответ на комментарий №7) > В нем не должно быть строки > <MergeFile>applications.menu</MergeFile> > Не должно быть такого тега вообще или он несовместим с установленным XDG_MENU_PREFIX? Или бага во включаемом файле, вызывающая зацикливание при интерпретации?
(В ответ на комментарий №10) > Не должно быть такого тега вообще или он несовместим с установленным Не должно быть включения applications.menu в gnome-applications.menu Это равно включению applications.menu в applications.menu, т.е. зацикливание
Можно ссылку на источник? (можно RTFS)
http://standards.freedesktop.org/menu-spec/1.0/ar01s02.html Я не знаю. Для меня очевидно, что это ИЛИ, а не И
Возможно, изврат сработает. Не проверял ln -s applications.menu gnome-applications-common.menu <MergeFile>gnome-applications-common.menu</MergeFile>
Не вижу там ни ИЛИ, ни И. Насколько я вижу, спецификация данный момент не проясняет. Пока сделаю через симлинк, посмотрю что получится.
Через симлинк работает. Забрасываю в Сизиф.
(В ответ на комментарий №16) > Через симлинк работает. Забрасываю в Сизиф. Спасибо! Закрывайте ее.
(В ответ на комментарий №15) > Не вижу там ни ИЛИ, ни И XDG_MENU_PREFIX="any-" && echo /etc/menus/${XDG_MENU_PREFIX}applications.menu Сможешь получить /etc/menus/gnome-applications.menu _И_ /etc/menus/applications.menu на выходе при любом значении XDG_MENU_PREFIX? _ИЛИ_ -- запросто
Не понимаю вопроса. В спецификации нигде не сказано, что ${XDG_MENU_PREFIX}applications.menu не может включать applications.menu. В спецификации говорится о точке входа, и она там описывается вполне однозначно: это ${XDG_MENU_PREFIX}applications.menu. В частном случае, когда графическая среда не выставляет XDG_MENU_PREFIX, это applications.menu. О допустимости включения файлов друг в друга я там не вижу ничего.
Прошу подтвердить исправление.
Не подтверждаю. Фокус с симлинком не прошёл.
(В ответ на комментарий №20) > Прошу подтвердить исправление. Исправлено в дистрибутивах на базе GNOME. Если этого недостаточно — переоткройте.
К сожалению, это только кажется, что исправлено. На самом деле симлинк applications-common.menu не используется при построении меню. С равным успехом этого файла могло бы не существовать.
А у меня со ссылкой не воспроизводиться ни на kbuildsycoca ни на kbuildsycoca4 Или см. #7
Попробуй в файле applications.menu сейчас поменять местами пункты меню. Если результат перемены мест у тебя будет заметен в реальном меню, показывай файлы и рассказывай как тебе это удалось.
Я ж говорю, скопируй себе и меняй, как больше нравиться. Я, вообще, откатил бы последние изменения в applications.menu касательно <Layout>
Хотелось иметь с KDE что-то общее... :( Разобрался, в общем. Всё не так страшно, фокус с симлинком работает, но изменения в организации (с изменениями наполнения всё нормально) меню не подхватываются без перезапуска панели. Скорее всего, gnome-panel слушает изменения файла-симлинка и не слушает изменения файла, на который ссылается симлинк. Это не очень хорошо, но уж точно не дистроблокер.
Между тем спасти kbuildsycoca* (оба) можно ещё и так: перенести нынешнее содержимое applications.menu в applications-common.menu, а в applications.menu оставить что-нибудь вроде <Menu><MergeFile>applications-common.menu</MergeFile></Menu>. Тогда никакого ухода в бесконечную рекурсию не наступает, всё радостно запускается и работает. Но баг на gnome-menus про симлинки исправить в любом случае будет полезно.
(В ответ на комментарий №28) > <Menu><MergeFile>applications-common.menu</MergeFile></Menu>. Нельзя, это теперь GNOME ;-) Ок, сделаю.
(В ответ на комментарий №29) > (В ответ на комментарий №28) > > <Menu><MergeFile>applications-common.menu</MergeFile></Menu>. > Нельзя, это теперь GNOME ;-) > Ок, сделаю. Давай shared task'ом я освобождаю applications-common.menu, а ты его занимаешь :)
Не надо. Я просто другое имя файла возьму.
Хорошо.