Hi! I'm not sure if this is a bug or not, but I've exhausted every possibility I could think of to check, so I'm reaching out here.
After compiling Kildclient on my Gentoo Linux system, I initially suspected a build flag issue, as the new/edit world window never offers the checkbox for SSL support.
I then compiled kildclient-3.0.1 from source, and verified that it is set to build with the GNUTLS extensions.
The config.log file reports:
configure:5566: checking for LIBGNUTLS
configure:5573: $PKG_CONFIG --exists --print-errors "gnutls"
configure:5576: $? = 0
configure:5590: $PKG_CONFIG --exists --print-errors "gnutls"
configure:5593: $? = 0
configure:5637: result: yes
Near as I can tell, it is compiling with the gnutls-3.3.10 package I also have installed. However, the Use SSL checkbox is still missing on my dialog. If I try to connect to a world using the SSL port, the main window says I'm connected... and nothing else happens. I do not get the prompt I might otherwise expect from net.c that says SSL support was not compiled in.
I'd really like to figure out what I'm missing! Maybe it's something trivial that configure isn't checking for that I'm expected to have and do not? Please let me know what else I can offer to try to figure this out.
Thank you!
Check the generated kcconfig.h file to see what it says about HAVE_LIBGNUTLS. Even though your log indicates that it was detected, the behavior you see suggests that it was compiled without SSL support.
Ah-hah! The contents of that file would verify your conclusion.
kcconfig.h:
/ Do we have the gnutls library? /
/ #undef HAVE_LIBGNUTLS /
So, despite being detected in configure going by the config.log, and not specifically excluded as a build option, it is not being defined in kcconfig.h, and therefore not being compiled in.
If I change that line to '#define HAVE_LIBGNUTLS 1' and recompile, is that likely to work? Or is there a more optimal way for me to go about this?
Changing that and recompiling should be all that's necessary to enable support. However, since something didn't work right with the configure script, it might not have added the necessary compiler flags to link the library in the Makefile. But you can add them there, on my system they're just
LIBGNUTLS_CFLAGS = -I/usr/include/p11-kit-1
LIBGNUTLS_LIBS = -lgnutls
(add them to Makefile and src/Makefile). You can get the exact flags necessary with
pkg-config --cflags gnutls
pkg-config --libs gnutls
The disadvantage of the manual edits is that if the configure script is run again they might be overwritten.
As for why the kcconfig.h file is wrongly generated, I have no idea. But looks like a bug in autoconf or its related programs.
This might be enlightening:
localhost kildclient-3.0.1 # pkg-config --cflags gnutls
localhost kildclient-3.0.1 # pkg-config --libs gnutls
-lgnutls
I don't appear to have any cflags set for gnutls. The outputs as represented above were in Makefile and src/Makefile.
However, adding #define HAVE_LIBGNUTLS 1 and recompiling did present the Use SSL option, and I was able to successfully make an SSL connection to a server. So, that worked! Given the effort I expended to fix this prior to reaching out, I'll remember to keep on top of any automatic updates that might break it in the future. Thanks for the help! :)