Recent, e.g. wise-2.2.0, and presumably older versions of wise will no longer build due to upgrades/extensions of the glibc. The <stdio.h> include now defines getline() which prevents compilation of HMMer2/sqio.c. This can be resolved by changing all of the getline() calls to a different function name. Since they all appear to be in that source file this isn't to difficult.
Modified file will be attached, someone needs to prepare a diff patch (I don't know how to do it) and include it in the package release.
Steps to Reproduce:
1. emerge wise
Wise fails to build:
i686-pc-linux-gnu-gcc -c -O2 -march=prescott -pipe -c sqio.c
sqio.c:232: error: conflicting types for 'getline'
/usr/include/stdio.h:651: error: previous declaration of 'getline' was here
make: *** [sqio.o] Error 1
make: Leaving directory `/root2/var/tmp/portage/sci-biology/wise-2.2.0/work/wise2.2.0/src/HMMer2'
wise should emerge.
It is also worth noting that the ebuilds for this package are horrible.
1. The makefiles require editing to set the use of pthreads (USE=threads should produce modifications to build with threads). This may require patching the makefiles.
2. The makefiles require editing to make use of the hmmer package installed on the system rather than the HMMer code included with wise. Thus USE=hmmer should use the system hmmer and -hmmer should use the HMMer package that is included with wise. This suggests to me that the hmmer dependency that creates conflicts with qrna (Bug #265534) is not necessary (wise doesn't normally depend on hmmer). Future upgrades with USE=hmmer would have to ensure that the system hmmer is an acceptable version.
3. There should also be a "doc" option (since my last build of this package produced a number of errors/missing files when attempting to produce the documentation). It might also be useful to check the "doc" build to see why it generates latex errors.
In short, one should be able to USE="threads hmmer doc" emerge wise, and get a thread enabled version using your system hmmer and documentation.
Created attachment 198458 [details]
sqio.c source file with altered getline() function name
This should allow the building of the HMMer2 subset of wise. Also, lack of a wise included hmmer should not prevent building because one can edit the makefile (or perhaps use environment variables) to adjust HMMER_DEFINE, HMMER_INCLUDE and HMMER_LIBS to use a foreign hmmer.
Also, looking at the EMBL-EBI web site for Wise2 (http://www.ebi.ac.uk/Tools/Wise2/index.html), it would appear that they consider v. 2.1.20 to be the "stable" release, so perhaps Gentoo should backtrack to include an ebuild version for that as well.