Kristian, If you can share your Buildbot configuration that would be perfect! As for platforms we see demand for Debian/Ubuntu/CentOS both 32bit and 64bit. Also quite often are mentioned FreeBSD, MacOS and Windows. For CFLAGS / configure I found combination from MySQL .spec for RedHat 5 works almost fine. The changes I made for CFLAGS I am adding next combination: -O2 -g -fno-omit-frame-pointer it makes life to debugs hangs / crashes easier. Thanks! Vadim Kristian Nielsen wrote:
Hi Vadim,
Just an update on what I have been doing with binaries and Buildbot.
I have now set up Buildbot to build and test our trees on Launchpad after every push (similar to Pushbuild at MySQL/Sun if you are familiar with that):
http://askmonty.org/buildbot/index.html
For now we have only few (one) build slave. The plan of course is to add more, hopefully some of them volunteered from the community (hint :-).
I would be happy to make the infrastructure available to you as well, ie. to set it up to also track your Launcpad trees and build on your build slaves with your scripts and options. But you may prefer to control the buildbot master yourself; just let me know if you need a copy of my Buildbot configuration files or if I can help with any questions in setting it up.
I am currently working on getting all existing test failures visible in the Buildbot runs fixed (Valgrind errors mostly).
After that (next week I hope) I plan to turn to working on getting Buildbot to also produce binaries.
I will need to do some research in which platforms we need to build for (Debian/Ubuntu/CentOS/Suse/Generic? x86/amd64? Any others?), and which configure / build options to use. Any help you can provide here would be much appreciated. I have lots of experience with scripting this kind of thing, but less so with the details of how people actually use the binaries and what they need (I have mostly build from source myself even for production). I also plan to look at what official Debian/Ubuntu packages provide, and at the scripts from OurDelta.
My vision is to have production and test of binaries fully integrated into our Buildbot infrastructure. I want it fully automated, so that binaries are made after every push, and so that problems with the binaries are dealt with as an integrated part of development just like any other problem. Ideally, releasing binaries would then just be a matter of picking the right files from the buildbot archives. It will take some work to get there of course, but at least that is the vision.
From what I have seen of Buildbot so far, I am hopeful that it will be sufficient for our needs. It seems to have all of the right ideas, and many of the necessary features are already there. Some stuff will be missing, and my plan is to spend the time to extend it as needed.
So for concrete plans next week, these currently are:
1. Setup build of generic binaries (.tar.gz) for Linux x86/amd64. For this I need to understand better how to deal with external dependencies. Should I link statically with libc? My impression is not to do this as I think this causes big problems with any type of plugin, but I also seem to recall that existing generic packages do this. Alternatively, I need to understand which version of glibc to use.
2. Work on getting build slave machines set up for this.
3. Get a first version running on Buildbot that produces the binaries.
After this I think will be Debian and Ubuntu binaries with apt-able repositories, and then RPMs.
I think that's it for an update of current plans. Let me know if you have any questions/comments/suggestions. Especially any help on exact CFLAGS and ./configure arguments to use would be very helpful.
- Kristian.
-- Vadim Tkachenko, CTO Percona Inc. ICQ: 369-510-335, Skype: vadimtk153, Phone +1-888-401-3403 MySQL Performance Blog - http://www.mysqlperformanceblog.com MySQL Consulting http://www.percona.com/ Attend the 2009 Percona Performance Conference April 22-23 - http://conferences.percona.com/