commit: 772cd4c633c795df4b121b8ab3043fbba52b828b Author: Alexey Sokolov <alexey+gentoo <AT> asokolov <DOT> org> AuthorDate: Sun May 11 18:32:57 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri May 16 09:44:52 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=772cd4c6
media-libs/opencollada: fix build with gcc15/cmake4 Closes: https://bugs.gentoo.org/880407 Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org> Part-of: https://github.com/gentoo/gentoo/pull/42034 Signed-off-by: Sam James <sam <AT> gentoo.org> .../files/opencollada-1.6.68-cmake4.patch | 11 +++ .../files/opencollada-1.6.68-unbundle-zlib.patch | 39 ++++++++++ .../opencollada/opencollada-1.6.68-r2.ebuild | 85 ++++++++++++++++++++++ 3 files changed, 135 insertions(+) diff --git a/media-libs/opencollada/files/opencollada-1.6.68-cmake4.patch b/media-libs/opencollada/files/opencollada-1.6.68-cmake4.patch new file mode 100644 index 000000000000..32a335009c9a --- /dev/null +++ b/media-libs/opencollada/files/opencollada-1.6.68-cmake4.patch @@ -0,0 +1,11 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -18,7 +18,7 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) + endif() + endif() + +-cmake_minimum_required(VERSION 2.6) ++cmake_minimum_required(VERSION 2.6...4.0) + + + #----------------------------------------------------------------------------- diff --git a/media-libs/opencollada/files/opencollada-1.6.68-unbundle-zlib.patch b/media-libs/opencollada/files/opencollada-1.6.68-unbundle-zlib.patch new file mode 100644 index 000000000000..5ff1361cff74 --- /dev/null +++ b/media-libs/opencollada/files/opencollada-1.6.68-unbundle-zlib.patch @@ -0,0 +1,39 @@ +https://bugs.gentoo.org/880407 + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -288,7 +288,6 @@ add_subdirectory(common/libftoa) + add_subdirectory(${EXTERNAL_LIBRARIES}/UTF) + add_subdirectory(common/libBuffer) + add_subdirectory(${EXTERNAL_LIBRARIES}/MathMLSolver) +-add_subdirectory(${EXTERNAL_LIBRARIES}/zlib) + + # building OpenCOLLADA libs + add_subdirectory(COLLADABaseUtils) +--- a/DAEValidator/CMakeLists.txt ++++ b/DAEValidator/CMakeLists.txt +@@ -80,11 +80,8 @@ if (NOT LIBXML2_FOUND) + else () + list(APPEND Libraries ${LIBXML2_LIBRARIES}) + endif () +-if (USE_STATIC) +- list(APPEND Libraries zlib_static) +- else () +- list(APPEND Libraries zlib_shared) +- endif () ++find_package(ZLIB REQUIRED) ++list(APPEND Libraries ZLIB::ZLIB) + if (WIN32) + list(APPEND Libraries ws2_32.lib) + endif () +@@ -208,10 +205,3 @@ else () + include_directories(${LIBXML2_INCLUDE_DIR}) + endif () + +-# zlib +-if (USE_STATIC) +- add_dependencies(DAEValidatorExecutable zlib_static) +-else () +- add_dependencies(DAEValidatorExecutable zlib_shared) +-endif () +-include_directories("../Externals/zlib/include") diff --git a/media-libs/opencollada/opencollada-1.6.68-r2.ebuild b/media-libs/opencollada/opencollada-1.6.68-r2.ebuild new file mode 100644 index 000000000000..fc6fdc3de6e2 --- /dev/null +++ b/media-libs/opencollada/opencollada-1.6.68-r2.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake edos2unix flag-o-matic + +DESCRIPTION="Stream based read/write library for COLLADA files" +HOMEPAGE="http://www.opencollada.org/" +SRC_URI="https://github.com/KhronosGroup/OpenCOLLADA/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/OpenCOLLADA-${PV}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +IUSE="static-libs" + +RDEPEND=" + dev-libs/libpcre:= + dev-libs/libxml2:= + dev-libs/zziplib + media-libs/lib3ds + sys-libs/zlib +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-admin/chrpath + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/${P}-fix-null-conversion.patch" + "${FILESDIR}/${P}-cmake-fixes.patch" + "${FILESDIR}/${PN}-1.6.63-pcre-fix.patch" + "${FILESDIR}/${PN}-1.6.68-gcc13.patch" + "${FILESDIR}/${PN}-1.6.68-werror.patch" + "${FILESDIR}/${PN}-1.6.68-cmake4.patch" + "${FILESDIR}/${PN}-1.6.68-unbundle-zlib.patch" +) + +src_prepare() { + edos2unix CMakeLists.txt + + cmake_src_prepare + + # Remove bundled depends that have portage equivalents + rm -rv Externals/{expat,lib3ds,LibXML,pcre,zlib,zziplib} || die + + # Remove unused build systems + rm -v Makefile scripts/{unixbuild.sh,vcproj2cmake.rb} || die + find "${S}" -name SConscript -delete || die +} + +src_configure() { + # bug 619670 + append-cxxflags -std=c++14 + + local mycmakeargs=( + -DUSE_SHARED=ON + -DUSE_STATIC=$(usex static-libs) + -DUSE_LIBXML=ON + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + newenvd - 99opencollada <<- _EOF_ + LDPATH=/usr/$(get_libdir)/opencollada + _EOF_ + + # Remove insecure DAEValidator RUNPATH and install DAEValidator library + dolib.so "${BUILD_DIR}/lib/libDAEValidatorLibrary.so" + chrpath -d "${BUILD_DIR}/bin/DAEValidator" || die + + dobin "${BUILD_DIR}/bin/DAEValidator" + dobin "${BUILD_DIR}/bin/OpenCOLLADAValidator" + # Need to be in same directory as above binaries + docinto "/usr/bin" + dodoc "${BUILD_DIR}/bin/COLLADAPhysX3Schema.xsd" + dodoc "${BUILD_DIR}/bin/collada_schema_1_4_1.xsd" + dodoc "${BUILD_DIR}/bin/collada_schema_1_5.xsd" +}
