Anybody seeing Pango Issues?

Since 13.1 I’ve descended into Pango limbo. Nothing gnome-related is showing fonts … all I’m seeing is square blocks where text should be displayed. On boot, when I’m prompted for the key for my encrypted file systems, just blocks.

I’m at a loss as to what needs to be fixed.

Anybody else seeing pango issues?

Bill

Not me, but I’ve seen them when upgrading to 12.3.

You should recreate the pango module cache.
Try to run:

sudo pango-querymodules --update-cache

And on a 64-bit system:

sudo pango-querymodules-64 --update-cache

Does that help?

No joy.

I have both the 32 and 64 bit libraries installed, and the cache file in the respective /usr/lib*/pango/1.8.0/modules.cache file is correct. Since plymouth uses pango info on boot, I’ve also run mkinitrd after updating the cache information but still see the problem.

fc-match returns:

arial.ttf: “Arial” “Normal”

So I’m pretty sure my fonts are set up correctly (note: as expected, kde apps seem to work without any problems).

Hm. How do you know the files are correct?
Can you post them? And please check that you don’t have a cache in /etc/pango/ as well.

Do you get any errors/warnings when you run GNOME applications in a terminal window?

Pango problems is one of the reasons I switched to KDE.

There are no cache files in /etc/pango … just a pango.modules and pango64.modules there.

The cache in /usr/lib64/pango/1.8.0:

[HR][/HR]# Pango Modules file

Automatically generated file, do not edit

ModulesPath = /usr/lib64/pango/1.8.0/modules

/usr/lib64/pango/1.8.0/modules/pango-indic-lang.so devaIndicScriptEngineLang PangoEngineLang PangoRenderNone devanagari:*
/usr/lib64/pango/1.8.0/modules/pango-indic-lang.so bengIndicScriptEngineLang PangoEngineLang PangoRenderNone bengali:*
/usr/lib64/pango/1.8.0/modules/pango-indic-lang.so guruIndicScriptEngineLang PangoEngineLang PangoRenderNone gurmukhi:*
/usr/lib64/pango/1.8.0/modules/pango-indic-lang.so gujrIndicScriptEngineLang PangoEngineLang PangoRenderNone gujarati:*
/usr/lib64/pango/1.8.0/modules/pango-indic-lang.so oryaIndicScriptEngineLang PangoEngineLang PangoRenderNone oriya:*
/usr/lib64/pango/1.8.0/modules/pango-indic-lang.so tamlIndicScriptEngineLang PangoEngineLang PangoRenderNone tamil:*
/usr/lib64/pango/1.8.0/modules/pango-indic-lang.so teluIndicScriptEngineLang PangoEngineLang PangoRenderNone telugu:*
/usr/lib64/pango/1.8.0/modules/pango-indic-lang.so kndaIndicScriptEngineLang PangoEngineLang PangoRenderNone kannada:*
/usr/lib64/pango/1.8.0/modules/pango-indic-lang.so mlymIndicScriptEngineLang PangoEngineLang PangoRenderNone malayalam:*
/usr/lib64/pango/1.8.0/modules/pango-indic-lang.so sinhIndicScriptEngineLang PangoEngineLang PangoRenderNone sinhala:*
/usr/lib64/pango/1.8.0/modules/pango-basic-fc.so BasicScriptEngineFc PangoEngineShape PangoRenderFc common:
/usr/lib64/pango/1.8.0/modules/pango-thai-lang.so ThaiScriptEngineLang PangoEngineLang PangoRenderNone thai:*
/usr/lib64/pango/1.8.0/modules/pango-arabic-lang.so ArabicScriptEngineLang PangoEngineLang PangoRenderNone arabic:*
[HR][/HR]
and in /usr/lib/pango/1.8.0:

[HR][/HR]# Pango Modules file

Automatically generated file, do not edit

ModulesPath = /usr/lib/pango/1.8.0/modules

/usr/lib/pango/1.8.0/modules/pango-indic-lang.so devaIndicScriptEngineLang PangoEngineLang PangoRenderNone devanagari:*
/usr/lib/pango/1.8.0/modules/pango-indic-lang.so bengIndicScriptEngineLang PangoEngineLang PangoRenderNone bengali:*
/usr/lib/pango/1.8.0/modules/pango-indic-lang.so guruIndicScriptEngineLang PangoEngineLang PangoRenderNone gurmukhi:*
/usr/lib/pango/1.8.0/modules/pango-indic-lang.so gujrIndicScriptEngineLang PangoEngineLang PangoRenderNone gujarati:*
/usr/lib/pango/1.8.0/modules/pango-indic-lang.so oryaIndicScriptEngineLang PangoEngineLang PangoRenderNone oriya:*
/usr/lib/pango/1.8.0/modules/pango-indic-lang.so tamlIndicScriptEngineLang PangoEngineLang PangoRenderNone tamil:*
/usr/lib/pango/1.8.0/modules/pango-indic-lang.so teluIndicScriptEngineLang PangoEngineLang PangoRenderNone telugu:*
/usr/lib/pango/1.8.0/modules/pango-indic-lang.so kndaIndicScriptEngineLang PangoEngineLang PangoRenderNone kannada:*
/usr/lib/pango/1.8.0/modules/pango-indic-lang.so mlymIndicScriptEngineLang PangoEngineLang PangoRenderNone malayalam:*
/usr/lib/pango/1.8.0/modules/pango-indic-lang.so sinhIndicScriptEngineLang PangoEngineLang PangoRenderNone sinhala:*
/usr/lib/pango/1.8.0/modules/pango-basic-fc.so BasicScriptEngineFc PangoEngineShape PangoRenderFc common:
/usr/lib/pango/1.8.0/modules/pango-thai-lang.so ThaiScriptEngineLang PangoEngineLang PangoRenderNone thai:*
/usr/lib/pango/1.8.0/modules/pango-arabic-lang.so ArabicScriptEngineLang PangoEngineLang PangoRenderNone arabic:*
[HR][/HR]
When I start, say, google-chrome from a shell, this is output:

[HR][/HR][FONT=courier new]ATTENTION: default value of option force_s3tc_enable overridden by environment.
[11112:11112:1122/075536:ERROR:sandbox_linux.cc(142)] InitializeSandbox() called with multiple threads in process gpu-process
(google-chrome:11076): Pango-WARNING **: /usr/lib64/pango/1.8.0/modules/pango-basic-fc.so: undefined symbol: hb_buffer_set_flags
(google-chrome:11076): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type=‘PangoRenderFc’, script=‘common’
(google-chrome:11076): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type=‘PangoRenderFc’, script=‘latin’[/FONT]
[HR][/HR]
Similarly, if I launch my time tracking application, hamster, I see these messages:

[HR][/HR]/usr/lib64/python2.7/site-packages/gobject/init.py:115: Warning: Attempt to add property hamster+widgets+facttree+FactCellRenderer::data after class was initialised
type_register(cls, namespace.get(‘gtype_name’))

** (Time Tracker:11227): WARNING **: Trying to register gtype ‘WnckWindowState’ as enum when in fact it is of type ‘GFlags’

** (Time Tracker:11227): WARNING **: Trying to register gtype ‘WnckWindowActions’ as enum when in fact it is of type ‘GFlags’

** (Time Tracker:11227): WARNING **: Trying to register gtype ‘WnckWindowMoveResizeMask’ as enum when in fact it is of type ‘GFlags’
/usr/lib/python2.7/site-packages/hamster/widgets/activityentry.py:34: PangoWarning: /usr/lib64/pango/1.8.0/modules/pango-basic-fc.so: undefined symbol: hb_buffer_set_flags
gtk.Entry.init(self)
/usr/lib/python2.7/site-packages/hamster/widgets/activityentry.py:34: PangoWarning: failed to choose a font, expect ugly output. engine-type=‘PangoRenderFc’, script=‘common’
gtk.Entry.init(self)
/usr/lib/python2.7/site-packages/hamster/lib/graphics.py:1265: PangoWarning: failed to choose a font, expect ugly output. engine-type=‘PangoRenderFc’, script=‘latin’
width, height = layout.get_pixel_size()
/usr/lib/python2.7/site-packages/hamster/today.py:119: GtkWarning: _gtk_accel_group_attach: assertion ‘g_slist_find (accel_group->acceleratables, object) == NULL’ failed
self.window.add_accel_group(self.accel_group)
[HR][/HR]
The common element, of course, is pango, and that is what has grabbed my attention.

But that is the modules cache, isn’t it? That overrides the cache in /usr/lib(64)/pango.
I don’t have those on my system IIRC, but I can’t check right now.

You could try to rename those files so they won’t be found. But actually I think your real issue is the one below.

The common element, of course, is pango, and that is what has grabbed my attention.

I spot the following:

[FONT=courier new](google-chrome:11076): Pango-WARNING **: /usr/lib64/pango/1.8.0/modules/pango-basic-fc.so: undefined symbol: hb_buffer_set_flags
(google-chrome:11076): Pango-WARNING **: failed to choose a font, expect  ugly output. engine-type='PangoRenderFc', script='common'
(google-chrome:11076): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'[/FONT]
[HR][/HR]/usr/lib/python2.7/site-packages/hamster/widgets/activityentry.py:34:  PangoWarning: /usr/lib64/pango/1.8.0/modules/pango-basic-fc.so:  undefined symbol: hb_buffer_set_flags
  gtk.Entry.__init__(self)
/usr/lib/python2.7/site-packages/hamster/widgets/activityentry.py:34:  PangoWarning: failed to choose a font, expect ugly output.  engine-type='PangoRenderFc', script='common'
  gtk.Entry.__init__(self)
/usr/lib/python2.7/site-packages/hamster/lib/graphics.py:1265:  PangoWarning: failed to choose a font, expect ugly output.  engine-type='PangoRenderFc', script='latin'
  width, height = layout.get_pixel_size()

Error like this usually point to an incompatible mix of packages from different repos or distribution versions.
hb_buffer_set_flags comes from harfbuzz, so please post the output of:

rpm -qi libharfbuzz0

Here’s the output:

[HR][/HR]redbird:~ # rpm -qi libharfbuzz0
Name : libharfbuzz0
Version : 0.9.3
Release : 7.5
Architecture: x86_64
Install Date: Wed Nov 20 07:55:44 2013
Group : System/Libraries
Size : 397096
License : MIT
Signature : DSA/SHA1, Tue Nov 19 21:40:06 2013, Key ID bb1af2330f2672c8
Source RPM : harfbuzz-0.9.3-7.5.src.rpm
Build Date : Tue Nov 19 21:39:43 2013
Build Host : build17
Relocations : (not relocatable)
Vendor : obs://build.opensuse.org/X11
URL : HarfBuzz
Summary : An OpenType text shaping engine
Description :
HarfBuzz is an OpenType text shaping engine.
Distribution: X11:Enlightenment:Factory / openSUSE_Tumbleweed
[HR][/HR]
Fascinating … it’s being pulled out of the Enlightenment Factory

Yeah, strange, since it even is a lower version. Did you have that repo active with a lower priority during upgrade?
Then you should better remove it.
Or maybe there was a conflict somewhere, therefore it didn’t get upgraded.

Run this to install the openSUSE 13.1 version:

sudo zypper in -f libharfbuzz0-0.9.21-1.3

If you get errors, please post them for advice.

That was the problem (harfbuzz - who thinks of these names!). I updated the library and this problem vanished; thanks for your help.

And yes, I have the repo active as I pretty closely track work on Enlightenment. At this point I think I’ll take your advice and lower the priority for the Enlightenment repo and see if there are other libraries that need to be upgraded.

Wow. This will make a good tale tonight at Beer:30.