From: Alexis Ballier Date: Mon, 23 Jan 2017 12:24:26 +0000 (+0100) Subject: dev-ros/image_publisher: Backport upstream patches to build with gcc6. X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=2f934bb189f6267f1815f853403c84de934e3235;p=gentoo.git dev-ros/image_publisher: Backport upstream patches to build with gcc6. Package-Manager: Portage-2.3.3, Repoman-2.3.1 --- diff --git a/dev-ros/image_publisher/files/gcc6-1.patch b/dev-ros/image_publisher/files/gcc6-1.patch new file mode 100644 index 000000000000..74e238b00123 --- /dev/null +++ b/dev-ros/image_publisher/files/gcc6-1.patch @@ -0,0 +1,44 @@ +commit 562332df73781c1e56ce9123542334cc1d91b143 +Author: Lukas Bulwahn +Date: Thu Oct 6 08:55:27 2016 +0200 + + explicitly cast to std::vector to make gcc6 happy + + With gcc6, compiling image_publisher fails with this error: + ``` + /[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp: In member function 'virtual void image_publisher::ImagePublisherNodelet::onInit()': + /[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp:180:43: error: ambiguous overload for 'operator=' (operand types are 'sensor_msgs::CameraInfo_ >::_D_type {aka std::vector}' and 'boost::assign_detail::generic_list') + camera_info_.D = list_of(0)(0)(0)(0)(0); + ``` + + After adding an initial explicit type cast for the assignment, + compiling fails further with: + ``` + | /[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp: In member function 'virtual void image_publisher::ImagePublisherNodelet::onInit()': + | /[...]/image_publisher/src/nodelet/image_publisher_nodelet.cpp:180:65: error: call of overloaded 'vector(boost::assign_detail::generic_list&)' is ambiguous + | camera_info_.D = std::vector (list_of(0)(0)(0)(0)(0)); + ``` + + Various sources on the internet [1, 2, 3] point to use the + `convert_to_container` method; hence, this commit follows those + suggestions and with that image_publisher compiles with gcc6. + + [1] http://stackoverflow.com/questions/16211410/ambiguity-when-using-boostassignlist-of-to-construct-a-stdvector + [2] http://stackoverflow.com/questions/12352692/ambiguous-call-with-list-of-in-vs2010/12362548#12362548 + [3] http://stackoverflow.com/questions/13285272/using-boostassignlist-of?rq=1 + + Signed-off-by: Lukas Bulwahn + +diff --git a/image_publisher/src/nodelet/image_publisher_nodelet.cpp b/image_publisher/src/nodelet/image_publisher_nodelet.cpp +index 4102d0d..26e1352 100644 +--- a/image_publisher/src/nodelet/image_publisher_nodelet.cpp ++++ b/image_publisher/src/nodelet/image_publisher_nodelet.cpp +@@ -177,7 +177,7 @@ public: + camera_info_.width = image_.cols; + camera_info_.height = image_.rows; + camera_info_.distortion_model = "plumb_bob"; +- camera_info_.D = list_of(0)(0)(0)(0)(0); ++ camera_info_.D = list_of(0)(0)(0)(0)(0).convert_to_container >(); + camera_info_.K = list_of(1)(0)(camera_info_.width/2)(0)(1)(camera_info_.height/2)(0)(0)(1); + camera_info_.R = list_of(1)(0)(0)(0)(1)(0)(0)(0)(1); + camera_info_.P = list_of(1)(0)(camera_info_.width/2)(0)(0)(1)(camera_info_.height/2)(0)(0)(0)(1)(0); diff --git a/dev-ros/image_publisher/files/gcc6.patch b/dev-ros/image_publisher/files/gcc6.patch new file mode 100644 index 000000000000..4815e9e682ca --- /dev/null +++ b/dev-ros/image_publisher/files/gcc6.patch @@ -0,0 +1,32 @@ +commit 6c2d65452bd5fe62723988a1a570789921900d59 +Author: Lukas Bulwahn +Date: Fri Sep 30 15:39:47 2016 +0200 + + address gcc6 build error + + With gcc6, compiling fails with `stdlib.h: No such file or directory`, + as including '-isystem /usr/include' breaks with gcc6, cf., + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129. + + This commit addresses this issue for this package in the same way + it was addressed in various other ROS packages. A list of related + commits and pull requests is at: + + https://github.com/ros/rosdistro/issues/12783 + + Signed-off-by: Lukas Bulwahn + +diff --git a/image_publisher/CMakeLists.txt b/image_publisher/CMakeLists.txt +index 8015a45..431109c 100644 +--- a/image_publisher/CMakeLists.txt ++++ b/image_publisher/CMakeLists.txt +@@ -8,8 +8,7 @@ generate_dynamic_reconfigure_options(cfg/ImagePublisher.cfg) + + catkin_package() + +-# add the executable +-include_directories(SYSTEM ${catkin_INCLUDE_DIRS}) ++include_directories(${catkin_INCLUDE_DIRS}) + + add_library(${PROJECT_NAME} SHARED src/nodelet/image_publisher_nodelet.cpp) + target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES}) diff --git a/dev-ros/image_publisher/image_publisher-1.12.19.ebuild b/dev-ros/image_publisher/image_publisher-1.12.19.ebuild index c7d3a6523f22..782fa09f27da 100644 --- a/dev-ros/image_publisher/image_publisher-1.12.19.ebuild +++ b/dev-ros/image_publisher/image_publisher-1.12.19.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2016 Gentoo Foundation +# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ @@ -25,3 +25,4 @@ RDEPEND=" dev-ros/sensor_msgs[${CATKIN_MESSAGES_CXX_USEDEP}] " DEPEND="${RDEPEND}" +PATCHES=( "${FILESDIR}/gcc6.patch" "${FILESDIR}/gcc6-1.patch" )