Hi, I need to compile syslog-ng with glibc 2.0.6 (don't tell me to upgrade the system... it's another 'sad system administration without power story'), can anyone tell me if any older version of syslog-ng work with this glibc? Thanks Raffaele
Hi, Raffaele <raffaele@unipr.it> [20071018 17:27:55 +0200]:
Hi, I need to compile syslog-ng with glibc 2.0.6 (don't tell me to upgrade the system... it's another 'sad system administration without power story'), can anyone tell me if any older version of syslog-ng work with this glibc?
*cough* static compile *cough* Cheers Alex
Alexander Clouter wrote:
Hi,
Raffaele <raffaele@unipr.it> [20071018 17:27:55 +0200]:
Hi, I need to compile syslog-ng with glibc 2.0.6 (don't tell me to upgrade the system... it's another 'sad system administration without power story'), can anyone tell me if any older version of syslog-ng work with this glibc?
*cough* static compile *cough*
Hi Alex, I'm not so smart but surely you have a cold :) Can you explain a bit more? Cheers Raffaele
On Thu, 2007-10-18 at 17:44 +0200, Raffaele wrote:
Alexander Clouter wrote:
Hi,
Raffaele <raffaele@unipr.it> [20071018 17:27:55 +0200]:
Hi, I need to compile syslog-ng with glibc 2.0.6 (don't tell me to upgrade the system... it's another 'sad system administration without power story'), can anyone tell me if any older version of syslog-ng work with this glibc?
*cough* static compile *cough*
Hi Alex, I'm not so smart but surely you have a cold :) Can you explain a bit more?
static linking won't work accross different major glibc versions, as syslog-ng uses NSS libraries that have different binary interfaces and can't be linked statically. you can recompile syslog-ng on an older system that has old glibc. The only problem you can have is glib and friends as older systems usually have a too old glib version. -- Bazsi
Hi, Balazs Scheidler <bazsi@balabit.hu> [20071018 17:53:47 +0200]:
static linking won't work accross different major glibc versions, as syslog-ng uses NSS libraries that have different binary interfaces and can't be linked statically.
you can recompile syslog-ng on an older system that has old glibc.
The only problem you can have is glib and friends as older systems usually have a too old glib version.
Good point, however a possible workaround is: http://www.gnu.org/software/libc/FAQ.html#s-2.22 Hopefully that will work for you if syslog-ng will not compile (for whatever reason) against a really old glibc. Cheers Alex
Alexander Clouter wrote:
Hi,
Balazs Scheidler <bazsi@balabit.hu> [20071018 17:53:47 +0200]:
static linking won't work accross different major glibc versions, as syslog-ng uses NSS libraries that have different binary interfaces and can't be linked statically.
you can recompile syslog-ng on an older system that has old glibc.
The only problem you can have is glib and friends as older systems usually have a too old glib version.
Good point, however a possible workaround is:
http://www.gnu.org/software/libc/FAQ.html#s-2.22
Hopefully that will work for you if syslog-ng will not compile (for whatever reason) against a really old glibc.
Cheers Alex
Hi guys, what is wrong? web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # cat /etc/issue Welcome to SuSE Linux 9.0 (i586) - Kernel \r (\l). web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # uname -r 2.4.21-297-smp4G web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # rpm -qi glibc | grep Version Version : 2.3.2 web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # ./configure --prefix=/usr --enable-static-linking checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for gcc option to accept ANSI C... none needed checking for bison... bison -y checking for flex... flex checking lex output file root... lex.yy checking lex library... -lfl checking whether yytext is a pointer... yes checking whether make sets $(MAKE)... (cached) yes checking for ranlib... ranlib checking how to enable static linking for certain libraries... GNU or Solaris checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dmalloc.h usability... no checking dmalloc.h presence... no checking for dmalloc.h... no checking for strings.h... (cached) yes checking openssl/ssl.h usability... yes checking openssl/ssl.h presence... yes checking for openssl/ssl.h... yes checking getopt.h usability... yes checking getopt.h presence... yes checking for getopt.h... yes checking stropts.h usability... yes checking stropts.h presence... yes checking for stropts.h... yes checking sys/strlog.h usability... no checking sys/strlog.h presence... no checking for sys/strlog.h... no checking door.h usability... no checking door.h presence... no checking for door.h... no checking tcpd.h usability... yes checking tcpd.h presence... yes checking for tcpd.h... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for struct tm.tm_gmtoff... yes checking for I_CONSLOG... no checking for O_LARGEFILE... yes checking for struct sockaddr_storage... yes checking for struct sockaddr_in6... yes checking for door_create in -ldoor... no checking for socket in -lsocket... no checking for nanosleep in -lrt... yes checking for gethostbyname in -lnsl... yes checking for regexec in -lregex... no checking for res_init in -lresolv... no checking for strdup... yes checking for strtol... yes checking for strtoll... yes checking for strtoimax... yes checking for inet_aton... yes checking for inet_ntoa... yes checking for getopt_long... yes checking for getaddrinfo... yes checking for getutent... yes checking for TCP wrapper library... -lwrap checking for LIBNET... yes checking whether to enable Sun STREAMS support... no checking whether to enable Sun door support... no checking whether to enable TCP wrapper support... yes checking whether to enable spoof source support... yes checking whether to enable IPv6 support... yes checking for pkg-config... no checking for GLIB... configure: error: Cannot find GLib library version
= 2.2: is pkg-config in path?
web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # ls -al /usr/lib/pkgconfig/ total 86 drwxr-xr-x 2 root root 520 Oct 18 18:13 . drwxr-xr-x 80 root root 30400 Oct 18 18:13 .. -rw-r--r-- 1 root root 273 Sep 24 2003 ImageMagick++.pc -rw-r--r-- 1 root root 542 Sep 24 2003 ImageMagick.pc -rw-r--r-- 1 root root 202 Sep 23 2003 audiofile.pc -rw-r--r-- 1 root root 308 Sep 24 2003 directfb-internal.pc -rw-r--r-- 1 root root 283 Sep 24 2003 directfb.pc -rw-r--r-- 1 root root 231 Oct 18 18:13 eventlog.pc -rw-r--r-- 1 root root 225 Sep 23 2003 fontconfig.pc -rw-r--r-- 1 root root 197 Sep 24 2003 libdv.pc -rw-r--r-- 1 root root 231 Sep 23 2003 libexif.pc -rw-r--r-- 1 root root 311 Sep 23 2003 libgphoto2.pc lrwxrwxrwx 1 root root 11 Apr 14 2004 libpng.pc -> libpng12.pc -rw-r--r-- 1 root root 232 Sep 23 2003 libpng12.pc -rw-r--r-- 1 root root 266 Dec 3 2004 openssl.pc -r--r--r-- 1 root root 219 Sep 23 2003 xcursor.pc -r--r--r-- 1 root root 428 Sep 23 2003 xft.pc Thanks for help Raffaele
On Thu, 2007-10-18 at 18:41 +0200, Raffaele Cicchese wrote:
Alexander Clouter wrote:
Hi,
Balazs Scheidler <bazsi@balabit.hu> [20071018 17:53:47 +0200]:
static linking won't work accross different major glibc versions, as syslog-ng uses NSS libraries that have different binary interfaces and can't be linked statically.
you can recompile syslog-ng on an older system that has old glibc.
The only problem you can have is glib and friends as older systems usually have a too old glib version.
Good point, however a possible workaround is:
http://www.gnu.org/software/libc/FAQ.html#s-2.22
Hopefully that will work for you if syslog-ng will not compile (for whatever reason) against a really old glibc.
Cheers Alex
Hi guys, what is wrong?
[...]
checking for GLIB... configure: error: Cannot find GLib library version
= 2.2: is pkg-config in path?
Perhaps you want to check on your version of GLib? Maybe: # rpm -qa | grep glib -- Matt Zagrabelny - mzagrabe@d.umn.edu - (218) 726 8844 University of Minnesota Duluth Information Technology Systems & Services PGP key 1024D/84E22DA2 2005-11-07 Fingerprint: 78F9 18B3 EF58 56F5 FC85 C5CA 53E7 887F 84E2 2DA2 He is not a fool who gives up what he cannot keep to gain what he cannot lose. -Jim Elliot
Matt Zagrabelny wrote:
On Thu, 2007-10-18 at 18:41 +0200, Raffaele Cicchese wrote:
Alexander Clouter wrote:
Hi,
Balazs Scheidler <bazsi@balabit.hu> [20071018 17:53:47 +0200]:
static linking won't work accross different major glibc versions, as syslog-ng uses NSS libraries that have different binary interfaces and can't be linked statically.
you can recompile syslog-ng on an older system that has old glibc.
The only problem you can have is glib and friends as older systems usually have a too old glib version.
Good point, however a possible workaround is:
http://www.gnu.org/software/libc/FAQ.html#s-2.22
Hopefully that will work for you if syslog-ng will not compile (for whatever reason) against a really old glibc.
Cheers Alex Hi guys, what is wrong?
[...]
checking for GLIB... configure: error: Cannot find GLib library version
= 2.2: is pkg-config in path?
Perhaps you want to check on your version of GLib?
Maybe:
# rpm -qa | grep glib
Hi, in the previous message I quoted: web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # rpm -qi glibc | grep Version Version : 2.3.2 Anyway: web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # rpm -qa | grep glib glib-1.2.10-482 glibc-locale-2.3.2-87 glibc-2.3.2-88 glibc-info-2.3.2-87 glibc-devel-2.3.2-87 glib2-2.2.3-21 It seems to me that glibc is the right version, but the file /usr/lib/pkgconfig/glib-2.0.pc (or similar) is missing and the configure try to look for that file. Am I right? Is there any workaround to that? Thanks Raffaele
Hello,
web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # rpm -qa | grep glib glib-1.2.10-482 glibc-locale-2.3.2-87 glibc-2.3.2-88 glibc-info-2.3.2-87 glibc-devel-2.3.2-87 glib2-2.2.3-21
It seems to me that glibc is the right version, but the file /usr/lib/pkgconfig/glib-2.0.pc (or similar) is missing and the configure try to look for that file. Am I right? Is there any workaround to that?
glib != glibc. Install the glib2-devel package and pkgconfig as it seems your system doesn't have these. Regards, Sandor -------------------------------------------------------- NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error.
Geller, Sandor (IT) wrote:
Hello,
web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # rpm -qa | grep glib glib-1.2.10-482 glibc-locale-2.3.2-87 glibc-2.3.2-88 glibc-info-2.3.2-87 glibc-devel-2.3.2-87 glib2-2.2.3-21
It seems to me that glibc is the right version, but the file /usr/lib/pkgconfig/glib-2.0.pc (or similar) is missing and the configure try to look for that file. Am I right? Is there any workaround to that?
glib != glibc. Install the glib2-devel package and pkgconfig as it seems your system doesn't have these.
Sorry guys, I'm the least skillful here :( I'm trying with 1.6.12 version to see if it's easier. Thanks Raffaele
Raffaele wrote:
Geller, Sandor (IT) wrote:
Hello,
web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # rpm -qa | grep glib glib-1.2.10-482 glibc-locale-2.3.2-87 glibc-2.3.2-88 glibc-info-2.3.2-87 glibc-devel-2.3.2-87 glib2-2.2.3-21
It seems to me that glibc is the right version, but the file /usr/lib/pkgconfig/glib-2.0.pc (or similar) is missing and the configure try to look for that file. Am I right? Is there any workaround to that? glib != glibc. Install the glib2-devel package and pkgconfig as it seems your system doesn't have these.
Sorry guys, I'm the least skillful here :( I'm trying with 1.6.12 version to see if it's easier.
I think that you will find it more difficult to use version 1.6.x. Also, the 2.x series is the only one that will continue to be developed. Let's see if I can add a little less "skilled" instruction. First, lets look at glibc where you have listed glibc-2.3.2-88 glibc-devel-2.3.2-87 There are two with the same version of 2.3.2 (the -xx is a packaging revision number). The first is the runable component that is used by applicaton when you run then. The second (the -devel) is needed only if you are compiling/building applications that use glibc. Now let's turn our attention to your problem, shich is glib2 and you list glib2-2.2.3-21 There is nod -devel version. Because you are trying to compile/build syslog-ng you require the -devel version. So, you need to install the package glib2-devel Depending on your OS, you may use up2date, yum, apt or whatever package management system you have. Once you have the glib2-devel installed you will get the .pc (package configuration) file that syslog-ng uses during the build process. I hope this is more clear. Evan.
Evan Rempel wrote:
Raffaele wrote:
Geller, Sandor (IT) wrote:
Hello,
web1:~/syslog-ng/syslog-ng-2.0.5+20071018 # rpm -qa | grep glib glib-1.2.10-482 glibc-locale-2.3.2-87 glibc-2.3.2-88 glibc-info-2.3.2-87 glibc-devel-2.3.2-87 glib2-2.2.3-21
It seems to me that glibc is the right version, but the file /usr/lib/pkgconfig/glib-2.0.pc (or similar) is missing and the configure try to look for that file. Am I right? Is there any workaround to that? glib != glibc. Install the glib2-devel package and pkgconfig as it seems your system doesn't have these. Sorry guys, I'm the least skillful here :( I'm trying with 1.6.12 version to see if it's easier.
I think that you will find it more difficult to use version 1.6.x. Also, the 2.x series is the only one that will continue to be developed.
Let's see if I can add a little less "skilled" instruction.
First, lets look at glibc where you have listed
glibc-2.3.2-88 glibc-devel-2.3.2-87
There are two with the same version of 2.3.2 (the -xx is a packaging revision number).
The first is the runable component that is used by applicaton when you run then. The second (the -devel) is needed only if you are compiling/building applications that use glibc.
Now let's turn our attention to your problem, shich is glib2 and you list
glib2-2.2.3-21
There is nod -devel version. Because you are trying to compile/build syslog-ng you require the -devel version.
So, you need to install the package glib2-devel Depending on your OS, you may use up2date, yum, apt or whatever package management system you have.
Once you have the glib2-devel installed you will get the .pc (package configuration) file that syslog-ng uses during the build process.
I hope this is more clear.
Evan.
Hi guys, here the happy end (hopefully) of my sad story. After compiling, installing and trying syslog-ng 1.6.12 I discovered the lack of support for file() source driver: (https://lists.balabit.hu/pipermail/syslog-ng/2007-October/010791.html) Back again to 2.0.5 version... It has been difficult to install glib2-devel and pkgconfig on a Suse 9.0 because of missing CD-rom (not my fault I promise.. :). In the end I found them here: ftp://ftp.gwdg.de/pub/linux/suse/discontinued/i386/9.0/suse/i586/glib2-devel-2.2.3-27.i586.rpm ftp://ftp.gwdg.de/pub/linux/suse/discontinued/i386/9.0/suse/i586/pkgconfig-0.15.0-108.i586.rpm Installed glib2-devel-2.2.3-27.i586.rpm and pkgconfig-0.15.0-108.i586.rpm, configured and compiled eventlog, created eventlog rpm with checkinstall, configured (with '--enable-static-linking') and compiled syslog-ng, created syslog-ng rpm with checkinstall. Copied eventlog and syslog-ng rpm on machine with Suse 8.0 (the one with glib < 2.2) and ... It works!!! Thanks to: Alexander Clouter (the guru with cold ;) Bazsi (the great inventor) Matt Zagrabelny Sandor Geller Evan Rempel You are all great, for your patience and your skills. Regards Raffaele
Hi, Raffaele <raffaele@unipr.it> [20071018 17:44:39 +0200]:
I need to compile syslog-ng with glibc 2.0.6 (don't tell me to upgrade the system... it's another 'sad system administration without power story'), can anyone tell me if any older version of syslog-ng work with this glibc?
*cough* static compile *cough*
I'm not so smart but surely you have a cold :) Can you explain a bit more?
Statically compiling something means that you get an executable application that has no dependencies on any libraries. So although the local machine might only have glib 2.0.6, you could compile it on another machine against 2.3.6 statically and then copy the resulting (sizable) binary to the 'legacy' system. Simply put, it merges all the required libraries (what you would see when you type 'ldd \sbin\syslog-ng'[1] into a single independent file that can run on it's own steam. To do this, compile as usual syslog-ng on a similar but more up-to-date machine but also pass '--enable-static-linking' to './configure' when you run it. After it compiles instead of the usual 300kB binary you will get a file that is several megabytes in size (the glibc library and others all all included in a single package). Result....win! :) Have fun Alex [1] ac56@logging0:~$ ldd /sbin/syslog-ng linux-gate.so.1 => (0xffffe000) libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb7f3c000) librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7f33000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e01000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7def000) /lib/ld-linux.so.2 (0xb7f59000)
participants (7)
-
Alexander Clouter
-
Balazs Scheidler
-
Evan Rempel
-
Geller, Sandor (IT)
-
Matt Zagrabelny
-
Raffaele
-
Raffaele Cicchese