Installing 4.03.04 on Linux problem (krb5)

Hey there,

I tried to install ROOT from source on Debian Linux (AMD64) and the compilation errored out on linking to krb5. So I thought, by configuring without krb5 I can solve this, but that’s not the case:

# ./configure linuxx8664gcc --disable-krb5 --disable-xrootd --prefix=/usr/local
# make debian
.... 
g++ -shared -Wl,-soname,libSrvAuth.so.4.03 -m64 -O2 -o lib/libSrvAuth.so.4.03 rpdutils/src/rpdutils.o rpdutils/src/ssh.o net/src/DaemonUtils.o -lcrypt -lssl -lcrypto /usr/lib64/libkrb5.a /usr/lib64/libk5crypto.a -lssl -lcrypto -lcom_err -lresolv -Llib -lCore -lCint
/usr/bin/ld: /usr/lib64/libkrb5.a(ccbase.o): relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC
/usr/lib64/libkrb5.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [lib/libSrvAuth.so] Fehler 1
make[2]: Verlasse Verzeichnis »/home/frank/downloads/root-4.03.04«
make[1]: *** [build-arch-stamp] Fehler 2
make[1]: Verlasse Verzeichnis »/home/frank/downloads/root-4.03.04«
make: *** [debian] Fehler 2

The same happens on a normal “make install”.
What command do I have to use to disable krb5-usage (maybe deinstalling krb5?)?
Or even better: How is this compilation problem solved? I have encountered it before on a completely different system but was able to disable krb5 there.

Thanks,
Frank

Dear Frank,

What you did is correct and it is surprising that you still have the krb5 libs in the link statement.
Could you send the output of ./configure and the config/Makefile.config that you get ?

You can try enabling linking against shared libs passing option --enable-shared to configure.

Gerri Ganis

Thanks a lot for your reply, Gerri. I have ROOT working now :slight_smile:

I noticed, that “make debian” will cause another configure with the options the Debian-script chooses. So it is not suprising that “make debian” linked with the krb5 libs. One can change these options in /build/package/debian/rules.

But still, the “make debian” failed right at the end (after it had compiled and installed everything into debian/tmp), because it could not find the header file “debian/tmp/usr/include/root/TXAbsNetCommon.h”

So I tried another “make install” on a fresh ROOT-source directory and it worked (without linking krb5) :slight_smile:

Another note: Somewhere “make debian” said, that it is building ROOT version 4.03.03, so the Debian script seems to not be completely up to date.

But this doesn’t matter to me anymore, as I have "make install"ed it into /usr/local now. Thanks a lot for your help!

Frank

PS: Why does ROOT not provide official precompiled Debian packages? I suppose it would not be so much work, given that a “make debian” already exists. And Debian seems to be a very popular distribution among physicists… After all, ROOT even provides Redhat packages.