Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package occt for openSUSE:Factory checked in at 2021-03-30 21:08:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/occt (Old) and /work/SRC/openSUSE:Factory/.occt.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "occt" Tue Mar 30 21:08:11 2021 rev:4 rq:876031 version:7.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/occt/occt.changes 2019-02-08 12:14:13.781450697 +0100 +++ /work/SRC/openSUSE:Factory/.occt.new.2401/occt.changes 2021-03-30 21:08:25.405246799 +0200 @@ -1,0 +2,56 @@ +Sat Feb 27 15:35:46 UTC 2021 - Stefan Br??ns <stefan.bru...@rwth-aachen.de> + +- enable glTF support, depends on RapidJSON. +- Fix FreeCad crash with some fillets and chamfers + (https://tracker.freecadweb.org/view.php?id=4543), add + 0001-Add-error-checking-to-chamfer-and-fillet-code.patch + +------------------------------------------------------------------- +Mon Feb 22 15:17:23 UTC 2021 - Stefan Br??ns <stefan.bru...@rwth-aachen.de> + +- update to version 7.5.1, for details see + https://www.opencascade.com/open-cascade-starts-supporting-maintenance-releases-of-open-cascade-technology/ +- update to version 7.5.0, for details see + https://old.opencascade.com/sites/default/files/documents/release_notes_7.5.0.pdf +- update to version 7.4.0, for details see + https://old.opencascade.com/sites/default/files/documents/release_notes_7.4.0.pdf +- Packaging changes: + * Move resources referenced by the libraries to separate package + * Move drawexe resources to matching package + * Remove the mostly empty occt package +- Drop use-local-mathjax.patch, use mathjax gendoc option +- Drop enable-exceptions.patch, + use BUILD_RELEASE_DISABLE_EXCEPTIONS=false + +------------------------------------------------------------------- +Mon Oct 21 09:19:23 UTC 2019 - Adrian Schr??ter <adr...@suse.de> + +- update to version 7.3.0p4 + * bugfixes: + 0030760: Modeling Algorithms - Intersection fails in Occt 7.3.0 + 0029711: General Fuse operation produces invalid result + 0030915: Visualization - AIS_ColorScale::FindColor() returns Wrong color for maximal value + 0030897: Modeling Algorithms - Crash in UnifySameDomain [Regression] + 0030534: Regression in the tool UnifySameDomain - the shape looses faces +- adapt license tag to current definition (no license change) + +------------------------------------------------------------------- +Fri Mar 1 10:57:15 UTC 2019 - Adrian Schr??ter <adr...@suse.de> + +- update to version 7.3.0p3 + * needs to be fetch from git due to lack of tar ball + * bugfixes: + - 0030510: Application Framework - add missing NULL check within TDataStd_RealArray::ChangeArray() + - 0030363: BRepLib::SameParameter with option "forced" corrupts valid shape + - 0030174: ShapeUpgrade_UnifySameDomain does not unify cylindrical faces + - 0030186: BRepOffsetAPI_MakePipe Generated() method produces no results for the spine edges + - 0030204: BRepOffsetAPI_MakePipeShell crash + - 0030354: BOP Cut doesn't modify the attached face + - 0030143: Foundation Classes - provide operator[] alias for NCollection_Array1, NCollection_Vector + - 0029807: [Regression to 7.0.0] Impossible to cut cone from prism + - 0028949: BRepOffsetAPI_MakePipe Generated() method produces no result for spine edges + - 0029573: ConcatenateWireC0 crashes on two edges wire + - 0028085: Incorrect result of CUT operation + - 0027928: BOP common produces empty compound + +------------------------------------------------------------------- Old: ---- enable-exceptions.patch opencascade-7.3.0.tgz use-local-mathjax.patch New: ---- 0001-Add-error-checking-to-chamfer-and-fillet-code.patch _service occt-7.5.1.obscpio occt.obsinfo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ occt.spec ++++++ --- /var/tmp/diff_new_pack.jx2ksC/_old 2021-03-30 21:08:28.973250719 +0200 +++ /var/tmp/diff_new_pack.jx2ksC/_new 2021-03-30 21:08:28.977250723 +0200 @@ -1,7 +1,7 @@ # # spec file for package occt # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,19 +17,20 @@ Name: occt -Version: 7.3.0 +Version: 7.5.1 Release: 0 %define soname 7 Summary: OpenCASCADE Official Edition -License: LGPL-2.1 WITH OCCT-exception-1.0 +License: LGPL-2.1-only WITH OCCT-exception-1.0 Group: Productivity/Graphics/CAD -Url: http://www.opencascade.org/ +URL: https://www.opencascade.com/open-cascade-technology/ # Password protected URL, factory validation will fail -# https://www.opencascade.com/sites/default/files/private/occt/OCC_%{version}_release/opencascade-%{version}.tgz -Source0: opencascade-%{version}.tgz +# https://www.opencascade.com/sites/default/files/private/occt/OCC_%%{version}_release/opencascade-%%{version}.tgz +# getting it from git for patch level releases not existing as tar ball +Source0: occt-%{version}.tar.xz Patch1: fix_build.patch -Patch2: enable-exceptions.patch -Patch3: use-local-mathjax.patch +# PATCH-FIX-UPSTREAM - https://gitlab.com/blobfish/occt/-/commit/ad0ba55f55b36dc957f66192c4766ace83f82b7e +Patch2: 0001-Add-error-checking-to-chamfer-and-fillet-code.patch Provides: OpenCASCADE = %{version} BuildRequires: bison BuildRequires: cmake @@ -40,15 +41,13 @@ BuildRequires: mathjax BuildRequires: tcl-devel BuildRequires: tk-devel +BuildRequires: pkgconfig(RapidJSON) +BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(gl) -BuildRequires: pkgconfig(glu) -BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xext) BuildRequires: pkgconfig(xi) BuildRequires: pkgconfig(xmu) -BuildRequires: pkgconfig(xt) -#Requires: tcsh %description OpenCASCADE is a suite for 3D surface and solid modeling, visualization, data @@ -56,92 +55,79 @@ development of numerical simulation software including CAD/CAM/CAE, AEC and GIS, as well as PDM applications. +%package resources +Summary: Binary resource files for %{name} +Group: System/Libraries +BuildArch: noarch + +%description resources +This package contains resource files imported from the libraries. + %package devel Summary: Development files for %{name} Group: Development/Libraries/C and C++ Provides: OpenCASCADE-devel = %{version} -Requires: %{name} = %{version} -Requires: %{name}-DRAWEXE = %{version} -Requires: freetype2-devel Requires: libopencascade%{soname} = %{version} Requires: tcl-devel Requires: tk-devel +Requires: pkgconfig(freetype2) Requires: pkgconfig(gl) -Requires: pkgconfig(glu) -Requires: pkgconfig(x11) Requires: pkgconfig(xext) Requires: pkgconfig(xmu) -Requires: pkgconfig(xt) Conflicts: oce-devel %description devel This package contains the files needed for development with OpenCASCADE. %package devel-doc -BuildArch: noarch Summary: Development files for %{name} Group: Development/Libraries/C and C++ +BuildArch: noarch %description devel-doc Developer documentation for OpenCASCADE %package -n libopencascade%{soname} Summary: OpenCASCADE libraries -Group: Development/Libraries/C and C++ +Group: System/Libraries +Requires: %{name}-resources %description -n libopencascade%{soname} This package contain the needed libraries for OpenCASCADE %package DRAWEXE Summary: Development files for %{name} -Group: Development/Libraries/C and C++ +Group: Productivity/Graphics/CAD Conflicts: oce-DRAWEXE %description DRAWEXE This package contains the DRAWEXE executable of OpenCASCADE. %prep -%setup -q -n opencascade-%{version} -%patch1 -p0 -%patch2 -p0 -%patch3 -p0 -# update patch if the path is not matching anymore -[ -e /usr/share/javascript/mathjax/MathJax.js ] || exit 1 +%autosetup -p1 %build -mkdir build && cd build -cmake -DCMAKE_C_FLAGS:"STRING=$RPM_OPT_FLAGS" \ - -DCMAKE_CXX_FLAGS:"STRING=$RPM_OPT_FLAGS" \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_SKIP_RPATH=ON \ - -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -%if "%{_libdir}" == "/usr/lib64" - -DLIB_SUFFIX=64 \ -%endif +%cmake \ + -DCMAKE_POLICY_DEFAULT_CMP0083=NEW \ + -DBUILD_RELEASE_DISABLE_EXCEPTIONS:BOOL=false \ + -DUSE_RAPIDJSON:BOOL=true \ + -DINSTALL_DIR_LIB=%{_lib} \ + -DINSTALL_DIR_CMAKE=%{_lib}/cmake/%{name} \ .. -make %{?_smp_mflags} +%cmake_build cd .. -./gendoc -refman -# fix permission bits -find doc README.txt LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt -type f | xargs chmod 0644 +# Sidestep gendoc error (#32156) by adding -pdf option +./gendoc -refman -html -pdf -mathjax="%{_datadir}/javascript/mathjax" %install -cd build -make install DESTDIR=%buildroot +%cmake_install +# Make scripts executable chmod 0755 %buildroot/usr/bin/* # fixing up broken files -mv %buildroot/usr/lib/cmake/opencascade/OpenCASCADECompileDefinitionsAndFlags-relwithdebinfo.cmake/OpenCASCADECompileDefinitionsAndFlags-relwithdebinfo.cmake w -rmdir %buildroot/usr/lib/cmake/opencascade/OpenCASCADECompileDefinitionsAndFlags-relwithdebinfo.cmake -mv -v w %buildroot/usr/lib/cmake/opencascade/OpenCASCADECompileDefinitionsAndFlags-relwithdebinfo.cmake -if [ "%_libdir" == "/usr/lib64" ] ;then - mkdir -p %buildroot/usr/lib64 - mv %buildroot/usr/lib/lib* %buildroot/usr/lib64/ - sed -i -e 's,lib\\${OCCT_INSTALL_BIN_LETTER}/,lib64/,' %buildroot%{_prefix}/lib/cmake/*/* -else - sed -i -e 's,lib\\${OCCT_INSTALL_BIN_LETTER}/,lib/,' %buildroot%{_prefix}/lib/cmake/*/* -fi +sed -i -e 's,'%{_lib}'\\${OCCT_INSTALL_BIN_LETTER}/,'%{_lib}'/,' %buildroot%{_libdir}/cmake/*/* rm -rf %buildroot/usr/share/doc @@ -151,24 +137,27 @@ %postun -n libopencascade%{soname} -p /sbin/ldconfig -%files -%license LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt -%doc README.txt - %files -n libopencascade%{soname} +%license LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt %_libdir/lib*.so.%{soname}* +%files resources +%dir %{_datadir}/opencascade +%{_datadir}/opencascade/resources + %files DRAWEXE -/usr/bin/DRAWEXE* +%{_bindir}/custom* +%{_bindir}/draw.sh +%{_bindir}/env.sh +%{_bindir}/DRAWEXE* +%{_datadir}/opencascade/samples +%{_datadir}/opencascade/data %files devel -/usr/bin/custom* -/usr/bin/draw.sh -/usr/bin/env.sh -/usr/include/opencascade -/usr/share/opencascade -/usr/lib/cmake -%_libdir/lib*.so +%doc README.txt +%{_includedir}/opencascade +%{_libdir}/cmake +%{_libdir}/lib*.so %files devel-doc %doc doc/refman/html ++++++ 0001-Add-error-checking-to-chamfer-and-fillet-code.patch ++++++ >From ad0ba55f55b36dc957f66192c4766ace83f82b7e Mon Sep 17 00:00:00 2001 From: Chris Hennes <chen...@gmail.com> Date: Sat, 30 Jan 2021 17:58:39 -0600 Subject: [PATCH] Add error-checking to chamfer and fillet code Conflicts: src/ChFi3d/ChFi3d_Builder_C1.cxx --- src/ChFi3d/ChFi3d_Builder_0.cxx | 9 +++++++++ src/ChFi3d/ChFi3d_Builder_C1.cxx | 24 ++++++++++++++++++++++++ src/ChFi3d/ChFi3d_Builder_CnCrn.cxx | 14 +++++++++++++- 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/ChFi3d/ChFi3d_Builder_0.cxx b/src/ChFi3d/ChFi3d_Builder_0.cxx index de2ff457de..b089d3e4da 100644 --- a/src/ChFi3d/ChFi3d_Builder_0.cxx +++ b/src/ChFi3d/ChFi3d_Builder_0.cxx @@ -4394,6 +4394,9 @@ void ChFi3d_cherche_face1 (const TopTools_ListOfShape & map, if (!Fcur.IsSame(F1)) { F=Fcur;trouve=Standard_True;} } + if (trouve == Standard_False) { + throw Standard_Failure("Failed to find element."); + } } //======================================================================= //function : cherche_element @@ -4433,6 +4436,9 @@ void ChFi3d_cherche_element(const TopoDS_Vertex & V, } } } + if (trouve == Standard_False) { + throw Standard_Failure("Failed to find edge."); + } } //======================================================================= //function : cherche_edge @@ -4477,6 +4483,9 @@ void ChFi3d_cherche_edge(const TopoDS_Vertex & V, } } } + if (trouve == Standard_False) { + throw Standard_Failure("Failed to find element."); + } } //======================================================================= diff --git a/src/ChFi3d/ChFi3d_Builder_C1.cxx b/src/ChFi3d/ChFi3d_Builder_C1.cxx index 09a2e10307..8b7e9b260d 100644 --- a/src/ChFi3d/ChFi3d_Builder_C1.cxx +++ b/src/ChFi3d/ChFi3d_Builder_C1.cxx @@ -338,6 +338,7 @@ static Standard_Boolean IntersUpdateOnSame(Handle(GeomAdaptor_HSurface)& HGs, return Standard_False; Handle(Geom2d_Curve) gpcprol = BRep_Tool::CurveOnSurface(Eprol,Fprol,uf,ul); + if (gpcprol.IsNull()) throw Standard_Failure("Failed to create curve."); Handle(Geom2dAdaptor_HCurve) pcprol = new Geom2dAdaptor_HCurve(gpcprol); Standard_Real partemp = BRep_Tool::Parameter(Vtx,Eprol); @@ -822,11 +823,13 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index, if (onsame && IFopArc == 1) pfac1 = p2dbout; else { Hc1 = BRep_Tool::CurveOnSurface(CV1.Arc(),Fv,Ubid,Ubid); + if (Hc1.IsNull()) throw Standard_Failure("Failed to create curve."); pfac1 = Hc1->Value(CV1.ParameterOnArc()); } if (onsame && IFopArc == 2) pfac2 = p2dbout; else { Hc2 = BRep_Tool::CurveOnSurface(CV2.Arc(),Fv,Ubid,Ubid); + if (Hc2.IsNull()) throw Standard_Failure("Failed to create curve."); pfac2 = Hc2->Value(CV2.ParameterOnArc()); } if (Fi1.LineIndex() != 0) { @@ -868,6 +871,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index, //Standard_Real Ubid,Vbid; Handle (Geom_Curve) C=BRep_Tool::Curve(edgecouture,Ubid,Vbid); + if (C.IsNull()) throw Standard_Failure("Failed to create curve."); Handle(Geom_TrimmedCurve) Ctrim=new Geom_TrimmedCurve (C,Ubid,Vbid); GeomAdaptor_Curve cur1(Ctrim->BasisCurve()); GeomAdaptor_Curve cur2(Cc); @@ -1050,6 +1054,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index, Standard_Real first, last, prm1, prm2; Standard_Boolean onfirst, FirstToPar; Handle(Geom2d_Curve) Hc = BRep_Tool::CurveOnSurface( CV[i].Arc(), Fv, first, last ); + if (Hc.IsNull()) throw Standard_Failure("Failed to create curve."); pfac1 = Hc->Value( CV[i].ParameterOnArc() ); PcF = Pc->Value( Udeb ); PcL = Pc->Value( Ufin ); @@ -1101,6 +1106,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index, TopoDS_Edge aLocalEdge = CV[i].Arc(); aLocalEdge.Reverse(); Handle(Geom2d_Curve) HcR = BRep_Tool::CurveOnSurface( aLocalEdge, Fv, first, last ); + if (HcR.IsNull()) throw Standard_Failure("Failed to create curve."); Interfc = ChFi3d_FilCurveInDS( indcurv, indface, HcR, aLocalEdge.Orientation() ); DStr.ChangeShapeInterferences(indface).Append( Interfc ); //modify degenerated edge @@ -1126,6 +1132,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index, { Standard_Real fd, ld; Handle(Geom2d_Curve) Cd = BRep_Tool::CurveOnSurface( Edeg, Fv, fd, ld ); + if (Cd.IsNull()) throw Standard_Failure("Failed to create curve."); Handle(Geom2d_TrimmedCurve) tCd = Handle(Geom2d_TrimmedCurve)::DownCast(Cd); if (! tCd.IsNull()) Cd = tCd->BasisCurve(); @@ -1244,9 +1251,11 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index, const ChFiDS_FaceInterference& Fiop = Fd->Interference(IFopArc); gp_Pnt2d pop1, pop2, pv1, pv2; Hc = BRep_Tool::CurveOnSurface(Arcprol,Fop,Ubid,Ubid); + if (Hc.IsNull()) throw Standard_Failure("Failed to create curve."); pop1 = Hc->Value(parVtx); pop2 = Fiop.PCurveOnFace()->Value(Fiop.Parameter(isfirst)); Hc = BRep_Tool::CurveOnSurface(Arcprol,Fv,Ubid,Ubid); + if (Hc.IsNull()) throw Standard_Failure("Failed to create curve."); pv1 = Hc->Value(parVtx); pv2 = p2dbout; ChFi3d_Recale(Bs,pv1,pv2,1); @@ -1436,6 +1445,9 @@ static void cherche_face (const TopTools_ListOfShape & map, } } } + if (trouve == Standard_False) { + throw Standard_Failure("Failed to find face."); + } } //======================================================================= @@ -1466,6 +1478,9 @@ static void cherche_edge1 (const TopoDS_Face & F1, {Edge=Ecur1;trouve=Standard_True;} } } + if (trouve == Standard_False) { + throw Standard_Failure("Failed to find edge."); + } } //======================================================================= @@ -2147,6 +2162,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index) if (nb==1) { Hc1 = BRep_Tool::CurveOnSurface(Edge[0],Face[0],Ubid,Ubid); + if (Hc1.IsNull()) throw Standard_Failure("Failed to create curve."); if (isOnSame1) { // update interference param on Fi1 and point of CV1 if (prolface[0]) Bs.Initialize(faceprol[0], Standard_False); @@ -2219,6 +2235,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index) Handle(Geom_Curve) C; C=BRep_Tool::Curve(E2,Ubid,Vbid); + if (C.IsNull()) throw Standard_Failure("Failed to create curve."); Handle(Geom_TrimmedCurve) Ctrim = new Geom_TrimmedCurve(C,Ubid,Vbid); Standard_Real Utrim,Vtrim; Utrim=Ctrim->BasisCurve()->FirstParameter(); @@ -2344,7 +2361,9 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index) paredge2=inters.Point(nbp).W(); if (!extend) { cfacemoins1=BRep_Tool::CurveOnSurface(E2,F,u2,v2); + if (cfacemoins1.IsNull()) throw Standard_Failure("Failed to create curve."); cface=BRep_Tool::CurveOnSurface(E2,Face[nb],u2,v2); + if (cface.IsNull()) throw Standard_Failure("Failed to create curve."); cfacemoins1->D0(paredge2,pfac2); cface->D0(paredge2,pint); } @@ -4010,11 +4029,13 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index) if( IFopArc == 1) pfac1 = p2dbout; else { Hc1 = BRep_Tool::CurveOnSurface(CV1.Arc(),Fv,Ubid,Ubid); + if (Hc1.IsNull()) throw Standard_Failure("Failed to create curve."); pfac1 = Hc1->Value(CV1.ParameterOnArc()); } if(IFopArc == 2) pfac2 = p2dbout; else { Hc2 = BRep_Tool::CurveOnSurface(CV2.Arc(),Fv,Ubid,Ubid); + if (Hc2.IsNull()) throw Standard_Failure("Failed to create curve."); pfac2 = Hc2->Value(CV2.ParameterOnArc()); } if(Fi1.LineIndex() != 0){ @@ -4054,6 +4075,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index) //Standard_Real Ubid,Vbid; Handle (Geom_Curve) C=BRep_Tool::Curve(edgecouture,Ubid,Vbid); + if (C.IsNull()) throw Standard_Failure("Failed to create curve."); Handle(Geom_TrimmedCurve) Ctrim=new Geom_TrimmedCurve (C,Ubid,Vbid); GeomAdaptor_Curve cur1(Ctrim->BasisCurve()); GeomAdaptor_Curve cur2(Cc); @@ -4284,9 +4306,11 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index) // Modified by skv - Thu Aug 21 11:55:58 2008 OCC20222 End //fin modif Hc = BRep_Tool::CurveOnSurface(Arcprolbis,Fop,Ubid,Ubid); + if (Hc.IsNull()) throw Standard_Failure("Failed to create curve."); pop1 = Hc->Value(parVtx); pop2 = Fiop.PCurveOnFace()->Value(Fiop.Parameter(isfirst)); Hc = BRep_Tool::CurveOnSurface(Arcprol,Fv,Ubid,Ubid); + if (Hc.IsNull()) throw Standard_Failure("Failed to create curve."); //modif parVtx = BRep_Tool::Parameter(Vtx,Arcprol); //fin modif diff --git a/src/ChFi3d/ChFi3d_Builder_CnCrn.cxx b/src/ChFi3d/ChFi3d_Builder_CnCrn.cxx index e8087c1cd7..a04497a6a2 100644 --- a/src/ChFi3d/ChFi3d_Builder_CnCrn.cxx +++ b/src/ChFi3d/ChFi3d_Builder_CnCrn.cxx @@ -291,6 +291,9 @@ static void cherche_edge1 (const TopoDS_Face & F1, {Edge=Ecur1;trouve=Standard_True;} } } + if (trouve == Standard_False) { + throw Standard_Failure("Failed to find edge."); + } } //======================================================================= @@ -332,6 +335,7 @@ static void CurveHermite (const TopOpeBRepDS_DataStructure& DStr, Handle (Geom_Curve) c1,c2; if (sharpicmoins) { c1=BRep_Tool::Curve(Eviveicmoins,up1,up2); + if (c1.IsNull()) throw Standard_Failure("Failed to create curve."); } else { if (jficmoins==1) @@ -341,6 +345,7 @@ static void CurveHermite (const TopOpeBRepDS_DataStructure& DStr, } if (sharpicplus){ c2=BRep_Tool::Curve(Eviveicplus,up1,up2); + if (c2.IsNull()) throw Standard_Failure("Failed to create curve."); } else { jfp=3-jficplus; @@ -414,8 +419,10 @@ static void CurveHermite (const TopOpeBRepDS_DataStructure& DStr, } Eproj.Append(E1); proj1=BRep_Tool::CurveOnSurface(E1,F,up1,up2); + if (proj1.IsNull()) throw Standard_Failure("Failed to create curve."); proj2d.Append(new Geom2d_TrimmedCurve(proj1,up1,up2)); proj1c=BRep_Tool::Curve(E1,up1,up2); + if (proj1c.IsNull()) throw Standard_Failure("Failed to create curve."); cproj.Append(new Geom_TrimmedCurve(proj1c,up1,up2)); if (error>BRep_Tool::Tolerance(E1)) error=BRep_Tool::Tolerance(E1); } @@ -2459,15 +2466,20 @@ void ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex, Pf=BRep_Tool::Pnt(Vf); Pl=BRep_Tool::Pnt(Vl); para=parcom.Value(nb); - Pcom=BRep_Tool::Curve(TopoDS::Edge(Ecom.Value(nb)),up1,up2)->Value(para); + Handle(Geom_Curve) result = BRep_Tool::Curve(TopoDS::Edge(Ecom.Value(nb)),up1,up2); + if (result.IsNull()) throw Standard_Failure("Failed to create curve."); + Pcom=result->Value(para); + if (Pf.Distance(BRep_Tool::Pnt(V1))< Pl.Distance(BRep_Tool::Pnt(V1))) orvt=TopAbs_FORWARD; if (!Eproj.Value(nb).IsNull()) { n3d++; proj=BRep_Tool::CurveOnSurface(TopoDS::Edge(Eproj.Value(nb)), TopoDS::Face(Fproj.Value(nb)),up1,up2); + if (proj.IsNull()) throw Standard_Failure("Failed to create curve."); proj2d=new Geom2d_TrimmedCurve(proj,up1,up2); projc=BRep_Tool::Curve(TopoDS::Edge(Eproj.Value(nb)),up1,up2); + if (projc.IsNull()) throw Standard_Failure("Failed to create curve."); cproj=new Geom_TrimmedCurve(projc,up1,up2); pardeb=cproj->FirstParameter(); parfin=cproj->LastParameter(); -- GitLab ++++++ _service ++++++ <services> <service name="tar" mode="buildtime"/> <service name="recompress" mode="buildtime"> <param name="file">*.tar</param> <param name="compression">xz</param> </service> </services> ++++++ fix_build.patch ++++++ --- /var/tmp/diff_new_pack.jx2ksC/_old 2021-03-30 21:08:29.013250763 +0200 +++ /var/tmp/diff_new_pack.jx2ksC/_new 2021-03-30 21:08:29.017250767 +0200 @@ -1,11 +1,11 @@ ---- CMakeLists.txt.orig 2017-08-30 15:27:56.000000000 +0200 -+++ CMakeLists.txt 2017-09-01 11:35:42.325210630 +0200 +--- a/CMakeLists.txt.orig 2017-08-30 15:27:56.000000000 +0200 ++++ b/CMakeLists.txt 2017-09-01 11:35:42.325210630 +0200 @@ -1056,7 +1056,7 @@ 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)") -install (CODE "configure_file(\"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)") -+install (CODE "file(INSTALL FILES \"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" DESTINATION \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" TYPE FILE)") ++install (CODE "file(INSTALL FILES \"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" DESTINATION \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/\" TYPE FILE)") foreach (OCCT_MODULE ${OCCT_MODULES}) if (BUILD_MODULE_${OCCT_MODULE}) ++++++ occt.obsinfo ++++++ name: occt version: 7.5.1 mtime: 1612255916 commit: 94c00556ea33f3895196b30c45b1fa901ad4c377