drawkcaB | Backward Compatible logo

rants and tips about software

Slamd64 and Firebird

I just installed Slamd64 version 12.2. I know that Slackware -current is 64bit and Slackware 13.0 is out, but out-of-the-box 32bit compatibility of Slamd64 is very tempting, so this is the first 64bit slackware I installed.

Install went fine, and KDE is running in a matter of seconds. Now, time to compile all the needed stuff for development. Basically, all I need is Firebird, FlameRobin and PHP extension for Firebird (i.e. InterBase).

1. Compiling Firebird

You could use the binaries on the website (which I learned later), but AMD64 seemed suspicious (I run Intel Core2Duo CPU), so I decided to compile. I downloaded the .tar.bz2 source package, unpacked it and run:

./configure —prefix=/opt/firebird

Well, I first ran —prefix=/opt, but that turned out to be a bad idea :(

Anyway, configure went fine, and then I ran

make -j2

because I have two cores. However, this is not supported as some steps of build process are dependend on each other while that dependency is not listed in the Makefile. Alex Peshkov says this should be fixed for Firebird 3. So, make sure you only run

make

if you don’t want to see any errors. Once build is complete, run:

make dist

to create .tar.gz (and .rpm) packages. Just like official ones. Further installation using this packages goes as usual (unpack + ./install.sh).

2. Compiling FlameRobin

This was the easiest step as everything works the same as on 32bit Slackware. Compile wxWidgets first and then FlameRobin - all as usual.

3. Compiling PHP extension for Firebird (InterBase)

Using the PHP 5.2.8 source and steps on this link:

http://www.firebirdfaq.org/faq191/

does not get you far because of some bug in PHP 5.2.8. Fix is rather trivial. Before you run make, edit the files:

/usr/include/php/Zend/zend.h
/usr/include/php/main/php.h
    

And comment this line:

//#include <unix.h>.h>

Of course, PHP 5.2.8 still has a bug with decimal numbers, so make sure you align those zeroes in ibase_query.c and php_ibase_udf.c files.

After that, run all the steps (phpize, configure, make) and copy interbase.so to /usr/lib64/php/extensions. Restart Apache and enjoy!

Milan Babuškov, 2009-08-31
Copyright © Milan Babu┼íkov 2006-2014