commit: ec86568a3fb6ee37be869bd606194343da0770fa Author: Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr> AuthorDate: Fri Mar 28 09:15:22 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri Mar 28 17:23:59 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ec86568a
sci-libs/octomap: add 1.10.0, qt6 bump EAPI8 switch to qt6 by default (see trivial patch with a PR in upstream) use soname 1.10 for subslot, instead of expected 110 (19 in tree) patches: * cmake_min bump to 3.10 * fix destdir * filter -Werror and -O3 * use pkgconf for libGQLViewer * switch qt4/qt5 to qt5/qt6 tests passed here without jobs restriction open bugs for 1.9.8 are hopefully addressed Bug: https://bugs.gentoo.org/801232 Bug: https://bugs.gentoo.org/890433 Bug: https://bugs.gentoo.org/890489 Bug: https://bugs.gentoo.org/928853 Closes: https://bugs.gentoo.org/949090 Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr> Closes: https://github.com/gentoo/gentoo/pull/41342 Signed-off-by: Sam James <sam <AT> gentoo.org> sci-libs/octomap/Manifest | 1 + .../octomap/files/octomap-1.10.0-cmake_bump.patch | 42 ++++++ .../files/octomap-1.10.0-destdir_edt3d.patch | 18 +++ .../files/octomap-1.10.0-filter_flags.patch | 16 +++ .../octomap-1.10.0-pkgconf_libqglviewer.patch | 32 +++++ .../octomap/files/octomap-1.10.0-qt5_qt6.patch | 143 +++++++++++++++++++++ sci-libs/octomap/octomap-1.10.0.ebuild | 91 +++++++++++++ 7 files changed, 343 insertions(+) diff --git a/sci-libs/octomap/Manifest b/sci-libs/octomap/Manifest index 1b96b736d561..4e41334e1f6b 100644 --- a/sci-libs/octomap/Manifest +++ b/sci-libs/octomap/Manifest @@ -1 +1,2 @@ +DIST octomap-1.10.0.tar.gz 1694103 BLAKE2B 0415ee5e961ea456b9d497b35aeadd0d21a742a3f252eac67c717536e1d9f39fa4117170e259a3762ab6101b776afe65dec6fcff5a6e8d66f1957ea0b0ea5552 SHA512 1cbee4f6b3569587986774447ad9ec4190f597310c4d6865ffa7cd8865ece2492e4a42fa369b633d9d7a9da782560d49deaa62a18601ea4f56396bdf1a6a5f52 DIST octomap-1.9.8.tar.gz 1693311 BLAKE2B 476e4a644287e5ebcaa36de3051b7a2079b733bee3cd80b192fecfab0a85c5de70e3ad087a6cb499141167c735692de72ba2a7b1fb8b318e461f8f21f20020ae SHA512 60afeecc36a190f136dcbe33cb9cd6c06c16233988b383b0b010f65f81e6a3630b55902c5b5ad756ac35dee4c4ec26ec5722d6bd9b8e079f70b7d286293c518e diff --git a/sci-libs/octomap/files/octomap-1.10.0-cmake_bump.patch b/sci-libs/octomap/files/octomap-1.10.0-cmake_bump.patch new file mode 100644 index 000000000000..7afef4bc95a7 --- /dev/null +++ b/sci-libs/octomap/files/octomap-1.10.0-cmake_bump.patch @@ -0,0 +1,42 @@ +https://github.com/OctoMap/octomap/pull/432.patch +bump cmake_minimum to prepare cmake-4 +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f1eb31f3..63498f5b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-CMAKE_MINIMUM_REQUIRED(VERSION 3.0.2) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.10) + PROJECT( octomap-distribution ) + + ENABLE_TESTING() # enable CTest environment of subprojects +diff --git a/dynamicEDT3D/CMakeLists.txt b/dynamicEDT3D/CMakeLists.txt +index 7edfdde9..3dfd2399 100644 +--- a/dynamicEDT3D/CMakeLists.txt ++++ b/dynamicEDT3D/CMakeLists.txt +@@ -1,4 +1,4 @@ +-CMAKE_MINIMUM_REQUIRED(VERSION 3.5) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.10) + PROJECT(dynamicEDT3D) + + include(CTest) +diff --git a/octomap/CMakeLists.txt b/octomap/CMakeLists.txt +index 87a78e9c..148a1332 100644 +--- a/octomap/CMakeLists.txt ++++ b/octomap/CMakeLists.txt +@@ -1,4 +1,4 @@ +-CMAKE_MINIMUM_REQUIRED(VERSION 3.5) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.10) + PROJECT( octomap ) + + include(CTest) +diff --git a/octovis/CMakeLists.txt b/octovis/CMakeLists.txt +index 84fa3675..79e6978f 100644 +--- a/octovis/CMakeLists.txt ++++ b/octovis/CMakeLists.txt +@@ -1,4 +1,4 @@ +-CMAKE_MINIMUM_REQUIRED(VERSION 3.5) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.10) + PROJECT( octovis ) + + include(CTest) diff --git a/sci-libs/octomap/files/octomap-1.10.0-destdir_edt3d.patch b/sci-libs/octomap/files/octomap-1.10.0-destdir_edt3d.patch new file mode 100644 index 000000000000..2d44dd5954e5 --- /dev/null +++ b/sci-libs/octomap/files/octomap-1.10.0-destdir_edt3d.patch @@ -0,0 +1,18 @@ +use cmake variables +diff --git a/dynamicEDT3D/CMakeLists.txt b/dynamicEDT3D/CMakeLists.txt +index 7edfdde..14bdf49 100644 +--- a/dynamicEDT3D/CMakeLists.txt ++++ b/dynamicEDT3D/CMakeLists.txt +@@ -46,9 +46,9 @@ LINK_DIRECTORIES(${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) + # Installation + + set(INSTALL_TARGETS_DEFAULT_ARGS +- RUNTIME DESTINATION bin +- LIBRARY DESTINATION lib +- ARCHIVE DESTINATION lib ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) + + find_package(octomap REQUIRED diff --git a/sci-libs/octomap/files/octomap-1.10.0-filter_flags.patch b/sci-libs/octomap/files/octomap-1.10.0-filter_flags.patch new file mode 100644 index 000000000000..7358009c0766 --- /dev/null +++ b/sci-libs/octomap/files/octomap-1.10.0-filter_flags.patch @@ -0,0 +1,16 @@ +delete -Werror and -O3 +diff --git a/octomap/CMakeModules/CompilerSettings.cmake b/octomap/CMakeModules/CompilerSettings.cmake +index bae0cc4..a4920fd 100644 +--- a/octomap/CMakeModules/CompilerSettings.cmake ++++ b/octomap/CMakeModules/CompilerSettings.cmake +@@ -10,8 +10,8 @@ MESSAGE (STATUS "${PROJECT_NAME} building as ${CMAKE_BUILD_TYPE}") + # COMPILER FLAGS + IF (CMAKE_COMPILER_IS_GNUCC) + SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-error ") +- SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra -Wpedantic") +- SET (CMAKE_CXX_FLAGS_RELEASE "-O3 -funroll-loops -DNDEBUG") ++ SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic") ++ SET (CMAKE_CXX_FLAGS_RELEASE "-funroll-loops -DNDEBUG") + SET (CMAKE_CXX_FLAGS_DEBUG "-O0 -g") + # Shared object compilation under 64bit (vtable) + ADD_DEFINITIONS(-fPIC) diff --git a/sci-libs/octomap/files/octomap-1.10.0-pkgconf_libqglviewer.patch b/sci-libs/octomap/files/octomap-1.10.0-pkgconf_libqglviewer.patch new file mode 100644 index 000000000000..70817fb3d1ed --- /dev/null +++ b/sci-libs/octomap/files/octomap-1.10.0-pkgconf_libqglviewer.patch @@ -0,0 +1,32 @@ +Prefer pkgconfig for QGLViewer, easier than findcmake file and it avoids call of 3rd library +diff --git a/octovis/CMakeLists.txt b/octovis/CMakeLists.txt +index 84fa367..bc54f36 100644 +--- a/octovis/CMakeLists.txt ++++ b/octovis/CMakeLists.txt +@@ -77,7 +77,8 @@ endif(NOT OCTOVIS_QT5) + IF (OpenGL-NOTFOUND OR Qt4-NOTFOUND) + MESSAGE ( "OpenGL and QT4 are required for octovis but could not be found.") + ELSE() +- FIND_PACKAGE(QGLViewer) ++ FIND_PACKAGE(PkgConfig REQUIRED) ++ pkg_check_modules(QGLViewer libQGLViewer) + IF(QGLViewer_FOUND) + SET( BUILD_VIEWER 1) + ELSE() +diff --git a/octovis/CMakeLists_src.txt b/octovis/CMakeLists_src.txt +index 35bc1f2..85fd61a 100644 +--- a/octovis/CMakeLists_src.txt ++++ b/octovis/CMakeLists_src.txt +@@ -57,11 +57,8 @@ else(OCTOVIS_QT5) + QT4_ADD_RESOURCES(viewer_RES src/icons.qrc) + endif(OCTOVIS_QT5) + +-#found QGLViewer lib dir +-link_directories(${QGLViewer_LIBRARY_DIR}) +- + INCLUDE_DIRECTORIES( +- ${QGLViewer_INCLUDE_DIR} ++ ${QGLViewer_INCLUDE_DIRS} + ) + + SET(viewer_MOC_HDRS diff --git a/sci-libs/octomap/files/octomap-1.10.0-qt5_qt6.patch b/sci-libs/octomap/files/octomap-1.10.0-qt5_qt6.patch new file mode 100644 index 000000000000..7c6b871679aa --- /dev/null +++ b/sci-libs/octomap/files/octomap-1.10.0-qt5_qt6.patch @@ -0,0 +1,143 @@ +https://github.com/OctoMap/octomap/pull/433.patch +switch qt4/qt5 to qt5/qt6 +qt6 just works as is +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f1eb31f3..6a4db7eb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -6,7 +6,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # enables -fPIC in applicable compilers + + option(BUILD_OCTOVIS_SUBPROJECT "Build targets from subproject octovis" ON) + option(BUILD_DYNAMICETD3D_SUBPROJECT "Build targets from subproject dynamicEDT3D" ON) +-option(OCTOVIS_QT5 "Link Octovis against Qt5?" ON) ++option(OCTOVIS_QT6 "Link Octovis against Qt6?" ON) + + set(CMAKE_CXX_STANDARD 11) + +diff --git a/octovis/CMakeLists.txt b/octovis/CMakeLists.txt +index 84fa3675..e6dd604c 100644 +--- a/octovis/CMakeLists.txt ++++ b/octovis/CMakeLists.txt +@@ -65,17 +65,14 @@ set(INSTALL_TARGETS_DEFAULT_ARGS + # libQGLViewer, if dependencies available + SET( BUILD_VIEWER 0) + +-option(OCTOVIS_QT5 "Link Octovis against Qt5?" ON) ++option(OCTOVIS_QT6 "Link Octovis against Qt6?" ON) + + # Look for required libraries: + set(OpenGL_GL_PREFERENCE LEGACY) + FIND_PACKAGE(OpenGL) +-if(NOT OCTOVIS_QT5) +- FIND_PACKAGE(Qt4) +-endif(NOT OCTOVIS_QT5) + +-IF (OpenGL-NOTFOUND OR Qt4-NOTFOUND) +- MESSAGE ( "OpenGL and QT4 are required for octovis but could not be found.") ++IF (OpenGL-NOTFOUND) ++ MESSAGE ( "OpenGL is required for octovis but could not be found.") + ELSE() + FIND_PACKAGE(QGLViewer) + IF(QGLViewer_FOUND) +diff --git a/octovis/CMakeLists_src.txt b/octovis/CMakeLists_src.txt +index 35bc1f20..6eaa31ad 100644 +--- a/octovis/CMakeLists_src.txt ++++ b/octovis/CMakeLists_src.txt +@@ -1,5 +1,8 @@ + +-if(OCTOVIS_QT5) ++if(OCTOVIS_QT6) ++ find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGLWidgets Widgets Xml) ++ set(QT_LIBRARIES Qt6::Core Qt6::Gui Qt6::OpenGLWidgets Qt6::Widgets Qt6::Xml "${OPENGL_gl_LIBRARY}" "${OPENGL_glu_LIBRARY}") ++else(OCTOVIS_QT6) + find_package(Qt5Core REQUIRED) + find_package(Qt5Gui REQUIRED) + find_package(Qt5OpenGL REQUIRED) +@@ -13,14 +16,7 @@ if(OCTOVIS_QT5) + "${Qt5Widgets_INCLUDE_DIRS}" + "${Qt5Xml_INCLUDE_DIRS}" + ) +-else(OCTOVIS_QT5) +- # Qt4-support (more info: http://qtnode.net/wiki?title=Qt_with_cmake) +- find_package(Qt4 REQUIRED) +- set(QT_USE_QTOPENGL TRUE) +- set(QT_USE_QTXML TRUE) +- # include the files enabled above +- include(${QT_USE_FILE}) +-endif(OCTOVIS_QT5) ++endif(OCTOVIS_QT6) + + # Mac OS X seems to require special linker flags: + IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") +@@ -51,11 +47,11 @@ set(viewer_SRCS + ) + + # Resource files (icons, ...) +-if(OCTOVIS_QT5) ++if(OCTOVIS_QT6) ++ QT6_ADD_RESOURCES(viewer_RES src/icons.qrc) ++else(OCTOVIS_QT6) + QT5_ADD_RESOURCES(viewer_RES src/icons.qrc) +-else(OCTOVIS_QT5) +- QT4_ADD_RESOURCES(viewer_RES src/icons.qrc) +-endif(OCTOVIS_QT5) ++endif(OCTOVIS_QT6) + + #found QGLViewer lib dir + link_directories(${QGLViewer_LIBRARY_DIR}) +@@ -74,11 +70,11 @@ SET(viewer_MOC_HDRS + ) + + # generate list of MOC srcs: +-if(OCTOVIS_QT5) ++if(OCTOVIS_QT6) ++ QT6_WRAP_CPP(viewer_MOC_SRCS ${viewer_MOC_HDRS}) ++else(OCTOVIS_QT6) + QT5_WRAP_CPP(viewer_MOC_SRCS ${viewer_MOC_HDRS}) +-else(OCTOVIS_QT5) +- QT4_WRAP_CPP(viewer_MOC_SRCS ${viewer_MOC_HDRS}) +-endif(OCTOVIS_QT5) ++endif(OCTOVIS_QT6) + + # let cmake generate ui*.h files from .ui files (Qt Designer): + SET(viewer_UIS +@@ -87,11 +83,11 @@ SET(viewer_UIS + ${PROJECT_SOURCE_DIR}/include/octovis/ViewerSettingsPanel.ui + ${PROJECT_SOURCE_DIR}/include/octovis/ViewerSettingsPanelCamera.ui + ) +-if(OCTOVIS_QT5) ++if(OCTOVIS_QT6) ++ QT6_WRAP_UI(viewer_UIS_H ${viewer_UIS}) ++else(OCTOVIS_QT6) + QT5_WRAP_UI(viewer_UIS_H ${viewer_UIS}) +-else(OCTOVIS_QT5) +- QT4_WRAP_UI(viewer_UIS_H ${viewer_UIS}) +-endif(OCTOVIS_QT5) ++endif(OCTOVIS_QT6) + + # Don't forget to include output directory, otherwise + # the UI file won't be wrapped! +@@ -101,6 +97,7 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR}) + # Library target + add_library(octovis-static STATIC ${viewerlib_SRCS}) + target_link_libraries(octovis-static ++ ${QT_LIBRARIES} + ${OPENGL_gl_LIBRARY} + ${OPENGL_glu_LIBRARY} + ${OCTOMAP_LIBRARIES} +@@ -110,6 +107,7 @@ set_target_properties(octovis-static PROPERTIES OUTPUT_NAME octovis) + + add_library(octovis-shared SHARED ${viewerlib_SRCS}) + target_link_libraries(octovis-shared ++ ${QT_LIBRARIES} + ${OPENGL_gl_LIBRARY} + ${OPENGL_glu_LIBRARY} + ${OCTOMAP_LIBRARIES} +@@ -135,7 +133,6 @@ add_executable(octovis ${viewer_SRCS} ${viewer_UIS_H} ${viewer_MOC_SRCS} ${viewe + + target_link_libraries(octovis + # ${QGLViewer_LIBRARIES} +- ${QT_LIBRARIES} + ${OCTOMAP_LIBRARIES} + octovis-shared + ) diff --git a/sci-libs/octomap/octomap-1.10.0.ebuild b/sci-libs/octomap/octomap-1.10.0.ebuild new file mode 100644 index 000000000000..6fb6dba3d556 --- /dev/null +++ b/sci-libs/octomap/octomap-1.10.0.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Efficient Probabilistic 3D Mapping Framework Based on Octrees" +HOMEPAGE="https://octomap.github.io/" +SRC_URI="https://github.com/OctoMap/octomap/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD qt6? ( GPL-2 )" +SLOT="0/1.10" +KEYWORDS="~amd64 ~arm" +IUSE="doc dynamicEDT3D qt6" + +RDEPEND=" + qt6? ( + dev-qt/qtbase:6[gui,widgets,xml] + >=x11-libs/libQGLViewer-2.9.1 + virtual/glu + virtual/opengl + ) +" +DEPEND="${RDEPEND}" +BDEPEND="doc? ( app-text/doxygen[dot] )" + +PATCHES=( + "${FILESDIR}"/${PN}-1.10.0-cmake_bump.patch + "${FILESDIR}"/${PN}-1.10.0-destdir_edt3d.patch + "${FILESDIR}"/${PN}-1.10.0-filter_flags.patch + "${FILESDIR}"/${PN}-1.10.0-pkgconf_libqglviewer.patch + "${FILESDIR}"/${PN}-1.10.0-qt5_qt6.patch +) + +src_prepare() { + if use doc; then + doxygen -u octomap/octomap.dox.in 2>/dev/null || die + doxygen -u dynamicEDT3D/dynamicEDT3D.dox 2>/dev/null || die + fi + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_SKIP_RPATH=ON + -DBUILD_DYNAMICETD3D_SUBPROJECT=$(usex dynamicEDT3D) + -DBUILD_OCTOVIS_SUBPROJECT=$(usex qt6) + ) + + cmake_src_configure +} + +src_compile() { + cmake_src_compile + + if use doc; then + cmake_build docs + use dynamicEDT3D && cmake_build docs_dynamicEDT3D + # remove doxygen working files + find "${S}" \( \ + -iname '*.map' -o \ + -iname '*.md5' \ + \) -delete || die + fi +} + +src_test() { + local -x LD_LIBRARY_PATH="${S}/lib" + cmake_src_test +} + +src_install() { + if use doc; then + # use docinto to preserve one subdirectory by project in html dir + docinto html/octomap + dodoc -r octomap/doc/html/. + if use dynamicEDT3D; then + docinto html/dynamicEDT3D + dodoc -r dynamicEDT3D/doc/html/. + fi + fi + + cmake_src_install + + # dir with empty files + rm -r "${ED}"/usr/share/ament_index || die + + find "${ED}" -name '*.a' -delete || die +}
