Archive for the ‘build’ Category

Oracle introduces new levels of sucking to new versions of old software

Февраль 22nd, 2011

The latest version of Sun Studio, which is a terrible name for something which is a compiler and not an IDE, which has now been re-titled Solaris Studio in an attempt to underscore even more its general uselessness, has added a new antifeature to its installer.

It requires X.

You know one of the things that makes MySQL better than Oracle? You can install it in 5 minutes and you don't have to launch a Java GUI.

You know when it makes sense to launch a Java GUI to install server software?

NEVER

EPIC FAIL 


PlanetMySQL Voting: Vote UP / Vote DOWN

libdrizzle in Visual Studio

Август 10th, 2010

Thanks to Jobin's work with mingw and getting libdrizzle to compile on Windows at all, I have been able to get it working in Visual Studio natively. The code is in trunk now.

The approach I took, which is how I'm going to approach Windows and Visual Studio for all of our stuff, is to not worry with analogues to things like configure on Windows. Windows is a very different platform from Linux, and there is no need to attempt to duplicate Linux process there. To that end, the goal at least for now will be static VS Solution files and a set of instructions of how to get depends installed so that the Solution can find them. 

I'm excited to start poking at Garrett Serack's CoApp Project, which has some tools do do tracing of things like make to help with the initial project creation... and I fully expect to take advantage of his work in terms of creating installable packages.

Jobin has started working on Drizzle itself and has the drizzle client working so far.


PlanetMySQL Voting: Vote UP / Vote DOWN

libdrizzle — now with windows

Август 1st, 2010

Recently, Jobin took up the mantle of starting to poke at Windows support for Drizzle. We decided that step 1 is getting libdrizzle building on Windows - not to mention we could solve a few systemic "how to go about it" problems on a much simpler codebase.

We decided to go the mingw route - for two reasons.

 

  1. on windows we wouldn't have to solve the build problem yet
  2. on linux we can cross-compile, and then I can spend less time connecting to a windows machine 

 

I'm happy to say that the branch implementing support for building under mingw has been merged in to trunk - so please go hammer at it and tell me that I'm an idiot.

If you're on linux and want to play, you'll need mingw32 and mingw32-pthread. You may notice that mingw-pthread isn't in the Ubuntu archive... that's ok - I added a package for it in the drizzle-developers ppa (add-apt-repository ppa:drizzle-developers/ppa) Once you're set with that, it's as simple as:

 bzr branch lp:libdrizzle
 cd libdrizzle 
 ./config/autorun.sh
 ./configure --build=x86_64-unknown-linux-gnu --host=i586-mingw32msvc
 make

And you're off to the races. Now, as for actually doing anything with it, well, I'm expecting some windows person to fill in details on that.

Next up - building under Visual Studio. (oh, and getting Drizzle itself working)


PlanetMySQL Voting: Vote UP / Vote DOWN

building MySQL 5.5 with cmake

Апрель 29th, 2010
mysql with cmakeYesterday I was testing a branch of MySQL 5.5 to help a colleague, and I was set aback at discovering that, with the default build options, the server did not include the Archive engine.
In other times, I would have to dig into the build scripts or to examine the output of ./configure --help, but that is no longer necessary. MySQL 5.5 is built using cmake, the cross platform make.

Why does this change make me feel better? Because cmake configuration is more user friendly than the old autoconf/automake/libtools horror syntax. Not only that, but there is a GUI!
I am a command line guy, as you probably know, but when the purpose of a GUI is not only to show off but to make difficult choices easy, then I all for it.

In my particular case, I enjoyed the idea of setting the options with a contextual help that told me the choices for each item.
If you want to know more about the whole process of building MySQL with CMake, there is a comprehensive guide in MySQL Forge.
Before I forget, though, there is something that reconciles my command line nature and the need for a good interface. Instead of using cmake-gui, I can get the same results with ccmake

It is not as pretty as the graphical UI, but it has the advantage of working in a remote terminal, which for me is a must.
So, if you want to try it, grab the latest MySQL 5.5 tree and follow the instructions.

PlanetMySQL Voting: Vote UP / Vote DOWN

On the other hand, Google doesn’t seem to know how package management works

Декабрь 23rd, 2009

Even the most casual of acquaintances knows that I really, really hate software that doesn't understand how we do things out here in the Open Source world. We have tools, really amazing ones, called ... "Package Managers" which allow us to "Install" software and describe the "Relationships" between elements. Apparently they can't seem to figure out how to deal with software dependencies and instead they opt for the "copy into tree and fork" method:

Google is forking existing FOSS code bits for Chromium like a rabbit makes babies: frequently, and usually, without much thought. Rather than leverage the existing APIs from upstream projects like icu, libjingle, and sqlite (just to name a few), they simply fork a point in time of that code and hack their API to shreds for chromium to use. This is akin to much of the Java methodology, which I can sum up as "I'd like to use this third-party code, but my application is too special to use it as is, so I covered it with Bedazzler Jewels and Neon Underlighting, then bury my blinged out copy in my application.". A fair amount of the upstream Chromium devs seem to have Java backgrounds, which may explain this behavior, but it does not excuse it. This behavior should be a last resort, not a first instinct. What should happen is this:
[google] hey, it sure would be nice if we could use sqlite in chromium for our local db needs.
[google] hmm, the sqlite API doesn't mesh 100% with how I'd like chromium to use it
[google] hey sqlite upstream, there are a few places where we'd like to see API improvements 
so chromium can leverage it for our use-case
[sqlite_upstream] hey google, so cool that you want to use our code.
* sqlite_upstream looks at google's proposed changes to sqlite *
[sqlite_upstream] interesting, you could try using the foo_bar function for your camel launching
needs, but the rest of the changes seem okay
* sqlite_upstream commits changes to the source tree in commit rev 12345 *
[sqlite_upstream] Our next release will support that.
[google] yay! we'll tell people to either apply our patch or use commit rev 12345 or newer. 

As much as I appreciate Google's attempt at openness documented yesterday - and it REALLY is great and many steps in the right direction, it would be great if they'd also learn some of the process we already use out here. If they think it sucks and want to improve on it, then great - but start from what's there, don't just ignore it and hope we don't notice.


PlanetMySQL Voting: Vote UP / Vote DOWN

MySQL University: Building MySQL Releases on Unix

Октябрь 7th, 2009

This Thursday (October 8th, 13:00 UTC), Jörg Brühe will give a talk on Building MySQL Releases on Unix. Jörg will describe the tools used by the MySQL Build Team for release builds on Unix-style platforms, and present a script to simulate the essential parts of that process locally on a developer's home machine. He works at the MySQL Build Team, so you can expect in-depth insights and instructions.

For MySQL University sessions, point your browser to this page. You need a browser with a working Flash plugin. You may register for a Dimdim account, but you don't have to. (Dimdim is the conferencing system we're using for MySQL University sessions. It provides integrated voice streaming, chat, whiteboard, session recording, and more.) All MySQL University sessions are recorded, that is, slides and voice can be viewed as a Flash movie (.flv). You can find those recordings on the respective MySQL University session pages which are listed on the MySQL University home page.

MySQL University is a free educational online program for engineers/developers. MySQL University sessions are open to anyone, not just Sun employees. Sessions are recorded (slides and audio), so if you can't attend the live session you can look at the recording anytime after the session.

Here's the schedule for the upcoming weeks:

  • October 15: The Spider Storage Engine (Giuseppe Maxia)
  • October 22: Dual Master Setups With MMM (Arjen Lentz)
  • October 29: MySQL scalability on SPARC & INTEL X5500 (Nehalem) (Benoit Chaffanjon)
  • November 12: Gearman for MySQL (Giuseppe Maxia)
  • November 19: memcached Functions for MySQL (UDFs) (Patrick Galbraith)
  • December 3: Practical Full-Text Search in MySQL (Bill Karwin)

The schedule is not engraved in stone at this point. Please visit http://forge.mysql.com/wiki/MySQL_University#Upcoming_Sessions for the up-to-date list. On that page, you can also find the starting time for many time zones.


PlanetMySQL Voting: Vote UP / Vote DOWN

Hidden tests of the MySQL test suite

Октябрь 1st, 2009

Some of you may have run the mysql-test-run tool which is the MySQL test suite. But did you know there are actually multiple suites? If you just run the tool, you don’t get everything!

Check out the mysql-test/suites subdirectory. That’s all the stuff you don’t get when just running the tool normally. If you take a peek at the Makefiles, you will find a target test-bt (build team) which shows the extra calls and parameters for the additional suites.

OurDelta has had some interesting cases where a build that’s otherwise ok would fail when users tried the test suite on their installation. We reckon such a test should definitely pass, and thus we had some more homework to do. So now OurDelta builds with as many tests as exist enabled, on all platforms and architectures. Slow yes, but that’s not an argument to not test something, right? Failing tests are often indicative of other issues, so at the very least they merit some attention.

For instance… we found that on some platforms, the default distro packages are actually broken in fairly interesting ways. The testsuite in particular falls victim to this, making one wonder whether the distros actually test what they build, and which tests they do.


PlanetMySQL Voting: Vote UP / Vote DOWN