Re-compiling MySQL 5.0 with OpenSSL support under Debian

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) ...
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>