We want to download the latest, the very latest, version of the MySQL server. So we won't click Downloads on the MySQL Developer Zone page that's usually a few weeks old. Instead we'll use Bazaar, which is a revision control package, vaguely like CVS or Perforce. This is what MySQL's developers use every day, so what we download with Bazaar is usually less than a day old. If you've ever submitted a bug report and gotten the response "thanks, we fixed the bug in the source code repository" that means you can get the fixed version with Bazaar.
The general syntax to create a local copy (branch) of a Bazaar source code repository is:
To obtain a local copy of the MySQL Server 5.5 source tree, use the following commands:
bzr init-repo $HOME/mysql-servershell>
bzr branch lp:mysql-server/5.5 mysql-5.5
(The $HOME directory is usually your personal area that you're allowed to write to. If that's not the case, replace $HOME with your personal choice whenever it appears.)
There is a lot of code, so the first time you do this the download will take over an hour. That's if you're lucky.
If you're glitch-prone, you'll need to read the manual: Installing MySQL Using a Development Source Tree.
On later occasions, you'll be doing what's called a bzr pull instead of a bzr branch, and it will go faster (as it will only fetch the recent changes that have been commited to the remote repository since the last time you pulled).
Directories, Alphabetical Order
After bzr branch finished you'll have some 40 new sets of files on your computer, as you'll be able to see with ls or dir.
BUILD Docs NEW-RPMS SSL VC++Files bdb client cmd-line-utils config dbug extra heap include innobase libmysql libmysql_r libmysqld man myisam myisammrg mysql-test mysys ndb netware os2 pstack regex scripts server-tools sql sql-bench sql-common strings support-files tests tools vio zlib
These will all be installed as directories below the directory that was created by the bzr branch' command. At first all these directory names might intimidate you, and that's natural. After all, MySQL is a big project. But we're here to show you that there's order in this apparent chaos.