После обновления gtk-шные приложения перестали распознавать изображения. Пишет что-то в таком роде: (geeqie:23738): Gtk-WARNING **: Error loading theme icon 'folder' for stock: Формат файла изображения не распознан (geeqie:23738): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed (geeqie:23738): Gtk-CRITICAL **: gtk_default_render_icon: assertion `base_pixbuf != NULL' failed (geeqie:23738): Gtk-CRITICAL **: IA__gtk_style_render_icon: assertion `pixbuf != NULL' failed (geeqie:23738): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)'
cat /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache ?
george@grail:~> cat /usr/lib*/gdk-pixbuf-2.0/2.10.0/loaders.cache # GdkPixbuf Image Loader Modules file # Automatically generated file, do not edit # Created by gdk-pixbuf-query-loaders from gdk-pixbuf-2.22.0 # # LoaderDir = /usr/lib64/gtk-2.0/2.10.0/loaders # "/usr/lib64/gtk-2.0/2.10.0/loaders/libopenraw_pixbuf.so" "Digital camera RAW" 0 "gdk-pixbuf" "Digital camera RAW images loader." "LGPL" "image/x-adobe-dng" "image/x-canon-cr2" "image/x-canon-crw" "image/x-nikon-nef" "image/x-olympus-orf" "image/x-pentax-pef" "image/x-sony-arw" "image/x-epson-erf" "image/x-minolta-mrw" "" "dng" "cr2" "crw" "nef" "orf" "pef" "arw" "erf" "mrw" "" "MM *" " z " 80 "II* \020 CR\002 " " z zzz z" 100 "II* " " z" 80 "IIRO" " " 100 " MRM" "z " 100 "II\032 HEAPCCDR" " zzz " 100
(In reply to comment #2) > george@grail:~> cat /usr/lib*/gdk-pixbuf-2.0/2.10.0/loaders.cache > # GdkPixbuf Image Loader Modules file > # Automatically generated file, do not edit > # Created by gdk-pixbuf-query-loaders from gdk-pixbuf-2.22.0 > # > # LoaderDir = /usr/lib64/gtk-2.0/2.10.0/loaders > # > "/usr/lib64/gtk-2.0/2.10.0/loaders/libopenraw_pixbuf.so" > "Digital camera RAW" 0 "gdk-pixbuf" "Digital camera RAW images loader." "LGPL" > "image/x-adobe-dng" "image/x-canon-cr2" "image/x-canon-crw" "image/x-nikon-nef" > "image/x-olympus-orf" "image/x-pentax-pef" "image/x-sony-arw" > "image/x-epson-erf" "image/x-minolta-mrw" "" > "dng" "cr2" "crw" "nef" "orf" "pef" "arw" "erf" "mrw" "" > "MM *" " z " 80 > "II* \020 CR\002 " " z zzz z" 100 > "II* " " z" 80 > "IIRO" " " 100 > " MRM" "z " 100 > "II\032 HEAPCCDR" " zzz " 100 Маловато. Рассказывай как обновлялся. # apt-get install --reinstall libgdk-pixbuf-loaders
> Маловато. > Рассказывай как обновлялся. # apt-get update apt-get dist-upgrade :) > # apt-get install --reinstall libgdk-pixbuf-loaders Помогло, конечно. Спасибо. Только это не у меня одного так. Все мною спрошенные, кто сегодня dist-upgrade делал, на это наткнулись. Вопрос в том, почему этот кеш не сгененрился?
(In reply to comment #4) > > Маловато. > > Рассказывай как обновлялся. > # apt-get update apt-get dist-upgrade :) > > # apt-get install --reinstall libgdk-pixbuf-loaders > Помогло, конечно. Спасибо. > > Только это не у меня одного так. Все мною спрошенные, кто сегодня dist-upgrade > делал, на это наткнулись. Вопрос в том, почему этот кеш не сгененрился? Не знаю, у меня на двух машинах обновление прошло успешно, посттрансфайлтриггер отработал, как должно.
Кстати, libopenraw надо заточить под libgdk-pixbuf
Мне помогло только после полной перезагрузки системы. До этого файл /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache упорно не менялся.
У меня подобные шуточки как-то случились при локальной сборке из-за разницы времён. Время при запаковки файла проставляется локальное, а при установке интерпретируется по Гринвичу, т. е. на четыре часа новее. В течение этих четырёх часов из пакета ставятся файлы будущего; соответственно, они новее любых только что заведённых.
(В ответ на комментарий №4) > > Маловато. > > Рассказывай как обновлялся. > # apt-get update apt-get dist-upgrade :) > > # apt-get install --reinstall libgdk-pixbuf-loaders > Помогло, конечно. Спасибо. аналогично.
(В ответ на комментарий №4) > # apt-get update apt-get dist-upgrade :) > > # apt-get install --reinstall libgdk-pixbuf-loaders > Помогло, конечно. Спасибо. > > Только это не у меня одного так. Все мною спрошенные, кто сегодня dist-upgrade > делал, на это наткнулись. Вопрос в том, почему этот кеш не сгененрился? Возможно "подземный стук", но... обновлял 2 системы 586 и 86_64 соотв. Первая - без проблем, вторая - без значков. Отличие между системами в наличии на 86_64 gdk-pixbuf и gdk-pixbuf-loaders (видимо от следы старых обновлений). apt-get install --reinstall libgdk-pixbuf-loaders && reboot - не помогло, кертинки появились после выноса apt-get remove gdk-pixbuf-loaders && reboot. Может это как-то влияло?
Проапгрейдился сегодня. Все повторилось...
(В ответ на комментарий №3) > Рассказывай как обновлялся. > # apt-get install --reinstall libgdk-pixbuf-loaders Сначала с el-smp переехал на un-def, а потом сделал apt-get dist-upgrade. Приведенное решение помогло.
*** Bug 24363 has been marked as a duplicate of this bug. ***
libgdk-pixbuf-2.22.0-alt2 -> sisyphus: * Mon Oct 11 2010 Yuri N. Sedunov <aris@altlinux> 2.22.0-alt2 - reduced priority for gdk-pixbuf-query-loaders-2.0.filetrigger (closes #24352)
Считаю, что это странное поведение gdk-pixbuf-query-loaders: # /usr/bin/gdk-pixbuf-query-loaders | grep LoaderDir # LoaderDir = /usr/lib/gtk-2.0/2.10.0/loaders Поэтому просто reinstall не помогает. Кому-то помог reboot. Мне помогло следующее: # GDK_PIXBUF_MODULEDIR=/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders /usr/bin/gdk-pixbuf-query-loaders --update-cache Рекомендую.
*** Bug 24396 has been marked as a duplicate of this bug. ***
Мне совет от ildar что-то не помог. Но от проблемы можно избавиться, вписав в ~/.bashrc строку export GDK_PIXBUF_MODULE_FILE=/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
После dist-upgrade и перелогина в kde заработало и без установки GDK_PIXBUF_MODULE_FILE
Что-то не заметно, что проблема решилась в ibgdk-pixbuf-2.22.0-alt2 Мне помогло следующее: # rpm -e libgdk-pixbuf --nodeps # apt-get -f install # /usr/bin/gdk-pixbuf-query-loaders --update-cache (потому что кэш сам не создался) Ещё нужно проследить, что в выводе env под пользователем нет подозрительных переменных GDK_PIXBUF_*.
(In reply to comment #19) > Что-то не заметно, что проблема решилась в ibgdk-pixbuf-2.22.0-alt2 > Мне помогло следующее: > # rpm -e libgdk-pixbuf --nodeps > # apt-get -f install > # /usr/bin/gdk-pixbuf-query-loaders --update-cache > (потому что кэш сам не создался) Разумеется, не создался -- надо переустанавливать libgdk-pixbuf-loaders. Вобщем, для сизифа пофиксить проблему на уровне пакета не представляется возможным. Для p5/5.1 надо собрать libgtk+2, в которой соответствующий посттрансфайлтриггер при обновлении будет гарантировано выполняться до такового из libgdk-pixbuf.
Что-то мне кажется, что проблему на уровне пакета можно решить. Иначе вообще в чём смысл dist-upgrade — чтобы потом хвосты подбирать на куче машин?
(In reply to comment #21) > Что-то мне кажется, что проблему на уровне пакета можно решить. Не исключено, -- проверьте http://ftp.altlinux.org/pub/people/gnome/delayed/gdk-pixbuf/
Тоже напоролся -- плюс отлетели кнопки назад-вперёд в firefox (но не reload, stop или home). После sudo /usr/bin/gdk-pixbuf-query-loaders --update-cache не появились. Сейчас дист-апгрейжусь с подключением rpm http://ftp.altlinux.org/pub/people/gnome/delayed/gdk-pixbuf i586 hasher 2 aris: а что, триггер (не файловый, а старый недобрый обычный) тоже никак? Можешь описать проблему, постараюсь добраться? (на всякий -- /usr/share/doc/rpm-4.0.4/manual/triggers)
А кнопки в firefox - это отсюда же? У меня их-двух тоже нет, хотя все остальное - починилось обновлением libgdk-pixbuf-loaders.
(В ответ на комментарий №24) > А кнопки в firefox - это отсюда же? У меня их-двух тоже нет, хотя все остальное > - починилось обновлением libgdk-pixbuf-loaders. Кстати, наблюдается при использовании fvwm на свежепоставленном Кентавре. Каких-то значков не хватает.
> Каких-то значков не хватает. Оно даже говорит каких: (xulrunner:13162): Gtk-WARNING **: Error loading theme icon 'gtk-go-forward-ltr' for stock: Icon 'gtk-go-forward-ltr' not present in theme (xulrunner:13162): Gtk-WARNING **: Error loading theme icon 'gtk-go-back-ltr' for stock: Icon 'gtk-go-back-ltr' not present in theme
(In reply to comment #24) > А кнопки в firefox - это отсюда же? Извиняюсь, не оно -- gqview и впрямь починился после обновления из сизифа с указанным в #c23 репо.
(В ответ на комментарий №26) > > Каких-то значков не хватает. > > Оно даже говорит каких: > (xulrunner:13162): Gtk-WARNING **: Error loading theme icon > 'gtk-go-forward-ltr' for stock: Icon 'gtk-go-forward-ltr' not present in theme > (xulrunner:13162): Gtk-WARNING **: Error loading theme icon 'gtk-go-back-ltr' > for stock: Icon 'gtk-go-back-ltr' not present in theme [cas@localhost ~]$ rpm -qf `find /usr/share/icons/ -name gtk-go-back-ltr\*` --qf '%{name} %{size}\n' | sort | uniq icon-theme-oxygen 28545471 tango-icon-theme 7477795 Вот и думай, где взять самое маленькое зло. :)
(В ответ на комментарий №28) > Вот и думай, где взять самое маленькое зло. :) Есть и другие варианты: gnome-icon-theme 8592333 gtk2-theme-nimbus 9949465 icon-theme-crux 438181 icon-themes-accessibility 1739966 icon-theme-simple 22173337 Однако почему Вы пишите слово "маленькое"? firefox-3.6 3402784 xulrunner-192 5814494 xulrunner-192-libs 18498296
И что же теперь делать с FireFox'ом? icon-theme-oxygen 26686382 kde4artwork-icon-theme-nuvola 17694276 tango-icon-theme 7477795
(В ответ на комментарий №30) > И что же теперь делать с FireFox'ом? > > icon-theme-oxygen 26686382 > kde4artwork-icon-theme-nuvola 17694276 > tango-icon-theme 7477795 Надо прописывать минимальный пакет с GTKшными значками.
А что дало переименование триггера gdk-pixbuf-*.filetrigger в 100gdk-pixbuf-*.filetrigger? Раньше кого он стал выполняться?
(В ответ на комментарий №32) > А что дало переименование триггера gdk-pixbuf-*.filetrigger в > 100gdk-pixbuf-*.filetrigger? Раньше кого он стал выполняться? Ничего не дало. Проблема было в другом. Исправлено в libgdk-pixbuf-2.22.0-alt3.
А в чём была проблема? Кто-то выставлял левое значение в GDK_PIXBUF_MODULEDIR?
(В ответ на комментарий №34) > А в чём была проблема? Кто-то выставлял левое значение в GDK_PIXBUF_MODULEDIR? Да.
Кто выставлял левое значение GDK_PIXBUF_MODULEDIR?
(В ответ на комментарий №36) > Кто выставлял левое значение GDK_PIXBUF_MODULEDIR? /etc/profile.d/libgtk+2.{sh,csh}, которых больше нет.