Hi, I noticed latest gnutls depends explicitly on libidn2-0.16, which is broken (and masked) on any platform lacking <error.h>. I tried compiling gnutls against libidn2-0.11, and it seems to work fine. I also could not find any reference in gnutls docs about this dependency. Is there a reason for depending on this explicit version? Another thing I noticed is that it pulls in gcc. On platforms where gcc is not the default compiler (but Clang instead) this is kind of annoying. I'm not sure why it needs a compiler as rdep, but assuming it needs this, would it be ok to change this into an or-case with clang/llvm instead? Thanks!
For idn: As any non-maintainer commits... bug#609180 created the explicit dependency of idn and also did not enable in package the proper settings.
For the gcc, we probably need some cc virtual with cxx USE, any recommendation how to make sure cxx is available in system?
Is this because libstdc++ needs to be around?
This is a generic issue... A package has cxx USE flag to build C++ library or whatever. The C compiler has a USE flag to enable or disable C++. How can we maintain integrity of the system? We do not have something like a virtual/cc[cxx] to depend on or even virtual/cxx, right?
Errr, yes, but then it should be a library virtual/libcxx or something. Larger problem, which we now deal with by Portage's preserve-libs feature, such that if you upgrade/reinstall gcc without cxx, it keeps the lib around. (Or any lib in that way.) I think you should simply drop the gcc[cxx] depend.
Not sure how I can remove this. gcc is currently the only one that is actually supported, if it should be ignored package.provided can be used.
I'll try to build/run it with Clang. What I understand from your comment is that that doesn't work, I question that.
gnutls compiles and links fine with clang/llvm and libc++. So it seems to me you can express this as || ( sys-devel/gcc[cxx?] sys-devel/clang )
FWIW: other packages that use c++ compilers/support don't depend on a compiler for that, for instance ncurses which is a direct @system dependency package.
OK