Hi all, On Sun, Nov 29, 2009 at 06:31:06PM -0900, Mr. James W. Laferriere wrote:
X095_VERIFY_PARAM_set_flags() is defined by openssl 0.9.8 and syslog-ng is explicitly depending on 0.9.8. You probably also have 0.9.7 as well and for some reason the linker finds that. That hit the nail on the head (& mine) . (*) ie: /usr/lib/openssl.so.0 -> openssl.so.0.9.7 re linked to openssl.so.0.9.8 And all compiled fine . Updated pcre to minimum needed just prior . Something is funny here. configure (through pkg-config) checks if openssl's minimum version is 0.9.8. It's possible that pkg-config found an openssl.pc file wich said 0.9.8 but the libssl.so (which the linker uses) was pointed to libssl.so.0.9.7.
This is could be the problem when you install different versions of openssl under the same prefix(forex. 0.9.7 from slackware and 0.9.8 from source), because make install will overwrite files without hesitation.* Because of this, it's always recommended to install your custom packages to somewhere else than the distros default /usr/lib/ and use CFLAGS, LDFLAGS and/or configure's options to specify the version you want to use. * You can check this, by running 'pkg-config --modversion openssl' (which returns the version found in the openssl.pc file and 'pkg-config --cflags --libs openssl' which returns the needed compiler and linker flags. Mind you, pkg-config never checks anything else than the contents of the <modulename>.pc file. If the state of your system is different than the contents of the .pc files you will get mystical errors like this.
Regarding the rant, you're right that compiling a package from source with a lot of external dependencies is not and has never been easy. Especially if your build host has hacks and mismatching headers/libraries. Still checking for the minimum required libraries in configure.in is quite doable & someone missed the possibility of the above (*) and it did not get caught . Not to mention the operator (me) didn't either :^( .
We check for openssl 0.9.8 using pkg-config. The current check for pcre is not as sophisticated, only checking for the existence of the library (pcre didn't have support for pkg-config when syslog-ng started to use it) but we can update it now. Regards, -- Pal Tamas/Folti folti@balabit.hu