public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sci-biology/lagan/, sci-biology/lagan/files/
@ 2016-09-18 11:33 David Seifert
  0 siblings, 0 replies; only message in thread
From: David Seifert @ 2016-09-18 11:33 UTC (permalink / raw
  To: gentoo-commits

commit:     9f39270bff954737259cc2b52e97e0bde41f7d2b
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 18 11:25:38 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Sep 18 11:33:03 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f39270b

sci-biology/lagan: Allow for compiling with GCC 6

Gentoo-bug: 594148
* EAPI=6
* Also fix QA violations due to implicit declarations and
  incorrectly formatted fprintf calls.

Package-Manager: portage-2.3.0

 sci-biology/lagan/files/lagan-2.0-fix-c++14.patch  | 473 +++++++++++++++++++++
 .../files/lagan-2.0-qa-implicit-declarations.patch |  96 +++++
 sci-biology/lagan/lagan-2.0-r3.ebuild              |  72 ++++
 3 files changed, 641 insertions(+)

diff --git a/sci-biology/lagan/files/lagan-2.0-fix-c++14.patch b/sci-biology/lagan/files/lagan-2.0-fix-c++14.patch
new file mode 100644
index 00000000..9865f27
--- /dev/null
+++ b/sci-biology/lagan/files/lagan-2.0-fix-c++14.patch
@@ -0,0 +1,473 @@
+Fix building with C++14, which errors out due to namespace collisions with std::end
+in C++14 mode, due to crappy 'using namespace std' declared everywhere.
+See also: https://bugs.gentoo.org/show_bug.cgi?id=594148
+
+--- a/src/ancseq.cpp
++++ b/src/ancseq.cpp
+@@ -30,7 +30,6 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ 
+-using namespace std;
+ 
+ #include "util.cpp"
+ #include "faindex.cpp"
+--- a/src/ancseqrest.cpp
++++ b/src/ancseqrest.cpp
+@@ -31,7 +31,6 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ 
+-using namespace std;
+ 
+ #define fastaRowLength 50
+ typedef char* pchar;
+--- a/src/cutmfa.cpp
++++ b/src/cutmfa.cpp
+@@ -45,7 +45,6 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ 
+-using namespace std;
+ 
+ // TODO refactor in classes and normal make project
+ 
+--- a/src/glocal/glocal.cpp
++++ b/src/glocal/glocal.cpp
+@@ -7,9 +7,9 @@
+ }
+ 
+ //vectors that would be needed globally
+-vector<Fragment> fragments;
+-vector<Point>startPoints;
+-vector<Point>endPoints;
++std::vector<Fragment> fragments;
++std::vector<Point>startPoints;
++std::vector<Point>endPoints;
+ long long int numFragments;
+ InterPoint inter;
+ 
+@@ -19,7 +19,7 @@
+ RI RI_regions[1<<(UPSTRANDBITS+DOWNSTRANDBITS+RELPOSBITS)];
+ LI LI_regions[1<<(UPSTRANDBITS+DOWNSTRANDBITS+RELPOSBITS)];
+ 
+-vector<class Score*> scoreFunctions[1<<(UPSTRANDBITS+DOWNSTRANDBITS+RELPOSBITS)];
++std::vector<class Score*> scoreFunctions[1<<(UPSTRANDBITS+DOWNSTRANDBITS+RELPOSBITS)];
+ 
+ Name allNames;
+ 
+--- a/src/glocal/io.cpp
++++ b/src/glocal/io.cpp
+@@ -3,9 +3,9 @@
+ #include<io.h>
+ #include<algorithm>
+ 
+-extern vector <Fragment> fragments;
+-extern vector <Point> startPoints;
+-extern vector <Point> endPoints;
++extern std::vector <Fragment> fragments;
++extern std::vector <Point> startPoints;
++extern std::vector <Point> endPoints;
+ extern Name allNames;
+ 
+ bool PointCompare(const Point &f1, const Point &f2) {
+@@ -223,8 +223,8 @@
+ 		startPoints.push_back(startPoint);
+ 		endPoints.push_back(endPoint);
+ 	}
+-	sort(startPoints.begin(), startPoints.end(), PointCompare);
+-	sort(endPoints.begin(), endPoints.end(), PointCompare);
++	std::sort(startPoints.begin(), startPoints.end(), PointCompare);
++	std::sort(endPoints.begin(), endPoints.end(), PointCompare);
+ }
+ 
+ 
+--- a/src/glocal/leftinfluence.cpp
++++ b/src/glocal/leftinfluence.cpp
+@@ -154,8 +154,8 @@
+ 
+ 	if (second->score == -1) { return TRUE; }
+ 
+-	dummy.seq1Start = max(first->seq1End, second->seq1End) + 2;
+-	dummy.seq2Start = max(first->getSeq2End(LeftInfluence->reflectFlag), second->getSeq2End(LeftInfluence->reflectFlag)) + 1;
++	dummy.seq1Start = std::max(first->seq1End, second->seq1End) + 2;
++	dummy.seq2Start = std::max(first->getSeq2End(LeftInfluence->reflectFlag), second->getSeq2End(LeftInfluence->reflectFlag)) + 1;
+ 
+ 	if (first->getSeq2End(LeftInfluence->reflectFlag) > second->getSeq2End(LeftInfluence->reflectFlag)) {
+ 		dummy.nameIter = first->nameIter;
+@@ -444,7 +444,7 @@
+ 	temp.seq1 = col - diag;
+ 	temp.seq2 = col;
+ 
+-	pair<Point,LI*> pairp(temp, LeftInfluence);
++	std::pair<Point,LI*> pairp(temp, LeftInfluence);
+ 	tempinter = inter.insert(pairp);
+ 
+ 	colInter->second = tempinter;
+--- a/src/glocal/leftinfluence.h
++++ b/src/glocal/leftinfluence.h
+@@ -39,15 +39,15 @@
+ 
+ 
+ 
+-typedef list<Fragment*> Owner;
+-typedef map <long long int ,Owner::iterator,longlongCompare2> CBound;
++typedef std::list<Fragment*> Owner;
++typedef std::map <long long int ,Owner::iterator,longlongCompare2> CBound;
+ 
+-typedef multimap <Point ,struct LI *,paircomp> InterPoint;
++typedef std::multimap <Point ,struct LI *,paircomp> InterPoint;
+ 
+-typedef map <long long int ,InterPoint::iterator,longlongCompare2> CInter;
+-typedef map <long long int,Owner::iterator,longlongCompare2> DBound;
++typedef std::map <long long int ,InterPoint::iterator,longlongCompare2> CInter;
++typedef std::map <long long int,Owner::iterator,longlongCompare2> DBound;
+ 
+-typedef map <long long int,InterPoint::iterator,longlongCompare2> DInter;
++typedef std::map <long long int,InterPoint::iterator,longlongCompare2> DInter;
+ 
+ 
+ 
+--- a/src/glocal/rightinfluence.h
++++ b/src/glocal/rightinfluence.h
+@@ -17,7 +17,7 @@
+ };
+ 
+ 
+-typedef  map<const long long int , Fragment*,longlongCompare> Active;
++typedef  std::map<const long long int , Fragment*,longlongCompare> Active;
+ 
+ typedef struct RI {
+   //List of active regions
+--- a/src/glocal/score.cpp
++++ b/src/glocal/score.cpp
+@@ -4,7 +4,7 @@
+ #include<rightinfluence.h>
+ #include<fstream>
+ 
+-extern vector<class Score*> scoreFunctions[1<<(UPSTRANDBITS+DOWNSTRANDBITS+RELPOSBITS)];
++extern std::vector<class Score*> scoreFunctions[1<<(UPSTRANDBITS+DOWNSTRANDBITS+RELPOSBITS)];
+ 
+ 
+ float Score::getScore(Fragment *up, Fragment * down) {
+@@ -36,7 +36,7 @@
+ 
+ 
+ void initScoreFunctionPointers(char * scoreFileName) {
+-	ifstream SFP;
++	std::ifstream SFP;
+ 	char line[255];
+ 
+ 	SFP.open(scoreFileName);
+--- a/src/glocal/structs.h
++++ b/src/glocal/structs.h
+@@ -12,7 +12,6 @@
+ #include <list>
+ #include <string.h>
+ 
+-using namespace std;
+ 
+ #define RIGHT 0
+ #define LEFT 1
+@@ -49,7 +48,7 @@
+ };
+ 
+ 
+-typedef map<const char*,long long int ,ltstr> Name;
++typedef std::map<const char*,long long int ,ltstr> Name;
+ 
+ 
+ typedef struct Fragment {
+--- a/src/lagan2mfa.cpp
++++ b/src/lagan2mfa.cpp
+@@ -6,7 +6,6 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ 
+-using namespace std;
+ 
+ // TODO refactor in classes and normal make project
+ 
+--- a/src/makecons.cpp
++++ b/src/makecons.cpp
+@@ -18,7 +18,6 @@
+ #include <ctype.h>
+ #include <time.h>
+ 
+-using namespace std;
+ 
+ #define fastaRowLength 50
+ #define bufSize 2000
+--- a/src/utils/Glue.cpp
++++ b/src/utils/Glue.cpp
+@@ -170,7 +170,7 @@
+ }
+ 
+ void printCoordinates (int seq, int begin, int end){
+-  cout << seqs[seq].getID() << ":" << getSeqCoord(seq, begin) << "-" << getSeqCoord(seq, end) << " ";
++  std::cout << seqs[seq].getID() << ":" << getSeqCoord(seq, begin) << "-" << getSeqCoord(seq, end) << " ";
+ }
+ 
+ int printRegion (int begin, int end){
+@@ -183,7 +183,7 @@
+       score += rescoreRegion (seqs[i], seqs[j], begin, end);
+     }
+   }
+-  cout << score << endl;
++  std::cout << score << std::endl;
+   return score;
+ }
+ 
+@@ -223,7 +223,7 @@
+     }    
+   }
+ 
+-  cout << "= score=" << score << endl;
++  std::cout << "= score=" << score << std::endl;
+ }
+ 
+ int countLets (SafeVector<char> &data){
+@@ -355,7 +355,7 @@
+   FILE* outfile;
+   
+   if (argc < 2 || argc > 3){
+-    cerr << "Usage: Glue align.mfa \n" << endl;
++    std::cerr << "Usage: Glue align.mfa \n" << std::endl;
+     exit (1);
+   }
+   
+@@ -375,7 +375,7 @@
+   SafeVector<int> merged1label, merged2label;
+   int begin1 = 1, end1 = 1;
+ 
+-  ifstream data (argv[1]);
++  std::ifstream data (argv[1]);
+   int alignNum = 0;
+   strand.push_back ('?'); // nothing for alignNum 0
+ 
+@@ -452,7 +452,7 @@
+   SafeVector<char> temp1 (begin1 - 1, 'N');
+   SafeVector<char> temp2 (begin1 - 1, '-');
+ 
+-  for (int i = 0; i < min ((int) temp2.size(), CNTG_BRK_N); i++)
++  for (int i = 0; i < std::min ((int) temp2.size(), CNTG_BRK_N); i++)
+     temp2[i] = 'N';
+ 
+   merged1 = merge (temp1, merged1);
+@@ -471,12 +471,12 @@
+       if (isalpha(merged2[j])) pos2++;
+       
+       if (merged1label[j] == i){
+-	min1 = min (min1, pos1);
+-	max1 = max (max1, pos1);
++	min1 = std::min (min1, pos1);
++	max1 = std::max (max1, pos1);
+       }
+       if (merged2label[j] == i){
+-	min2 = min (min2, pos2);
+-	max2 = max (max2, pos2);
++	min2 = std::min (min2, pos2);
++	max2 = std::max (max2, pos2);
+       }
+     }
+ 
+@@ -489,6 +489,6 @@
+       fprintf (outfile, "%d %d %d 0 0 0 0 %c 0 %d %d\n", i, min1, max1, strand[i], min2, max2);
+   }
+   
+-  printMFA (cout, merged1, string ("first"), 60);
+-  printMFA (cout, merged2, string ("second"), 60);
++  printMFA (std::cout, merged1, std::string ("first"), 60);
++  printMFA (std::cout, merged2, std::string ("second"), 60);
+ }
+--- a/src/utils/MultiSequence.h
++++ b/src/utils/MultiSequence.h
+@@ -12,7 +12,6 @@
+ #include "Sequence.h"
+ #include "SafeVector.h"
+ 
+-using namespace std;
+ 
+ class MultiSequence {
+  private:
+@@ -54,10 +53,10 @@
+ 
+   // Read in all of the Sequences in an MFA file and append them to the
+   // existing MultiSequence object.
+-  void addRawFromMFA (const string& filename){
++  void addRawFromMFA (const std::string& filename){
+     
+     // open up file for reading
+-    ifstream infile (filename.c_str());
++    std::ifstream infile (filename.c_str());
+     
+     // check for error
+     assert (!infile.fail());
+@@ -75,7 +74,7 @@
+ 
+   // Read in all of the Sequences in an MFA file and append them to the
+   // existing MultiSequence object.
+-  void addRawFromMFA (ifstream &infile){
++  void addRawFromMFA (std::ifstream &infile){
+     
+     // check for error
+     assert (!infile.fail());
+@@ -89,7 +88,7 @@
+   }
+ 
+   // Writes sequences to outfile in XMFA format.
+-  void writeToXMFA (ostream &outfile, int numColumns) const {
++  void writeToXMFA (std::ostream &outfile, int numColumns) const {
+     for (int i = 0; i < (int) sequences.size(); ++i){
+       sequences[i].writeToXMFA (outfile, numColumns);
+     }
+--- a/src/utils/Output.h
++++ b/src/utils/Output.h
+@@ -2,18 +2,18 @@
+ #define OUTPUT_H
+ 
+ // print reversed string in MFA format
+-void printMFA (ostream &outfile, SafeVector<char> &data, string comment, int numColumns){
++void printMFA (std::ostream &outfile, SafeVector<char> &data, std::string comment, int numColumns){
+ 
+   int charsWritten = 0;
+ 
+-  outfile << ">" << comment << endl;
++  outfile << ">" << comment << std::endl;
+   for (int i = 0; i < (int) data.size(); i++){
+     outfile << data[i];
+     charsWritten++;
+-    if (charsWritten % numColumns == 0) outfile << endl;
++    if (charsWritten % numColumns == 0) outfile << std::endl;
+   }
+   
+-  if (charsWritten % numColumns != 0) outfile << endl;
++  if (charsWritten % numColumns != 0) outfile << std::endl;
+ }
+ 
+ 
+--- a/src/utils/SafeVector.h
++++ b/src/utils/SafeVector.h
+@@ -10,7 +10,6 @@
+ #include <assert.h>
+ #include <vector>
+ 
+-using namespace std;
+ 
+ // class derived from the STL std::vector
+ template<class TYPE>
+@@ -19,9 +18,9 @@
+ 
+   // miscellaneous constructors
+   SafeVector () {} 
+-  SafeVector (size_t size) : vector<TYPE>(size) {} 
+-  SafeVector (size_t size, const TYPE &value) : vector<TYPE>(size, value) {} 
+-  SafeVector (const SafeVector &source) : vector<TYPE>(source) {}
++  SafeVector (size_t size) : std::vector<TYPE>(size) {} 
++  SafeVector (size_t size, const TYPE &value) : std::vector<TYPE>(size, value) {} 
++  SafeVector (const SafeVector &source) : std::vector<TYPE>(source) {}
+ 
+ #ifdef ENABLE_CHECKS
+ 
+--- a/src/utils/Sequence.h
++++ b/src/utils/Sequence.h
+@@ -8,15 +8,14 @@
+ #include <string>
+ #include "SafeVector.h"
+ 
+-using namespace std;
+ 
+ class Sequence {
+ 
+  private:
+ 
+   // Read header of MFA/XMFA file.
+-  bool readHeader (ifstream &infile, bool &isXMFA){
+-    string header;
++  bool readHeader (std::ifstream &infile, bool &isXMFA){
++    std::string header;
+     
+     while (true){
+       
+@@ -24,7 +23,7 @@
+       if (infile.fail() || infile.eof()) return false;
+       
+       // get new header line
+-      getline (infile, header);
++      std::getline (infile, header);
+       
+       // check that header line is not empty
+       if (header.length() != 0) break;
+@@ -64,7 +63,7 @@
+   int startCoord;            // sequence position of first character
+   int endCoord;              // sequence position of last character
+   char direction;            // + or -
+-  string comment;            // comments                             
++  std::string comment;            // comments                             
+ 
+  public:
+ 
+@@ -77,7 +76,7 @@
+   }
+ 
+   // Constructor.  Reads in a sequence from the input file.
+-  Sequence (ifstream &infile){
++  Sequence (std::ifstream &infile){
+ 
+     bool isXMFA = true;
+     
+@@ -147,7 +146,7 @@
+   }
+ 
+   // Constructor.  Gets sequence from array data.
+-  Sequence (SafeVector<char> data, string comment) : data(data), comment(comment) {
++  Sequence (SafeVector<char> data, std::string comment) : data(data), comment(comment) {
+     length = data.size() - 1;
+     id = 0;
+     startCoord = 1;
+@@ -165,7 +164,7 @@
+     return temp;
+   }
+ 
+-  const string getComment () const {
++  const std::string getComment () const {
+     return comment;
+   }
+ 
+@@ -197,9 +196,9 @@
+   const int getEndCoord () const { assert (isValid); return endCoord; }
+ 
+   // Print XMFA header only.
+-  void writeXMFAHeader (ostream &outfile) const {
++  void writeXMFAHeader (std::ostream &outfile) const {
+     assert (isValid);
+-    outfile << '>' << id << ':' << startCoord << '-' << endCoord << ' ' << direction << ' ' << comment << endl;
++    outfile << '>' << id << ':' << startCoord << '-' << endCoord << ' ' << direction << ' ' << comment << std::endl;
+   }
+ 
+   // Return sequence ID.
+@@ -209,20 +208,20 @@
+   void setID (int id) { assert (isValid); this->id = id; }
+ 
+   // Writes sequence to XMFA format.
+-  void writeToXMFA (ostream &outfile, int numColumns) const {
++  void writeToXMFA (std::ostream &outfile, int numColumns) const {
+ 
+     assert (isValid);
+     
+     // print XMFA header
+-    outfile << ">" << comment << endl;
++    outfile << ">" << comment << std::endl;
+     //  outfile << '>' << id << ':' << startCoord << '-' << endCoord << ' ' << direction << ' ' << comment << endl;
+     
+     // print character data
+     for (int i = 1; i <= length; ++i){
+       outfile << data[i];      
+-      if (i % numColumns == 0) outfile << endl;
++      if (i % numColumns == 0) outfile << std::endl;
+     }
+-    if (length % numColumns != 0) outfile << endl;
++    if (length % numColumns != 0) outfile << std::endl;
+   }
+ };
+ 

diff --git a/sci-biology/lagan/files/lagan-2.0-qa-implicit-declarations.patch b/sci-biology/lagan/files/lagan-2.0-qa-implicit-declarations.patch
new file mode 100644
index 00000000..4ba4ce4
--- /dev/null
+++ b/sci-biology/lagan/files/lagan-2.0-qa-implicit-declarations.patch
@@ -0,0 +1,96 @@
+Fix QA warnings due to implicit declarations:
+* filebuffer.c:123:34: warning: implicit declaration of function ‘toupper’ [-Wimplicit-function-declaration]
+*      temp[i] = (strchr (alphabet, toupper ((char) i)) != 0) ?
+
+--- a/src/filebuffer.c
++++ b/src/filebuffer.c
+@@ -3,6 +3,7 @@
+ #include <string.h>
+ #include <stdio.h>
+ #include <assert.h>
++#include <ctype.h>
+ 
+ #ifdef CHAOS__FLAG
+ char* alphabet = "ATCGNPCMHDEKRQSILVFYWX*";
+--- a/src/mlagan.c
++++ b/src/mlagan.c
+@@ -934,6 +934,7 @@
+   return k;
+ }
+ 
++int printXMFAAlign(FILE* outfile, align* myalign);
+ 
+ int main(int argc, char** argv) {
+   FileBuffer seqfile;
+--- a/src/order.c
++++ b/src/order.c
+@@ -398,6 +398,9 @@
+   free(ends);
+ }
+ 
++int printMFAAlign(char* seq1, char* seq2, align* myalign, char* n1, char* n2);
++int printXMFAAlign(char* seq1, char* seq2, align* myalign, char* n1, char* n2);
++
+ void doAlign(dmat* mydm, seq* seq1, seq* seq2) {
+   align *a = (align*) makeAlign(mydm, seq1->lets, seq2->lets);
+   //  printf("into printing\n");
+--- a/src/prolagan.c
++++ b/src/prolagan.c
+@@ -949,6 +949,7 @@
+   return k;
+ }
+ 
++int printXMFAAlign(FILE* outfile, align* myalign);
+ 
+ int main(int argc, char** argv) {
+   FileBuffer seqfile;
+--- a/src/utils/contigorder.c
++++ b/src/utils/contigorder.c
+@@ -12,7 +12,7 @@
+   int dummy, i;
+   
+   if (!(file = fopen (filename, "r"))){
+-    fprintf (stderr, "contigorder: Error opening file: %s\n");
++    fprintf (stderr, "contigorder: Error opening file: %s\n", filename);
+     exit (1);
+   }
+   
+@@ -49,7 +49,7 @@
+   }
+ 
+   if (!(file = fopen (filename, "r"))){
+-    fprintf (stderr, "contigorder: Error opening file: %s\n");
++    fprintf (stderr, "contigorder: Error opening file: %s\n", filename);
+     exit (1);
+   }
+   
+--- a/src/utils/cstat.c
++++ b/src/utils/cstat.c
+@@ -3,6 +3,7 @@
+ #include <string.h>
+ #include <math.h>
+ #include <assert.h>
++#include <ctype.h>
+ 
+ #define MAX_SEQ 31
+ #define MAX(a,b) ((a)>(b)?(a):(b))
+--- a/src/utils/overlay.c
++++ b/src/utils/overlay.c
+@@ -2,6 +2,7 @@
+ #include <stdio.h>
+ #include <assert.h>
+ #include <string.h>
++#include <ctype.h>
+ 
+ #define MAX_SEQS 63
+ #define MIN2(y,z)        ((y)<(z))?(y):(z)
+--- a/src/utils/scorecontigs.c
++++ b/src/utils/scorecontigs.c
+@@ -3,6 +3,7 @@
+ #include <string.h>
+ #include <math.h>
+ #include <assert.h>
++#include <ctype.h>
+ 
+ #define MAX_SEQ 1024
+ #define MAX(a,b) ((a)>(b)?(a):(b))

diff --git a/sci-biology/lagan/lagan-2.0-r3.ebuild b/sci-biology/lagan/lagan-2.0-r3.ebuild
new file mode 100644
index 00000000..68cd796
--- /dev/null
+++ b/sci-biology/lagan/lagan-2.0-r3.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit toolchain-funcs
+
+MY_P="lagan20"
+
+DESCRIPTION="The LAGAN suite of tools for whole-genome multiple alignment of genomic DNA"
+HOMEPAGE="http://lagan.stanford.edu/lagan_web/index.shtml"
+SRC_URI="http://lagan.stanford.edu/lagan_web/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-lang/perl"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-2.0-flags.patch"
+	"${FILESDIR}/${PN}-2.0-gcc4.3.patch"
+	"${FILESDIR}/${PN}-2.0-fix-c++14.patch"
+	"${FILESDIR}/${PN}-2.0-qa-implicit-declarations.patch"
+)
+
+src_prepare() {
+	sed -i "/use Getopt::Long;/ i use lib \"/usr/$(get_libdir)/${PN}/lib\";" "${S}/supermap.pl" || die
+	# NB: Testing with glibc-2.10 has uncovered a bug in src/utils/Sequence.h
+	# where libc getline is erroneously used instead of own getline
+	sed -i 's/getline/my_getline/' "${S}"/src/{anchors.c,glocal/io.cpp} || die
+
+	default
+}
+
+src_compile() {
+	emake \
+		CC=$(tc-getCC) \
+		CXX=$(tc-getCXX) \
+		CXXFLAGS="${CXXFLAGS}" \
+		CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+	newbin lagan.pl lagan
+	newbin slagan.pl slagan
+	dobin mlagan
+	rm -f lagan.pl slagan.pl utils/Utils.pm || die
+
+	insinto /usr/$(get_libdir)/${PN}/lib
+	doins Utils.pm
+
+	exeinto /usr/$(get_libdir)/${PN}/utils
+	doexe utils/*
+
+	exeinto /usr/$(get_libdir)/${PN}
+	doexe *.pl anchors chaos glocal order prolagan
+
+	insinto /usr/$(get_libdir)/${PN}
+	doins *.txt
+
+	dosym /usr/$(get_libdir)/${PN}/supermap.pl /usr/bin/supermap
+
+	echo "LAGAN_DIR=\"/usr/$(get_libdir)/${PN}\"" > 99${PN} || die
+	doenvd 99${PN}
+
+	dodoc Readmes/README.*
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-09-18 11:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-18 11:33 [gentoo-commits] repo/gentoo:master commit in: sci-biology/lagan/, sci-biology/lagan/files/ David Seifert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox