Every once in a while I come around checking the dependencies of a KDE package and then I find out that they are 1) either available, 2) available but not buildable (a lot of foss software on windows is hacked together, a.k.a. patched heavily) or 3) not even available. Availability means available for both of our compiler flavors (we currently use mingw 3.4.5 and Microsoft Visual Studio 2003/2005/2008). If the library builds and if it is not to much messed up we normally fix this case by finding a CMake patch for it. The latest library that took this way is exiv2 and I am glad to say that this patch will go upstreams for version 0.18. This is the good side.
Another dependency I have come across was mysql. It is used in several places throughout KDE, on of its use cases is as an embedded database for amarok. As a nice packager I made myself on the way to find this stuff. If you look at the MySQL page and you search for embedded, you will find "Thinking about using MySQL as an Embedded Database? Contact us online." with a link to the sales department. Ok, no money for that over here, so maybe they provide it somewhere else. Searching through the download section I found the rpms for red hat for the embedded db but the windows packages don't contain anything resembling the embedded library. And after searching a bit more I found the confirmation: Mysql doesn't provide the embedded library.
Hm, since it would benefit multiple packages, I thought, why not try to compile it myself. Ok, I downloaded the package and on the Build Instructions page they spoke about cmake which made me happy at that point. Even though I need to build the stuff myself, I just need to run
cmake && nmake && nmake installand then I have my library. But it should get even more painful:
Before running cmake you need to run a javascript configure file.
Then you get a batch script which copies the CMakeCache.txt and then runs cmake for you - nothing more.
Then you have a Visual Studio project file.
Going through all available targets I couldn't find libmysqld.
There was no libmysqld. Ok, searching through CMakeLists.txt files gave me - nothing.
Their CMake build system doesn't contain that library. Only the autotools stuff as I found out - so autotools for Linux, a crippled CMake for Windows.
Is it really so hard to find somebody which knows enough cmake (or can read enough to understand the cmake help) to get a decent CMake buildsystem for mysql? Or is this simply a way to sell even if mysql is GPL?
I am pretty sure I will fix this in the future, but this is the point where I definitely will not contribute to GPL licensed code without a paycheck.
What this means:
- Gwenview will be hopefully enabled in the next windows packages for trunk and 4.1
- Amarok's mysql collection plugin will have to wait.
- All other users of mysql embedded will simply have to use the client with a server.