Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 278307

Summary: =sci-biology/wise-2.2.0 fails to build with glibc 2.10+
Product: Gentoo Linux Reporter: Robert Bradbury <robert.bradbury>
Component: Current packagesAssignee: Gentoo Science Biology related packages <sci-biology>
Status: RESOLVED FIXED    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 270353    
Attachments: sqio.c source file with altered getline() function name

Description Robert Bradbury 2009-07-19 10:26:48 UTC
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.




Reproducible: Always

Steps to Reproduce:
1. emerge wise


Actual Results:  
Wise fails to build:

produces:
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[1]: *** [sqio.o] Error 1
make[1]: Leaving directory `/root2/var/tmp/portage/sci-biology/wise-2.2.0/work/wise2.2.0/src/HMMer2'


Expected Results:  
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.
Comment 1 Robert Bradbury 2009-07-19 10:32:07 UTC
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.
Comment 2 Robert Bradbury 2009-07-19 10:43:32 UTC
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.
Comment 3 Samuli Suominen (RETIRED) gentoo-dev 2009-08-05 19:41:48 UTC
fixed