Bug #60998 Compile Time Failure mysql-workbench-gpl-5.2.33-src
Submitted: 28 Apr 2011 20:10 Modified: 24 May 2011 22:17
Reporter: John Anderson Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Workbench Severity:S2 (Serious)
Version:5.2.33b OS:Linux (Foresight Linux)
Assigned to: CPU Architecture:Any

[28 Apr 2011 20:10] John Anderson
Description:
The following error occurs at compile time:

/usr/include/gtkmm-2.4/gtkmm/treeview.h: In constructor 'mforms::gtk::PanelImpl::PanelImpl(mforms::Panel*, mforms::PanelType)':
/usr/include/gtkmm-2.4/gtkmm/treeview.h:200: error: 'Gtk::TreeView::TreeView(const Gtk::TreeView&)' is private
gtk/src/../lf_panel.h:52: error: within this context
gtk/src/../lf_panel.h:58: warning: enumeration value 'FilledHeaderPanel' not handled in switch
gtk/src/../lf_imagebox.h: In member function 'void mforms::gtk::ImageBoxImpl::on_realize()':
gtk/src/../lf_imagebox.h:63: warning: passing 'double' for argument 1 to 'Glib::RefPtr<Gdk::Pixbuf> Gdk::Pixbuf::scale_simple(int, int, Gdk::InterpType) const'
gtk/src/../lf_imagebox.h:65: warning: passing 'double' for argument 2 to 'Glib::RefPtr<Gdk::Pixbuf> Gdk::Pixbuf::scale_simple(int, int, Gdk::InterpType) const'
gtk/src/../lf_imagebox.h:67: warning: passing 'double' for argument 1 to 'Glib::RefPtr<Gdk::Pixbuf> Gdk::Pixbuf::scale_simple(int, int, Gdk::InterpType) const'
gtk/src/../lf_imagebox.h:69: warning: passing 'double' for argument 2 to 'Glib::RefPtr<Gdk::Pixbuf> Gdk::Pixbuf::scale_simple(int, int, Gdk::InterpType) const'
../../library/grt/src/grtpp.h: At global scope:
../../library/grt/src/grtpp.h:1821: warning: 'class grt::PropertyBase' has virtual functions but non-virtual destructor
../../library/grt/src/grtpp.h:1821: warning: 'class grt::PropertyBase' has virtual functions but non-virtual destructor

The error seems to be in the way that classes from /usr/include/gtkmm-2.4/gtkmm/treeview.h are used.  This treeview.h header is provided by gtkmm 2.16.0, the configure script seems to check for gtkmm-2.4 >= 2.8 from pkgconfig, so this version of gtkmm should be valid.

The compiler command, including all CFLAGS, which generates the error from make is:

 g++ -DHAVE_CONFIG_H -I. -I../.. -pthread -I/usr/include/libglade-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libxml2 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtkmm-2.4 -I/usr/lib64/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib64/giomm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib64/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include -I/usr/include/cairomm-1.0 -DORBIT2=1 -pthread -I/usr/include/libgnome-2.0 -I/usr/include/orbit-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-vfs-2.0 -I/usr/lib64/gnome-vfs-2.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I../../library/forms -I../../library/forms/mforms -I../../backend/wbpublic -I../../frontend/linux/linux_utilities -I../../library/grt/src -I../../library/base -I../../ext/vsqlite -I../../library/ -I../../ext -I../../ext/tinyxml -I../../ext/scintilla/include -O2 -g -D_FORTIFY_SOURCE=2 -fstack-protector -I/usr/include/pcre/ -L/usr/lib64/xorg.mesa.3d/ -Wextra -Wall -Wno-unused -Wno-deprecated -DTIXML_USE_STL=1 -MT lf_label.lo -MD -MP -MF .deps/lf_label.Tpo -c gtk/src/lf_label.cpp  -fPIC -DPIC -o .libs/lf_label.o

How to repeat:
1.) Install gtk-2.16.x and gtkmm-2.16.0, then configure, make & make install.  

Suggested fix:
If a newer gtkmm is required, then I guess all that needs to be done is update the PKG_CONFIG check in the configure.ac.   If an older gtk-mm is required, then I'm not really sure if the code should be updated to the new gtk-mm API or not.
[24 May 2011 22:17] Alfredo Kojima
Required minimal version has been changed to 2.12 since 5.2.34