Workbench on Linux

I had the pleasure of sitting right across the MySQL GUI Tools Team, and decided to try my hand at Workbench (Workbench for Linux, that is). Congratulations to the entire team for the great work! I am excited.

First up, the things you need on Ubuntu 8.04 (I created a fresh install, and installed all the updates), if you’re downloading the binary:

  • liblua5.1-0
  • libglitz1
  • libzip1
  • libmysqlclient15off
  • mysql-common
  • libglitz-glx1


Workbench on Ubuntu 8.04
Workbench on Linux

It works. It starts up. Its exciting. Of course, when I try to edit a table name or even create a table, it fails by segmentation fault. Segfaults are annoying… so the best way to debug it, is of course to run catchsegv. After running catchsegv ./mysql-workbench 2>&1 >crashlog, I sent it over to Alfredo for him to debug.

Of course, as luck would have it, the build ships stripped binaries, so the segfaults can’t be debugged. Grr. Nevermind, I decided its time to build it (warm thanks to the Workbench team for staying around till like 7.30pm at the meeting room). As a consequence, Alfredo managed to also update the Linux Build Instructions page as we had learned some things along the way.

I built glitz, pixman and cairo from freedekstop.org (when building cairo, remember to do it as such: ./configure --enable-glitz), but from what I gather, this is now available via Ubuntu 8.04 and is sufficient. So the build dependencies are all in Ubuntu, which is useful (in terms of building a shippable DEB). The only thing that isn’t available in a packaged form is Google’s ctemplate library. I notice the instructions now don’t mention installing a few more packages I installed on Ubuntu (I’m not even sure now if they’re a hard dependency or not, I’ll check later). But if something fails, install libproc-dev libXtst-dev libdnet libdnet-dev.

Like magic, I can now edit and create tables, draw them even. No crashes, its pretty stable for an alpha release (provided you’re using a version you build!). I expect a healthy continuos release cycle, so if you encounter a bug today, it might be fixed before you know it… Of course, this doesn’t discount you from being good friends with our bugs system at http://bugs.mysql.com/.

My short term plan to assist Workbench on Linux:

  • Get it building on Fedora
  • There’s a patch floating around for OpenSUSE, get it building there too
  • Package DEBs and RPMs
  • Try to include missing packages (like google-ctemplate) upstream

Oh, if you have issues, hop on to IRC on freenode, and join #workbench. Sure, there won’t be great answers in the next week or so (while we’re all busy at the developers meeting), but usually there’s always someone awake on that channel.

3 Comments

  1. Mike says:

    Tried to compile on Fedora, did not work well.

    Fedora 9 has gcc 4.3 which is stricter and better.

    Don’t understand why the code is developed on
    such a old developement platform as ubuntu .8.04.

    Some initial spec file work:

    Some initialSummary: Visual database design tool for MySQL
    Name: mysql-workbench
    Version: 5.1.1
    Release: 1%{?dist}
    Group: Applications/Databases
    License: GPLv2
    URL: http://dev.mysql.com/workbench/
    Source0: ftp://ftp.mysql.com/pub/mysql/download/gui-tools/%{name}-%{version}-alpha-linux.tar.gz
    BuildRequires: automake autoconf libtool mysql-devel uuid-devel
    BuildRequires: cairo-devel ctemplate-devel glib2-devel glitz-glx-devel gtkmm24-devel
    BuildRequires: llibglade2-devel libgnome-devel ibsigc++20-devel lua-devel pcre-devel

    BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
    %description
    Visual database design tool for MySQL.

    %prep
    %setup -q

    %build
    ./autogen.sh
    %configure
    %{__make} %{?_smp_mflags}

    %install
    %{__rm} -rf %{buildroot}
    %{__make} install DESTDIR=%{buildroot}

    %clean
    %{__rm} -rf %{buildroot}

    %files
    %defattr(-, root, root, -)
    %doc ChangeLog COPYING README

    %changelog

  2. byte says:

    Yes, gcc 4.3 is stricter, and there are some fixes. I have a preliminary patch that works against Fedora 9, currently I’m just stuck with one thing that I can’t get fixed, so waiting till I fix that and will publish the patch

    Another problem with an RPM spec file is cairo… Cairo in Fedora 9 isn’t built with glitz enabled by default. Cairo needs rebuilding, which I’ll have to speak with the cairo maintainer to see if it makes sense… (glitz = marked experimental)

    And if you look at configure.in, there are options to build a “standard edition” and an “oss edition”. Its unclear what the future path is in terms of what sources we will build from. The standard edition costs $, so surely it can’t just be a build-time option.

  3. Any update on getting a patch to allow MySQL Workbench to install on Fedora without a lot of pain?

    Even if it is still alpha, I’m looking forward to getting it up and running.


i