[Debian-med-packaging] Bug#787746: ball: ftbfs with GCC-5

Matthias Klose doko at debian.org
Thu Jul 9 12:59:48 UTC 2015


Control: tags -1 + help

there is more than one issue involved. I'm now uploading a partial fix,
including the NMU proposed and agreed in #787746.

The build now fails with some boost error seen in 1.57. Maybe others could have
a look how to proceed.

-------------- next part --------------
diff -Nru ball-1.4.2+20140406/debian/changelog ball-1.4.2+20140406/debian/changelog
--- ball-1.4.2+20140406/debian/changelog	2014-04-10 15:28:05.000000000 +0200
+++ ball-1.4.2+20140406/debian/changelog	2015-07-09 13:28:01.000000000 +0200
@@ -1,3 +1,19 @@
+ball (1.4.2+20140406-1.1) unstable; urgency=medium
+
+  [ Lisandro Damián Nicanor Pérez Meyer ]
+  * Non-maintainer upload.
+  * Remove qt4-related non-development build dependencies (Closes: #787746).
+  * Force linking against libX11 with link_against_x11.patch. It seems that
+    now we require to manually explicit it.
+  * Add findsip.patch by Dmitry Shachnev to fix sip library detection.
+
+  [ Matthias Klose ]
+  * Fix some build errors with GCC 5 and clang++. Closes: #755225.
+    Addresses #777791.
+  * Build using dh-python. Closes: #785941.
+
+ -- Matthias Klose <doko at debian.org>  Thu, 09 Jul 2015 12:17:06 +0200
+
 ball (1.4.2+20140406-1) unstable; urgency=medium
 
   * New upstream version (upstream reported better compatibility
diff -Nru ball-1.4.2+20140406/debian/control ball-1.4.2+20140406/debian/control
--- ball-1.4.2+20140406/debian/control	2014-04-13 21:41:59.000000000 +0200
+++ ball-1.4.2+20140406/debian/control	2015-07-09 12:18:22.000000000 +0200
@@ -8,11 +8,7 @@
 Build-Depends: debhelper (>= 9),
                qt4-dev-tools,
                libqt4-dev,
-               libqt4-gui,
-               libqt4-opengl,
                libqt4-opengl-dev,
-               libqt4-sql,
-               libqt4-network,
                python-sip-dev,
                flex,
                bison,
@@ -32,9 +28,10 @@
                libboost-regex-dev,
                libxmu-dev,
                libglew-dev,
+               libx11-dev,
                tidy,
                chrpath,
-               python-support,
+	       dh-python,
                libqt4-dev-bin
 Build-Depends-Indep: doxygen,
                      graphviz,
diff -Nru ball-1.4.2+20140406/debian/patches/findsip.patch ball-1.4.2+20140406/debian/patches/findsip.patch
--- ball-1.4.2+20140406/debian/patches/findsip.patch	1970-01-01 01:00:00.000000000 +0100
+++ ball-1.4.2+20140406/debian/patches/findsip.patch	2015-07-09 12:15:12.000000000 +0200
@@ -0,0 +1,70 @@
+Description: fix sip library detection
+ The old algorithm used hard-coded library names and thus could not
+ detect our multi-arched name.
+ .
+ Instead of that, just import sip from Python script and use the
+ __file__ property to find the library.
+Author: Dmitry Shachnev <mitya57 at debian.org>
+Forwarded: no
+Last-Update: 2015-06-13
+
+--- a/cmake/FindSIP.cmake
++++ b/cmake/FindSIP.cmake
+@@ -69,6 +69,7 @@ ELSE(SIP_VERSION)
+ 			STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_EXECUTABLE ${sip_config})
+ 			STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config})
+ 			STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config})
++			STRING(REGEX REPLACE ".*\nsip_library:([^\n]+).*$" "\\1" SIP_LIBRARIES ${sip_config})
+ 			SET(SIP_FOUND TRUE)
+ 		ENDIF(sip_config)
+ 
+@@ -100,12 +101,6 @@ IF(NOT SIP_VERSION)
+ 
+ 	SET(OLD_CMAKE_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}" CACHE INTERNAL "")
+ 	SET(CMAKE_FIND_LIBRARY_PREFIXES "")
+-  FIND_LIBRARY(SIP_LIBRARIES
+-    NAMES sip libsip
+-    PATHS ${SIP_POSSIBLE_LIB_DIRS} ${PYTHON_SITE_PACKAGES}
+-    PATH_SUFFIXES lib dlls
+-    DOC "SIP module")
+-	SET(CMAKE_FIND_LIBRARY_PREFIXES "${OLD_CMAKE_FIND_LIBRARY_PREFIXES}")
+ 
+   # (c) Try to find the sip executable:
+   
+@@ -134,27 +129,6 @@ IF(NOT SIP_VERSION)
+   STRING(REGEX REPLACE "define SIP_VERSION_STR[ \t]+\"([^\"]*)\""  "\\1" SIP_VERSION_STR "${SIP_VERSION_STR}")
+ ENDIF(NOT SIP_VERSION)
+ 
+-IF(NOT SIP_LIBRARIES)
+-  # Try to find the sip library:
+-	EXECUTE_PROCESS ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
+-		OUTPUT_VARIABLE PYTHON_SITE_PACKAGES
+-		OUTPUT_STRIP_TRAILING_WHITESPACE
+-	)
+-
+-  # Use the path to the python installation as a hint for finding sip
+-  GET_FILENAME_COMPONENT(SIP_POSSIBLE_LIB_DIRS "${PYTHON_LIBRARIES}"  PATH)
+-	LIST(APPEND SIP_POSSIBLE_LIB_DIRS "/usr/lib/pyshared/python${PYTHON_VERSION}")
+-
+-	SET(OLD_CMAKE_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}" CACHE INTERNAL "")
+-	SET(CMAKE_FIND_LIBRARY_PREFIXES "")
+-  FIND_LIBRARY(SIP_LIBRARIES
+-    NAMES sip libsip
+-    PATHS ${SIP_POSSIBLE_LIB_DIRS} ${PYTHON_SITE_PACKAGES}
+-    PATH_SUFFIXES lib dlls
+-    DOC "SIP module")
+-	SET(CMAKE_FIND_LIBRARY_PREFIXES "${OLD_CMAKE_FIND_LIBRARY_PREFIXES}")
+-ENDIF()
+-
+ INCLUDE(FindPackageHandleStandardArgs)
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(SIP DEFAULT_MSG
+ 	SIP_EXECUTABLE
+--- a/cmake/FindSIP.py
++++ b/cmake/FindSIP.py
+@@ -13,3 +13,6 @@ print("sip_version_str:%s" % sipcfg.sip_
+ print("sip_bin:%s" % sipcfg.sip_bin)
+ print("default_sip_dir:%s" % sipcfg.default_sip_dir)
+ print("sip_inc_dir:%s" % sipcfg.sip_inc_dir)
++
++import sip
++print("sip_library:%s" % sip.__file__)
diff -Nru ball-1.4.2+20140406/debian/patches/gcc5.diff ball-1.4.2+20140406/debian/patches/gcc5.diff
--- ball-1.4.2+20140406/debian/patches/gcc5.diff	1970-01-01 01:00:00.000000000 +0100
+++ ball-1.4.2+20140406/debian/patches/gcc5.diff	2015-07-09 13:26:08.000000000 +0200
@@ -0,0 +1,69 @@
+--- a/include/BALL/DATATYPE/string.h	2013-03-07 21:15:10.000000000 +0400
++++ b/include/BALL/DATATYPE/string.h	2014-07-31 02:12:03.770913795 +0400
+@@ -47,6 +47,9 @@
+ {
+ 	// 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.
+@@ -998,7 +1001,7 @@
+ 
+ 		///
+ 		BALL_EXPORT
+-		friend std::istream& getline(std::istream& s,  String& string,  char delimiter = '\n');
++		friend std::istream& getline(std::istream& s,  String& string,  char delimiter);
+ 
+ 		//@}
+ 
+--- a/source/FORMAT/molFileFactory.C
++++ b/source/FORMAT/molFileFactory.C
+@@ -39,7 +39,7 @@
+ 			try
+ 			{
+ 				string s;
+-				ok = std::getline(in,s);
++				if (std::getline(in,s)) ok = true;
+ 			}
+ 			catch (const boost::iostreams::gzip_error& e)
+ 			{
+--- a/source/STRUCTURE/binaryFingerprintMethods.C
++++ b/source/STRUCTURE/binaryFingerprintMethods.C
+@@ -10,7 +10,7 @@
+ #include <BALL/SYSTEM/timer.h>
+ 
+ #include <boost/foreach.hpp>
+-
++#include <boost/unordered_map.hpp>
+ 
+ using namespace std;
+ using namespace boost;
+@@ -1604,13 +1604,13 @@ bool BinaryFingerprintMethods::connectedComponents(const vector<unsigned int>& s
+ 	{
+ 		
+ 		// STEP 1: Get connected components and member indices
+-		unordered_map<unsigned int, unordered_map<unsigned int, unsigned int> > ccs_tmp;
+-		unordered_map<unsigned int, unordered_map<unsigned int, unsigned int> >::iterator ccs_iter;
++		boost::unordered_map<unsigned int, boost::unordered_map<unsigned int, unsigned int> > ccs_tmp;
++		boost::unordered_map<unsigned int, boost::unordered_map<unsigned int, unsigned int> >::iterator ccs_iter;
+ 		BOOST_FOREACH(Vertex current_vertex, vertices(sim_graph))
+ 		{
+ 			if (ccs_tmp.find(ds->find_set(current_vertex)) == ccs_tmp.end())
+ 			{
+-				ccs_tmp[ds->find_set(current_vertex)] = unordered_map<unsigned int, unsigned int>();
++				ccs_tmp[ds->find_set(current_vertex)] = boost::unordered_map<unsigned int, unsigned int>();
+ 			}
+ 			
+ // 			ccs_tmp[ds->find_set(current_vertex)][current_vertex] = ccs_tmp[ds->find_set(current_vertex)].size();
+@@ -1628,7 +1628,7 @@ bool BinaryFingerprintMethods::connectedComponents(const vector<unsigned int>& s
+ 		}
+ 		
+ 		// STEP 3: Write information in return data structures
+-		unordered_map<unsigned int, unsigned int>::iterator cc_iter;
++		boost::unordered_map<unsigned int, unsigned int>::iterator cc_iter;
+ 		for (size_iter=cc_sizes.begin(); size_iter!=cc_sizes.end(); ++size_iter)
+ 		{
+ 			ccs.push_back(vector<unsigned int>(size_iter->first, 0));
diff -Nru ball-1.4.2+20140406/debian/patches/link_against_x11.patch ball-1.4.2+20140406/debian/patches/link_against_x11.patch
--- ball-1.4.2+20140406/debian/patches/link_against_x11.patch	1970-01-01 01:00:00.000000000 +0100
+++ ball-1.4.2+20140406/debian/patches/link_against_x11.patch	2015-07-09 12:15:12.000000000 +0200
@@ -0,0 +1,18 @@
+Description: Link against libx11
+ Something has changed since Jessie and now we need to explicitely link
+ against X11.
+Author: Lisandro Damián Nicanor Pérez Meyer <lisandro at debian.org>
+Forwarded: no
+Last-Update: 2015-06-05.
+
+--- ball-1.4.2+20140406.orig/CMakeLists.txt
++++ ball-1.4.2+20140406/CMakeLists.txt
+@@ -550,7 +550,7 @@ TARGET_LINK_LIBRARIES(BALL ${BALL_DEP_LI
+                            ${QT_QTCORE_LIBRARY}
+                            ${QT_QTSQL_LIBRARY}
+                            ${QT_QTNETWORK_LIBRARY}
+-                           ${QT_QTXML_LIBRARY})
++                           ${QT_QTXML_LIBRARY} -lX11)
+ 
+ 
+ IF(BALL_HAS_VIEW)
diff -Nru ball-1.4.2+20140406/debian/patches/series ball-1.4.2+20140406/debian/patches/series
--- ball-1.4.2+20140406/debian/patches/series	2014-04-10 15:28:05.000000000 +0200
+++ ball-1.4.2+20140406/debian/patches/series	2015-07-09 12:23:36.000000000 +0200
@@ -7,3 +7,6 @@
 0103-QT4_EXTRACT_OPTIONS-CMake-macro-changed-in-CMake-2.8.patch
 nopsboxit.patch
 HelpSipAmbiguity.patch
+link_against_x11.patch
+findsip.patch
+gcc5.diff
diff -Nru ball-1.4.2+20140406/debian/rules ball-1.4.2+20140406/debian/rules
--- ball-1.4.2+20140406/debian/rules	2014-04-11 14:03:12.000000000 +0200
+++ ball-1.4.2+20140406/debian/rules	2015-07-09 14:22:24.000000000 +0200
@@ -141,7 +141,7 @@
 	chrpath -d debian/ballview/usr/bin/BALLView
 	find debian -name "*.so" | xargs -r chrpath -d 
 
-	dh_pysupport -s
+	dh_python2 -s
 	dh_sip -s
 
 install-indep: build-indep
@@ -178,7 +178,7 @@
 	#ln -s ${LIBBALL_TARGET} libball$(SOVERSION)-dev/usr/lib/libBALL.so
 	#ln -s ${LIBVIEW_TARGET} libballview$(SOVERSION)-dev/usr/lib/libVIEW.so
 
-	dh_pysupport -i
+	dh_python2 -i
 	dh_sip -i
 
 
@@ -190,7 +190,6 @@
 	dh_installexamples
 	dh_install
 	dh_installmenu
-#	dh_python
 	dh_installman
 	dh_link
 	dh_strip --dbg-package=ballview-dbg


More information about the Debian-med-packaging mailing list