Bug 13286

Summary: cairomm and cairo linking problem
Product: cairo Reporter: Wojtek Kulczycki <wojtek_kulczycki>
Component: generalAssignee: Carl Worth <cworth>
Status: RESOLVED NOTOURBUG QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: normal    
Priority: medium    
Version: 1.4.9   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Wojtek Kulczycki 2007-11-17 08:42:18 UTC
Dear Cairo Community,

I'm not sure if this is a bug or is it configuration problem in my system (Suse 10.3 with kernel: 2.6.23.1). I'm trying to compile Mysql Query Browser, which needs cairo and cairomm libraries. I have downloaded those from opensuse.org site:

# rpm -qa | grep cairo

cairomm-1.2.2-85
cairo-devel-1.4.10-25
cairo-1.4.10-25
cairomm-devel-1.2.2-85
python-cairo-1.2.2-91

Then I was able to install some other dependencies (for instance libgtkhtml3.14). The problem starts when I try to compile mysql GUI query browser:

make[3]: Entering directory `/usr/src/packages/SOURCES/mysql-gui-tools-5.0r12/mysql-query-browser/source/linux'
g++  -g -O2   -o mysql-query-browser-bin  main.o html.o MGCellRendererBlob.o MGCellRendererText.o MQPreferences.o MQPreferencesEditor.o MGResultSetModel.o MQQueryDispatcher.o MQMainWindow.o MQResultSetView.o MQWorkArea.o MQBaseTab.o MQResultTab.o MQScriptEditorTab.o MQBookmarks.o MQHistory.o MQBookmarkBrowser.o MQHistoryBrowser.o MQFunctionBrowser.o MQNewBookmarkDialog.o MQIndicatorCellRenderer.o MQQueryParameters.o MGCodeEditor.o MQBaseModule.o MQSavedState.o MGCompletionList.o ../../library/source/libqb.a ../../../mysql-gui-common/source/linux/libqbcommongui.a ../../../mysql-gui-common/library/base-library/source/.libs/libmysqlx.a ../../../mysql-gui-common/library/utilities/source/.libs/libguiutil.a ../../../mysql-gui-common/library/sql-parser/source/.libs/libsqlparser.a ../../source/linux/gtksourceview/gtksourceview/.libs/libgtksourceview-1.0.a -L/usr/lib/mysql -lmysqlclient_r -lz -lpthread -lcrypt -lnsl -lm -lpthread -pthread -L/usr/local/lib -lgtkhtml-3.14 -lgnomeui-2 -lSM -lICE -lglade-2.0 -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt -lbonobo-2 -lbonobo-activation -lart_lgpl_2 -lgconf-2 -lORBit-2 -lgthread-2.0 -lrt -lxml2 -lgtkmm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lgtk-x11-2.0 -lpangomm-1.4 -lcairomm-1.0 -lglibmm-2.4 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   -L/usr/lib -lpcre  
/usr/lib/libcairomm-1.0.so: undefined reference to `cairo_glitz_surface_create'
collect2: ld returned 1 exit status
make[3]: *** [mysql-query-browser-bin] Error 1
make[3]: Leaving directory `/usr/src/packages/SOURCES/mysql-gui-tools-5.0r12/mysql-query-browser/source/linux'

I have been trying to google for cairo_glitz_surface_create without much of a success.

I'm passing on this problem to you hoping that you might have already know it.
However let me apologize if this problem is not relevant for this list.

many thanks,
Wojtek
Comment 1 Carl Worth 2007-11-17 11:56:25 UTC
(In reply to comment #0)
> I'm not sure if this is a bug or is it configuration problem in my system (Suse
> 10.3 with kernel: 2.6.23.1). I'm trying to compile Mysql Query Browser, which
> needs cairo and cairomm libraries. I have downloaded those from opensuse.org
> site:

So this looks like a disagreement between the cairo-using code you're trying
to compile and the way cairo was configured when compiled for the opensuse packages.

> /usr/lib/libcairomm-1.0.so: undefined reference to `cairo_glitz_surface_create'

This means that the program you are using expects cairo's "glitz" backend to be configured/compiled in. But the opensuse packages you are using do not have the glitz backend enabled.

That packaging is actually expected, (the glitz backend is still "experimental" in cairo since the glitz library hasn't had been released with any API stability guarantee yet).

I'd suggest fixing the cairo-using code to test at compile time if the glitz backend is available. It can do this by using:

   #if CAIRO_HAS_GLITZ_SURFACE
      ... cairo-glitz code here
   #endif

Good luck!

-Carl

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.