[devel] gtk-update-icon-cache filetrigger (+ libtcl deficiency)

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Сен 10 01:18:04 MSD 2008


On Wed, Sep 10, 2008 at 01:04:08AM +0400, Dmitry V. Levin wrote:
> On Wed, Sep 10, 2008 at 12:23:45AM +0400, Alexey Tourbin wrote:
> [...]
> > Посмотрим, какой расклад мы имеем с кешем gtk2.  Библиотека libgtk+2
> > использует кеш по умолчанию, если он существует (это ускоряет запуск
> > приложений, а также экономит память, т.к. иконки расшариваются между
> > приложениями).  Есть стандартная программа обновления кеша
> > gtk-update-icon-cache.  Кроме библиотеки libgtk+2 этот кеш больше никто
> > не использует.
> > 
> > Следуя принципу правильной группировки файлов в пакетах, можно
> > заключить, что библиотеку libgtk+2, программу gtk-update-icon-cache
> > и триггер /usr/lib/rpm/gtk-icon-cache.filetrigger следует запаковать
> > в один и тот же пакет (libgtk+2).
> > 
> > Принцип правильной группировки файлов между пакетами состоит в том,
> > что совместно используемые файлы нужно паковать в один и тот же пакет.
> > Действительно, программа gtk-update-icon-cache сама по себе, по
> > отдельности, имеет мало смысла (т.к. результат её работы представляет
> > интерес только для библиотеки libgtk+2).  А триггер
> > /usr/lib/rpm/gtk-icon-cache.filetrigger, в свою очередь, сможет сделать
> > что-либо только при наличии программы gtk-update-icon-cache.  Короче,
> > эти две программы просто "обслуживают" библиотеку libgtk+2.
> > 
> > С другой стороны, этот принцип не является настолько однозначным, чтобы
> > можно было применять его механически.  Нужно думать.  Ведь библиотека
> > libgtk+2, хотя и использует кеш иконок по умолчанию, всё же обходится
> > без него, если кеш отсутствует.  Так что кто-то может возразить, что
> > мы кладём в libgtk+2 лишние файлы, без которых, строго говоря, можно
> > обойтись.  На что мы можем парировать позитивной интерпретацией: кеш
> > иконок работает "из коробки" (а в противном случае возможны проблемы
> > с инвалидацией кеша, то есть битые иконки в приложениях).
> 
> Существует как минимум один распространённый тип использования libgtk+2,
> при котором кэш иконок не используется совершенно: libgtk+2-devel.  Так
> что в библиотеке libgtk+2, запакованной без вспомогательных инструментов
> обновления этого кэша, есть вполне понятный смысл.

То есть это использование libgtk+2 в сборочной среде только для
линковки, но не для запуска настоящих приложений?  Ну, по-моему,
это очень специфический паттерн использования разделяемых библиотек,
хотя нам он и кажется распространенным. :)

> Тоже самое, наверное, можно сказать и про libtcl.

Нет, имеет место быть цепочка зависимостей
tcl-devel -> tcl -> libtcl
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080910/1aa0f3a6/attachment-0002.bin>


Подробная информация о списке рассылки Devel