--- /dev/null
+%bcond_without tests
+#
+Summary: OpenCASCADE Community Edition
+Name: OCE
+Version: 0.16.1
+Release: 1
+License: LGPLv2 with exception
+Group: Applications/Engineering
+URL: https://github.com/tpaviot/oce
+Source0: https://github.com/tpaviot/oce/archive/%{name}-%{version}.tar.gz
+# Source0-md5: 4d591b240c9293e879f50d86a0cb2bb3
+Source1: DRAWEXE.1
+Source2: opencascade-draw.desktop
+Source3: oce-256.png
+Source4: oce-128.png
+Source5: oce-64.png
+Source6: oce-48.png
+# Utilities
+BuildRequires: cmake
+BuildRequires: desktop-file-utils
+# Libraries
+BuildRequires: FreeImage-devel
+BuildRequires: Mesa-libGL-devel
+BuildRequires: Mesa-libGLU-devel
+BuildRequires: ftgl-devel
+BuildRequires: gl2ps-devel
+BuildRequires: libgomp
+BuildRequires: tbb-devel
+BuildRequires: tcl-devel
+BuildRequires: tk-devel
+BuildRequires: xorg-lib-libXScrnSaver-devel
+BuildRequires: xorg-lib-libXcomposite-devel
+BuildRequires: xorg-lib-libXcursor-devel
+BuildRequires: xorg-lib-libXdmcp-devel
+BuildRequires: xorg-lib-libXi-devel
+BuildRequires: xorg-lib-libXinerama-devel
+BuildRequires: xorg-lib-libXmu-devel
+BuildRequires: xorg-lib-libXpm-devel
+BuildRequires: xorg-lib-libXrandr-devel
+BuildRequires: xorg-lib-libXres-devel
+BuildRequires: xorg-lib-libXtst-devel
+BuildRequires: xorg-lib-libXv-devel
+BuildRequires: xorg-lib-libXxf86misc-devel
+BuildRequires: xorg-lib-libxkbfile
+BuildRequires: xorg-proto-xproto-devel
+
+%description
+OpenCASCADE Community Edition (OCE) 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
+Group: 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
+Group: 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
+Group: 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
+Group: 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
+Group: 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
+Group: Libraries
+
+%description draw
+OpenCASCADE CAE DRAW test harness.
+
+%package devel
+Summary: OpenCASCADE CAE platform library development files
+Group: Development/Libraries
+Requires: %{name}-foundation = %{version}-%{release}
+Requires: %{name}-modeling = %{version}-%{release}
+Requires: %{name}-ocaf = %{version}-%{release}
+Requires: %{name}-visualization = %{version}-%{release}
+Requires: FreeImage-devel
+Requires: Mesa-libGL-devel
+Requires: Mesa-libGLU-devel
+Requires: freetype-devel
+Requires: gl2ps-devel
+Requires: tbb-devel
+Requires: tcl-devel
+Requires: tk-devel
+Requires: xorg-lib-libICE-devel
+Requires: xorg-lib-libSM-devel
+Requires: xorg-lib-libX11-devel
+Requires: xorg-lib-libXScrnSaver-devel
+Requires: xorg-lib-libXcomposite-devel
+Requires: xorg-lib-libXcursor-devel
+Requires: xorg-lib-libXdmcp-devel
+Requires: xorg-lib-libXext-devel
+Requires: xorg-lib-libXi-devel
+Requires: xorg-lib-libXinerama-devel
+Requires: xorg-lib-libXpm-devel
+Requires: xorg-lib-libXrandr-devel
+Requires: xorg-lib-libXres-devel
+Requires: xorg-lib-libXtst-devel
+Requires: xorg-lib-libXv-devel
+Requires: xorg-lib-libXxf86misc-devel
+Requires: xorg-lib-libxkbfile
+
+%description devel
+OpenCASCADE CAE platform library development files
+
+%prep
+%setup -q -n oce-%{name}-%{version}
+
+%build
+install -d build
+cd build
+%{cmake} \
+ -DOCE_INSTALL_PREFIX=%{_prefix} \
+ -DOCE_INSTALL_LIB_DIR=%{_lib} \
+ -DOCE_WITH_FREEIMAGE=ON \
+ -DOCE_WITH_GL2PS=ON \
+ -DOCE_MULTITHREAD_LIBRARY:STRING=TBB \
+ -DOCE_DRAW=ON \
+ -DOCE_TESTING=ON \
+ ../
+
+%{__make}
+
+%if %{with tests}
+export CTEST_OUTPUT_ON_FAILURE=1
+%{__make} -C test test
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} -C build install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+# Install manpage for DRAWEXE
+install -Dm 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_mandir}/man1/DRAWEXE.1
+
+# Install and validate desktop file
+desktop-file-install \
+ --dir=$RPM_BUILD_ROOT%{_desktopdir} \
+ %{SOURCE2}
+
+# Install icons
+for size in 256 128 64 48; do
+ icon=%{_sourcedir}/oce-${size}.png
+ install -Dm 0644 $icon \
+ $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${size}x${size}/apps/oce.png
+done
+
+%post foundation -p /sbin/ldconfig
+%postun foundation -p /sbin/ldconfig
+
+%post modeling -p /sbin/ldconfig
+%postun modeling -p /sbin/ldconfig
+
+%post ocaf -p /sbin/ldconfig
+%postun ocaf -p /sbin/ldconfig
+
+%post visualization -p /sbin/ldconfig
+%postun visualization -p /sbin/ldconfig
+
+%post draw
+%update_icon_cache hicolor
+
+%postun draw
+if [ $1 -eq 0 ] ; then
+ %update_icon_cache hicolor
+fi
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files foundation
+%defattr(644,root,root,755)
+%doc AUTHORS LICENSE_LGPL_21.txt NEWS OCCT_LGPL_EXCEPTION.txt
+# Foundation
+%attr(755,root,root) %{_libdir}/libTKernel.so.*
+%attr(755,root,root) %{_libdir}/libTKMath.so.*
+%attr(755,root,root) %{_libdir}/libTKAdvTools.so.*
+%{_datadir}/oce-*.*/
+
+%files modeling
+%defattr(644,root,root,755)
+# Modeling Data
+%attr(755,root,root) %{_libdir}/libTKG2d.so.*
+%attr(755,root,root) %{_libdir}/libTKG3d.so.*
+%attr(755,root,root) %{_libdir}/libTKGeomBase.so.*
+%attr(755,root,root) %{_libdir}/libTKBRep.so.*
+# Modeling Algorithm s
+%attr(755,root,root) %{_libdir}/libTKGeomAlgo.so.*
+%attr(755,root,root) %{_libdir}/libTKTopAlgo.so.*
+%attr(755,root,root) %{_libdir}/libTKPrim.so.*
+%attr(755,root,root) %{_libdir}/libTKBO.so.*
+%attr(755,root,root) %{_libdir}/libTKHLR.so.*
+%attr(755,root,root) %{_libdir}/libTKMesh.so.*
+%attr(755,root,root) %{_libdir}/libTKShHealing.so.*
+%attr(755,root,root) %{_libdir}/libTKXMesh.so.*
+%attr(755,root,root) %{_libdir}/libTKBool.so.*
+%attr(755,root,root) %{_libdir}/libTKFillet.so.*
+%attr(755,root,root) %{_libdir}/libTKFeat.so.*
+%attr(755,root,root) %{_libdir}/libTKOffset.so.*
+# Data exchange
+%attr(755,root,root) %{_libdir}/libTKSTL.so.*
+%attr(755,root,root) %{_libdir}/libTKXSBase.so.*
+%attr(755,root,root) %{_libdir}/libTKSTEPBase.so.*
+%attr(755,root,root) %{_libdir}/libTKIGES.so.*
+%attr(755,root,root) %{_libdir}/libTKSTEPAttr.so.*
+%attr(755,root,root) %{_libdir}/libTKSTEP209.so.*
+%attr(755,root,root) %{_libdir}/libTKSTEP.so.*
+%attr(755,root,root) %{_libdir}/libTKVRML.so.*
+%attr(755,root,root) %{_libdir}/libTKXCAF.so.*
+%attr(755,root,root) %{_libdir}/libTKXCAFSchema.so.*
+%attr(755,root,root) %{_libdir}/libTKXmlXCAF.so.*
+%attr(755,root,root) %{_libdir}/libTKBinXCAF.so.*
+%attr(755,root,root) %{_libdir}/libTKXDEIGES.so.*
+%attr(755,root,root) %{_libdir}/libTKXDESTEP.so.*
+
+%files visualization
+%defattr(644,root,root,755)
+# Visualization Dependents
+%attr(755,root,root) %{_libdir}/libTKService.so.*
+%attr(755,root,root) %{_libdir}/libTKV3d.so.*
+# Visualization
+%attr(755,root,root) %{_libdir}/libTKOpenGl.so.*
+%attr(755,root,root) %{_libdir}/libTKMeshVS.so.*
+%attr(755,root,root) %{_libdir}/libTKNIS.so.*
+%attr(755,root,root) %{_libdir}/libTKVoxel.so.*
+
+%files ocaf
+%defattr(644,root,root,755)
+# Application framework
+%attr(755,root,root) %{_libdir}/libTKCDF.so.*
+%attr(755,root,root) %{_libdir}/libPTKernel.so.*
+%attr(755,root,root) %{_libdir}/libTKLCAF.so.*
+%attr(755,root,root) %{_libdir}/libFWOSPlugin.so.*
+%attr(755,root,root) %{_libdir}/libTKPShape.so.*
+%attr(755,root,root) %{_libdir}/libTKBinL.so.*
+%attr(755,root,root) %{_libdir}/libTKXmlL.so.*
+%attr(755,root,root) %{_libdir}/libTKPLCAF.so.*
+%attr(755,root,root) %{_libdir}/libTKTObj.so.*
+%attr(755,root,root) %{_libdir}/libTKShapeSchema.so.*
+%attr(755,root,root) %{_libdir}/libTKStdLSchema.so.*
+%attr(755,root,root) %{_libdir}/libTKCAF.so.*
+%attr(755,root,root) %{_libdir}/libTKBin.so.*
+%attr(755,root,root) %{_libdir}/libTKXml.so.*
+%attr(755,root,root) %{_libdir}/libTKPCAF.so.*
+%attr(755,root,root) %{_libdir}/libTKBinTObj.so.*
+%attr(755,root,root) %{_libdir}/libTKXmlTObj.so.*
+%attr(755,root,root) %{_libdir}/libTKStdSchema.so.*
+
+%files draw
+%defattr(644,root,root,755)
+# Draw Libraries
+%dir %{_libdir}/oce-*.*
+%attr(755,root,root) %{_libdir}/oce-*.*/libTKDraw.so.*
+%attr(755,root,root) %{_libdir}/oce-*.*/libTKTopTest.so.*
+%attr(755,root,root) %{_libdir}/oce-*.*/libTKViewerTest.so.*
+%attr(755,root,root) %{_libdir}/oce-*.*/libTKXSDRAW.so.*
+%attr(755,root,root) %{_libdir}/oce-*.*/libTKDCAF.so.*
+%attr(755,root,root) %{_libdir}/oce-*.*/libTKXDEDRAW.so.*
+%attr(755,root,root) %{_libdir}/oce-*.*/libTKTObjDRAW.so.*
+# DRAWEXE application
+%attr(755,root,root) %{_bindir}/DRAWEXE
+%{_mandir}/man1/DRAWEXE.1*
+%{_desktopdir}/opencascade-draw.desktop
+%{_iconsdir}/hicolor/*/apps/*
+
+%files devel
+%defattr(644,root,root,755)
+%doc examples
+%{_includedir}/*
+%attr(755,root,root) %{_libdir}/*.so
+%attr(755,root,root) %{_libdir}/oce-*.*/*.so
+%{_libdir}/oce-*.*/*.cmake