From dcfe834d428aefed1e66f7009e97af2c1bf06041 Mon Sep 17 00:00:00 2001 From: Karl Nilsson Date: Fri, 25 Mar 2022 20:24:49 -0400 Subject: [PATCH 1/4] python3-occ: remove package * upstream is well behind occt --- srcpkgs/python3-occ/patches/python3.10.patch | 15 --------------- srcpkgs/python3-occ/template | 17 ----------------- srcpkgs/removed-packages/template | 1 + 3 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 srcpkgs/python3-occ/patches/python3.10.patch delete mode 100644 srcpkgs/python3-occ/template diff --git a/srcpkgs/python3-occ/patches/python3.10.patch b/srcpkgs/python3-occ/patches/python3.10.patch deleted file mode 100644 index e192608fd3b3..000000000000 --- a/srcpkgs/python3-occ/patches/python3.10.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/src/Display/SimpleGui.py b/src/Display/SimpleGui.py -index 42705a82..6a274c16 100644 ---- a/src/Display/SimpleGui.py -+++ b/src/Display/SimpleGui.py -@@ -161,8 +161,8 @@ def init_display(backend_str: Optional[str]=None, - def centerOnScreen(self) -> None: - '''Centers the window on the screen.''' - resolution = QtWidgets.QApplication.desktop().screenGeometry() -- x = (resolution.width() - self.frameSize().width()) / 2 -- y = (resolution.height() - self.frameSize().height()) / 2 -+ x = (resolution.width() - self.frameSize().width()) // 2 -+ y = (resolution.height() - self.frameSize().height()) // 2 - self.move(x, y) - - def add_menu(self, menu_name: str) -> None: diff --git a/srcpkgs/python3-occ/template b/srcpkgs/python3-occ/template deleted file mode 100644 index bee03373a3d1..000000000000 --- a/srcpkgs/python3-occ/template +++ /dev/null @@ -1,17 +0,0 @@ -# Template file for 'python3-occ' -pkgname=python3-occ -version=7.4.1 -revision=3 -archs="i686* x86_64* armv7l* aarch64* ppc*" -wrksrc="pythonocc-core-${version}" -build_style=cmake -configure_args="-DPYTHONOCC_BUILD_TYPE=None -DCMAKE_BUILD_TYPE=None" -hostmakedepends="python3 swig" -makedepends="python3-devel occt-devel freetype-devel swig" -depends="python3 occt freetype" -short_desc="Industrial strength 3D CAD Python3 package" -maintainer="Karl Nilsson " -license="LGPL-3.0-or-later" -homepage="http://pythonocc.org" -distfiles="https://github.com/tpaviot/pythonocc-core/archive/${version}.tar.gz" -checksum=6d62002244a0e7f4e5c1ad590d332a60601c44b2501ad017361443b54371e667 diff --git a/srcpkgs/removed-packages/template b/srcpkgs/removed-packages/template index 8456cb959d35..488e62ec105a 100644 --- a/srcpkgs/removed-packages/template +++ b/srcpkgs/removed-packages/template @@ -343,6 +343,7 @@ replaces=" python3-keepalive<=0.5_6 python3-pgpdump<=1.5_10 python3-lockfile<=0.12.2_7 + python3-occ<=7.4.1_3 python3-pyPEG2<=2.15.2_7 python3-pyenet<=5.15.0_2 python3-pyside-phonon<=5.15.0_2 From e88702808294445d157bef3697c9a6a75b27c6c1 Mon Sep 17 00:00:00 2001 From: Karl Nilsson Date: Fri, 25 Mar 2022 19:29:00 -0400 Subject: [PATCH 2/4] occt: update to 7.6.2. --- .../occt/patches/cmake-build-type-none.patch | 6 +-- srcpkgs/occt/patches/musl-fenv.patch | 18 ++++---- srcpkgs/occt/patches/musl-mallinfo.patch | 45 ++++++++++++++----- srcpkgs/occt/template | 27 +++++------ srcpkgs/occt/update | 2 - 5 files changed, 60 insertions(+), 38 deletions(-) delete mode 100644 srcpkgs/occt/update diff --git a/srcpkgs/occt/patches/cmake-build-type-none.patch b/srcpkgs/occt/patches/cmake-build-type-none.patch index ecb0e3da3929..d2caec8c4e87 100644 --- a/srcpkgs/occt/patches/cmake-build-type-none.patch +++ b/srcpkgs/occt/patches/cmake-build-type-none.patch @@ -1,8 +1,8 @@ -Index: CMakeLists.txt -=================================================================== +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f4ec871f5..9b0644e94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -4,7 +4,7 @@ set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_D +@@ -4,7 +4,7 @@ set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/adm/cmake") set (CMAKE_SUPPRESS_REGENERATION TRUE) diff --git a/srcpkgs/occt/patches/musl-fenv.patch b/srcpkgs/occt/patches/musl-fenv.patch index 09da8d0afeae..06a8e3a89cfd 100644 --- a/srcpkgs/occt/patches/musl-fenv.patch +++ b/srcpkgs/occt/patches/musl-fenv.patch @@ -5,18 +5,20 @@ is probably wrong, but I don't have a replacement for the non-posix functions fegetexcept(3) and feenableexcept(3). """ +diff --git a/src/OSD/OSD_signal.cxx b/src/OSD/OSD_signal.cxx +index 007f5ccaa..fe39e07ac 100644 --- a/src/OSD/OSD_signal.cxx +++ b/src/OSD/OSD_signal.cxx -@@ -703,7 +703,7 @@ - +@@ -761,7 +761,7 @@ typedef void (* SIG_PFV) (int); + #include - --#if !defined(__ANDROID__) && !defined(__QNX__) -+#if !defined(__ANDROID__) && !defined(__QNX__) && defined(__GLIBC__) + +-#if !defined(__ANDROID__) && !defined(__QNX__) && !defined(__EMSCRIPTEN__) ++#if !defined(__ANDROID__) && !defined(__QNX__) && !defined(__EMSCRIPTEN__) && defined(__GLIBC__) #include #endif - -@@ -914,7 +914,7 @@ + +@@ -977,7 +977,7 @@ static void SegvHandler(const int theSignal, //======================================================================= void OSD::SetFloatingSignal (Standard_Boolean theFloatingSignal) { @@ -25,7 +27,7 @@ non-posix functions fegetexcept(3) and feenableexcept(3). feclearexcept (FE_ALL_EXCEPT); if (theFloatingSignal) { -@@ -947,7 +947,7 @@ +@@ -1010,7 +1010,7 @@ void OSD::SetFloatingSignal (Standard_Boolean theFloatingSignal) //======================================================================= Standard_Boolean OSD::ToCatchFloatingSignals() { diff --git a/srcpkgs/occt/patches/musl-mallinfo.patch b/srcpkgs/occt/patches/musl-mallinfo.patch index 4e5825bf1cb0..6ae94992eaf8 100644 --- a/srcpkgs/occt/patches/musl-mallinfo.patch +++ b/srcpkgs/occt/patches/musl-mallinfo.patch @@ -1,17 +1,38 @@ -In musl libc there is no struct mallinfo and no function mallinf() +Adapted from alpine's patch +diff --git a/src/OSD/OSD_MemInfo.cxx b/src/OSD/OSD_MemInfo.cxx +index d9bb91398..d608e04fc 100644 --- a/src/OSD/OSD_MemInfo.cxx +++ b/src/OSD/OSD_MemInfo.cxx -@@ -147,8 +147,12 @@ - } - aFile.close(); +@@ -35,6 +35,9 @@ + #include + #include + ++#include ++#include ++ + #include -+ #if defined(__GLIBC__) - struct mallinfo aMI = mallinfo(); - myCounters[MemHeapUsage] = aMI.uordblks; -+ #else /* XXX not yet coded */ -+ myCounters[MemHeapUsage] = 0; -+ #endif + #if defined(__EMSCRIPTEN__) +@@ -182,18 +185,9 @@ void OSD_MemInfo::Update() + #elif (defined(__linux__) || defined(__linux)) + if (IsActive (MemHeapUsage)) + { +- #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) +- #if __GLIBC_PREREQ(2,33) +- #define HAS_MALLINFO2 +- #endif +- #endif +- +- #ifdef HAS_MALLINFO2 +- const struct mallinfo2 aMI = mallinfo2(); +- #else +- const struct mallinfo aMI = mallinfo(); +- #endif +- myCounters[MemHeapUsage] = aMI.uordblks; ++ struct rusage ru = { .ru_maxrss = 0 }; ++ getrusage(RUSAGE_SELF, &ru); ++ myCounters[MemHeapUsage] = ru.ru_maxrss; + } - #elif (defined(__APPLE__)) - struct task_basic_info aTaskInfo; + if (!IsActive (MemVirtual) diff --git a/srcpkgs/occt/template b/srcpkgs/occt/template index 6624fea8b53f..b17c91b0058b 100644 --- a/srcpkgs/occt/template +++ b/srcpkgs/occt/template @@ -1,26 +1,27 @@ # Template file for 'occt' pkgname=occt -reverts=7.5.0_1 -version=7.4.0p1 -revision=5 -_gittag="V${version//./_}" -wrksrc=occt-${_gittag} +version=7.6.2 +revision=1 +_ver="${version//./_}" +wrksrc=OCCT-${_ver} build_style=cmake -# XXX: re-enable -DUSE_TBB=ON if possible when updating -configure_args="-DUSE_FREEIMAGE=ON -DUSE_GL2PS=ON -DUSE_VTK=OFF +configure_args="-DUSE_FREEIMAGE=ON -DUSE_TBB=ON -DUSE_GL2PS=ON -DUSE_VTK=OFF -DINSTALL_SAMPLES=ON" -makedepends="freetype-devel glu-devel freeimage-devel gl2ps-devel tcl-devel - tk-devel" +makedepends="freetype-devel glu-devel freeimage-devel gl2ps-devel tbb-devel + tcl-devel tk-devel" short_desc="OpenCASCADE Technology - library for CAD/CAM/CAE applications" maintainer="Piraty " license="custom:LGPL-2.1-only-with-exceptions" homepage="https://www.opencascade.com" -# distfile: use git instead of official tarball, which requires registration -# see https://www.opencascade.com/content/packaging-again-debian -distfiles="https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/${_gittag};sf=tgz>occt-${_gittag}.tar.gz" -checksum=e00fedc221560fda31653c23a8f3d0eda78095c87519f338d4f4088e2ee9a9c0 +distfiles="https://github.com/Open-Cascade-SAS/OCCT/archive/V${_ver}.tar.gz" +checksum=dea04077d71507c666aaa7ccaeacc73ab580d6572d7f75e90a1984c4c0302a7a conflicts="oce>=0" +if [ "$XBPS_TARGET_LIBC" = musl ]; then + makedepends+=" libexecinfo-devel" + LDFLAGS="-lexecinfo" +fi + post_install() { rm ${PKGDESTDIR}/usr/share/doc/opencascade/*_LGPL_*.txt vlicense OCCT_LGPL_EXCEPTION.txt diff --git a/srcpkgs/occt/update b/srcpkgs/occt/update deleted file mode 100644 index c128eec6d9c9..000000000000 --- a/srcpkgs/occt/update +++ /dev/null @@ -1,2 +0,0 @@ -site="https://git.dev.opencascade.org/gitweb/?p=occt.git;a=tags" -pattern=">V\K[\d_p]+(?=)" From 69c0d490db006141437bcd2c552009b89d1a4c1a Mon Sep 17 00:00:00 2001 From: Karl Nilsson Date: Sat, 26 Mar 2022 11:25:11 -0400 Subject: [PATCH 3/4] freecad: update to 0.20.0. --- srcpkgs/freecad/patches/050-occt76.patch | 140 +++++++++++++++++++++++ srcpkgs/freecad/template | 4 +- 2 files changed, 142 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/freecad/patches/050-occt76.patch diff --git a/srcpkgs/freecad/patches/050-occt76.patch b/srcpkgs/freecad/patches/050-occt76.patch new file mode 100644 index 000000000000..7865a59bceef --- /dev/null +++ b/srcpkgs/freecad/patches/050-occt76.patch @@ -0,0 +1,140 @@ +From 6f3b00d67ec0bd0072b7b493e2a38d2a2e3af27d Mon Sep 17 00:00:00 2001 +From: wmayer +Date: Mon, 11 Oct 2021 00:30:22 +0200 +Subject: [PATCH] SMESH: port to OCCT 7.6 + +--- + .../src/NETGENPlugin/NETGENPlugin_Mesher.cpp | 7 +++++++ + .../salomesmesh/src/SMESH/SMESH_MeshAlgos.cpp | 7 +++++-- + .../src/StdMeshers/StdMeshers_Adaptive1D.cpp | 14 ++++++++++++++ + .../src/StdMeshers/StdMeshers_Quadrangle_2D.cpp | 2 +- + .../src/StdMeshers/StdMeshers_ViscousLayers.cpp | 8 ++++++++ + 5 files changed, 35 insertions(+), 3 deletions(-) + +diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp +index cd6f0b2b0758..ea83984b9768 100644 +--- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp ++++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp +@@ -56,6 +56,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -700,7 +701,13 @@ double NETGENPlugin_Mesher::GetDefaultMinSize(const TopoDS_Shape& geom, + BRep_Tool::Triangulation ( TopoDS::Face( fExp.Current() ), loc); + if ( triangulation.IsNull() ) continue; + const double fTol = BRep_Tool::Tolerance( TopoDS::Face( fExp.Current() )); ++#if OCC_VERSION_HEX < 0x070600 + const TColgp_Array1OfPnt& points = triangulation->Nodes(); ++#else ++ auto points = [&triangulation](Standard_Integer index) { ++ return triangulation->Node(index); ++ }; ++#endif + const Poly_Array1OfTriangle& trias = triangulation->Triangles(); + for ( int iT = trias.Lower(); iT <= trias.Upper(); ++iT ) + { +diff --git a/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshAlgos.cpp b/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshAlgos.cpp +index 5a07308310ea..fbb1b250087f 100644 +--- a/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshAlgos.cpp ++++ b/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshAlgos.cpp +@@ -38,10 +38,13 @@ + #include + #include + #include +-#include +-#include ++#include ++#include + #include + #include ++#include ++#include ++#include + + #include + #include +diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Adaptive1D.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Adaptive1D.cpp +index 88970f36b557..7c51601c7bbe 100644 +--- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Adaptive1D.cpp ++++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Adaptive1D.cpp +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -318,13 +319,26 @@ namespace // internal utils + { + myFaceTol = SMESH_MesherHelper::MaxTolerance( face ); + myTree = triaTree; ++#if OCC_VERSION_HEX < 0x070600 + myNodes = & tr->Nodes(); ++#else ++ TColgp_Array1OfPnt* trNodes = new TColgp_Array1OfPnt( 1, tr->NbNodes() ); ++ for (Standard_Integer i = myNodes->Lower(); i <= myNodes->Upper(); i++) ++ { ++ trNodes->SetValue(i, tr->Node(i)); ++ } ++ myNodes = trNodes; ++ myOwnNodes = true; ++#endif + myPolyTrias = & tr->Triangles(); + myTriasDeflection = tr->Deflection(); + if ( !loc.IsIdentity() ) // transform nodes if necessary + { + TColgp_Array1OfPnt* trsfNodes = new TColgp_Array1OfPnt( myNodes->Lower(), myNodes->Upper() ); + trsfNodes->Assign( *myNodes ); ++#if OCC_VERSION_HEX >= 0x070600 ++ delete myNodes; // it's already a copy ++#endif + myNodes = trsfNodes; + myOwnNodes = true; + const gp_Trsf& trsf = loc; +diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp +index f7ac411d9a55..5d5c15c36612 100644 +--- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp ++++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp +@@ -50,7 +50,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_ViscousLayers.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_ViscousLayers.cpp +index 8ee0e2683259..e9f46183059e 100644 +--- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_ViscousLayers.cpp ++++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_ViscousLayers.cpp +@@ -44,7 +44,10 @@ + #include "SMESH_subMeshEventListener.hxx" + #include "StdMeshers_FaceSide.hxx" + ++#include ++#if OCC_VERSION_HEX < 0x070600 + #include ++#endif + #include + #include + #include +@@ -1340,8 +1343,13 @@ namespace VISCOUS_3D + //case GeomAbs_SurfaceOfExtrusion: + case GeomAbs_OffsetSurface: + { ++#if OCC_VERSION_HEX < 0x070600 + Handle(Adaptor3d_HSurface) base = surface.BasisSurface(); + return getRovolutionAxis( base->Surface(), axis ); ++#else ++ Handle(Adaptor3d_Surface) base = surface.BasisSurface(); ++ return getRovolutionAxis( *base, axis ); ++#endif + } + default: return false; + } diff --git a/srcpkgs/freecad/template b/srcpkgs/freecad/template index 1e2aec024fd7..c6587ae809ac 100644 --- a/srcpkgs/freecad/template +++ b/srcpkgs/freecad/template @@ -1,6 +1,6 @@ # Template file for 'freecad' pkgname=freecad -version=0.19.4 +version=0.20 revision=1 wrksrc="FreeCAD-${version}" build_style=cmake @@ -36,7 +36,7 @@ maintainer="yopito " license="LGPL-2.0-or-later" homepage="https://freecadweb.org/" distfiles="https://github.com/FreeCAD/FreeCAD/archive/${version}.tar.gz" -checksum=e40a1c343956e13c56cc8578d025ae83d68d9d20acda1732953bc8a3883e9722 +checksum=c4d9ce782d3da0edfa16d6218db4ce8613e346124ee47b3fe6a6dae40c0a61d9 if [ "$XBPS_TARGET_LIBC" = musl ]; then makedepends+=" libexecinfo-devel" From 4b01893c8d6892b41f2189586237cf5cb69932dd Mon Sep 17 00:00:00 2001 From: Karl Nilsson Date: Sat, 23 Jul 2022 23:01:39 -0400 Subject: [PATCH 4/4] freecad: fix patches --- srcpkgs/freecad/patches/002-execinfo.patch | 30 ------------------- .../patches/010-salomesmesh-execinfo.patch | 15 ++++++---- 2 files changed, 9 insertions(+), 36 deletions(-) delete mode 100644 srcpkgs/freecad/patches/002-execinfo.patch diff --git a/srcpkgs/freecad/patches/002-execinfo.patch b/srcpkgs/freecad/patches/002-execinfo.patch deleted file mode 100644 index bcdca77a72a4..000000000000 --- a/srcpkgs/freecad/patches/002-execinfo.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/src/App/Application.cpp 2020-01-22 23:27:42.709273087 +0100 -+++ b/src/App/Application.cpp 2020-01-22 23:50:53.915075955 +0100 -@@ -1485,7 +1485,9 @@ - #endif - - #if defined(FC_OS_LINUX) -+#ifdef __GLIBC__ - #include -+#endif - #include - #include - -@@ -1497,6 +1499,7 @@ - // This function produces a stack backtrace with demangled function & method names. - void printBacktrace(size_t skip=0) - { -+#ifdef __GLIBC__ - void *callstack[128]; - size_t nMaxFrames = sizeof(callstack) / sizeof(callstack[0]); - size_t nFrames = backtrace(callstack, nMaxFrames); -@@ -1527,6 +1530,9 @@ - } - - free(symbols); -+#else -+ std::cerr << "sorry, no backtrace on musl libc"; -+#endif - } - #endif - diff --git a/srcpkgs/freecad/patches/010-salomesmesh-execinfo.patch b/srcpkgs/freecad/patches/010-salomesmesh-execinfo.patch index cc6bdc9ff485..f0aa51852c36 100644 --- a/srcpkgs/freecad/patches/010-salomesmesh-execinfo.patch +++ b/srcpkgs/freecad/patches/010-salomesmesh-execinfo.patch @@ -1,16 +1,19 @@ +diff --git a/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp b/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp +index 23c5083fdf..4547d714d4 100644 --- a/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp +++ b/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp -@@ -29,7 +29,9 @@ +@@ -29,8 +29,10 @@ #ifndef WIN32 #include #include +#ifdef __GLIBC__ #include -+#endif #endif ++#endif -@@ -109,6 +111,7 @@ + namespace Kernel_Utils +@@ -109,6 +111,7 @@ namespace Kernel_Utils #ifndef WIN32 void print_traceback() { @@ -18,12 +21,12 @@ void *array[50]; size_t size; char **strings; -@@ -123,6 +126,9 @@ +@@ -123,6 +126,9 @@ namespace Kernel_Utils } free (strings); -+#else -+ std::cerr << "sorry, no backtrace on musl libc"; ++#else ++ std::cerr << "sorry, no backtrace on musl libc"; +#endif } #else