Following my earlier post of MySQL Workbench 1.0.1 for Linux and logging a MySQL Bug, I’ve had the Bug verified, and the a further update of a compiler success. Details of compile from Bug #16880
Compiled with:
`
- glibmm-2.8.1
- gtk+-2.8.8
- libsigc++-2.0.11
`
I’ve got:
<br /> libsigc++-2.0.17<br /> glib-2.6.6<br /> glibmm-2.6.1<br /> atk-1.9.0<br /> pango-1.8.2<br /> gtk+-2.6.9<br /> gtkmm-2.6.5<br /> lua-5.0.2<br />
So starting with the obvious downgrading of libsigc++
<br /> $ su -<br /> $ cd /src<br /> $ wget http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.0/libsigc++-2.0.11.tar.gz<br /> $ tar xvfz libsigc++-2.0.11.tar.gz<br /> $ cd libsigc++-2.0.11<br /> $ ./configure --prefix=/usr<br /> make<br /> make install<br />
Now to retrace the MySQL compiling.
<br /> $ su -<br /> $ cd /src<br /> $ wget ftp://ftp.mysql.com/pub/mysql/download/mysql-workbench-1.0.1.tar.gz<br /> $ tar xvfz mysql-workbench-1.0.1.tar.gz<br /> $ cd mysql-workbench-1.0.1<br /> $ cd mysql-gui-common<br /> $ ./configure --enable-grt --enable-canvas<br /> $ make<br />
No errors, a sound start.
<br /> $ cd ../mysql-workbench/<br /> $ ./configure<br /> $ make<br /> ../../../mysql-gui-common/library_gc/source/libgcanvas.a(myx_gc_gl_helper.o)(.text+0x1b5): In function `getProcAddress(char const*)':<br /> /src/mysql-workbench-1.0.1/mysql-gui-common/library_gc/source/myx_gc_gl_helper.cpp:264: undefined reference to `glXGetProcAddress'<br /> collect2: ld returned 1 exit status<br /> make[3]: *** [mysql-workbench-bin] Error 1<br /> make[3]: Leaving directory `/src/mysql-workbench-1.0.1/mysql-workbench/source/linux'<br /> make[2]: *** [all] Error 2<br /> make[2]: Leaving directory `/src/mysql-workbench-1.0.1/mysql-workbench/source/linux'<br /> make[1]: *** [all-recursive] Error 1<br /> make[1]: Leaving directory `/src/mysql-workbench-1.0.1/mysql-workbench/source'<br /> make: *** [all-recursive] Error 1<br />
Crash and burn. So try to reproduce with the more accurate libraries. Of course it’s a bit of trial and error, here is the end result in order, but it was much more difficult as previously to get this.
`
$ cd /src
$ wget ftp://ftp.gtk.org/pub/gtk/v2.8/pango-1.10.2.tar.gz
$ tar xvfz pango-1.10.2.tar.gz
$ cd pango-1.10.2
$ ./configure –prefix=/usr
$ make
$ make install
$ wget ftp://ftp.gtk.org/pub/gtk/v2.8/glib-2.8.6.tar.gz
$ tar xvfz glib-2.8.6.tar.gz
$ cd glib-2.8.6
$ ./configure –prefix=/usr
$ make
$ make lib
$ wget ftp://ftp.gtk.org/pub/gtk/v2.8/atk-1.10.3.tar.gz
$ tar xvfz atk-1.10.3.tar.gz
$ cd atk-1.10.3
$ ./configure –prefix=/usr
$ make
$ make install
(sigc++-2.0 >= 2.0.0 glib-2.0 >= 2.8.0 gobject-2.0 >= 2.8.0 gmodule-2.0 >= 2.8.0)
Latest is 2.8.4
$ wget http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.8/glibmm-2.8.1.tar.gz
$ tar xvfz glibmm-2.8.1.tar.gz
$ cd glibmm-2.8.1
$ ./configure –prefix=/usr
$ make
$ make install
New Requirements for gtk 2.8.8
$ wget ftp://ftp.gtk.org/pub/gtk/v2.8/dependencies/cairo-1.0.2.tar.gz
$ tar xvfz cairo-1.0.2.tar.gz
$ cd cairo-1.0.2
$ ./configure –prefix=/usr
$ make
$ make install
Pango not found. Pango built with Cairo support is required
$ cd /src/pango-1.10.2
$ ./configure –prefix=/usr –with-cairo=YES
$ make
$ make install
$wget ftp://ftp.gtk.org/pub/gtk/v2.8/gtk+-2.8.8.tar.gz
$tar xvfz gtk+-2.8.8.tar.gz
$cd gtk+-2.8.8
Requirements (glib-2.0 >= 2.7.1 atk >= 1.0.1 pango >= 1.9.0 cairo >= 0.9.2)
$ ./configure –prefix=/usr
$ make
$ make install
gtkmm Latest is 2.8.2
$ wget http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.8/gtkmm-2.8.2.tar.gz
tar xvfz gtkmm-2.8.2.tar.gz
cd gtkmm-2.8.2
./configure –prefix=/usr
Note, this takes by far the longest to compile
make
make install
`
SideNote: This was a maze to get the right dependancies for the right products. It took many hours.
And around the merry-go-round we go again.
- ``
- cd /src/mysql-workbench-1.0.1/mysql-gui-common
- $ ./configure –enable-grt –enable-canvas
- $ make
- $ make install
- $ cd ../mysql-workbench/
- $ ./configure
- $ make
- /usr/lib/python2.3/config/libpython2.3.a(posixmodule.o)(.text+0x3c5a): In function `posix_tmpnam’:
- warning: the use of
tmpnam_r' is dangerous, better use
mkstemp’
/usr/lib/python2.3/config/libpython2.3.a(posixmodule.o)(.text+0x3b94): In function `posix_tempnam’: - warning: the use of
tempnam' is dangerous, better use
mkstemp’
../../../mysql-gui-common/library_gc/source/libgcanvas.a(myx_gc_gl_helper.o)(.text+0x1b5): In functiongetProcAddress(char const*)':<br /> /src/mysql-workbench-1.0.1/mysql-gui-common/library_gc/source/myx_gc_gl_helper.cpp:264: undefined reference to
glXGetProcAddress’
collect2: ld returned 1 exit status
make[3]: *** [mysql-workbench-bin] Error 1
make[3]: Leaving directory/src/mysql-workbench-1.0.1/mysql-workbench/source/linux'<br /> make[2]: *** [all] Error 2<br /> make[2]: Leaving directory
/src/mysql-workbench-1.0.1/mysql-workbench/source/linux’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/src/mysql-workbench-1.0.1/mysql-workbench/source’
make: *** [all-recursive] Error 1
``
Same result, so after another 4 or 5 hours, I still have nothing.
Update
Some more research (I really should devote my time to other pursuits). An official comment from NVidia Corporation on their forums. View Thread
This is not a NVIDIA bug, glXGetProcAddress() is part of GLX 1.4, which the NVIDIA Linux/UNIX graphics driver doesn’t claim to support (nor do I think was GLX 1.4 ever finalized); you should always use glXGetProcAddressARB().