Building MySQL Workbench 1.0.1 for Linux (Part 2)

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 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’
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().

Tagged with: Databases General Linux MySQL Open Source

Related Posts

Why Being Proactive Is Always a Winning Approach

Many companies manage production infrastructure using a reactive model rather than a proactive one. Organizations typically react to warnings and alerts, then implement corrective actions in response. While some companies have well-designed architectural patterns—such as feature flags and rate limiting—that can quickly mitigate the impact of issues, these are merely temporary solutions, not resolutions.

Read more

AWS CLI support for Aurora DSQL and S3 Tables

If you were following the AWS Re:invent keynote yesterday there were several data specific announcements including Aurora DSQL and S3 Tables . Wanting to check them out, I downloaded the latest AWS CLI 2.

Read more

Migrating off of WordPress - A Simplified Stack

The ongoing drama between Wordpress v WP Engine continues to cross my reading list, but I have permanently removed WordPress from my website. I have finally transitioned away from the complex Linux/Apache/MySQL/PHP (LAMP) stack required for self-hosting WordPress on my professional website.

Read more