Hello Andreas, I have had some spare time and spent it on the ball package. I hope that helps you in getting the package back into Debian.
Some notes regarding the patch: * I dropped the gcc5.patch, since it created an ambiguous overload of getline -- Upstream added one themselves in the meantime. * The patches in debian/patches/backports/ are all cherry-picked from the upstream git repository at github.com/BALL-project/ball -- their first line will tell you the commit ID. Take a look at the branch qt5_latest if they are not yet in master. They were created with git format-patch -1 <commit>, I hope that's all right. * The most problematic part was DOCKING/COMMON/poseClustering.h. It seems to break with boost-1.56, because it assumes a certain class is copyable that has been adapted to c++11's "move" idea. The commit that breaks it is https://github.com/boostorg/graph/commit/cb26ccf I have used a very crude workaround (I have defined a BOOST_* symbol suggesting that the compiler would not support moves), this needs to be properly ported to current boost by BALL upstream. Please try to get in contact with upstream, and have them properly port the code. * The upstream code is also not yet ready for libeigen3 version 3.3 (currently in beta) that drops some compatibility code. I added a Build-Conflicts to make the buildd's aware of that. This also needs to be ported by upstream. In order to build the package anyway, I had to add to my sources.list a snapshot.debian.org containing the older version (its header-only, so it's compiled into the binary and does not generate a run-time dependency). sources.list line containing a suitable old version: deb http://snapshot.debian.org/archive/debian/20150924T154447Z sid main * I activated the test suite in d/rules -- mainly because I was not sure if my crude workaround broke anything. On my test builds, the Socket_test sometimes™ failed. Maybe there is a race condition, I don't know. Could also be my old hardware bitrotting away... * Since I used the older libeigen, I set it as a "system" library in cmake, which prevents the compile log from generating warnings when eigen uses deprecated features (just distracted me while working on ball, feel free to drop that patch). The patch is based against b915af8eff, which was today (jan 26) the current master in the debian-med repository. After all this hacking, the package builds and the resulting .deb's seem usable to me, but I dont understand enough biochemics to make anything out of it : ) I can't tell myself if the patch is of acceptable quality, please have a look over it before adopting. Feedback would be much appreciated, this is my first non-trivial contribution. I hope this helps, - Danny
diff --git a/debian/control b/debian/control index ceb15db..2b09efd 100644 --- a/debian/control +++ b/debian/control @@ -39,6 +39,7 @@ Build-Depends-Indep: doxygen, texlive-latex-recommended, texlive-fonts-recommended, texlive-latex-extra +Build-Conflicts: libeigen3-dev( >= 3.3~ ) Standards-Version: 3.9.6 Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/ball.git Vcs-Git: git://anonscm.debian.org/debian-med/ball.git diff --git a/debian/patches/adapt-poseClustering-test-archive-boost1.58 b/debian/patches/adapt-poseClustering-test-archive-boost1.58 new file mode 100644 index 0000000..c5349c0 --- /dev/null +++ b/debian/patches/adapt-poseClustering-test-archive-boost1.58 @@ -0,0 +1,10 @@ +Subject: Adapt archive version number to 12 (boost1.58) + +The upstream boost::archive file was most likely compiled against a more +recent (version no. 13) serialization library, but boost1.58 (currently +highest in Debian) only has version no. 12 +--- a/source/TEST/data/PoseClustering_wardtree.dat ++++ b/source/TEST/data/PoseClustering_wardtree.dat +@@ -1 +1 @@ +-22 serialization::archive 13 0 0 15 14 0 0 1 0 0 1 0.000000000e+00 1 0 1 1 0.000000000e+00 1 0 2 1 0.000000000e+00 1 0 3 1 0.000000000e+00 1 0 4 1 0.000000000e+00 1 0 5 1 0.000000000e+00 1 0 6 1 0.000000000e+00 1 0 7 1 0.000000000e+00 0 0 2 2.930124538e-05 0 0 3 1.017511487e+00 0 0 4 2.349177122e+00 0 0 2 9.453108311e-01 0 0 2 1.095688367e-05 0 0 4 5.062472916e+01 0 0 8 5.839497375e+01 8 1 0 0 8 0 9 3 9 8 10 2 10 9 11 7 11 6 12 4 12 5 13 12 13 11 14 13 14 10 14 ++22 serialization::archive 12 0 0 15 14 0 0 1 0 0 1 0.000000000e+00 1 0 1 1 0.000000000e+00 1 0 2 1 0.000000000e+00 1 0 3 1 0.000000000e+00 1 0 4 1 0.000000000e+00 1 0 5 1 0.000000000e+00 1 0 6 1 0.000000000e+00 1 0 7 1 0.000000000e+00 0 0 2 2.930124538e-05 0 0 3 1.017511487e+00 0 0 4 2.349177122e+00 0 0 2 9.453108311e-01 0 0 2 1.095688367e-05 0 0 4 5.062472916e+01 0 0 8 5.839497375e+01 8 1 0 0 8 0 9 3 9 8 10 2 10 9 11 7 11 6 12 4 12 5 13 12 13 11 14 13 14 10 14 diff --git a/debian/patches/backports/FingerPrintSim-Fix-build.patch b/debian/patches/backports/FingerPrintSim-Fix-build.patch new file mode 100644 index 0000000..4f1eeec --- /dev/null +++ b/debian/patches/backports/FingerPrintSim-Fix-build.patch @@ -0,0 +1,57 @@ +From 8ff1d1ba6b1963a9fa839ce28fb2a54139920648 Mon Sep 17 00:00:00 2001 +From: Daniel Stoeckel <dstoec...@bioinf.uni-sb.de> +Date: Thu, 2 Apr 2015 21:37:21 +0200 +Subject: [PATCH] FingerPrintSim: Fix build under clang 3.6 + +Explicitly use boost::unordered_map, as both + using namespace std; +and + using namespace boost; +is present. +--- + source/APPLICATIONS/TOOLS/FingerprintSimilarityClustering.C | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/source/APPLICATIONS/TOOLS/FingerprintSimilarityClustering.C b/source/APPLICATIONS/TOOLS/FingerprintSimilarityClustering.C +index 05bcd01..114fc68 100644 +--- a/source/APPLICATIONS/TOOLS/FingerprintSimilarityClustering.C ++++ b/source/APPLICATIONS/TOOLS/FingerprintSimilarityClustering.C +@@ -233,7 +233,7 @@ void uniqueFingerprintsFilter(vector<vector<unsigned short> >& mol_features, con + } + + +-void readMoleculeIdentifiers(unordered_map<unsigned int, set<String> >& mol_identifiers) ++void readMoleculeIdentifiers(boost::unordered_map<unsigned int, set<String> >& mol_identifiers) + { + File in("FFC_1_fingerprint_duplicates.txt", File::MODE_IN); + +@@ -275,7 +275,7 @@ void writeConnectedComponents(const vector<unsigned int>& m_indices, + out << "# CMPD_IDS: Comma separated list of original compound id(s) which map onto this SRC_NODE_ID." << endl; + out << "SRC_NODE_ID DST_NODE_INDEX TANIMOTO_SIM CMPD_IDS" << endl; + +- unordered_map<unsigned int, set<String> > mol_identifiers; ++ boost::unordered_map<unsigned int, set<String> > mol_identifiers; + readMoleculeIdentifiers(mol_identifiers); + + String cids; +@@ -321,7 +321,7 @@ void writeConnectedComponents(const vector<unsigned int>& m_indices, + out << "# CMPD_IDS: Comma separated list of original compound id(s) which map onto this SRC_NODE_ID." << endl; + out << "SRC_NODE_INDEX DST_NODE_INDEX TANIMOTO_SIM CMPD_IDS" << endl; + +- unordered_map<unsigned int, set<String> > mol_identifiers; ++ boost::unordered_map<unsigned int, set<String> > mol_identifiers; + readMoleculeIdentifiers(mol_identifiers); + + set<String>::iterator it; +@@ -888,7 +888,7 @@ $ FingerprintSimilarityClustering -t target.sdf -fp_tag FPRINT -f 1 -id_tag NAME + Log.level(10) << "++ STEP 5: Remap fingerprint duplicates" << endl; + + +- unordered_map<unsigned int, set<String> > identifiers; ++ boost::unordered_map<unsigned int, set<String> > identifiers; + readMoleculeIdentifiers(identifiers); + + // Store final cluster information +-- +2.7.0 + diff --git a/debian/patches/backports/Fix-String-failed-to-compile-with-newer-GCC-versions.patch b/debian/patches/backports/Fix-String-failed-to-compile-with-newer-GCC-versions.patch new file mode 100644 index 0000000..e7732b9 --- /dev/null +++ b/debian/patches/backports/Fix-String-failed-to-compile-with-newer-GCC-versions.patch @@ -0,0 +1,76 @@ +From 8c87dd9294af67b69c2aabe4f062fb405c3745ad Mon Sep 17 00:00:00 2001 +From: Thomas Kemmer <tho...@binaryden.de> +Date: Fri, 11 Dec 2015 16:51:39 +0100 +Subject: [PATCH] Fix: String failed to compile with newer GCC versions + +--- + cmake/BALLConfigStdStringFeatures.cmake | 12 ++++++++++++ + cmake/config.h.in | 1 + + include/BALL/DATATYPE/string.h | 2 +- + include/BALL/DATATYPE/string.iC | 2 +- + 4 files changed, 15 insertions(+), 2 deletions(-) + +diff --git a/cmake/BALLConfigStdStringFeatures.cmake b/cmake/BALLConfigStdStringFeatures.cmake +index 08b1207..12bfaf2 100644 +--- a/cmake/BALLConfigStdStringFeatures.cmake ++++ b/cmake/BALLConfigStdStringFeatures.cmake +@@ -26,6 +26,18 @@ CHECK_CXX_SOURCE_COMPILES( + int main(int, char**) + { + std::string s; ++ std::string::const_iterator c_it = s.cbegin(); ++ std::string::iterator result = s.insert(c_it, {'a', 'b'}); ++ ++ return 0; ++ }" BALL_HAS_STD_STRING_CONST_ITERATOR_INITLIST_INSERT ++) ++ ++CHECK_CXX_SOURCE_COMPILES( ++ "#include <string> ++ int main(int, char**) ++ { ++ std::string s; + s.shrink_to_fit(); + + return 0; +diff --git a/cmake/config.h.in b/cmake/config.h.in +index 266e81b..e1f5ade 100755 +--- a/cmake/config.h.in ++++ b/cmake/config.h.in +@@ -229,6 +229,7 @@ + + // Defines whether the c++ std lib implementation supports const_iterators in insert, replace, ... + #cmakedefine BALL_HAS_STD_STRING_CONST_ITERATOR_FUNCTIONS ++#cmakedefine BALL_HAS_STD_STRING_CONST_ITERATOR_INITLIST_INSERT + + // Defines whether the c++ std lib implementation supports shrink_to_fit in string + #cmakedefine BALL_HAS_STD_STRING_SHRINK_TO_FIT +diff --git a/include/BALL/DATATYPE/string.h b/include/BALL/DATATYPE/string.h +index c6a8618..51135e6 100644 +--- a/include/BALL/DATATYPE/string.h ++++ b/include/BALL/DATATYPE/string.h +@@ -1219,7 +1219,7 @@ namespace BALL + /// + template <class InputIterator> + iterator insert(iterator p, InputIterator first, InputIterator last); +-#if defined(BALL_HAS_INITIALIZER_LISTS) && defined(BALL_HAS_STD_STRING_CONST_ITERATOR_FUNCTIONS) ++#if defined(BALL_HAS_INITIALIZER_LISTS) && defined(BALL_HAS_STD_STRING_CONST_ITERATOR_INITLIST_INSERT) + /// + String& insert(const_iterator p, std::initializer_list<char> li); + #endif +diff --git a/include/BALL/DATATYPE/string.iC b/include/BALL/DATATYPE/string.iC +index 954d15b..f0e9b3c 100644 +--- a/include/BALL/DATATYPE/string.iC ++++ b/include/BALL/DATATYPE/string.iC +@@ -1372,7 +1372,7 @@ String::iterator String::insert(iterator p, InputIterator first, InputIterator l + return str_.insert(p, first, last); + } + +-#if defined(BALL_HAS_INITIALIZER_LISTS) && defined(BALL_HAS_STD_STRING_CONST_ITERATOR_FUNCTIONS) ++#if defined(BALL_HAS_INITIALIZER_LISTS) && defined(BALL_HAS_STD_STRING_CONST_ITERATOR_INITLIST_INSERT) + BALL_INLINE + String& String::insert(const_iterator p, std::initializer_list<char> li) + { +-- +2.7.0.rc3 + diff --git a/debian/patches/backports/Fix-compilation-of-BinaryFingerprintMethods_test-und.patch b/debian/patches/backports/Fix-compilation-of-BinaryFingerprintMethods_test-und.patch new file mode 100644 index 0000000..a41dba4 --- /dev/null +++ b/debian/patches/backports/Fix-compilation-of-BinaryFingerprintMethods_test-und.patch @@ -0,0 +1,84 @@ +From 3170b38ae1adac22c66a2b56df2456623be8ff58 Mon Sep 17 00:00:00 2001 +From: Daniel Stoeckel <dstoec...@bioinf.uni-sb.de> +Date: Fri, 1 May 2015 16:16:18 +0200 +Subject: [PATCH] Fix compilation of BinaryFingerprintMethods_test under gcc + 4.9/clang 3.6 + +Use boost::unordered_map to disambiguate between std:: and boost:: +versions. Hopefully we will be able to rely on std:: in the not to distant +future. +--- + source/TEST/BinaryFingerprintMethods_test.C | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/source/TEST/BinaryFingerprintMethods_test.C b/source/TEST/BinaryFingerprintMethods_test.C +index 1f0bb53..e776f12 100644 +--- a/source/TEST/BinaryFingerprintMethods_test.C ++++ b/source/TEST/BinaryFingerprintMethods_test.C +@@ -331,7 +331,7 @@ CHECK(cutoffSearch()) + + float sim; + String key; +- unordered_map<string, float> results; ++ boost::unordered_map<string, float> results; + LineBasedFile lbf(BALL_TEST_DATA_PATH(BinaryFingerprintMethods_SimSearchResults.csv), File::MODE_IN); + while(lbf.readLine()) + { +@@ -347,8 +347,8 @@ CHECK(cutoffSearch()) + + float cutoff = 0.0; + String outfile_name = "_BALL_CUTOFF_SEARCH_TEST.tmp"; +- unordered_map<string, float>::iterator it; +- unordered_map<string, float> results_subset; ++ boost::unordered_map<string, float>::iterator it; ++ boost::unordered_map<string, float> results_subset; + + while (cutoff <= 1.0) + { +@@ -391,9 +391,9 @@ CHECK(connectedComponents(store_nns=true)) + unsigned int id, min_id, int_cutoff; + map<string, float> tmp_cc; + map<string, float>::iterator cc_it; +- unordered_map<unsigned int, map<string, float> > ccs_results; +- unordered_map<unsigned int, map<string, float> >::iterator ccs_it; +- unordered_map<unsigned int, unordered_map<unsigned int, map<string, float> > > all_ccs; ++ boost::unordered_map<unsigned int, map<string, float> > ccs_results; ++ boost::unordered_map<unsigned int, map<string, float> >::iterator ccs_it; ++ boost::unordered_map<unsigned int, boost::unordered_map<unsigned int, map<string, float> > > all_ccs; + + LineBasedFile lbf(BALL_TEST_DATA_PATH(BinaryFingerprintMethods_ConnectedComponents.csv), File::MODE_IN); + while(lbf.readLine()) +@@ -409,7 +409,7 @@ CHECK(connectedComponents(store_nns=true)) + } + + int_cutoff = lbf.getField(1).toUnsignedInt(); +- all_ccs[int_cutoff] = unordered_map<unsigned int, map<string, float> >(); ++ all_ccs[int_cutoff] = boost::unordered_map<unsigned int, map<string, float> >(); + + continue; + } +@@ -539,9 +539,9 @@ CHECK(connectedComponents(store_nns=false)) + unsigned int id, int_cutoff; + map<string, float> tmp_cc; + map<string, float>::iterator cc_it; +- unordered_map<unsigned int, map<string, float> > ccs_results; +- unordered_map<unsigned int, map<string, float> >::iterator ccs_it; +- unordered_map<unsigned int, unordered_map<unsigned int, map<string, float> > > all_ccs; ++ boost::unordered_map<unsigned int, map<string, float> > ccs_results; ++ boost::unordered_map<unsigned int, map<string, float> >::iterator ccs_it; ++ boost::unordered_map<unsigned int, boost::unordered_map<unsigned int, map<string, float> > > all_ccs; + + LineBasedFile lbf(BALL_TEST_DATA_PATH(BinaryFingerprintMethods_ConnectedComponents.csv), File::MODE_IN); + while(lbf.readLine()) +@@ -557,7 +557,7 @@ CHECK(connectedComponents(store_nns=false)) + } + + int_cutoff = lbf.getField(1).toUnsignedInt(); +- all_ccs[int_cutoff] = unordered_map<unsigned int, map<string, float> >(); ++ all_ccs[int_cutoff] = boost::unordered_map<unsigned int, map<string, float> >(); + + continue; + } +-- +2.7.0.rc3 + diff --git a/debian/patches/backports/Fixed-PoseClustering-test-to-account-for-changes-in-.patch b/debian/patches/backports/Fixed-PoseClustering-test-to-account-for-changes-in-.patch new file mode 100644 index 0000000..11a7ebd --- /dev/null +++ b/debian/patches/backports/Fixed-PoseClustering-test-to-account-for-changes-in-.patch @@ -0,0 +1,20 @@ +From 7bb01662db40ede50ae5472cc54cc3324aa99778 Mon Sep 17 00:00:00 2001 +From: Oliver Kohlbacher <oliver.kohlbac...@uni-tuebingen.de> +Date: Fri, 11 Dec 2015 12:09:13 +0100 +Subject: [PATCH] Fixed PoseClustering test to account for changes in boost + serialization of floating point numbers. + +--- + source/TEST/data/PoseClustering_wardtree.dat | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/source/TEST/data/PoseClustering_wardtree.dat b/source/TEST/data/PoseClustering_wardtree.dat +index bac5592..064a09e 100644 +--- a/source/TEST/data/PoseClustering_wardtree.dat ++++ b/source/TEST/data/PoseClustering_wardtree.dat +@@ -1 +1 @@ +-22 serialization::archive 10 0 0 15 14 0 0 1 0 0 1 0 1 0 1 1 0 1 0 2 1 0 1 0 3 1 0 1 0 4 1 0 1 0 5 1 0 1 0 6 1 0 1 0 7 1 0 0 0 2 2.9301245e-05 0 0 3 1.0175115 0 0 4 2.3491771 0 0 2 0.94531083 0 0 2 1.0956884e-05 0 0 4 50.624729 0 0 8 58.394974 8 1 0 0 8 0 9 3 9 8 10 2 10 9 11 7 11 6 12 4 12 5 13 12 13 11 14 13 14 10 14 ++22 serialization::archive 13 0 0 15 14 0 0 1 0 0 1 0.000000000e+00 1 0 1 1 0.000000000e+00 1 0 2 1 0.000000000e+00 1 0 3 1 0.000000000e+00 1 0 4 1 0.000000000e+00 1 0 5 1 0.000000000e+00 1 0 6 1 0.000000000e+00 1 0 7 1 0.000000000e+00 0 0 2 2.930124538e-05 0 0 3 1.017511487e+00 0 0 4 2.349177122e+00 0 0 2 9.453108311e-01 0 0 2 1.095688367e-05 0 0 4 5.062472916e+01 0 0 8 5.839497375e+01 8 1 0 0 8 0 9 3 9 8 10 2 10 9 11 7 11 6 12 4 12 5 13 12 13 11 14 13 14 10 14 +-- +2.7.0.rc3 + diff --git a/debian/patches/eigenIncludeSystem b/debian/patches/eigenIncludeSystem new file mode 100644 index 0000000..d79fdda --- /dev/null +++ b/debian/patches/eigenIncludeSystem @@ -0,0 +1,11 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -333,7 +333,7 @@ + + SET(EIGEN3_VERSION_OK "3.0.0") + FIND_PACKAGE(Eigen3 REQUIRED) +-INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR}) ++INCLUDE_DIRECTORIES(SYSTEM ${EIGEN3_INCLUDE_DIR}) + + + ## VIEW dependent packages diff --git a/debian/patches/fix-poseClustering-ftbfs-by-disabling-cxx11-move b/debian/patches/fix-poseClustering-ftbfs-by-disabling-cxx11-move new file mode 100644 index 0000000..d85ebfb --- /dev/null +++ b/debian/patches/fix-poseClustering-ftbfs-by-disabling-cxx11-move @@ -0,0 +1,79 @@ +Subject: Fix poseClustering FTBFS with recent boost + +Since boost-1.56, the class boost::detail::stored_edge_property is no +longer copyable. Specifically, look at this boost commit: + +https://github.com/boostorg/graph/commit/cb26ccf + +This breaks compilation of DOCKING/COMMON/poseClustering.o, resulting +in FTBFS. + + +This patch adds a define BOOST_NO_CXX11_RVALUE_REFERENCES which reverts +the behaviour of this boost header to the previous behaviour (see the +linked commit). + +WARNING: This can - and probably does - change various other behaviours +of boost, so please consider this as a last-resort workaround, and work +with upstream to adapt poseClustering to the current version of graph. +--- a/include/BALL/DOCKING/COMMON/poseClustering.h ++++ b/include/BALL/DOCKING/COMMON/poseClustering.h +@@ -5,6 +5,20 @@ + #ifndef BALL_DOCKING_POSECLUSTERING_H + #define BALL_DOCKING_POSECLUSTERING_H + ++// FIXME: WORKAROUND/HACK to resolve FTBFS ++// ++// poseClustering breaks with boost >= 1.56 because ++// boost::detail::stored_edge_property is no longer copyable, since ++// it has a "user-defined" ( =default'ed ) move constructor. ++// ++// Specifically, look at commit ++// https://github.com/boostorg/graph/commit/cb26ccf2 ++// ++// This needs to be patched by ball upstream to work with ++// recent boost. ++#define BOOST_NO_CXX11_RVALUE_REFERENCES ++// end ugly hack ++ + #ifndef BALL_DATATYPE_OPTIONS_H + # include <BALL/DATATYPE/options.h> + #endif +--- a/source/APPLICATIONS/TOOLS/PoseIndices2PDB.C ++++ b/source/APPLICATIONS/TOOLS/PoseIndices2PDB.C +@@ -6,12 +6,17 @@ + // into pdb files + // + ++/** FIXME: Move this back to its original position ++ * when poseClustering is adapted to current boost ++ */ ++#include <BALL/DOCKING/COMMON/poseClustering.h> ++ + #include <BALL/KERNEL/system.h> + #include <BALL/DATATYPE/string.h> + #include <BALL/FORMAT/PDBFile.h> + #include <BALL/FORMAT/lineBasedFile.h> + +-#include <BALL/DOCKING/COMMON/poseClustering.h> ++// FIXME original position here + + #include <BALL/FORMAT/commandlineParser.h> + #include <iostream> +--- a/source/APPLICATIONS/TOOLS/Trajectory2RigidTransformation.C ++++ b/source/APPLICATIONS/TOOLS/Trajectory2RigidTransformation.C +@@ -4,11 +4,12 @@ + + // A very simple utility for converting trajectory files like DCD + // into rigid transformations +-// ++ ++/** FIXME: Move this back to original position */ ++#include <BALL/DOCKING/COMMON/poseClustering.h> + + #include <BALL/KERNEL/system.h> + #include <BALL/DATATYPE/string.h> +-#include <BALL/DOCKING/COMMON/poseClustering.h> + #include <BALL/FORMAT/DCDFile.h> + #include <BALL/FORMAT/PDBFile.h> + #include <BALL/FORMAT/lineBasedFile.h> diff --git a/debian/patches/gcc5.diff b/debian/patches/gcc5.diff deleted file mode 100644 index b3eabe6..0000000 --- a/debian/patches/gcc5.diff +++ /dev/null @@ -1,18 +0,0 @@ -Author: Matthias Klose <d...@debian.org> -Last-Update: Thu, 09 Jul 2015 12:17:06 +0200 -Bug-Debian: https://bugs.debian.org/755225 -Description: Fix some build errors with GCC 5 and clang++ - (Most hunks of original patch taken over in upstream version 1.4.3~beta1 - ---- a/include/BALL/DATATYPE/string.h -+++ b/include/BALL/DATATYPE/string.h -@@ -47,6 +47,9 @@ namespace BALL - { - // forward declaration - class Substring; -+ class String; -+ BALL_EXPORT -+ std::istream& getline(std::istream& s, String& string, char delimiter = '\n'); - - /** \defgroup String String - An improved version of STL string. diff --git a/debian/patches/series b/debian/patches/series index 79b5a78..348b2ac 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -2,4 +2,10 @@ nopsboxit.patch link_against_x11.patch findsip.patch -gcc5.diff +backports/Fix-String-failed-to-compile-with-newer-GCC-versions.patch +fix-poseClustering-ftbfs-by-disabling-cxx11-move +backports/Fix-compilation-of-BinaryFingerprintMethods_test-und.patch +backports/Fixed-PoseClustering-test-to-account-for-changes-in-.patch +adapt-poseClustering-test-archive-boost1.58 +eigenIncludeSystem +backports/FingerPrintSim-Fix-build.patch diff --git a/debian/rules b/debian/rules index da751c8..a960005 100755 --- a/debian/rules +++ b/debian/rules @@ -22,13 +22,15 @@ PYTHON_SITE_PATH=$(shell python -c "import distutils.sysconfig; print distutils. override_dh_auto_configure: mkdir -p build cd build && LDFLAGS="$(LDFLAGS)" CXXFLAGS="$(CXXFLAGS)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ - cmake .. -DCMAKE_SOURCE_DIR=$(CURDIR) -DCMAKE_INSTALL_PREFIX=./usr -DBALL_PATH=/usr -DBALL_DATA_PATH=/usr/share/BALL-$(SOVERSION)/data + cmake .. -DCMAKE_SOURCE_DIR=$(CURDIR) -DCMAKE_INSTALL_PREFIX=./usr -DBALL_PATH=/usr \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DBALL_DATA_PATH=/usr/share/BALL-$(SOVERSION)/data override_dh_auto_build-arch: ## Fix upstream issue of missing UI files - uic-qt4 source/VIEW/DIALOGS/assignBondOrderConfigurationDialog.ui > include/BALL/VIEW/UIC/ui_assignBondOrderConfigurationDialog.h - uic-qt4 source/VIEW/DIALOGS/assignBondOrderResultsDialog.ui > include/BALL/VIEW/UIC/ui_assignBondOrderResultsDialog.h - uic-qt4 source/VIEW/DIALOGS/atomOverview.ui > include/BALL/VIEW/UIC/ui_atomOverview.h + #uic-qt4 source/VIEW/DIALOGS/assignBondOrderConfigurationDialog.ui > include/BALL/VIEW/UIC/ui_assignBondOrderConfigurationDialog.h + #uic-qt4 source/VIEW/DIALOGS/assignBondOrderResultsDialog.ui > include/BALL/VIEW/UIC/ui_assignBondOrderResultsDialog.h + #uic-qt4 source/VIEW/DIALOGS/atomOverview.ui > include/BALL/VIEW/UIC/ui_atomOverview.h ## ... ## Uhmmm, seems we need to do this for all UI files mentioned in ## source/VIEW/DIALOGS/sources.cmake @@ -37,7 +39,26 @@ override_dh_auto_build-arch: ## Somehow the code ## ADD_BALL_UIFILES("VIEW/DIALOGS" "${UI_LIST}") ## needs to be called before the build code below can be started - make -C build BALL VIEW BALLView install + ## + ## FIXME: Is the above statement still valid? + ## + ## + ## + ## Build the application + make -C build all + ## Build the test programs + make -C build build_tests + ## Execute all tests, printing output if something went wrong. + ## + ## This defines BALL_DATA_PATH to the in-source data directory, so + ## tests find their fixtures. + ## + ## HOME must be defined and not empty to ensure Directory_test + ## passes. + cd build && BALL_DATA_PATH=$(CURDIR)/data HOME=$(CURDIR) ctest --output-on-failure + ## + ## After tests passed, install the application + make -C build install override_dh_auto_build-indep: make -C build doc doc_tutorial install @@ -128,3 +149,6 @@ override_dh_auto_install-indep: cp -r $(BALL_INSTALL_PATH)/usr/share/BALL/data debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION) +## FIXME: Tests are currently called manually during build +override_dh_auto_test: +