[syslog-ng] What is the last syslog-ng version that compiles under glibc-2.3.5 ?

Mr. James W. Laferriere babydr at baby-dragons.com
Mon Nov 30 04:31:06 CET 2009


 	Hello Balazs ,

On Sun, 29 Nov 2009, Balazs Scheidler wrote:
> On Sat, 2009-11-28 at 19:03 -0900, Mr. James W. Laferriere wrote:
>> 	Hello All (& Jakub if he's interested) ,
>>
>>
>> On Sat, 28 Nov 2009, Mr. James W. Laferriere wrote:
>>>
>>> On Sat, 28 Nov 2009, Jakub Jankowski wrote:
>>>> On Saturday 28 of November 2009, Mr. James W. Laferriere wrote:
>>>>>  	That seemed to get me past that 'configure' difficulty ,  But of
>>>>>  course there is now another during 'make' :-( .
>>>>>  	What include file am I missing now ?  This is surely symptomatic of a
>>>>> missing include file or include file version level .  I've searched the
>>>>>  whole of my logging system & not found any .h file with this symbol
>>>>>  defined on it . This is getting disheartening .  Eventlog compiled w/o
>>>>>  any problems at all .
>>>> [...]
>>>>> logmatcher.c: In function `log_matcher_pcre_re_compile':
>>>>> logmatcher.c:534: error: `PCRE_NEWLINE_ANYCRLF' undeclared (first use
>>>>>  in this function)
>>>>
>>>> Your pcre is probably too old. Either compile with --disable-pcre, or
>>>> upgrade pcre.
>>>> HTH
>>> 	Yes  it did help .  But again another symbol is missing .  This one
>>> seems to be in the tls libraries .
>>>
>>> 	I'd like to suggest that the maintainer of the configure.in start
>>> checking for these symbols or AT LEAST the appropriate versions of the libraries
>>> these symbols reside in .  The checking is obviosly not being done correctly or
>>> completely .  As both of these symbols have been caught during compile time not
>>> during the checking that configure does .
>>>
>>> 	Also Please remember not every system out there is able to be deeply
>>> upgraded at many of its library levels .
>>>
>>> 	I remember having to dig out missing symbols back when I managed a
>>> Ultrix system (on a uVax) trying to get pppd and tools to compile .  And just
>>> about any other tool I wanted on that system .  But heck that was back in 1990
>>> (and a little later) .  Then a little bit after that as Linux began being the
>>> one OS I tended to lean toward .  But most packages have progressed very nicely
>>> since then & I have not had to even think about these types of difficulties in
>>> some many years .
>>>
>>> 	But I do have to admit this system needs a to the roots upgrade .  Which
>>> I am working toward ,  But even that's getting a tad slowed down .
>>> 	Sorry about the rant .
>>> 	Please take that suggestion to heart tho .
>>>
>>> 		Twyl ,  JimL
>>>
>>> if gcc -DHAVE_CONFIG_H -I. -I. -I..   -I/usr/include/glib-2.0
>>> -I/usr/lib/glib-2.0/include   -I/usr/local/include/eventlog       -D_GNU_SOURCE
>>> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -g -O2 -Wall -MT main.o -MD -MP -MF
>>> ".deps/main.Tpo" -c -o main.o main.c; \
>>> then mv -f ".deps/main.Tpo" ".deps/main.Po"; else rm -f ".deps/main.Tpo"; exit
>>> 1; fi
>>> gcc  -g -O2 -Wall   -o syslog-ng  main.o libsyslog-ng.a   -lrt -lnsl -lfl
>>> -lglib-2.0   -L/usr/local/lib -levtlog   -lssl -lcrypto  -lz
>>> libsyslog-ng.a(tlscontext.o)(.text+0x6ea): In function
>>> `tls_context_setup_session':
>>> /home/archive/syslog-ng-3.0.4/src/tlscontext.c:278: undefined reference to
>>> `X509_VERIFY_PARAM_set_flags'
>>> collect2: ld returned 1 exit status
>>> make[2]: *** [syslog-ng] Error 1
>>> make[2]: Leaving directory `/home/archive/syslog-ng-3.0.4/src'
>>> make[1]: *** [all-recursive] Error 1
>>> make[1]: Leaving directory `/home/archive/syslog-ng-3.0.4'
>>> make: *** [all] Error 2
>>
>>  	Now I am confused ,  There is a .h file with the necessary symbol
>> definition on my system & configure did not use that include file obviously .
>>  	Unless there is something in the ld commands that forces the use of
>> a *.so|*.a file instead (something like '-Bdynamic, -dy, -call_shared' ... ?
>
>>
>>  	I had just finished updating openssl (several days ago) & running
>> ldconfig as well afterward in order to re-compile my ssh .
>>
>> # dir /usr/include/openssl/x509_vfy.h
>> 24 -rw-r--r--  1 root root 20782 2009-11-22 12:05 /usr/include/openssl/x509_vfy.h
>>
>>  	Lets see what the symbols definition looks like .
>>
>> # grep -C1 X509_VERIFY_PARAM_set_flags /usr/include/openssl/x509_vfy.h
>>
>>   int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name);
>> :int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned long flags);
>>   int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param,
>>
>>  	Just in case there are more than one installed instance of openssl ,  It
>> could have been hiding in /usr/local or some such ,  like I said this is an old box .
>>
>> # find / -xdev -name x509_vfy.h -ls
>>
>> 3565418   24 -rw-r--r--   1 root     root        20782 Nov 22 12:05 /usr/include/openssl/x509_vfy.h
>
> What you get is a linker error, whereas the header file is used only by
> the compiler. So you seem to have an .so file that doesn't match your
> headers.
>
>
> 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 .


> 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 :^( .

> However you could always try to install syslog-ng binaries, which you
> can find on BalaBit's homepage at:
>
> https://www.balabit.com/network-security/syslog-ng/opensource-logging-system/#
>
> Click on the "Downloads" tab, then "Sources & binaries"
>
> We don't support these binaries on Slackware, however even if the
> install.sh script fails, you could always extract the binaries using
>
> ./syslog-ng<version>.run --tar xvfz
>
> then copy the binaries to /opt/syslog-ng and doing the necessary steps
> to disable syslogd & start syslog-ng in the boot process.
 	Beleive me I am aware that balabit does not support slackware packages .
 	And the only way i could use those packaged binaries is if they were 
statically linked .
 	But I've gotten things straightened enough that syslog-ng-3.0.4 now 
compiles succssfully ,  not saying that the binary I've created is usable but 
...
 	I'll give this a try and go from there .

 		With thanks to Jakub & Balazs .  Twyl ,  JimL
-- 
+------------------------------------------------------------------+
| James   W.   Laferriere | System    Techniques | Give me VMS     |
| Network&System Engineer | 3237     Holden Road |  Give me Linux  |
| babydr at baby-dragons.com | Fairbanks, AK. 99709 |   only  on  AXP |
+------------------------------------------------------------------+


More information about the syslog-ng mailing list