Rpmbuild failed on dependency gnutls-devel even when pkg-config identifies the installed library

rpm

I'm trying to install the latest version of csync2, file synchronization tool, from LINBIT on CENT OS 5.4. Some recent changes made to this software have mandated that gnutls>=2.6 is installed on the system (for SSL support).

Unfortunately, the gnutls rpms available on CENT OS 5 are of the version not higher than 1.4.3. However, i found some compat-gnutls*.rpm, compat-gnutls-devel*.rpm from 'art' repository and installed those on my CENT OS 5 system. I verified that this library (names, gnutls) is installed properly by running the following commands which all returned expected results.

pkg-config --cflags --print-errors gnutls 
pkg-config --libs --print-errors gnutls

gcc `pkg-config gnutls --cflags`   -o test.o test.c

gcc -lgnutls -o test.o test.c


pkg-config --cflags "gnutls >= 2.6.0"
pkg-config  --modversion gnutls | awk -F. '{ printf "0x%02X%02X%02X\n",$1,$2,$3 }'

Now, after that I tried to build the rpm of cssync2 which is failing with following errors:

[root@myvm1 opt]# rpmbuild -bb /usr/src/redhat/SPECS/csync2.spec
error: Failed build dependencies:
    gnutls-devel is needed by csync2-2.0-0.1.rc1.x86_64
You have new mail in /var/spool/mail/root
[root@myvm1 opt]#

I tried installing wireshark which also depends on gnutls; it is also failing on the same dependency, i.e. gnutls.

[root@myvm1 replica]# rpm -ivh wireshark-1.0.15-1.el5_6.4.x86_64.rpm
error: Failed dependencies:
    libgnutls.so.13()(64bit) is needed by wireshark-1.0.15-1.el5_6.4.x86_64
    libgnutls.so.13(GNUTLS_1_3)(64bit) is needed by wireshark-1.0.15-1.el5_6.4.x86_64
    libsmi.so.2()(64bit) is needed by wireshark-1.0.15-1.el5_6.4.x86_64

I'm not sure why the rpm or rpmbuild are not detecting the installed gnutls libraries even when it is already installed on the system.

Here is what the command "locate libgnutls.so" returned indicating the presence of libgnutls.

[root@pdev22vm1 replica]# locate libgnutls.so
/usr/gnutls2/lib/libgnutls.so
/usr/gnutls2/lib/libgnutls.so.26
/usr/gnutls2/lib/libgnutls.so.26.14.12
/usr/lib/libgnutls.so
/usr/lib64/libgnutls.so

and the command "locate libgnutls-openssl.so" returned:

[root@pdev22vm1 replica]# locate libgnutls-openssl.so
/usr/gnutls2/lib/libgnutls-openssl.so
/usr/gnutls2/lib/libgnutls-openssl.so.26
/usr/gnutls2/lib/libgnutls-openssl.so.26.14.12
/usr/lib/libgnutls-openssl.so
/usr/lib64/libgnutls-openssl.so

I even tried building the csync2 rpm by removing dependency on "gnutls-devel"; the built rpm did no work with SSL and errored out "this binary is not built SSL".

Can someone help me understand why rpm or rpmbuild are not recognizing the installed gnutls library and what can be done to overcome this situation?

Thanks and Regards,
Samba

Best Answer

I think you need to edit your SRPMS to modify the spec file to list a build require on compat-gnutls-devel ie the one you found for the latest version.

If you don't know how to modify a SRPMS and can't find appropriate doc with google, I'll try to help you further.

Related Topic