cad/opencascade: upgrade to V8_0_0

- Release notes at https://github.com/Open-Cascade-SAS/OCCT/releases/tag/V8_0_0

- Switch to ffmpeg6.

PR:		295909
This commit is contained in:
Thierry Thomas
2026-05-08 15:45:25 +02:00
parent 9a33947559
commit 3f5df8a38d
15 changed files with 539 additions and 1096 deletions
+22 -40
View File
@@ -1,7 +1,6 @@
PORTNAME= opencascade
DISTVERSIONPREFIX= V
DISTVERSION= 7_9_3
PORTREVISION= 4
DISTVERSION= 8_0_0
CATEGORIES= cad science
DIST_SUBDIR= ${PORTNAME}-${DISTVERSION}
@@ -15,7 +14,6 @@ LICENSE_FILE= ${WRKSRC}/OCCT_LGPL_EXCEPTION.txt
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
BUILD_DEPENDS= rapidjson>0:devel/rapidjson \
${LOCALBASE}/lib/qt5/bin/qmake:devel/qt5-qmake \
${LOCALBASE}/lib/qt5/bin/moc:devel/qt5-buildtools
LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
@@ -28,11 +26,13 @@ RUN_DEPENDS= bash:shells/bash
# Check ${WRKSRC}/dox/build/build_occt/building_occt.md
USES= cmake compiler:c++17-lang eigen:3 gettext-runtime \
gl gnome localbase python qt:5 shebangfix tk xorg
gl gnome localbase python qmake:no_configure,no_env qt:5\
shebangfix tk xorg
USE_XORG= ice sm x11 xau xcb xdmcp xext xft xi xmu xrender xscrnsaver xt
USE_GL= egl gl glesv2 glu
USE_GNOME= libxml2
USE_QT= core declarative gui network quick3d linguisttools widgets xml
USE_QT= buildtools:build core declarative gui network quick3d \
linguisttools widgets xml
USE_GITHUB= yes
GH_ACCOUNT= Open-Cascade-SAS
@@ -41,7 +41,7 @@ GH_PROJECT= OCCT
SHEBANG_FILES= adm/templates/*.sh \
adm/templates/*.sh.in \
adm/templates/*.sh.main \
adm/*.tcl
adm/scripts/migration_800/*.py
ENVSH= adm/templates/env.sh
OPTIONS_DEFINE= DOCS DOXYGEN FFMPEG VIS
@@ -51,32 +51,23 @@ OPTIONS_SUB= yes
REINPLACE_ARGS= -i ""
LDFLAGS+= -Wl,--allow-shlib-undefined -lexecinfo
CMAKE_ARGS+= -DINSTALL_DIR=${OCCROOT} \
-DINSTALL_DIR_INCLUDE=${PREFIX}/include/OpenCASCADE \
-DINSTALL_DIR_LIB=${PREFIX}/lib \
-DINSTALL_DIR_CMAKE=${PREFIX}/lib/cmake \
-DINSTALL_DIR_DATA=${OCCROOT}/data \
-DINSTALL_DIR_RESOURCE=${OCCROOT}/resources \
-DINSTALL_DIR_SAMPLES=${OCCROOT}/samples \
-DINSTALL_DIR_TESTS=${OCCROOT}/tests \
-DINSTALL_TEST_CASES:BOOL=ON \
-DBUILD_Inspector:BOOL=ON \
-DUSE_TCL:BOOL=ON \
-DCAN_USE_TK:BOOL=ON -DUSE_TK:BOOL=ON \
-DCAN_USE_XLIB:BOOL=ON -DUSE_XLIB:BOOL=ON \
-DCAN_USE_FREETYPE:BOOL=ON -DUSE_FREETYPE:BOOL=ON \
-DCAN_USE_VTK:BOOL=ON -DUSE_VTK:BOOL=ON \
-DCAN_USE_EIGEN:BOOL=ON -DUSE_EIGEN:BOOL=ON \
-DCAN_USE_RAPIDJSON:BOOL=ON -DUSE_RAPIDJSON:BOOL=ON \
-DCAN_USE_DRACO:BOOL=ON -DUSE_DRACO:BOOL=ON \
-DCAN_USE_TBB:BOOL=ON -DUSE_TBB:BOOL=ON \
-DUSE_QT_FROM_3RDPARTY_DIR:BOOL=ON \
CMAKE_ARGS= -DINSTALL_DIR:PATH=${OCCROOT} \
-DINSTALL_DIR_INCLUDE:PATH=${PREFIX}/include/OpenCASCADE \
-DINSTALL_DIR_LIB:PATH=${PREFIX}/lib \
-DINSTALL_DIR_CMAKE:PATH=${PREFIX}/lib/cmake \
-DINSTALL_DIR_DATA:PATH=${OCCROOT}/data \
-DINSTALL_DIR_RESOURCE:PATH=${OCCROOT}/resources \
-DINSTALL_DIR_TESTS:PATH=${OCCROOT}/tests \
-D3RDPARTY_QT_DIR:PATH=${LOCALBASE}/lib/cmake/Qt5 \
-D3RDPARTY_DRACO_DIR:PATH=${LOCALBASE} \
-D3RDPARTY_DRACO_LIBRARY=libdraco.so \
-D3RDPARTY_DRACO_LIBRARY_DIR:PATH=${LOCALBASE}/lib \
-D3RDPARTY_DRACO_INCLUDE_DIR:PATH=${LOCALBASE}/include/draco \
-D3RDPARTY_VTK_INCLUDE_DIR:PATH=${LOCALBASE}/include/vtk-${VTK_VER}
CMAKE_ON= CAN_USE_DRACO CAN_USE_EIGEN CAN_USE_FREETYPE CAN_USE_RAPIDJSON \
CAN_USE_TBB CAN_USE_TK CAN_USE_VTK CAN_USE_XLIB INSTALL_TEST_CASES\
USE_DRACO USE_FREETYPE USE_RAPIDJSON USE_TBB USE_TCL USE_TK \
USE_VTK USE_XLIB
CONFIGURE_ENV+= DESTDIR=${STAGEDIR}
USE_LDCONFIG= yes
@@ -93,10 +84,10 @@ PLIST_SUB= OCCROOT="${LOCCROOT}" BITS=${BITS} CC=${CHOSEN_COMPILER_TYPE} \
VE=${PORTVERSION:R} VER=${PORTVERSION}
FFMPEG_CMAKE_ON= -DCAN_USE_FFMPEG:BOOL=ON -DUSE_FFMPEG:BOOL=ON \
-D3RDPARTY_FFMPEG_INCLUDE_DIR=${LOCALBASE}/ffmpeg4/include \
-D3RDPARTY_FFMPEG_DIR=${LOCALBASE}/ffmpeg4
-D3RDPARTY_FFMPEG_INCLUDE_DIR=${LOCALBASE}/ffmpeg6/include \
-D3RDPARTY_FFMPEG_DIR=${LOCALBASE}/ffmpeg6
FFMPEG_CMAKE_OFF= -DUSE_FFMPEG:BOOL=OFF
FFMPEG_LIB_DEPENDS= libavcodec.so.58:multimedia/ffmpeg4 \
FFMPEG_LIB_DEPENDS= libavcodec.so.60:multimedia/ffmpeg6 \
libtheoraenc.so:multimedia/libtheora \
libunistring.so:devel/libunistring \
libvdpau.so:multimedia/libvdpau \
@@ -150,19 +141,10 @@ BITS= 32
BITS= 64
.endif
pre-everything::
@${ECHO_MSG}
@${ECHO_MSG} "Warning: to build OpenCascade, you should have at least"
@${ECHO_MSG} "2.6 Gb of free disk space in build area!"
@${ECHO_MSG}
pre-configure:
${REINPLACE_CMD} 's|<malloc.h>|<stdlib.h>|' \
${WRKSRC}/src/BRepMesh/delabella.cpp \
${WRKSRC}/src/OSD/OSD_MemInfo.cxx
${REINPLACE_CMD} -e 's|tclsh|${TCLSH}|' ${WRKSRC}/adm/gendoc
${REINPLACE_CMD} -e 's|/usr/bin/|${LOCALBASE}/bin/|' \
${WRKSRC}/adm/vcpkg/ports/ffmpeg/portfile.cmake
${WRKSRC}/src/ModelingAlgorithms/TKMesh/BRepMesh/delabella.cpp \
${WRKSRC}/src/FoundationClasses/TKernel/OSD/OSD_MemInfo.cxx
${GREP} -rl x86_64 ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \
-e 's|x86_64|amd64|'
.for es in ${ENVSH}
+3 -3
View File
@@ -1,3 +1,3 @@
TIMESTAMP = 1765108476
SHA256 (opencascade-7_9_3/Open-Cascade-SAS-OCCT-V7_9_3_GH0.tar.gz) = 5ecf094ec6b12d5413dfb851d8c3590c354058aee556e32e408bdfbf8c357d57
SIZE (opencascade-7_9_3/Open-Cascade-SAS-OCCT-V7_9_3_GH0.tar.gz) = 48586815
TIMESTAMP = 1778172895
SHA256 (opencascade-8_0_0/Open-Cascade-SAS-OCCT-V8_0_0_GH0.tar.gz) = 118398ff8a010c2cb693450d7e5e2690533c88208fc25bd2730451ec4fab0a0f
SIZE (opencascade-8_0_0/Open-Cascade-SAS-OCCT-V8_0_0_GH0.tar.gz) = 44992697
+25 -4
View File
@@ -1,6 +1,6 @@
--- CMakeLists.txt.orig 2025-05-20 11:17:10 UTC
--- CMakeLists.txt.orig 2026-05-06 22:31:54 UTC
+++ CMakeLists.txt
@@ -908,6 +908,8 @@ OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_defs_flags")
@@ -977,6 +977,8 @@ OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_defs_flags")
# include original list of definitions and flags
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_defs_flags")
@@ -9,7 +9,7 @@
foreach (OCCT_3RDPARTY_LIST ${OCCT_3RDPARTY_CMAKE_LIST})
OCCT_INCLUDE_CMAKE_FILE (${OCCT_3RDPARTY_LIST})
endforeach()
@@ -1101,7 +1103,7 @@ endif()
@@ -1143,7 +1145,7 @@ endif()
endif()
# validating custom.bat/sh for changes
@@ -18,7 +18,28 @@
file (READ "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}" CUSTOM_CONTENT)
string(FIND "${CUSTOM_CONTENT}" "${ADDITIONAL_CUSTOM_CONTENT}" pos)
if (pos EQUAL -1)
@@ -1340,7 +1342,7 @@ install (CODE "string (TOLOWER \"\${CMAKE_INSTALL_CONF
@@ -1219,13 +1221,13 @@ else()
set \"CSF_OCCTTestsPath=%CASROOT%/${INSTALL_DIR_TESTS}\"
set \"CSF_OCCTDocPath=%CASROOT%/${INSTALL_DIR_DOC}\"")
else()
- set (OCCT_CUSTOM_BIN_LIB_PATHS "export CSF_OCCTBinPath=\"\${CASROOT}/${INSTALL_DIR_BIN}\"
- export CSF_OCCTLibPath=\"\${CASROOT}/${INSTALL_DIR_LIB}\"")
- set (OCCT_CUSTOM_ADDITIONAL_PATHS "export CSF_OCCTIncludePath=\"\${CASROOT}/${INSTALL_DIR_INCLUDE}\"
- export CSF_OCCTResourcePath=\"\${CASROOT}/${INSTALL_DIR_RESOURCE}\"
- export CSF_OCCTDataPath=\"\${CASROOT}/${INSTALL_DIR_DATA}\"
- export CSF_OCCTTestsPath=\"\${CASROOT}/${INSTALL_DIR_TESTS}\"
- export CSF_OCCTDocPath=\"\${CASROOT}/${INSTALL_DIR_DOC}\"")
+ set (OCCT_CUSTOM_BIN_LIB_PATHS "export CSF_OCCTBinPath=\"\${INSTALL_DIR_BIN}\"
+ export CSF_OCCTLibPath=\"\${INSTALL_DIR_LIB}\"")
+ set (OCCT_CUSTOM_ADDITIONAL_PATHS "export CSF_OCCTIncludePath=\"\${INSTALL_DIR_INCLUDE}\"
+ export CSF_OCCTResourcePath=\"\${INSTALL_DIR_RESOURCE}\"
+ export CSF_OCCTDataPath=\"\${INSTALL_DIR_DATA}\"
+ export CSF_OCCTTestsPath=\"\${INSTALL_DIR_TESTS}\"
+ export CSF_OCCTDocPath=\"\${INSTALL_DIR_DOC}\"")
endif()
endif()
@@ -1427,7 +1429,7 @@ install (CODE "string (TOLOWER \"\${CMAKE_INSTALL_CONF
endforeach()
# install OpenCASCADE config file with compile definitions and C/C++ flags ONLY for current configuration
install (CODE "string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWER)")
@@ -1,10 +1,10 @@
--- adm/cmake/occt_csf.cmake.orig 2025-05-20 11:17:10 UTC
--- adm/cmake/occt_csf.cmake.orig 2026-05-06 22:31:54 UTC
+++ adm/cmake/occt_csf.cmake
@@ -161,7 +161,6 @@ else()
@@ -132,7 +132,6 @@ else()
set (CSF_OpenGlLibs "GL EGL")
endif()
set (CSF_OpenGlesLibs "EGL GLESv2")
- set (CSF_dl "dl")
if (USE_FREETYPE)
set (CSF_fontconfig "fontconfig")
set (CSF_fontconfig "fontconfig expat")
endif()
@@ -1,6 +1,6 @@
--- adm/cmake/occt_macros.cmake.orig 2025-05-20 11:17:10 UTC
--- adm/cmake/occt_macros.cmake.orig 2026-05-06 22:31:54 UTC
+++ adm/cmake/occt_macros.cmake
@@ -64,7 +64,7 @@ macro (OCCT_MAKE_OS_WITH_BITNESS)
@@ -63,7 +63,7 @@ macro (OCCT_MAKE_OS_WITH_BITNESS)
elseif(APPLE)
set (OS_WITH_BIT "mac${COMPILER_BITNESS}")
else()
@@ -9,7 +9,7 @@
endif()
endmacro()
@@ -435,7 +435,7 @@ function (COLLECT_AND_INSTALL_OCCT_HEADER_FILES THE_RO
@@ -409,7 +409,7 @@ function (COLLECT_AND_INSTALL_OCCT_HEADER_FILES THE_RO
set (OCCT_HEADER_FILES_INSTALLATION ${OCCT_HEADER_FILES_COMPLETE})
list (FILTER OCCT_HEADER_FILES_INSTALLATION INCLUDE REGEX ".*[.](h|hxx|lxx)$")
@@ -18,7 +18,7 @@
endfunction()
# Macro to configure and install Standard_Version.hxx file
@@ -446,7 +446,7 @@ macro (CONFIGURE_AND_INSTALL_VERSION_HEADER)
@@ -420,7 +420,7 @@ macro (CONFIGURE_AND_INSTALL_VERSION_HEADER)
set(BUILD_OCCT_VERSION_EXT "${OCC_VERSION_STRING_EXT}" CACHE STRING "OCCT Version string. Used only for caching, can't impact on build. For modification of version, please check adm/cmake/version.cmake" FORCE)
mark_as_advanced(BUILD_OCCT_VERSION_EXT)
string(TIMESTAMP OCCT_VERSION_DATE "%Y-%m-%d" UTC)
@@ -1,6 +1,6 @@
--- adm/templates/OpenCASCADEConfig.cmake.in.orig 2021-06-26 15:04:30 UTC
--- adm/templates/OpenCASCADEConfig.cmake.in.orig 2026-05-06 22:31:54 UTC
+++ adm/templates/OpenCASCADEConfig.cmake.in
@@ -36,11 +36,11 @@ if (OpenCASCADE_INSTALL_PREFIX MATCHES "/libs/${CMAKE_
@@ -40,11 +40,11 @@ endif()
endif()
# Set OpenCASCADE paths to headers, binaries, libraries, resources, tests, samples, data
@@ -1,25 +0,0 @@
--- adm/templates/custom.install.sh.in.orig 2023-12-06 17:35:33 UTC
+++ adm/templates/custom.install.sh.in
@@ -21,14 +21,14 @@ if [ "$1" == "@BIN_LETTER@" ]; then
export TCL_VERSION_WITH_DOT="@3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT@"
export TK_VERSION_WITH_DOT="@3RDPARTY_TK_LIBRARY_VERSION_WITH_DOT@"
- export CSF_OCCTBinPath="${CASROOT}/@INSTALL_DIR_BIN@"
- export CSF_OCCTLibPath="${CASROOT}/@INSTALL_DIR_LIB@"
- export CSF_OCCTIncludePath="${CASROOT}/@INSTALL_DIR_INCLUDE@"
- export CSF_OCCTResourcePath="${CASROOT}/@INSTALL_DIR_RESOURCE@"
- export CSF_OCCTDataPath="${CASROOT}/@INSTALL_DIR_DATA@"
- export CSF_OCCTSamplesPath="${CASROOT}/@INSTALL_DIR_SAMPLES@"
- export CSF_OCCTTestsPath="${CASROOT}/@INSTALL_DIR_TESTS@"
- export CSF_OCCTDocPath="${CASROOT}/@INSTALL_DIR_DOC@"
+ export CSF_OCCTBinPath="@INSTALL_DIR_BIN@"
+ export CSF_OCCTLibPath="@INSTALL_DIR_LIB@"
+ export CSF_OCCTIncludePath="@INSTALL_DIR_INCLUDE@"
+ export CSF_OCCTResourcePath="@INSTALL_DIR_RESOURCE@"
+ export CSF_OCCTDataPath="@INSTALL_DIR_DATA@"
+ export CSF_OCCTSamplesPath="@INSTALL_DIR_SAMPLES@"
+ export CSF_OCCTTestsPath="@INSTALL_DIR_TESTS@"
+ export CSF_OCCTDocPath="@INSTALL_DIR_DOC@"
fi
fi
@@ -0,0 +1,16 @@
--- adm/templates/env.install.sh.in.orig 2026-05-09 19:58:53 UTC
+++ adm/templates/env.install.sh.in
@@ -1,4 +1,5 @@
#!/usr/local/bin/bash
+#set -x
aCurrentPath="$PWD"
aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD";
cd ${aCurrentPath}
@@ -17,6 +18,7 @@ fi
fi
cd ${aCurrentPath}
fi
+export INSTALL_DIR_RESOURCE=${CASROOT}/resources
# ----- Define path to 3rdparty products -----
if [ "${THIRDPARTY_DIR}" == "" ]; then
@@ -1,5 +1,5 @@
--- src/DrawResources/CheckCommands.tcl.orig 2021-10-30 11:13:45 UTC
+++ src/DrawResources/CheckCommands.tcl
--- resources/DrawResources/CheckCommands.tcl.orig 2026-05-06 22:31:54 UTC
+++ resources/DrawResources/CheckCommands.tcl
@@ -1095,6 +1095,7 @@ help checkplatform {
-windows : return 1 if current platform is 'Windows', otherwise return 0
-linux : return 1 if current platform is 'Linux', otherwise return 0
@@ -20,7 +20,7 @@
{"-osx" check_for_macosx 0}}
_check_args ${args} ${options} "checkplatform"
@@ -1114,17 +1117,19 @@ proc checkplatform {args} {
@@ -1114,12 +1117,14 @@ proc checkplatform {args} {
set current_platform Windows
} elseif { $::tcl_platform(os) == "Linux" } {
set current_platform Linux
@@ -36,13 +36,7 @@
return ${current_platform}
}
# check usage of proc checkplatform
- if { [expr [string is true ${check_for_windows}] + [string is true ${check_for_linux}] + [string is true ${check_for_macosx}] ] > 1} {
+ if { [expr [string is true ${check_for_windows}] + [string is true ${check_for_linux}] + [string is true ${check_for_macosx}] + [string is true ${check_for_freebsd}] ] > 1} {
error "Error: wrong usage of command checkplatform, only single option can be used at once"
}
@@ -1133,8 +1138,13 @@ proc checkplatform {args} {
@@ -1133,8 +1138,12 @@ proc checkplatform {args} {
return 1
}
@@ -51,7 +45,6 @@
if { ${check_for_linux} && ${current_platform} == "Linux" } {
+ return 1
+ }
+
+ # checking for FreeBSD platforms
+ if { ${check_for_freebsd} && ${current_platform} == "FreeBSD" } {
return 1
@@ -1,5 +1,5 @@
--- src/Standard/Standard_CLocaleSentry.hxx.orig 2025-02-17 22:00:23 UTC
+++ src/Standard/Standard_CLocaleSentry.hxx
--- src/FoundationClasses/TKernel/Standard/Standard_CLocaleSentry.hxx.orig 2026-05-06 22:31:54 UTC
+++ src/FoundationClasses/TKernel/Standard/Standard_CLocaleSentry.hxx
@@ -32,7 +32,7 @@
//! 200809L)) due to missing such declarations in standard. On macOS new functions are declared
//! within "xlocale.h" header (the same is for glibc, but this header has been removed since
@@ -1,5 +1,5 @@
--- src/Standard/Standard_CString.cxx.orig 2025-02-17 22:00:23 UTC
+++ src/Standard/Standard_CString.cxx
--- src/FoundationClasses/TKernel/Standard/Standard_CString.cxx.orig 2026-05-06 22:31:54 UTC
+++ src/FoundationClasses/TKernel/Standard/Standard_CString.cxx
@@ -52,7 +52,7 @@
// strtod, strtol, strtoll functions. For other system with locale-depended
// implementations problems may appear if "C" locale is not set explicitly.
@@ -1,15 +0,0 @@
--- src/IVtkDraw/IVtkDraw.cxx.orig 2020-11-03 14:50:01 UTC
+++ src/IVtkDraw/IVtkDraw.cxx
@@ -36,6 +36,12 @@
#include <V3d_TypeOfOrientation.hxx>
#include <Aspect_DisplayConnection.hxx>
+// Preventing naming collisions between
+// GLX and VTK versions 9.0 and above
+#ifdef AllValues
+#undef AllValues
+#endif
+
#include <IVtk_Types.hxx>
#include <IVtkVTK_ShapeData.hxx>
#include <IVtkOCC_Shape.hxx>
@@ -1,17 +0,0 @@
- workaround for https://gitlab.kitware.com/vtk/vtk/-/issues/18683
--- src/IVtkDraw/IVtkDraw_Interactor.cxx.orig 2025-02-17 22:00:23 UTC
+++ src/IVtkDraw/IVtkDraw_Interactor.cxx
@@ -173,6 +173,12 @@ void IVtkDraw_Interactor::Initialize()
aSize = aRenWin->GetSize();
aRenWin->Start();
#endif
+#ifdef Status
+#undef Status
+#endif
+#ifdef Success
+#undef Success
+#endif
this->Enable();
this->Size[0] = aSize[0];
@@ -1,19 +0,0 @@
--- src/STEPConstruct/STEPConstruct_AP203Context.cxx.orig 2025-02-17 22:00:23 UTC
+++ src/STEPConstruct/STEPConstruct_AP203Context.cxx
@@ -110,7 +110,15 @@ Handle(StepBasic_DateAndTime) STEPConstruct_AP203Conte
long shift = 0;
_get_timezone(&shift);
#else
- Standard_Integer shift = Standard_Integer(timezone);
+ #if defined(__FreeBSD__)
+ struct tm *lt;
+ time_t t = 0;
+ time(&t);
+ lt = localtime(&t);
+ Standard_Integer shift = Standard_Integer(lt->tm_gmtoff);
+ #else
+ Standard_Integer shift = Standard_Integer(timezone);
+ #endif
#endif
Standard_Integer shifth = abs(shift) / 3600;
Standard_Integer shiftm = (abs(shift) - shifth * 3600) / 60;
+456 -949
View File
File diff suppressed because it is too large Load Diff