Bug #14427 tarball fails to compile
Submitted: 28 Oct 2005 14:14 Modified: 16 May 2006 22:29
Reporter: Mark Johnson (Basic Quality Contributor) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Query Browser Severity:S3 (Non-critical)
Version:1.1.17 OS:Linux (linux (2.6.12; slackware 10.2)
Assigned to: Alfredo Kojima CPU Architecture:Any

[28 Oct 2005 14:14] Mark Johnson
Description:
The build of mysql-gui-common failed.  Here is the last part of the output from make:
if g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"mysql-gui-common\" -DVERSION=\"0.6.0\"  -I. -I. -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -I/usr/include/libglade-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libxml2 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include   -I/usr/include/mysql -march=i486 -mcpu=i686 -I../../library/include -I../../library/shared_include -I../../library_grt/include -I../../library_grt_modules/include -I../../library_grt_workbench/include -I../../library_gc/include -I../../library_gc/ftgl/include -I.. -DDATADIRNAME=\""share"\" -DCOMMONDIRNAME=\"""\"    -g -O2 -MT MGTableEditor.o -MD -MP -MF ".deps/MGTableEditor.Tpo" -c -o MGTableEditor.o MGTableEditor.cc; \
then mv -f ".deps/MGTableEditor.Tpo" ".deps/MGTableEditor.Po"; else rm -f ".deps/MGTableEditor.Tpo"; exit 1; fi
MGTableEditor.cc: In constructor `MGTableEditor::MGTableEditor(bool)':
MGTableEditor.cc:229: error: `get_entry' undeclared (first use this function)
MGTableEditor.cc:229: error: (Each undeclared identifier is reported only once
   for each function it appears in.)
MGTableEditor.cc: In member function `void
   MGTableEditor::show_table_info(MYX_DBM_TABLE_DATA*)':
MGTableEditor.cc:314: error: `get_entry' undeclared (first use this function)
MGTableEditor.cc: In member function `void
   MGTableEditor::show_column_info(MYX_DBM_TABLE_DATA*, const Gtk::TreeIter&)':
MGTableEditor.cc:471: error: `get_entry' undeclared (first use this function)
MGTableEditor.cc: In member function `void
   MGTableEditor::show_fk_info(MYX_DBM_TABLE_DATA*, const Gtk::TreeIter&)':
MGTableEditor.cc:701: error: `get_entry' undeclared (first use this function)
MGTableEditor.cc: In member function `void MGTableEditor::column_edited(const
   Glib::ustring&, const Glib::ustring&, int)':
MGTableEditor.cc:1192: error: `get_entry' undeclared (first use this function)
MGTableEditor.cc: In member function `void
   MGTableEditor::column_option_changed(const char*)':
MGTableEditor.cc:1314: error: `get_entry' undeclared (first use this function)
MGTableEditor.cc: In member function `void
   MGTableEditor::fk_option_changed(const char*)':
MGTableEditor.cc:1616: error: `get_entry' undeclared (first use this function)
MGTableEditor.cc: In member function `void MGTableEditor::commit_changes()':
MGTableEditor.cc:1797: error: `get_entry' undeclared (first use this function)
make[2]: *** [MGTableEditor.o] Error 1
make[2]: Leaving directory `/mnt/raid/download/computer/software/mysql/src/mysql-query-browser-1.1.17/mysql-gui-common/source/linux'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/raid/download/computer/software/mysql/src/mysql-query-browser-1.1.17/mysql-gui-common/source'
make: *** [all-recursive] Error 1

NOTE: I have glade-2.6.0, gtkmm-2.4.11 and glibmm-2.4.7 installed.  I am using gcc version 3.3.6.

How to repeat:
cd mysql-gui-common
./configure
make

Suggested fix:
In tags/linux-before-gtkmm2.4/MGGladeXML.h and source/linux/MGGladeXML.h, there are declarations for get_entry:
Gtk::Entry *get_entry(const Glib::ustring &name) const;
However, the failing call to it passes no argument.  Is it intended to call the default constructor for ustring?
Is configure not checking for glade, gtkmm or glibmm properly?  Perhaps, I have a version of one which is too old, and configure did not detect this.
Is there a file missing from the tarball? (seems unlikely)
I am not familiar with these libraries, so my questions can be taken as "guesses".
[3 Nov 2005 15:04] Valeriy Kravchuk
Thank you for a problem report. 

It looks like gtkmm 2.6.x is really needed to compile this tarball. You used gtkmm-2.4... Apparently Gtk::ComboBoxEntry::get_entry() is only available in gtkmm 2.6.11. Please, upgrade, try to compile once more and inform about the results.
[4 Nov 2005 20:13] Mark Johnson
I went to gtkmm.org.  The latest version of that is 2.6.5.  I upgraded to it (which also required an update to glibmm-2.6.1).

The tarball now compiles.  So it looks like configure is not correctly checking the version of gtkmm.  Thanks for the help.
[6 Nov 2005 8:00] Valeriy Kravchuk
configure is not correctly checking the version of gtkmm - that is the problem we just verified.
[16 May 2006 22:29] Alfredo Kojima
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

The sources have been modified to remove things specific to gtkmm-2.6