Name: opencascade Version: 7.4.0 Release: 2%{?dist} Summary: SDK intended for development of applications dealing with 3D CAD data License: LGPLv2+ with exception URL: https://www.opencascade.com/content/overview # Upstream requires a login to download sources. # https://www.opencascade.com/content/latest-release # The following URL (after expansion) will work using links from the command line. # https://www.opencascade.com/sites/default/files/private/occt/OCC_%%{version}_release/%%{name}-%%{version}.tgz Source0: %{name}-%{version}.tgz Source1: DRAWEXE.1 Source2: opencascade-draw.desktop Source3: occ-256.png Source4: occ-128.png Source5: occ-64.png Source6: occ-48.png Patch0: opencascade-cmake.patch # Utilities BuildRequires: cmake gcc gcc-c++ BuildRequires: desktop-file-utils BuildRequires: doxygen # Libraries BuildRequires: xorg-x11-proto-devel BuildRequires: libXScrnSaver-devel BuildRequires: libXrandr-devel BuildRequires: libXpm-devel BuildRequires: libxkbfile-devel BuildRequires: libXinerama-devel BuildRequires: libXres-devel BuildRequires: libXtst-devel BuildRequires: libXcomposite-devel BuildRequires: libXcursor-devel BuildRequires: libXdmcp-devel BuildRequires: libXi-devel BuildRequires: libXv-devel BuildRequires: mesa-libGL-devel mesa-libGLU-devel BuildRequires: libXmu-devel BuildRequires: ftgl-devel BuildRequires: freeimage-devel BuildRequires: gl2ps-devel BuildRequires: libgomp BuildRequires: tcl-devel BuildRequires: tk-devel BuildRequires: tbb-devel BuildRequires: vtk-devel # https://fedorahosted.org/fpc/ticket/174 Provides: bundled(gnulib) %description Open CASCADE Technology (OCCT) is a suite for 3D surface and solid modeling, visualization, data exchange and rapid application development. It is an excellent platform for development of numerical simulation software including CAD/CAM/CAE, AEC and GIS, as well as PDM applications. %package foundation Summary: OpenCASCADE CAE platform shared libraries %description foundation OpenCASCADE CAE platform shared libraries This package contains foundation classes which provide a variety of general-purpose services such as automated management of heap memory, exception handling, classes for manipulating aggregates of data, basic math tools. %package modeling Summary: OpenCASCADE CAE platform shared libraries %description modeling OpenCASCADE CAE platform shared libraries This package supplies data structures to represent 2D and 3D geometric models, as well as topological and geometrical algorithms. %package ocaf Summary: OpenCASCADE CAE platform shared libraries %description ocaf OpenCASCADE CAE platform shared libraries This package provides OpenCASCADE Application Framework services and support for data exchange. %package visualization Summary: OpenCASCADE CAE platform shared libraries %description visualization OpenCASCADE CAE platform shared libraries This package provides services for displaying 2D and 3D graphics. %package examples Summary: OpenCASCADE CAE platform shared libraries %description examples OpenCASCADE CAE platform shared libraries This package contains example input files for OpenCASCADE in various formats. %package draw Summary: OpenCASCADE CAE platform shared libraries %description draw OpenCASCADE CAE DRAW test harness. %package devel Summary: OpenCASCADE CAE platform library development files Requires: %{name}-draw%{?_isa} = %{version}-%{release} Requires: %{name}-foundation%{?_isa} = %{version}-%{release} Requires: %{name}-modeling%{?_isa} = %{version}-%{release} Requires: %{name}-ocaf%{?_isa} = %{version}-%{release} Requires: %{name}-visualization%{?_isa} = %{version}-%{release} Requires: freeimage-devel Requires: freetype-devel Requires: gl2ps-devel Requires: libICE-devel Requires: libSM-devel Requires: libX11-devel Requires: libXext-devel Requires: libXScrnSaver-devel Requires: libXrandr-devel Requires: libXpm-devel Requires: libxkbfile-devel Requires: libXinerama-devel Requires: libXres-devel Requires: libXtst-devel Requires: libXcomposite-devel Requires: libXcursor-devel Requires: libXdmcp-devel Requires: libXi-devel Requires: libXv-devel Requires: mesa-libGL-devel Requires: mesa-libGLU-devel Requires: tbb-devel Requires: tcl-devel Requires: tk-devel %description devel OpenCASCADE CAE platform library development files %prep %autosetup -p1 # Sources are marked executable for no good reason... find ./src -type f -exec chmod -x {} \; # Fix executable set on text files. chmod 0644 *.txt %build mkdir build && cd build # opencascade does some manual install trickery that does not respect DESTDIR. # Make DESTDIR and environment variable that can be passed into the CMake config. export DESTDIR="%{buildroot}" %cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DUSE_TBB=True \ -DUSE_VTK=True \ -DINSTALL_DIR_LIB=%{_lib} \ -DINSTALL_DIR_CMAKE=%{_lib}/cmake/%{name} \ ../ %make_build %install cd build %make_install # Draw binary should not be versioned. mv %{buildroot}%{_bindir}/DRAWEXE-%{version} \ %{buildroot}%{_bindir}/DRAWEXE # Install manpage for DRAWEXE install -Dm 0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/DRAWEXE.1 # Install and validate desktop file desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE2} # Install icons for size in 256 128 64 48; do icon=%{_sourcedir}/occ-${size}.png install -Dm 0644 $icon \ %{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/occ.png done # Remove license files so they can be included by %%license. rm -f %{buildroot}%{_docdir}/%{name}/{LICENSE_LGPL_21.txt,OCCT_LGPL_EXCEPTION.txt} # Fix non-executable shell scripts chmod 0755 %{buildroot}%{_bindir}/*.sh %files foundation %doc README.txt %license LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt # Foundation %{_libdir}/libTKernel.so.* %{_libdir}/libTKMath.so.* %{_datadir}/opencascade/ %files modeling # Modeling Data %{_libdir}/libTKG2d.so.* %{_libdir}/libTKG3d.so.* %{_libdir}/libTKGeomBase.so.* %{_libdir}/libTKBRep.so.* # Modeling Algorithms %{_libdir}/libTKGeomAlgo.so.* %{_libdir}/libTKTopAlgo.so.* %{_libdir}/libTKPrim.so.* %{_libdir}/libTKBO.so.* %{_libdir}/libTKBool.so.* %{_libdir}/libTKHLR.so.* %{_libdir}/libTKFillet.so.* %{_libdir}/libTKOffset.so.* %{_libdir}/libTKFeat.so.* %{_libdir}/libTKMesh.so.* %{_libdir}/libTKXMesh.so.* %{_libdir}/libTKShHealing.so.* # Data exchange %{_libdir}/libTKXSBase.so.* %{_libdir}/libTKSTEPBase.so.* %{_libdir}/libTKSTEPAttr.so.* %{_libdir}/libTKSTEP209.so.* %{_libdir}/libTKSTEP.so.* %{_libdir}/libTKIGES.so.* %{_libdir}/libTKXCAF.so.* %{_libdir}/libTKXDEIGES.so.* %{_libdir}/libTKXDESTEP.so.* %{_libdir}/libTKSTL.so.* %{_libdir}/libTKVRML.so.* %{_libdir}/libTKXmlXCAF.so.* %{_libdir}/libTKBinXCAF.so.* %{_libdir}/libTKRWMesh.so.* %files visualization # Visualization Dependents %{_libdir}/libTKService.so.* %{_libdir}/libTKV3d.so.* # Visualization %{_libdir}/libTKOpenGl.so.* %{_libdir}/libTKMeshVS.so.* %{_libdir}/libTKIVtk.so.* %files ocaf # Application framework %{_libdir}/libTKCDF.so.* %{_libdir}/libTKLCAF.so.* %{_libdir}/libTKCAF.so.* %{_libdir}/libTKBinL.so.* %{_libdir}/libTKXmlL.so.* %{_libdir}/libTKBin.so.* %{_libdir}/libTKXml.so.* %{_libdir}/libTKStdL.so.* %{_libdir}/libTKStd.so.* %{_libdir}/libTKTObj.so.* %{_libdir}/libTKBinTObj.so.* %{_libdir}/libTKXmlTObj.so.* %{_libdir}/libTKVCAF.so.* %files draw # Draw Libraries %{_libdir}/libTKDraw.so.* %{_libdir}/libTKIVtkDraw.so.* %{_libdir}/libTKQADraw.so.* %{_libdir}/libTKTopTest.so.* %{_libdir}/libTKViewerTest.so.* %{_libdir}/libTKXSDRAW.so.* %{_libdir}/libTKDCAF.so.* %{_libdir}/libTKXDEDRAW.so.* %{_libdir}/libTKTObjDRAW.so.* # DRAWEXE application %{_bindir}/DRAWEXE %{_mandir}/man1/DRAWEXE.1.gz %{_datadir}/applications/opencascade-draw.desktop %{_datadir}/icons/hicolor/*/apps/* %files devel %{_bindir}/*.sh %{_includedir}/opencascade %{_libdir}/*.so %{_libdir}/cmake/opencascade/*.cmake %changelog * Mon Nov 04 2019 Richard Shaw - 7.4.0-2 - Update per reviewer requests. * Mon Oct 21 2019 Richard Shaw - 7.4.0-1 - Initial Packaging.