Frozen app has no fonts

I’ve frozen a wx app with cx_Freeze, and bundled it in a deb and its working fine on the majority of machines I’ve tested it on, but one machine (ubuntu 13.04) it is running but with no fonts (just empty rectangles for each character for all of the controls)

I get this stderr output when the program starts:

Gtk-Message: Failed to load module “overlay-scrollbar”: liboverlay-scrollbar.so: cannot open shared object file: No such file or directory

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in module_path: “murrine”,

(mainframe:5107): Pango-CRITICAL **: No modules found:

No builtin or dynamically loaded modules were found.

PangoFc will not work correctly.

This probably means there was an error in the creation of:

‘/etc/pango/pango.modules’

You should create this file by running:

pango-querymodules > ‘/etc/pango/pango.modules’

(mainframe:5107): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type=‘PangoRenderFc’, script=‘latin’

(mainframe:5107): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type=‘PangoRenderFc’, script=‘common’

(mainframe:5107): GdkPixbuf-WARNING **: Cannot open pixbuf loader module file ‘/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache’: No such file or directory

I’ve searched a fair bit and most of what I’ve found suggests installing certain packages, but I’m aiming to get an install with no or as few as possible external dependencies - is this going to be possible? Is there something other than pango I can use maybe?

I don’t know if the missing liboverlay-scrollbar.so has anything to do with it as well, or if that’s going to cause a different issue?

I also created that pango.modules file on the build machine. I don’t know what that file’s for but that hasn’t made a difference.

Any advice or pointers would be awesome as I’m really not too sure about this one

Thanks!

Paul Wiseman wrote:

I've frozen a wx app with cx_Freeze, and bundled it in a deb and its
working fine on the majority of machines I've tested it on, but one
machine (ubuntu 13.04) it is running but with no fonts (just empty
rectangles for each character for all of the controls)

I get this stderr output when the program starts:

Gtk-Message: Failed to load module "overlay-scrollbar":
liboverlay-scrollbar.so: cannot open shared object file: No such file or
directory

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in
module_path: "murrine",

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in
module_path: "murrine",

(mainframe:5107): Pango-CRITICAL **: No modules found:
No builtin or dynamically loaded modules were found.
PangoFc will not work correctly.
This probably means there was an error in the creation of:
'/etc/pango/pango.modules'
You should create this file by running:
   pango-querymodules > '/etc/pango/pango.modules'

(mainframe:5107): Pango-WARNING **: failed to choose a font, expect ugly
output. engine-type='PangoRenderFc', script='latin'

I've searched a fair bit and most of what I've found suggests installing
certain packages, but I'm aiming to get an install with no or as few as
possible external dependencies - is this going to be possible? Is there
something other than pango I can use maybe?

I don't know if the missing liboverlay-scrollbar.so has anything to do
with it as well, or if that's going to cause a different issue?

I also created that pango.modules file on the build machine. I don't
know what that file's for but that hasn't made a difference.

Any advice or pointers would be awesome as I'm really not too sure about
this one

What distro and version did you use for the build? Have you experimented with building on ubuntu 13.04 and see if it will work on the 13.04 machine that has the problem? (I expect that it will work there but probably not on earlier releases.)

Basically it sounds to me something like the Linux equivalent of DLL-hell. You've got a binary (the frozen application and/or the dynamic libs it includes) that has a dependency on something that either doesn't exist on the target machine, or that has a different version that is not fully compatible with that thing on the build machine.

Something I've done in the past is to set up a chroot environment containing an older LTS version of ubuntu and make sure it only has the bare minimums installed which are needed for building and nothing else. That way I could ensure that there wouldn't be any accidental dependencies on things that I happen to have installed on my main Linux environment for my own use which are not necessarily needed by the application, and by using an older version of the OS it would be more likely to be compatible with machines that have that version or a newer version of the OS installed.

···

--
Robin Dunn
Software Craftsman

Paul Wiseman wrote:

I’ve frozen a wx app with cx_Freeze, and bundled it in a deb and its

working fine on the majority of machines I’ve tested it on, but one

machine (ubuntu 13.04) it is running but with no fonts (just empty

rectangles for each character for all of the controls)

I get this stderr output when the program starts:

Gtk-Message: Failed to load module “overlay-scrollbar”:

liboverlay-scrollbar.so: cannot open shared object file: No such file or

directory

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in

module_path: “murrine”,

(mainframe:5107): Gtk-WARNING **: Unable to locate theme engine in

module_path: “murrine”,

(mainframe:5107): Pango-CRITICAL **: No modules found:

No builtin or dynamically loaded modules were found.

PangoFc will not work correctly.

This probably means there was an error in the creation of:

‘/etc/pango/pango.modules’

You should create this file by running:

pango-querymodules > ‘/etc/pango/pango.modules’

(mainframe:5107): Pango-WARNING **: failed to choose a font, expect ugly

output. engine-type=‘PangoRenderFc’, script=‘latin’

I’ve searched a fair bit and most of what I’ve found suggests installing

certain packages, but I’m aiming to get an install with no or as few as

possible external dependencies - is this going to be possible? Is there

something other than pango I can use maybe?

I don’t know if the missing liboverlay-scrollbar.so has anything to do

with it as well, or if that’s going to cause a different issue?

I also created that pango.modules file on the build machine. I don’t

know what that file’s for but that hasn’t made a difference.

Any advice or pointers would be awesome as I’m really not too sure about

this one

What distro and version did you use for the build? Have you experimented with building on ubuntu 13.04 and see if it will work on the 13.04 machine that has the problem? (I expect that it will work there but probably not on earlier releases.)

I built the app on linux mint 10, which I think is based on ubuntu 10.10 (maverick). I haven’t tried building the app on 13.04 but I have tried building on not quite so new ubuntu versions and like you say, when I’ve done that it hasn’t worked on earlier versions of ubuntu / mint. I’ve generally had a lot more success building on older versions. I might try building it on 13.04 if I can’t get much further today, but it takes me so long building python, wx, and all the other dependancies and modules :stuck_out_tongue: I imagine as well it would work then, but probably not for older releases like you say.

Basically it sounds to me something like the Linux equivalent of DLL-hell. You’ve got a binary (the frozen application and/or the dynamic libs it includes) that has a dependency on something that either doesn’t exist on the target machine, or that has a different version that is not fully compatible with that thing on the build machine.

I’ve had a lot of trial and error to get it running at all, either not including enough .so files, or including too many and getting seg faults (i think thats from including ones like libc that are built against the kernel?). Do you know if there’s a way to log out the dynamic libs that get loaded at run time? It’d be really useful to see which it’s loading and from where, then I can try placing those from the build system into the frozen app, hopefully I could make some progress that way. It’s really difficult to know if the frozen app is working because it’s depending on system modules that are optional installs or need to be a specific version - I guess the goal is to only depend on system libs that are standard on the majority of distros, and include everything else. I guess as well I could add some dependancies to the deb package instead of trying to include everything, that’s something I’ve not really experimented with much yet.

Something I’ve done in the past is to set up a chroot environment containing an older LTS version of ubuntu and make sure it only has the bare minimums installed which are needed for building and nothing else. That way I could ensure that there wouldn’t be any accidental dependencies on things that I happen to have installed on my main Linux environment for my own use which are not necessarily needed by the application, and by using an older version of the OS it would be more likely to be compatible with machines that have that version or a newer version of the OS installed.

That is probably a good step, the linux mint 10 install I’m building on did start out as just a build machine with the minimum installed, but I’ve installed a bit more since and probably polluted it a bit now - it might be best to set everything up on a clean install.

Thanks for your advice, again, Robin!

···

On 12 July 2013 06:20, Robin Dunn robin@alldunn.com wrote:

Robin Dunn

Software Craftsman

http://wxPython.org

You received this message because you are subscribed to the Google Groups “wxPython-users” group.

To unsubscribe from this group and stop receiving emails from it, send an email to wxpython-users+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.