%global major 7
%global minor 8
%global patch 0
%global ver_under %{major}_%{minor}_%{patch}
Name: opencascade
Version: 7.8.0
Release: 1%{?dist}
Summary: SDK intended for development of applications dealing with 3D CAD data
License: LGPLv2+ with exception
URL: https://www.opencascade.com/content/overview
Source0: https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V%{ver_under};sf=tgz#/%{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: occt-config.patch
# Support VTK 9.2 - mainly moving X11 headers after vtk ones
# https://tracker.dev.opencascade.org/view.php?id=33164
# https://gitlab.kitware.com/vtk/vtk/-/issues/18683
#Patch1: opencascade-vtk.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
%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
Requires: vtk-devel
%description devel
OpenCASCADE CAE platform library development files
%prep
%autosetup -p1 -n occt-V%{ver_under}
# 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
# opencascade does some manual install trickery that does not respect DESTDIR.
# Make DESTDIR an 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_VTK=False \
-D3RDPARTY_VTK_LIBRARY_DIR=%{_libdir} \
-D3RDPARTY_VTK_INCLUDE_DIR=%{_includedir} \
-DINSTALL_DIR_LIB=%{_lib} \
-DINSTALL_DIR_CMAKE=%{_lib}/cmake/%{name}
%cmake_build
%install
%cmake_install
# Draw binary should not be versioned.
mv %{buildroot}%{_bindir}/DRAWEXE-* \
%{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}/libTKDESTEP.so.*
%{_libdir}/libTKDEIGES.so.*
%{_libdir}/libTKXCAF.so.*
%{_libdir}/libTKDE.so.*
%{_libdir}/libTKDECascade.so.*
%{_libdir}/libTKDEGLTF.so.*
%{_libdir}/libTKDEOBJ.so.*
%{_libdir}/libTKDEPLY.so.*
%{_libdir}/libTKDESTL.so.*
%{_libdir}/libTKDEVRML.so.*
%{_libdir}/libTKXmlXCAF.so.*
%{_libdir}/libTKBinXCAF.so.*
%{_libdir}/libTKRWMesh.so.*
%{_libdir}/libTKExpress.so.*
%files visualization
# Visualization Dependents
%{_libdir}/libTKService.so.*
%{_libdir}/libTKV3d.so.*
# Visualization
%{_libdir}/libTKOpenGl.so.*
%{_libdir}/libTKOpenGlTest.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}/libTKXSDRAWDE.so.*
%{_libdir}/libTKXSDRAWGLTF.so.*
%{_libdir}/libTKXSDRAWIGES.so.*
%{_libdir}/libTKXSDRAWOBJ.so.*
%{_libdir}/libTKXSDRAWPLY.so.*
%{_libdir}/libTKXSDRAWSTEP.so.*
%{_libdir}/libTKXSDRAWSTL.so.*
%{_libdir}/libTKXSDRAWVRML.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
%{_bindir}/ExpToCasExe*
%{_includedir}/opencascade
%{_libdir}/*.so
%{_libdir}/cmake/opencascade/*.cmake
%changelog
* Tue Feb 20 2024 Richard Shaw <hobbes1069@gmail.com> - 7.8.0-1
- Update to 7.8.0.
* Thu Feb 1 2024 Richard Shaw <hobbes1069@gmail.com> - 7.7.2-1
- Update to 7.7.0.
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.6.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.6.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.6.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.6.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Jan 14 2023 Orion Poplawski <orion@nwra.com> - 7.6.3-2
- Add patch for vtk 9.2 support
- Rebuild for vtk 9.2.5
* Wed Oct 26 2022 Richard Shaw <hobbes1069@gmail.com> - 7.6.3-1
- Update to 7.6.3.
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.5.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.5.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Nov 25 2021 Orion Poplawski <orion@nwra.com> - 7.5.0-5
- Rebuild for vtk 9.1.0
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 7.5.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Sun Jan 31 2021 Orion Poplawski <orion@nwra.com> - 7.5.0-3
- Rebuild for VTK 9
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 7.5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sun Nov 08 2020 Richard Shaw <hobbes1069@gmail.com> - 7.5.0-1
- Update to 7.5.0.
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7.4.0-5
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7.4.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7.4.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Nov 04 2019 Richard Shaw <hobbes1069@gmail.com> - 7.4.0-2
- Update per reviewer requests.
* Mon Oct 21 2019 Richard Shaw <hobbes1069@gmail.com> - 7.4.0-1
- Initial Packaging.