cad/opencascade: update to 7.9.3

Diffs by James Jerkins and me, tested by afresh1@ and ok sthen@.
This commit is contained in:
jtt
2026-01-23 21:28:26 +00:00
parent 33d42a8550
commit f10fd70e5d
19 changed files with 186 additions and 939 deletions
+27 -16
View File
@@ -1,9 +1,12 @@
COMMENT = platform for 3D CAD, CAM, and CAE
DPB_PROPERTIES = parallel
V = 7.8.1
DISTNAME = opencascade-${V}
REVISION = 1
V = 7.9.3
PKGNAME = opencascade-${V}
GH_ACCOUNT = Open-Cascade-SAS
GH_PROJECT = OCCT
GH_TAGNAME = V${V:S/./_/g}
.for LIB in TKBO TKBRep TKBin TKBinL TKBinTObj TKBinXCAF TKBool TKCAF TKCDF \
TKDCAF TKDE TKDECascade TKDEGLTF TKDEIGES TKDEOBJ TKDEPLY TKDESTEP \
@@ -17,7 +20,6 @@ REVISION = 1
SHARED_LIBS += ${LIB} 3.0
.endfor
CATEGORIES = cad
HOMEPAGE = https://www.opencascade.com/
MAINTAINER = Johannes Thyssen Tishman <jtt@openbsd.org>
@@ -28,12 +30,6 @@ PERMIT_PACKAGE = Yes
WANTLIB += ${MODTK_WANTLIB} ${COMPILER_LIBCXX} GL X11 c execinfo fontconfig
WANTLIB += freetype m
# See https://dev.opencascade.org/content/packaging-again-debian
SITES = https://git.dev.opencascade.org/gitweb/
DISTQUERY = ?p=occt.git;a=snapshot;h=refs/tags/V${V:S/./_/g};sf=tgz
DISTFILES = ${DISTNAME}${EXTRACT_SUFX}{${DISTQUERY}}
WRKDIST = ${WRKDIR}/occt-V${V:S/./_/g}
COMPILER = base-clang ports-gcc
MODULES = devel/cmake \
x11/tk
@@ -44,8 +40,10 @@ LIB_DEPENDS = ${MODTK_LIB_DEPENDS}
RUN_DEPENDS = ${MODTK_RUN_DEPENDS} \
shells/bash
CONFIGURE_ARGS += -DINSTALL_DIR_RESOURCE:STRING="share/opencascade/src" \
-DUSE_TK=ON \
TEST_DEPENDS = ${FULLPKGNAME}:${BUILD_PKGPATH} \
fonts/noto/cjk
CONFIGURE_ARGS += -DUSE_TK=ON \
-DUSE_FREETYPE=ON \
-DUSE_OPENGL=ON \
-DUSE_TBB=OFF \
@@ -57,6 +55,7 @@ CONFIGURE_ARGS += -DINSTALL_DIR_RESOURCE:STRING="share/opencascade/src" \
-DUSE_RAPIDJSON=OFF \
-DUSE_DRACO=OFF \
-DBUILD_SAMPLES_QT=OFF \
-DINSTALL_DIR_RESOURCE="share/opencascade/src" \
-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON
CXXFLAGS += -I${X11BASE}/include
@@ -76,16 +75,20 @@ COMP=gcc
SUBST_VARS += BITS COMP V
# Some tests require an active X11 display to work. When using
# PORTS_PRIVSEP=Yes, the following can be used:
# xhost +si:localuser:_pbuild; make test; xhost -si:localuser:_pbuild
TEST_IS_INTERACTIVE = X11
TEST_DIR = ${WRKDIR}/tests_openbsd
PORTHOME = ${WRKDIR}
# fix bash and make installed script names less generic
pre-configure:
sed -i "s,env\.sh,occt_env\.sh,g" \
${WRKSRC}/adm/templates/*.sh*
sed -i "s,custom\.sh,occt_custom\.sh,g" \
${WRKSRC}/adm/templates/*.sh*
sed -i "s,env\.sh,occt_env\.sh,g" \
${WRKSRC}/gen*
sed -i "s,custom\.sh,occt_custom\.sh,g" \
${WRKSRC}/gen*
sed -i "s,env\.,occt_env\.,g" \
${WRKSRC}/CMakeLists.txt
sed -i "s,custom\.,occt_custom\.,g" \
@@ -100,4 +103,12 @@ pre-configure:
mv $$i ${WRKSRC}/adm/templates/occt_$${i##*/}; \
done
do-test:
rm -rf ${TEST_DIR}
mkdir ${TEST_DIR}
${LOCALBASE}/bin/bash -c " \
source ${LOCALBASE}/bin/occt_env.sh && \
CSF_TestScriptsPath=${WRKSRC}/tests \
${LOCALBASE}/bin/DRAWEXE -b -c 'pload ALL; testgrid -outdir ${TEST_DIR}; exit'"
.include <bsd.port.mk>
+2 -2
View File
@@ -1,2 +1,2 @@
SHA256 (opencascade-7.8.1.tar.gz) = M/K9tn4/auRp8/qBbPujRSmiOpy3Nr+YoysgPYUxxSM=
SIZE (opencascade-7.8.1.tar.gz) = 48427425
SHA256 (OCCT-7_9_3.tar.gz) = Xs8JTsaxLVQT37hR2MNZDDVAWK7lVuMuQIvfv4w1fVc=
SIZE (OCCT-7_9_3.tar.gz) = 48586815
+7 -12
View File
@@ -1,19 +1,14 @@
Index: CMakeLists.txt
--- CMakeLists.txt.orig
+++ CMakeLists.txt
@@ -1031,12 +1031,12 @@ else()
@@ -1101,8 +1101,8 @@ else()
endif()
# change custom.bat/sh
-if (EXISTS "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}")
# validating custom.bat/sh for changes
-if (EXISTS "${CMAKE_BINARY_DIR}/custom.${SCRIPT_EXT}" AND EXISTS "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}")
- file (READ "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}" CUSTOM_CONTENT)
+if (EXISTS "${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}")
+if (EXISTS "${CMAKE_BINARY_DIR}/custom.${SCRIPT_EXT}" AND EXISTS "${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}")
+ file (READ "${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}" CUSTOM_CONTENT)
set (CUSTOM_CONTENT "${CUSTOM_CONTENT} ${ADDITIONAL_CUSTOM_CONTENT}")
- file (WRITE "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}" "${CUSTOM_CONTENT}")
+ file (WRITE "${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}" "${CUSTOM_CONTENT}")
else()
OCCT_CONFIGURE_AND_INSTALL ("adm/templates/custom.${SCRIPT_EXT}.main" "custom.${SCRIPT_EXT}" "custom.${SCRIPT_EXT}" "${INSTALL_DIR_SCRIPT}")
endif()
string(FIND "${CUSTOM_CONTENT}" "${ADDITIONAL_CUSTOM_CONTENT}" pos)
if (pos EQUAL -1)
set (CUSTOM_CONTENT "${CUSTOM_CONTENT} ${ADDITIONAL_CUSTOM_CONTENT}")
@@ -1,7 +1,7 @@
Index: adm/cmake/occt_csf.cmake
--- adm/cmake/occt_csf.cmake.orig
+++ adm/cmake/occt_csf.cmake
@@ -134,7 +134,7 @@ else()
@@ -153,7 +153,7 @@ else()
set (CSF_OpenGlesLibs "EGL GLESv2")
set (CSF_androidlog "log")
elseif (UNIX)
@@ -10,7 +10,7 @@ Index: adm/cmake/occt_csf.cmake
if (USE_XLIB)
set (CSF_OpenGlLibs "GL")
set (CSF_XwLibs "X11")
@@ -142,7 +142,6 @@ else()
@@ -161,7 +161,6 @@ else()
set (CSF_OpenGlLibs "GL EGL")
endif()
set (CSF_OpenGlesLibs "EGL GLESv2")
@@ -1,12 +0,0 @@
Index: adm/cmake/occt_macros.cmake
--- adm/cmake/occt_macros.cmake.orig
+++ adm/cmake/occt_macros.cmake
@@ -592,7 +592,7 @@ macro (OCCT_UPDATE_TARGET_FILE)
install (CODE
"string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWERCASE)
- file (GLOB ALL_OCCT_TARGET_FILES \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADE*Targets-\${CMAKE_INSTALL_CONFIG_NAME_LOWERCASE}.cmake\")
+ file (GLOB ALL_OCCT_TARGET_FILES \"\$ENV{DESTDIR}${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADE*Targets-\${CMAKE_INSTALL_CONFIG_NAME_LOWERCASE}.cmake\")
foreach(TARGET_FILENAME \${ALL_OCCT_TARGET_FILES})
file (STRINGS \"\${TARGET_FILENAME}\" TARGET_FILE_CONTENT)
file (REMOVE \"\${TARGET_FILENAME}\")
@@ -1,13 +1,13 @@
Index: adm/cmake/occt_toolkit.cmake
--- adm/cmake/occt_toolkit.cmake.orig
+++ adm/cmake/occt_toolkit.cmake
@@ -450,6 +450,11 @@ if (APPLE)
@@ -251,6 +251,11 @@ if (APPLE)
endif()
endif()
+if (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
+ find_package (Backtrace REQUIRED)
+ target_link_libraries (${PROJECT_NAME} ${Backtrace_LIBRARIES})
+ target_link_libraries (${PROJECT_NAME} PUBLIC ${Backtrace_LIBRARIES})
+endif()
+
# Update list of used VTK libraries if OpenGL2 Rendering BackEnd is used.
@@ -1,12 +0,0 @@
Index: adm/genproj.tcl
--- adm/genproj.tcl.orig
+++ adm/genproj.tcl
@@ -1516,7 +1516,7 @@ proc osutils:csfList { theOS theCsfLibsMap theCsfFrmsM
if { "$theOS" == "qnx" } {
# CSF_ThreadLibs - pthread API is part of libc on QNX
} else {
- set aLibsMap(CSF_ThreadLibs) "pthread rt"
+ set aLibsMap(CSF_ThreadLibs) "pthread"
if { "$::HAVE_TK" == "true" } {
set aLibsMap(CSF_TclTkLibs) "tk8.6"
}
@@ -1,12 +0,0 @@
Index: adm/qmake/OccToolkit.pri
--- adm/qmake/OccToolkit.pri.orig
+++ adm/qmake/OccToolkit.pri
@@ -59,7 +59,7 @@ win32 {
CSF_TclTkLibs = -framework Tk
} else {
CSF_dl = -ldl
- CSF_ThreadLibs = -lpthread -lrt
+ CSF_ThreadLibs = -lpthread
CSF_OpenGlesLibs = -lEGL -lGLESv2
CSF_TclTkLibs = -ltk8.6
HAVE_XLIB {
@@ -1,12 +1,12 @@
Index: adm/templates/env.install.sh.in
--- adm/templates/env.install.sh.in.orig
+++ adm/templates/env.install.sh.in
@@ -4,7 +4,7 @@ aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}
@@ -34,7 +34,7 @@ shopt -u nocasematch
# ----- For compatibility with external application using CASROOT -----
if [ "${CASROOT}" == "" ]; then
- export CASROOT="@INSTALL_DIR@"
+ export CASROOT="@INSTALL_DIR@/share/opencascade"
fi
# ----- Define path to 3rdparty products -----
# ----- Set path to 3rd party and OCCT libraries -----
anArch=`uname -m`
-if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ] && [ "$anArch" != "aarch64" ] && [ "$anArch" != "arm64" ]; then
+if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ] && [ "$anArch" != "aarch64" ] && [ "$anArch" != "arm64" ] && [ "$anArch" != "amd64" ]; then
export ARCH="32";
else
export ARCH="64";
@@ -3,9 +3,9 @@ Index: src/BRepMesh/delabella.cpp
+++ src/BRepMesh/delabella.cpp
@@ -36,7 +36,9 @@ SOFTWARE.
#if (defined(__APPLE__))
#include <malloc/malloc.h>
#include <malloc/malloc.h>
#else
-#include <malloc.h>
- #include <malloc.h>
+ #ifndef __OpenBSD__
+ #include <malloc.h>
+ #endif
@@ -0,0 +1,60 @@
Index: src/DrawResources/CheckCommands.tcl
--- src/DrawResources/CheckCommands.tcl.orig
+++ src/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
-osx : return 1 if current platform is 'MacOS X', otherwise return 0
+ -openbsd : return 1 if current platform is 'OpenBSD', otherwise return 0
Only one option can be used at once.
If no option is given, procedure will return the name of current platform.
@@ -1103,9 +1104,11 @@ proc checkplatform {args} {
set check_for_windows false
set check_for_linux false
set check_for_macosx false
+ set check_for_openbsd false
set options {{"-windows" check_for_windows 0}
{"-linux" check_for_linux 0}
+ {"-openbsd" check_for_openbsd 0}
{"-osx" check_for_macosx 0}}
_check_args ${args} ${options} "checkplatform"
@@ -1114,17 +1117,19 @@ proc checkplatform {args} {
set current_platform Windows
} elseif { $::tcl_platform(os) == "Linux" } {
set current_platform Linux
+ } elseif { $::tcl_platform(os) == "OpenBSD" } {
+ set current_platform OpenBSD
} elseif { $::tcl_platform(os) == "Darwin" } {
set current_platform MacOS
}
# no args are given
- if { !${check_for_windows} && !${check_for_linux} && !${check_for_macosx}} {
+ if { !${check_for_windows} && !${check_for_linux} && !${check_for_macosx} && !${check_for_openbsd}} {
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_openbsd}] ] > 1} {
error "Error: wrong usage of command checkplatform, only single option can be used at once"
}
@@ -1133,8 +1138,13 @@ proc checkplatform {args} {
return 1
}
- # checking for Mac OS X platforms
+ # checking for Linux platforms
if { ${check_for_linux} && ${current_platform} == "Linux" } {
+ return 1
+ }
+
+ # checking for OpenBSD platforms
+ if { ${check_for_openbsd} && ${current_platform} == "OpenBSD" } {
return 1
}
@@ -1,12 +1,12 @@
Index: src/OSD/OSD_Chronometer.cxx
--- src/OSD/OSD_Chronometer.cxx.orig
+++ src/OSD/OSD_Chronometer.cxx
@@ -52,7 +52,7 @@
void OSD_Chronometer::GetProcessCPU (Standard_Real& theUserSeconds,
Standard_Real& theSystemSeconds)
@@ -49,7 +49,7 @@
void OSD_Chronometer::GetProcessCPU(Standard_Real& theUserSeconds, Standard_Real& theSystemSeconds)
{
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__)
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__)
- #if defined(__linux__) || defined(__FreeBSD__) || defined(__ANDROID__) || defined(__QNX__) \
+ #if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__ANDROID__) || defined(__QNX__) \
|| defined(__EMSCRIPTEN__)
static const long aCLK_TCK = sysconf(_SC_CLK_TCK);
#else
static const long aCLK_TCK = CLK_TCK;
#else
@@ -1,19 +1,12 @@
Index: src/OSD/OSD_Host.cxx
--- src/OSD/OSD_Host.cxx.orig
+++ src/OSD/OSD_Host.cxx
@@ -71,6 +71,7 @@ struct utsname info;
if (!strcmp(info.sysname,"SunOS")) return (OSD_UnixBSD);
if (!strcmp(info.sysname,"ULTRIX")) return (OSD_UnixBSD);
if (!strcmp(info.sysname,"FreeBSD")) return (OSD_UnixBSD);
+ if (!strcmp(info.sysname,"OpenBSD")) return (OSD_UnixBSD);
if (!strncmp(info.sysname,"Linux",5)) return (OSD_LinuxREDHAT);
if (!strncmp(info.sysname,"IRIX", 4)) return (OSD_UnixSystemV);
if (!strncmp(info.sysname,"OSF", 3)) return (OSD_OSF);
@@ -152,6 +153,7 @@ struct utsname info;
if (!strncmp(info.sysname,"OSF",3)) return (OSD_DEC);
if (!strncmp(info.sysname,"Linux",5)) return (OSD_LIN);
if (!strcmp(info.sysname,"FreeBSD")) return (OSD_LIN);
+ if (!strcmp(info.sysname,"OpenBSD")) return (OSD_LIN);
if (!strncmp(info.sysname,"AIX",3)) return (OSD_AIX);
if (!strcmp(info.sysname,"Darwin")) return (OSD_MAC);
return (OSD_Unavailable);
@@ -79,6 +79,8 @@ OSD_SysType OSD_Host::SystemId() const
return (OSD_UnixBSD);
if (!strcmp(info.sysname, "FreeBSD"))
return (OSD_UnixBSD);
+ if (!strcmp(info.sysname, "OpenBSD"))
+ return (OSD_UnixBSD);
if (!strncmp(info.sysname, "Linux", 5))
return (OSD_LinuxREDHAT);
if (!strncmp(info.sysname, "IRIX", 4))
@@ -1,12 +1,12 @@
Index: src/OSD/OSD_Path.cxx
--- src/OSD/OSD_Path.cxx.orig
+++ src/OSD/OSD_Path.cxx
@@ -19,7 +19,7 @@
@@ -18,7 +18,7 @@
static OSD_SysType whereAmI()
{
-#if defined(__digital__) || defined(__FreeBSD__) || defined(SUNOS) || defined(__APPLE__) || defined(__QNX__) || defined(__FreeBSD_kernel__)
+#if defined(__digital__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(SUNOS) || defined(__APPLE__) || defined(__QNX__) || defined(__FreeBSD_kernel__)
-#if defined(__digital__) || defined(__FreeBSD__) || defined(SUNOS) || defined(__APPLE__) \
+#if defined(__digital__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(SUNOS) || defined(__APPLE__) \
|| defined(__QNX__) || defined(__FreeBSD_kernel__)
return OSD_UnixBSD;
#elif defined(sgi) || defined(IRIX) || defined(__sun) || defined(SOLARIS) || defined(__sco__) || defined(__hpux) || defined(HPUX)
return OSD_UnixSystemV;
#elif defined(sgi) || defined(IRIX) || defined(__sun) || defined(SOLARIS) || defined(__sco__) \
@@ -1,12 +1,12 @@
Index: src/Standard/Standard_CString.cxx
--- src/Standard/Standard_CString.cxx.orig
+++ src/Standard/Standard_CString.cxx
@@ -50,7 +50,7 @@
@@ -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.
#if !defined(__ANDROID__) && !defined(__QNX__) && !defined(__MINGW32__)
- #error System does not support xlocale. Import/export could be broken if C locale did not specified by application.
+ #warning System does not support xlocale. Import/export could be broken if C locale did not specified by application.
#endif
#define strtod_l(thePtr, theNextPtr, theLocale) strtod(thePtr, theNextPtr)
#define strtod_l(thePtr, theNextPtr, theLocale) strtod(thePtr, theNextPtr)
#endif
@@ -1,12 +1,12 @@
Index: src/Standard/Standard_MMgrOpt.cxx
--- src/Standard/Standard_MMgrOpt.cxx.orig
+++ src/Standard/Standard_MMgrOpt.cxx
@@ -249,7 +249,7 @@ void Standard_MMgrOpt::Initialize()
perror("ERR_MEMRY_FAIL");
@@ -244,7 +244,7 @@ void Standard_MMgrOpt::Initialize()
#endif
-#if defined(IRIX) || defined(__sgi) || defined(SOLARIS) || defined(__sun) || defined(__linux__) || defined(__FreeBSD__) || defined(__ANDROID__)
+#if defined(IRIX) || defined(__sgi) || defined(SOLARIS) || defined(__sun) || defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__ANDROID__)
if ((myMMap = open ("/dev/zero", O_RDWR)) < 0) {
if ((myMMap = open ("/dev/null", O_RDWR)) < 0){
myMMap = 0;
#if defined(IRIX) || defined(__sgi) || defined(SOLARIS) || defined(__sun) || defined(__linux__) \
- || defined(__FreeBSD__) || defined(__ANDROID__)
+ || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__ANDROID__)
if ((myMMap = open("/dev/zero", O_RDWR)) < 0)
{
if ((myMMap = open("/dev/null", O_RDWR)) < 0)
@@ -1,7 +1,7 @@
Index: src/Standard/Standard_StackTrace.cxx
--- src/Standard/Standard_StackTrace.cxx.orig
+++ src/Standard/Standard_StackTrace.cxx
@@ -196,6 +196,11 @@ Standard_Boolean Standard::StackTrace (char* theBuffer
@@ -194,6 +194,11 @@ Standard_Boolean Standard::StackTrace(char* theBuf
return false;
}
@@ -1,15 +0,0 @@
This patch has been merged upstream. Drop next update.
Commit: 7236e83dcc1e7284e66dc61e612154617ef715d6
Index: src/StdPrs/StdPrs_BRepFont.cxx
--- src/StdPrs/StdPrs_BRepFont.cxx.orig
+++ src/StdPrs/StdPrs_BRepFont.cxx
@@ -457,7 +457,7 @@ Standard_Boolean StdPrs_BRepFont::renderGlyph (const S
for (short aContour = 0, aStartIndex = 0; aContour < anOutline->n_contours; ++aContour)
{
const FT_Vector* aPntList = &anOutline->points[aStartIndex];
- const char* aTags = &anOutline->tags[aStartIndex];
+ const auto* aTags = &anOutline->tags[aStartIndex];
const short anEndIndex = anOutline->contours[aContour];
const short aPntsNb = (anEndIndex - aStartIndex) + 1;
aStartIndex = anEndIndex + 1;
+44 -805
View File
File diff suppressed because it is too large Load Diff