Hidden jewels in MySQL Bazaar trees
By Giuseppe Maxia on Jun 22, 2008
If you have followed the steps to get From Bazaar To Sandboxes In 5 Moves, you will have now the current MySQL versions in your disk. But what if you need some older versions?
According to MySQL lifecycle policy, MySQL 3.23 and 4.0 are not supported anymore, and you won't find their binaries in MySQL download pages. However, the source code is still published, as it must, to comply with the GPL.
Where is it? The code for MySQL old versions is contained in every newer version. The only information you need to branch it is the name of the tag for that specific version. For that, we ask Bazaar itself.
And we will get a long list, which I trimmed for brevity sake.
NULLMERGE 1810.2153.3 base_4_16217 1810.1340.2 beta-3.23.23 71.1.3 mysql-3.23.22-beta 4 mysql-3.23.24-beta 83.1.3 mysql-3.23.27-beta 217.1.9 mysql-3.23.28-gamma 280 mysql-3.23.29a-gamma 400.1.1 mysql-3.23.30-gamma 455 mysql-3.23.31 489 [ ... ] mysql-3.23.58 676.294.51 mysql-4.0.1 973.14.24 mysql-4.0.2 1073 [ ... ] mysql-4.0.28 1346.887.6 mysql-4.0.30 1346.891.8 mysql-4.1.1 1616.1.25 mysql-4.1.2 1616.440.5 [ ... ] mysql-4.1.22 1616.2842.2 mysql-4.1.23 1616.3066.4 mysql-4.1.24 1616.3137.2 mysql-5.0.0 1624.1.20 mysql-5.0.1 1624.12.54 mysql-5.0.2 1659.9.4 [ ... ] mysql-5.0.42 1810.2982.2 mysql-5.0.44 1810.3132.2 mysql-5.0.45 1810.3132.6 [ ... ] mysql-5.1.11 2154.34.2 mysql-5.1.12 2303.16.23 mysql-5.1.13 2303.78.1 [ ... ]
The earliest version we can get is MySQL 3.23.22. Let's do this archeological expedition.
We can branch the old version from a remote tree or from a local one.
$ cd $HOME/install/bzr/shared
The following two commands will bear the same result. The second one, being all local, will be much faster.
$ bzr branch -r tag:mysql-3.23.22-beta lp:mysql-server/5.1 branch_3.23.22 $ bzr branch -r tag:mysql-3.23.22-beta 51 branch_3.23.22
51 is the name of the directory containing the 5.1 tree, as seen in this exercise
Or we can checkout the code. The difference is that a branch will preserve all the revision control information, while a checkout will not. The checkout will be about half the size of a branch.
$ bzr checkout -r tag:mysql-3.23.22-beta 51 checkout_3.23.22
Now, if you really feel like running MySQL 3.23.22, check the manual and build it. I can only tell you that it actually works, but there is no support for this version, so don't bother submitting any bugs for it!