summaryrefslogtreecommitdiff
path: root/sci-libs/libmems
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sci-libs/libmems
reinit the tree, so we can have metadata
Diffstat (limited to 'sci-libs/libmems')
-rw-r--r--sci-libs/libmems/Manifest13
-rw-r--r--sci-libs/libmems/files/libmems-1.6_p1-boost-1.62-type-traits.patch15
-rw-r--r--sci-libs/libmems/files/libmems-1.6_p1-boost.patch120
-rw-r--r--sci-libs/libmems/files/libmems-1.6_p1-broken-constness.patch24
-rw-r--r--sci-libs/libmems/files/libmems-1.6_p1-build.patch29
-rw-r--r--sci-libs/libmems/files/libmems-1.6_p1-fix-c++14.patch18
-rw-r--r--sci-libs/libmems/files/libmems-1.6_p1-format-security.patch16
-rw-r--r--sci-libs/libmems/files/libmems-1.6_p1-gcc-4.7.patch71
-rw-r--r--sci-libs/libmems/libmems-1.6_p1-r3.ebuild59
-rw-r--r--sci-libs/libmems/libmems-9999.ebuild31
-rw-r--r--sci-libs/libmems/metadata.xml8
11 files changed, 404 insertions, 0 deletions
diff --git a/sci-libs/libmems/Manifest b/sci-libs/libmems/Manifest
new file mode 100644
index 000000000000..087631c7c42a
--- /dev/null
+++ b/sci-libs/libmems/Manifest
@@ -0,0 +1,13 @@
+AUX libmems-1.6_p1-boost-1.62-type-traits.patch 537 SHA256 877172cef69d53f5ee3c75f3b8492cc77f0c5da96036dcf28e19bab21cba9a4e SHA512 6f3cd95004fb5a8a8f9649593029ed313b9dde368a8f9c72fed8374ca913303442f6e47519a3163b6a05b4306be888dde1201f51ffb1b244bdd7eebbf5fb2f33 WHIRLPOOL ee6c1bc294a920198af2dc12fb8a6f3fa81a43b4be331f1ec17b4e7c88a2659e801320ca64e6751e3f4879656687024311d00b3d08022112d41266896d63aebc
+AUX libmems-1.6_p1-boost.patch 4223 SHA256 3f140f1cf776a6e8fc3b48ead97fa364d9305d487693bcab3e86aa7db925d0ea SHA512 296d0149d83e7fe87973088febe8a47e7e71f40379a8c9acb980264a7966dc43bed331326f86cab11cfd968192075ebcf684feb4998aa8b12ed5eaf2875de709 WHIRLPOOL 2ec597d01d663336936ff91f668c4ad2780b292106ff7ce2e4440e927b00db8803bc2d5fbaea3774976eaa65401c8b6dc5520890155e8fb91a8528ee9383bef4
+AUX libmems-1.6_p1-broken-constness.patch 803 SHA256 97604f303a9c69fd7b3623241d7148294c5407dde01c7a4d272a70fe69789a62 SHA512 dc4234972789412af2833ae2f3741a9e4ef309e34bc55e28b08d08f5d9a3fb973d0885ac0e88ff44a9d5ec4cfe474cf5f85656f1fe50fb34d5679e849c32e67b WHIRLPOOL 1df03fcbdbfb46d1a5282e27945589a0c4838e0b19b96c2e0743e4aedd2679e6a9727933fa374f098fd36e6ea360b7506fe7969ba4e6e0367d86868672ee3f64
+AUX libmems-1.6_p1-build.patch 844 SHA256 94f3a10097b3cd9b6d81dbb944a01ad451c8b86b0d55620a4f050dbaa4d4aff0 SHA512 cb333dbe99dd03ad563b218c2b553735012ff5ce8d841e4ee56138253ab4cc33a5ab4521df2c51c99620c3b0a1e9ab976f4994c9b707b557c8979c6fb237bbde WHIRLPOOL 59c253c36f6a9c22a62fd6bbd84467b66bcd6deb828bab7e024eb80925f4da3c2d25414f6c9b6f07c4682197b0e42a0c5e7126cdaf24a4121e17dab6631afa22
+AUX libmems-1.6_p1-fix-c++14.patch 715 SHA256 81eba8d483a37680fba2b8202f85a9cd18374fad8f2702a3d6bd7f1f6d546972 SHA512 e298d0badcc0b84e291e60a450e90c343ea76ffc201d8bd09c5f70264cac3532507659eb940927586171e2ee753972c1cb09b71d7c1a5bfe2ba8ce4ea0f1e570 WHIRLPOOL 6e3e5023ebf654a07e6efb79fc8dde5abede9581d37d06afd87aa0d68226f5bb3282d0b72f8c367fc7a8f31fc93b0cae1b58b1ca0490246279a66c5c55bc18d5
+AUX libmems-1.6_p1-format-security.patch 547 SHA256 32889c0ea3b0987993fe03cd0f244c39a7223aae7bfee2a815ddd3aedd0186fa SHA512 5f441833249dd3b0ebed17bd16d5ad5f0bdae777025b3432fb2a9e527ac9edd410239ee2ab02fca2f24125dca2c0c64ebda15fb03d59b65b238f5d1d65ff6629 WHIRLPOOL 9344a745f808f2ab5e36011c545441efecf734da6d1ea57d0b7f3187120d9d1d6e3d9b97aa0136781bc6d1cf389ccb17771db064bf68b5470c61c71f55b1b9ad
+AUX libmems-1.6_p1-gcc-4.7.patch 2220 SHA256 624b3e6553075c512540cfae3d4fbaadcc10bcba3bc61d38e288512f8ea8c715 SHA512 685c24779b00c18b08b2d548d03c2412d502dcacc0e14a64ab44c14406293265fb96a33041a7b13d96132cf6372bf8e2a7a0402606055084c1fb37d92dbfa77b WHIRLPOOL 84d46b9d43deec49e18b9c95072efbd19c1f375ed1b76f3c3fe8b89dee808640f56d9dee5ba1f5babd54087d88bbc45f65aa111553dc1bd689df1a9157a71edd
+DIST libmems-1.6_p1.tar.xz 226628 SHA256 c692d7d42378e7264d0a39674d1a6072183ee4c073ad90858153986b6a8b4848 SHA512 c6336f69b767bba010617deb2de9bb8fbbbaf516de3b1d293b062c76c6a763166080badd730938c6d849602d64a968edb6d4622b5d3e7ea7a6d8bc38164d3d73 WHIRLPOOL bc216dfb0c24c13b7b770da00100730e0e9b350c7bb6b312a480a83b51bc8c212e6ed73f08a88a7d262da8d4ed9a4c788883cbcfa3f2b2cdc362888e85b7f66a
+EBUILD libmems-1.6_p1-r3.ebuild 1082 SHA256 60444a436b1ccc8c93b551ad7c4b9ccc92f65ef1e1408ebdb6147dc0918f1104 SHA512 820172885a2b88725d7745e0efbac43be50ef18968ddf824b8c245b9178f1bde7d72609daf9bfbcbdde467b955cdff3a8e8224da4df93d3a30d5f1737a9442ce WHIRLPOOL 3207d4e22d7e660d104a529b42a6d5ea08825b000a8d22c6407ce52ab3265bc5d363cc9eb5dda9640538341257ae9dcacf5ae1cadf13d6ac354b774f558334db
+EBUILD libmems-9999.ebuild 553 SHA256 3c1618a6be5dbd1b52b0e78cc3039fec1966a80f9b2d32f6461537eb2b7339d8 SHA512 dac9d6144d57e4cc04d2ea8f4cd7390dd979b622f4633bf6583c1922d15a5aead4be577697deccd2ab57102d682f3ee37f0c310676c350496450aad9a035de38 WHIRLPOOL ea2f279f5459c6a9660306f671bd9107f8421779d566f12d1ed4699ab137542c4a86bfeba2b3912a82f5f4fb34145b717b10670e546396fda5cac299fd4931c2
+MISC ChangeLog 4375 SHA256 2984aeaba04dabf79adc7c505ad7a20f5b6a3a51b505ab0f21c3b326b76e3281 SHA512 b46e3fa1303a272db095606dabd41096b1c250224c50ea0ce4db62a37bf6fe2ac6baab9e09ec8938ac52667e366201597ad23e91a54c3767335a79be0cf4d41c WHIRLPOOL 18e9e89249fcf43424613218bda3363e7d93e10201f3d2c2f625a4c35d83d34b7a7179dbde3adc67204bd12015405693011c35bc29ebbae81494a09665356bec
+MISC ChangeLog-2015 1332 SHA256 1bfa09a3841daf36c1039767fc99ddb0eb0d87065d8259df3f64ca1a02ad33b2 SHA512 b3387d0863a24a1b2585ef9b0a555888defbcc6566d4fbe44a724507ab1192b07e2e33545dbccfcefdb115c3de0aeffc1a7f25042dfacad6db9b736eb08859c1 WHIRLPOOL 1fc414bd11ed64861b17b199def22e71c65acd13e3a807b33796f87d39b086109ef3cd13f0b98e6d40d6a075d175d55f48011d1cff142f777c6a63741b8c626f
+MISC metadata.xml 261 SHA256 15c95fe0beb2b86b616b7ac1be6f1118bd598d907b441a94d87721c0d6f36855 SHA512 537da0d3aa2741ebe4442d5dd9b53409decfc9d12ca8e5af8e737c4deb2910c884207e2d441025d19469816100889f04c11038bdffd6a1a15c6217495445090a WHIRLPOOL c00a986f98ceb4fa20ffdb0c411de9841218f8af6f7499a20a34258db4cd74cead97ef2ee18ac8cac7eae7db3c95084cbf8aa3a36f95a1ed7efbb0e088eb50c8
diff --git a/sci-libs/libmems/files/libmems-1.6_p1-boost-1.62-type-traits.patch b/sci-libs/libmems/files/libmems-1.6_p1-boost-1.62-type-traits.patch
new file mode 100644
index 000000000000..609d0de0c478
--- /dev/null
+++ b/sci-libs/libmems/files/libmems-1.6_p1-boost-1.62-type-traits.patch
@@ -0,0 +1,15 @@
+Shuffle around Boost type_traits, which otherwise causes issues with boost 1.62.
+See also: https://bugs.gentoo.org/show_bug.cgi?id=595986
+
+--- a/libMems/AbstractMatch.h
++++ b/libMems/AbstractMatch.h
+@@ -16,8 +16,7 @@
+ #include "libGenome/gnClone.h"
+ #include <vector>
+ #include <algorithm>
+-#include <boost/type_traits/remove_pointer.hpp>
+-#include <boost/type_traits/add_pointer.hpp>
++#include <boost/type_traits.hpp>
+ #include <boost/dynamic_bitset.hpp>
+ #include <libMems/SlotAllocator.h>
+ #include <libMems/configuration.h>
diff --git a/sci-libs/libmems/files/libmems-1.6_p1-boost.patch b/sci-libs/libmems/files/libmems-1.6_p1-boost.patch
new file mode 100644
index 000000000000..4f0c775a6d9c
--- /dev/null
+++ b/sci-libs/libmems/files/libmems-1.6_p1-boost.patch
@@ -0,0 +1,120 @@
+ libMems/Backbone.cpp | 2 +-
+ libMems/Files.h | 64 +++++++++++++++++++++---------------------
+ libMems/ProgressiveAligner.cpp | 2 +-
+ 3 files changed, 34 insertions(+), 34 deletions(-)
+
+diff --git a/libMems/Backbone.cpp b/libMems/Backbone.cpp
+index 86698a9..0025cd8 100644
+--- a/libMems/Backbone.cpp
++++ b/libMems/Backbone.cpp
+@@ -15,7 +15,7 @@
+ #include "libMems/Islands.h"
+ #include "libMems/CompactGappedAlignment.h"
+
+-#include <boost/property_map.hpp>
++#include <boost/property_map/property_map.hpp>
+ #include <boost/graph/graph_traits.hpp>
+ #include <boost/graph/adjacency_list.hpp>
+ #include <boost/graph/topological_sort.hpp>
+diff --git a/libMems/Files.h b/libMems/Files.h
+index 8d6e9be..8191065 100644
+--- a/libMems/Files.h
++++ b/libMems/Files.h
+@@ -22,44 +22,44 @@
+
+ #include "boost/filesystem/operations.hpp"
+ #include "boost/filesystem/exception.hpp"
+-#include "boost/algorithm/string.hpp"
++#include "boost/algorithm/string.hpp"
+ #include <string>
+ #include <sstream>
+ #include <iostream>
+ #include <iomanip>
+
+
+-/**
+- * Register a file name to be deleted before the process exits
+- * When passed an empty string, it does not add to the list of files to delete
+- * @param fname The name of a file to delete, empty strings are ignored
+- * @return A vector of file names registered for deletion
+- */
+-std::vector< std::string >& registerFileToDelete( std::string fname = "" );
+-
+-inline
+-std::vector< std::string >& registerFileToDelete( std::string fname ) {
+- // since this vector is needed when atexit() is called we allocate it
+- // on the heap so its destructor won't get called
+- static std::vector< std::string >* files = new std::vector< std::string >();
+-#pragma omp critical
+-{
+- if( fname != "" )
+- files->push_back( fname );
+-}
+- return *files;
+-}
++/**
++ * Register a file name to be deleted before the process exits
++ * When passed an empty string, it does not add to the list of files to delete
++ * @param fname The name of a file to delete, empty strings are ignored
++ * @return A vector of file names registered for deletion
++ */
++std::vector< std::string >& registerFileToDelete( std::string fname = "" );
+
+-void deleteRegisteredFiles();
+-inline
+-void deleteRegisteredFiles() {
+- // don't be a slob, clean up after yourself:
+- // delete any files that are laying around
+- std::vector< std::string >& del_files = registerFileToDelete();
+- for( int fileI = 0; fileI < del_files.size(); fileI++ )
+- boost::filesystem::remove( del_files[ fileI ] );
+- del_files.clear(); // clear the deleted files from the list
+-}
++inline
++std::vector< std::string >& registerFileToDelete( std::string fname ) {
++ // since this vector is needed when atexit() is called we allocate it
++ // on the heap so its destructor won't get called
++ static std::vector< std::string >* files = new std::vector< std::string >();
++#pragma omp critical
++{
++ if( fname != "" )
++ files->push_back( fname );
++}
++ return *files;
++}
++
++void deleteRegisteredFiles();
++inline
++void deleteRegisteredFiles() {
++ // don't be a slob, clean up after yourself:
++ // delete any files that are laying around
++ std::vector< std::string >& del_files = registerFileToDelete();
++ for( int fileI = 0; fileI < del_files.size(); fileI++ )
++ boost::filesystem::remove( del_files[ fileI ] );
++ del_files.clear(); // clear the deleted files from the list
++}
+
+
+ /**
+@@ -80,7 +80,7 @@ std::string CreateTempFileName(const std::string& prefix)
+ #endif
+ boost::filesystem::path path( prefix );
+ dir = path.branch_path().string();
+- name = path.leaf();
++ name = path.filename().string();
+ if( name == "/" )
+ {
+ dir += name;
+diff --git a/libMems/ProgressiveAligner.cpp b/libMems/ProgressiveAligner.cpp
+index 3be5fe0..5667a9e 100644
+--- a/libMems/ProgressiveAligner.cpp
++++ b/libMems/ProgressiveAligner.cpp
+@@ -27,7 +27,7 @@
+
+ #include <boost/dynamic_bitset.hpp>
+ #include <boost/tuple/tuple.hpp>
+-#include <boost/property_map.hpp>
++#include <boost/property_map/property_map.hpp>
+ #include <boost/graph/graph_traits.hpp>
+ #include <boost/graph/adjacency_list.hpp>
+ #include <boost/graph/johnson_all_pairs_shortest.hpp>
diff --git a/sci-libs/libmems/files/libmems-1.6_p1-broken-constness.patch b/sci-libs/libmems/files/libmems-1.6_p1-broken-constness.patch
new file mode 100644
index 000000000000..0bd922c9e111
--- /dev/null
+++ b/sci-libs/libmems/files/libmems-1.6_p1-broken-constness.patch
@@ -0,0 +1,24 @@
+Fix bug 529770 caused by non-const copy constructor.
+
+--- libmems-1.6_p1/libMems/Aligner.cpp
++++ libmems-1.6_p1/libMems/Aligner.cpp
+@@ -939,7 +939,7 @@
+ MatchLeftEndComparator( unsigned seq = 0 ){
+ m_seq = seq;
+ }
+- MatchLeftEndComparator( MatchLeftEndComparator& msc ){
++ MatchLeftEndComparator( const MatchLeftEndComparator& msc ){
+ m_seq = msc.m_seq;
+ }
+ // TODO?? make this do a wraparound comparison if all is equal?
+--- libmems-1.6_p1/libMems/Aligner.h
++++ libmems-1.6_p1/libMems/Aligner.h
+@@ -49,7 +49,7 @@
+ LabeledMemComparator( uint seq ){
+ m_seq = seq;
+ }
+- LabeledMemComparator( LabeledMemComparator& lmc ){
++ LabeledMemComparator( const LabeledMemComparator& lmc ){
+ m_seq = lmc.m_seq;
+ }
+ boolean operator()(const LabeledMem& a, const LabeledMem& b) const{
diff --git a/sci-libs/libmems/files/libmems-1.6_p1-build.patch b/sci-libs/libmems/files/libmems-1.6_p1-build.patch
new file mode 100644
index 000000000000..04d5dd9c82ac
--- /dev/null
+++ b/sci-libs/libmems/files/libmems-1.6_p1-build.patch
@@ -0,0 +1,29 @@
+ libMems/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libMems/Makefile.am b/libMems/Makefile.am
+index 6101f71..d66053d 100644
+--- a/libMems/Makefile.am
++++ b/libMems/Makefile.am
+@@ -2,10 +2,10 @@
+ if DEBUG
+ D_CXXFLAGS = -Wall -g -D__GNDEBUG__
+ endif
+-OPTIMIZATION = -O2 -Wall -funroll-loops -fomit-frame-pointer -ftree-vectorize
+ AM_CFLAGS = $(OPTIMIZATION) @DEPS_CFLAGS@ -DUSE_POSIX_AIO @OPENMP_CFLAGS@
+ AM_CXXFLAGS = $(OPTIMIZATION) @DEPS_CFLAGS@ @BOOST_CPPFLAGS@ $(D_CXXFLAGS) @EXTRA_CXX_FLAGS@ @OPENMP_CXXFLAGS@
+ AM_LDFLAGS = $(OPTIMIZATION)
++AM_CPPFLAGS=-I$(top_srcdir)
+
+ LIBMEMS_H = \
+ RepeatHash.h MatchHashEntry.h \
+--- a/libMems/dmSML/util.c
++++ b/libMems/dmSML/util.c
+@@ -2,6 +2,7 @@
+ #include "config.h"
+ #endif
+
++#include <stdlib.h>
+ #include <stdio.h>
+ #include "libMems/dmSML/util.h"
+
diff --git a/sci-libs/libmems/files/libmems-1.6_p1-fix-c++14.patch b/sci-libs/libmems/files/libmems-1.6_p1-fix-c++14.patch
new file mode 100644
index 000000000000..bde8efeb4c9c
--- /dev/null
+++ b/sci-libs/libmems/files/libmems-1.6_p1-fix-c++14.patch
@@ -0,0 +1,18 @@
+Description: Correct compilation with g++-6
+Author: Gert Wollny <gw.fossdev@gmail.com>
+Bug-Debian: https://bugs.debian.org/811870
+Forwarded: yes
+Bug: https://sourceforge.net/p/mauve/bugs/46/
+Last-Update: 2016-06-30
+
+--- a/libMems/ProgressiveAligner.cpp
++++ b/libMems/ProgressiveAligner.cpp
+@@ -1599,7 +1599,7 @@
+ c.SetLeftEnd(child_1, ancestral_matches[mI]->LeftEnd(1));
+ c.SetOrientation(child_1, ancestral_matches[mI]->Orientation(1));
+ c.SetLength(ancestral_matches[mI]->Length(1), child_1);
+- cga_list.push_back(make_tuple(c.Copy(), &bs[mI], ancestral_matches[mI]));
++ cga_list.push_back(boost::tuples::make_tuple(c.Copy(), &bs[mI], ancestral_matches[mI]));
+ }
+
+ stack<node_id_t> node_stack;
diff --git a/sci-libs/libmems/files/libmems-1.6_p1-format-security.patch b/sci-libs/libmems/files/libmems-1.6_p1-format-security.patch
new file mode 100644
index 000000000000..3ad3da2a8d80
--- /dev/null
+++ b/sci-libs/libmems/files/libmems-1.6_p1-format-security.patch
@@ -0,0 +1,16 @@
+ libMems/dmSML/dmsort.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libMems/dmSML/dmsort.c b/libMems/dmSML/dmsort.c
+index 4c99215..2cbfa7e 100644
+--- a/libMems/dmSML/dmsort.c
++++ b/libMems/dmSML/dmsort.c
+@@ -825,7 +825,7 @@ int InitdmSML( long working_mb, long buffer_size, const char* input_filename, co
+ if ( fgets(buf, sizeof(buf), fp) )
+ {
+ sscanf(buf, "MemTotal: %ld kB", &memTotal);
+- fprintf( stderr, buf );
++ fprintf( stderr, "%s", buf );
+ }
+ fclose(fp);
+ // allocate about 6/10 of physical memory
diff --git a/sci-libs/libmems/files/libmems-1.6_p1-gcc-4.7.patch b/sci-libs/libmems/files/libmems-1.6_p1-gcc-4.7.patch
new file mode 100644
index 000000000000..ec620ebb35aa
--- /dev/null
+++ b/sci-libs/libmems/files/libmems-1.6_p1-gcc-4.7.patch
@@ -0,0 +1,71 @@
+ libMems/CompactGappedAlignment.h | 36 ++++++++++++++++++------------------
+ 1 file changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/libMems/CompactGappedAlignment.h b/libMems/CompactGappedAlignment.h
+index bf78477..942d4aa 100644
+--- a/libMems/CompactGappedAlignment.h
++++ b/libMems/CompactGappedAlignment.h
+@@ -13,7 +13,7 @@
+ #include "config.h"
+ #endif
+
+-#include "libGenome/gnDebug.h"
++#include "libGenome/gnDebug.h"
+ #include "libGenome/gnFilter.h"
+ #include "libGenome/gnSequence.h"
+ #include "libMems/SparseAbstractMatch.h"
+@@ -103,15 +103,15 @@ public:
+ /** Eliminates any columns that contain only gap characters */
+ void CondenseGapColumns();
+
+- void swap( CompactGappedAlignment& other ){ swap(&other); }
+-
+-protected:
+- // for use by derived classes in order to swap contents
+- void swap( CompactGappedAlignment* other ){
+- std::swap( align_matrix, other->align_matrix );
+- std::swap( bcount, other->bcount );
+- BaseType::swap( other );
+- }
++ void swap( CompactGappedAlignment& other ){ swap(&other); }
++
++protected:
++ // for use by derived classes in order to swap contents
++ void swap( CompactGappedAlignment* other ){
++ std::swap( align_matrix, other->align_matrix );
++ std::swap( bcount, other->bcount );
++ BaseType::swap( other );
++ }
+
+ std::vector< bitset_t > align_matrix; /**< aligned positions have true values, gaps are false */
+ std::vector< std::vector< size_t > > bcount;
+@@ -572,7 +572,7 @@ void CompactGappedAlignment<BaseType>::CropEnd(gnSeqI crop_amount){
+ this->SetStart(i, 0);
+ }
+ }
+- SetAlignmentLength( this->AlignmentLength() - crop_amount );
++ this->SetAlignmentLength( this->AlignmentLength() - crop_amount );
+ this->create_bitcount();
+ if( !this->validate() )
+ std::cerr << "CropEnd error\n";
+@@ -806,13 +806,13 @@ void CompactGappedAlignment<BaseType>::CondenseGapColumns()
+
+ }
+
+-namespace std {
+-template<> inline
+-void swap( mems::CompactGappedAlignment<>& a, mems::CompactGappedAlignment<>& b )
+-{
+- a.swap(b);
+-}
+-}
++namespace std {
++template<> inline
++void swap( mems::CompactGappedAlignment<>& a, mems::CompactGappedAlignment<>& b )
++{
++ a.swap(b);
++}
++}
+
+
+ #endif // __CompactGappedAlignment_h__
diff --git a/sci-libs/libmems/libmems-1.6_p1-r3.ebuild b/sci-libs/libmems/libmems-1.6_p1-r3.ebuild
new file mode 100644
index 000000000000..513fd1f3af61
--- /dev/null
+++ b/sci-libs/libmems/libmems-1.6_p1-r3.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools
+
+DESCRIPTION="Library for sci-biology/mauve"
+HOMEPAGE="http://gel.ahabs.wisc.edu/mauve/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+
+SLOT="0"
+LICENSE="GPL-2"
+IUSE="doc static-libs"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-libs/boost:=
+ sci-libs/libgenome
+ sci-libs/libmuscle"
+DEPEND="${RDEPEND}
+ doc? ( app-doc/doxygen )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-build.patch
+ "${FILESDIR}"/${P}-boost.patch
+ "${FILESDIR}"/${P}-gcc-4.7.patch
+ "${FILESDIR}"/${P}-broken-constness.patch
+ "${FILESDIR}"/${P}-format-security.patch
+ "${FILESDIR}"/${P}-fix-c++14.patch
+ "${FILESDIR}"/${P}-boost-1.62-type-traits.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --enable-shared \
+ $(use_enable static-libs static)
+}
+
+src_compile() {
+ default
+
+ if use doc; then
+ doxygen doxygen.am || die
+ HTML_DOCS+=( html/. )
+ fi
+}
+
+src_install() {
+ default
+
+ # package provides .pc files
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/sci-libs/libmems/libmems-9999.ebuild b/sci-libs/libmems/libmems-9999.ebuild
new file mode 100644
index 000000000000..782686270355
--- /dev/null
+++ b/sci-libs/libmems/libmems-9999.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools subversion
+
+DESCRIPTION="Library for sci-biology/mauve"
+HOMEPAGE="http://gel.ahabs.wisc.edu/mauve/"
+SRC_URI=""
+ESVN_REPO_URI="https://svn.code.sf.net/p/mauve/code/libMems/trunk"
+
+SLOT="0"
+LICENSE="GPL-2"
+IUSE="doc"
+KEYWORDS=""
+
+CDEPEND="
+ dev-libs/boost
+ sci-libs/libgenome
+ sci-libs/libmuscle"
+DEPEND="${CDEPEND}
+ doc? ( app-doc/doxygen )"
+RDEPEND="${CDEPEND}"
+
+S="${WORKDIR}"
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/sci-libs/libmems/metadata.xml b/sci-libs/libmems/metadata.xml
new file mode 100644
index 000000000000..8417d1580d40
--- /dev/null
+++ b/sci-libs/libmems/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci-biology@gentoo.org</email>
+ <name>Gentoo Biology Project</name>
+ </maintainer>
+</pkgmetadata>