Re-compiling MySQL 5.0 with OpenSSL support under Debian

Last Updated on October 31, 2007 EDT by

If you’ve ever required OpenSSL support enabled for MySQL Server 5.0 under debian, then you will need to recompile MySQL. Under Debian this is very easy.

First you will need to download the package source, as root type the following:


cd /root
mkdir build
cd build
apt-get source mysql-source-5.0

The above commands will create a folder called ‘build’, enter the directory and then download the mysql-server-5.0 package source. The following are the results under an Ubuntu server:


[root@jager:/root/builds]# apt-get source mysql-server-5.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
Need to get 16.8MB of source archives.
Get:1 http://security.ubuntu.com feisty-security/main mysql-dfsg-5.0 5.0.38-0ubuntu1.1 (dsc) [1209B]
Get:2 http://security.ubuntu.com feisty-security/main mysql-dfsg-5.0 5.0.38-0ubuntu1.1 (tar) [16.6MB]
Get:3 http://security.ubuntu.com feisty-security/main mysql-dfsg-5.0 5.0.38-0ubuntu1.1 (diff) [149kB]
Fetched 16.8MB in 17s (957kB/s)
dpkg-source: extracting mysql-dfsg-5.0 in mysql-dfsg-5.0-5.0.38
dpkg-source: unpacking mysql-dfsg-5.0_5.0.38.orig.tar.gz
dpkg-source: applying ./mysql-dfsg-5.0_5.0.38-0ubuntu1.1.diff.gz

If you list the directory contents you should have something like this:


[root@jager:/root/builds]# ls -al
total 16408K
drwxr-xr-x 3 root root 4096 2007-10-30 13:08 ./
drwxr-xr-x 15 root root 4096 2007-10-30 13:06 ../
drwxr-xr-x 39 root root 4096 2007-10-30 13:08 mysql-dfsg-5.0-5.0.38/
-rw-r--r-- 1 root root 148883 2007-10-10 14:11 mysql-dfsg-5.0_5.0.38-0ubuntu1.1.diff.gz
-rw-r--r-- 1 root root 1209 2007-10-10 14:11 mysql-dfsg-5.0_5.0.38-0ubuntu1.1.dsc
-rw-r--r-- 1 root root 16602385 2007-04-03 05:03 mysql-dfsg-5.0_5.0.38.orig.tar.gz

Before we proceed we need to make sure that we have all of the necessary tools to compile the new packages and create the .deb:


apt-get install devscripts build-essential fakeroot

You will also want to make sure that you have any dependencies that the package would require:


apt-get build-dep mysql-server-5.0

Now that we have everything we need, we just need to make a modification to the file “mysql-dfsg-5.0-5.0.38/debian/rules” with your favorite editor. Search for the following lines within the file:


--without-openssl
--with-yassl

And change the lines to the below:


--with-openssl
--without-yassl

Basically you’re enabling OpenSSL and disabling YaSSL, make sure that you have OpenSSL installed (apt-get install openssl). Once you’ve finished editing the file, save it and exit out of the editor.

You will then want to start the compiling and build of the Debian packages, run the following command within the “mysql-dfsg-5.0-5.0.3” directory like so:


[root@jager:/root/builds/mysql-dfsg-5.0-5.0.3]# debuild -us -uc

Everything should process properly, and you should end up with a handful of .deb packages within “/root/builds”:


[root@jager:/root/builds]# ls -al
total 57628K
drwxr-xr-x 3 root root 4096 2007-10-30 14:02 ./
drwxr-xr-x 15 root root 4096 2007-10-30 14:35 ../
-rw-r--r-- 1 root root 6411178 2007-10-30 14:02 libmysqlclient15-dev_5.0.38-0ubuntu1.1_i386.deb
-rw-r--r-- 1 root root 1426470 2007-10-30 14:01 libmysqlclient15off_5.0.38-0ubuntu1.1_i386.deb
-rw-r--r-- 1 root root 45756 2007-10-30 14:01 mysql-client_5.0.38-0ubuntu1.1_all.deb
-rw-r--r-- 1 root root 6794738 2007-10-30 14:02 mysql-client-5.0_5.0.38-0ubuntu1.1_i386.deb
-rw-r--r-- 1 root root 54466 2007-10-30 14:01 mysql-common_5.0.38-0ubuntu1.1_all.deb
drwxr-xr-x 40 root root 4096 2007-10-30 14:00 mysql-dfsg-5.0-5.0.38/
-rw-r--r-- 1 root root 148883 2007-10-30 13:34 mysql-dfsg-5.0_5.0.38-0ubuntu1.1.diff.gz
-rw-r--r-- 1 root root 972 2007-10-30 13:34 mysql-dfsg-5.0_5.0.38-0ubuntu1.1.dsc
-rw-r--r-- 1 root root 1761484 2007-10-30 14:02 mysql-dfsg-5.0_5.0.38-0ubuntu1.1_i386.build
-rw-r--r-- 1 root root 3136 2007-10-30 14:02 mysql-dfsg-5.0_5.0.38-0ubuntu1.1_i386.changes
-rw-r--r-- 1 root root 16602385 2007-04-03 05:03 mysql-dfsg-5.0_5.0.38.orig.tar.gz
-rw-r--r-- 1 root root 47854 2007-10-30 14:02 mysql-server-4.1_5.0.38-0ubuntu1.1_i386.deb
-rw-r--r-- 1 root root 47828 2007-10-30 14:01 mysql-server_5.0.38-0ubuntu1.1_all.deb
-rw-r--r-- 1 root root 25522626 2007-10-30 14:02 mysql-server-5.0_5.0.38-0ubuntu1.1_i386.deb

Just run dpkg -i *.deb and all should be good!


[root@jager:/root/builds]# dpkg -i *.deb
(Reading database ... 48209 files and directories currently installed.)
Preparing to replace libmysqlclient15-dev 5.0.38-0ubuntu1.1 (using libmysqlclient15-dev_5.0.38-0ubuntu1.1_i386.deb) ...
Unpacking replacement libmysqlclient15-dev ...
Preparing to replace libmysqlclient15off 5.0.38-0ubuntu1.1 (using libmysqlclient15off_5.0.38-0ubuntu1.1_i386.deb) ...
Unpacking replacement libmysqlclient15off ...
Preparing to replace mysql-client 5.0.38-0ubuntu1.1 (using mysql-client_5.0.38-0ubuntu1.1_all.deb) ...
Unpacking replacement mysql-client ...
Preparing to replace mysql-client-5.0 5.0.38-0ubuntu1.1 (using mysql-client-5.0_5.0.38-0ubuntu1.1_i386.deb) ...
Unpacking replacement mysql-client-5.0 ...
Preparing to replace mysql-common 5.0.38-0ubuntu1.1 (using mysql-common_5.0.38-0ubuntu1.1_all.deb) ...
Unpacking replacement mysql-common ...
Preparing to replace mysql-server-4.1 5.0.38-0ubuntu1.1 (using mysql-server-4.1_5.0.38-0ubuntu1.1_i386.deb) ...
* Stopping MySQL database server mysqld [ OK ]
Unpacking replacement mysql-server-4.1 ...
Preparing to replace mysql-server 5.0.38-0ubuntu1.1 (using mysql-server_5.0.38-0ubuntu1.1_all.deb) ...
* Stopping MySQL database server mysqld [ OK ]
Unpacking replacement mysql-server ...
Preparing to replace mysql-server-5.0 5.0.38-0ubuntu1.1 (using mysql-server-5.0_5.0.38-0ubuntu1.1_i386.deb) ...
* Stopping MySQL database server mysqld [ OK ]
* Stopping MySQL database server mysqld [ OK ]
Unpacking replacement mysql-server-5.0 ...
Setting up mysql-common (5.0.38-0ubuntu1.1) ...
Setting up libmysqlclient15off (5.0.38-0ubuntu1.1) ...
Setting up mysql-client-5.0 (5.0.38-0ubuntu1.1) ...
Setting up mysql-server-5.0 (5.0.38-0ubuntu1.1) ...
* Stopping MySQL database server mysqld [ OK ]
* Starting MySQL database server mysqld [ OK ]
* Checking for corrupt, not cleanly closed and upgrade needing tables.
Setting up libmysqlclient15-dev (5.0.38-0ubuntu1.1) ...
Setting up mysql-client (5.0.38-0ubuntu1.1) ...
Setting up mysql-server-4.1 (5.0.38-0ubuntu1.1) ...
Setting up mysql-server (5.0.38-0ubuntu1.1) ...


Did you like this article?