Hi Folks, I've had a bit of hassle recently trying to compile VPopMail 5.2.1/5.3.8 with the Oracle authentication module. Having had a bit of a poke about the archives for this mailing list I see that a few other people have had the same problems and no one has posted a solution yet.
First I want to give a little background so that if anyone wants to pick up where I've left off it will be a little easier. VPopMail uses a number of different authentication modules. Which one you're going to use is defined when you run ./configure and the chosen file is symlinked to auth.c (auth.h remains unchanged). In the case of the Oracle module the authentication file is voracle.c which has been produced by running Pro*C (oracle's precompiler) on voracle.pc. Also, during ./configure, the file config.h is produced. This contains various #define statements depending on which arguments you have passed to configure. Many of these #defines are used by the c preprocessor to chose which particular parts of the program(s) are to be compiled. Therefore the arguments passed to ./configure are very important. OK, on to the build. Make sure that Oracle's precompiler (proc) is installed and working. You have no chance of building vpopmail with oracle support without proc. Test it out on it's demo files. Unpack the archive with gunzip < vpopmail-5.2.1.tar.gz | tar xvf - and cd vpopmail-5.2.1 You need to make 2 changes to voracle.pc so open it up in an editor and make the following changes: voracle.pc line 630, change MYSQL_DEFAULT_TABLE to ORACLE_DEFAULT_TABLE voracle.pc line 334, change memset(pwent, 0, sizeof(pwent)); to memset(&pwent, 0, sizeof(pwent)); save voracle.pc and run it through the oracle precompiler proc voracle.pc this will produce the voracle.c file. Now you need to run configure. remember that the arguments passed to configure are extrememly important and you may need to experiment a little. The arguments that have worked for me are :- ./configure --enable-oracle=y --enable-incdir=/opt/oracle/product/817/precomp/public --enable-libdir=/opt/oracle/product/817/lib --enable-auth-logging=n --enable-mysql=n --enable-many-domains=y --enable-file-locking=y --enable-clear-passwd=n You will have to adjust the path details for the include directory and library directory to suit your system and there may be a little scope for experimentation with the other options, but be careful. As I mentioned above; many of the options set precompiler directives which determine exactly which bits of code are/are not compiled. Many of the errors I was getting and many of the errors listed on this list are due to the compiler trying to build incorrect pieces of code. Finally you need to add a #define macro to config.h so open it with an editor and go to the end and add the following line: #define SITE_SIZE 10000000 I've just picked 10000000 as an arbitary value. You will probably want to experiment with this and find something suitable for your needs. OK, we're done. type make and it should compile. Hope this works out for you and many thanks to Ken for helping me out. regards, dunch.