5fec6e7
%global commit 7a8128711e768f5b72fd9c4e68ad1893aa0db61f
a565c8d
%global shortcommit %(c=%{commit}; echo ${c:0:7})
a565c8d
%global ver_major 0
5fec6e7
%global ver_minor 17
a565c8d
%global ver_patch 1
0d01f19
0d01f19
Name:           OCE
a565c8d
Version:        %{ver_major}.%{ver_minor}%{?ver_patch:.%{ver_patch}}
5fec6e7
Release:        1%{?relcan:.rc%{relcan}}%{?dist}
0d01f19
Summary:        OpenCASCADE Community Edition
0d01f19
0d01f19
License:        LGPLv2 with exception
0d01f19
URL:            https://github.com/tpaviot/oce
5fec6e7
Source0:        https://github.com/tpaviot/oce/archive/%{name}-%{version}%{?relcan:-rc%{relcan}}.tar.gz
5fec6e7
5fec6e7
Patch0:         OCE-null_ref.patch
0d01f19
0d01f19
Source1:        DRAWEXE.1
0d01f19
Source2:        opencascade-draw.desktop
0d01f19
Source3:        oce-256.png
0d01f19
Source4:        oce-128.png
0d01f19
Source5:        oce-64.png
0d01f19
Source6:        oce-48.png
0d01f19
0d01f19
# Utilities
0d01f19
BuildRequires:  cmake
0d01f19
BuildRequires:  desktop-file-utils
0d01f19
# Libraries
0d01f19
BuildRequires:  xorg-x11-proto-devel
a61fb6f
BuildRequires:  libXxf86misc-devel
a61fb6f
BuildRequires:  libXScrnSaver-devel
a61fb6f
BuildRequires:  libXrandr-devel
a61fb6f
BuildRequires:  libXpm-devel
a61fb6f
BuildRequires:  libxkbfile-devel
a61fb6f
BuildRequires:  libXinerama-devel
a61fb6f
BuildRequires:  libXres-devel
a61fb6f
BuildRequires:  libXtst-devel
a61fb6f
BuildRequires:  libXcomposite-devel
a61fb6f
BuildRequires:  libXcursor-devel
a61fb6f
BuildRequires:  libXdmcp-devel
a61fb6f
BuildRequires:  libXi-devel
a61fb6f
BuildRequires:  libXv-devel
0d01f19
BuildRequires:  mesa-libGL-devel mesa-libGLU-devel
0d01f19
BuildRequires:  libXmu-devel
0d01f19
BuildRequires:  ftgl-devel
5fec6e7
%if ! 0%{?rhel}
0d01f19
BuildRequires:  freeimage-devel
5fec6e7
%endif
0d01f19
BuildRequires:  gl2ps-devel
0d01f19
BuildRequires:  libgomp
0d01f19
BuildRequires:  tcl-devel
0d01f19
BuildRequires:  tk-devel
af4a0ba
# TBB is not available on non-intel arches.
af4a0ba
%ifnarch %arm ppc64
af4a0ba
# TBB in EPEL 6 is too old, use openmpi instead.
af4a0ba
  %if 0%{?fedora} || 0%{?rhel} > 6
0d01f19
BuildRequires:  tbb-devel
af4a0ba
  %else
af4a0ba
BuildRequires:  openmpi-devel
af4a0ba
  %endif
a565c8d
BuildRequires:  openmpi-devel
0d01f19
%endif
0d01f19
0d01f19
# https://fedorahosted.org/fpc/ticket/174
0d01f19
Provides:       bundled(gnulib)
0d01f19
0d01f19
0d01f19
%description
0d01f19
OpenCASCADE Community Edition (OCE) is a suite for 3D surface and solid
0d01f19
modeling, visualization, data exchange and rapid application development. It
0d01f19
is an excellent platform for development of numerical simulation software
0d01f19
including CAD/CAM/CAE, AEC and GIS, as well as PDM applications.
0d01f19
0d01f19
0d01f19
%package foundation
0d01f19
Summary:        OpenCASCADE CAE platform shared libraries
0d01f19
Group:          System Environment/Libraries
0d01f19
0d01f19
%description foundation
0d01f19
OpenCASCADE CAE platform shared libraries
0d01f19
0d01f19
This package contains foundation classes which provide a variety of
0d01f19
general-purpose services such as automated management of heap memory,
0d01f19
exception handling, classes for manipulating aggregates of data, basic
0d01f19
math tools.
0d01f19
0d01f19
0d01f19
%package modeling
0d01f19
Summary:        OpenCASCADE CAE platform shared libraries
0d01f19
Group:          System Environment/Libraries
0d01f19
0d01f19
%description modeling
0d01f19
OpenCASCADE CAE platform shared libraries
0d01f19
0d01f19
This package supplies data structures to represent 2D and 3D geometric models,
0d01f19
as well as topological and geometrical algorithms.
0d01f19
0d01f19
0d01f19
%package ocaf
0d01f19
Summary:        OpenCASCADE CAE platform shared libraries
0d01f19
Group:          System Environment/Libraries
0d01f19
0d01f19
%description ocaf
0d01f19
OpenCASCADE CAE platform shared libraries
0d01f19
0d01f19
This package provides OpenCASCADE Application Framework services and
0d01f19
support for data exchange.
0d01f19
0d01f19
0d01f19
%package visualization
0d01f19
Summary:        OpenCASCADE CAE platform shared libraries
0d01f19
Group:          System Environment/Libraries
0d01f19
0d01f19
%description visualization
0d01f19
OpenCASCADE CAE platform shared libraries
0d01f19
0d01f19
This package provides services for displaying 2D and 3D graphics.
0d01f19
0d01f19
0d01f19
%package examples
0d01f19
Summary:        OpenCASCADE CAE platform shared libraries
0d01f19
Group:          System Environment/Libraries
0d01f19
0d01f19
%description examples
0d01f19
OpenCASCADE CAE platform shared libraries
0d01f19
0d01f19
This package contains example input files for OpenCASCADE in various formats.
0d01f19
0d01f19
0d01f19
%package draw
0d01f19
Summary:        OpenCASCADE CAE platform shared libraries
0d01f19
Group:          System Environment/Libraries
0d01f19
0d01f19
%description draw
0d01f19
OpenCASCADE CAE DRAW test harness.
0d01f19
0d01f19
0d01f19
%package devel
0d01f19
Summary:        OpenCASCADE CAE platform library development files
0d01f19
Group:          Development/Libraries
764eba5
Requires:       %{name}-draw%{?_isa} = %{version}-%{release}
0d01f19
Requires:       %{name}-foundation%{?_isa} = %{version}-%{release}
0d01f19
Requires:       %{name}-modeling%{?_isa} = %{version}-%{release}
0d01f19
Requires:       %{name}-ocaf%{?_isa} = %{version}-%{release}
0d01f19
Requires:       %{name}-visualization%{?_isa} = %{version}-%{release}
a565c8d
Requires:       freeimage-devel
a565c8d
Requires:       freetype-devel
a565c8d
Requires:       gl2ps-devel
a565c8d
Requires:       libICE-devel
a565c8d
Requires:       libSM-devel
a565c8d
Requires:       libX11-devel
a565c8d
Requires:       libXext-devel
a61fb6f
Requires:       libXxf86misc-devel
a61fb6f
Requires:       libXScrnSaver-devel
a61fb6f
Requires:       libXrandr-devel
a61fb6f
Requires:       libXpm-devel
a61fb6f
Requires:       libxkbfile-devel
a61fb6f
Requires:       libXinerama-devel
a61fb6f
Requires:       libXres-devel
a61fb6f
Requires:       libXtst-devel
a61fb6f
Requires:       libXcomposite-devel
a61fb6f
Requires:       libXcursor-devel
a61fb6f
Requires:       libXdmcp-devel
a61fb6f
Requires:       libXi-devel
a61fb6f
Requires:       libXv-devel
a565c8d
Requires:       mesa-libGL-devel
a565c8d
Requires:       mesa-libGLU-devel
af4a0ba
%ifnarch %arm ppc64
af4a0ba
  %if 0%{?fedora} || 0%{?rhel} > 6
af4a0ba
Requires:  tbb-devel
af4a0ba
  %else
af4a0ba
Requires:  openmpi-devel
af4a0ba
  %endif
af4a0ba
Requires:  openmpi-devel
59e28ee
%endif
a565c8d
Requires:       tcl-devel
a565c8d
Requires:       tk-devel
0d01f19
0d01f19
%description devel
0d01f19
OpenCASCADE CAE platform library development files
0d01f19
0d01f19
0d01f19
%prep
a565c8d
%setup -q -n oce-%{name}-%{version}
7d3e91c
%patch0 -p1 -b .null_ref
0d01f19
0d01f19
0d01f19
%build
0d01f19
rm -rf build && mkdir build && pushd build
0d01f19
# Stop excessive linking that cmake projects are prone to. 
0d01f19
export LDFLAGS="-Wl,--as-needed"
3d3d733
# Work around GCC 6 issue
3d3d733
# https://bugzilla.redhat.com/show_bug.cgi?id=1307286
5fec6e7
#CFLAGS='%{optflags} -fno-delete-null-pointer-checks'; export CFLAGS
5fec6e7
#CXXFLAGS='%{optflags} -fno-delete-null-pointer-checks'; export CXXFLAGS
a565c8d
%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
0d01f19
       -DOCE_INSTALL_PREFIX=%{_prefix} \
0d01f19
       -DOCE_INSTALL_LIB_DIR=%{_lib} \
0d01f19
       -DOCE_WITH_FREEIMAGE=ON \
0d01f19
       -DOCE_WITH_GL2PS=ON \
af4a0ba
%ifnarch %arm ppc64
af4a0ba
  %if 0%{?fedora} || 0%{?rhel} > 6
0d01f19
       -DOCE_MULTITHREAD_LIBRARY:STRING=TBB \
af4a0ba
  %else
a565c8d
       -DOCE_MULTITHREAD_LIBRARY:STRING=OPENMP \
5fec6e7
       -DCMAKE_SKIP_RPATH=FALSE \
af4a0ba
  %endif
af4a0ba
%else
af4a0ba
       -DOCE_MULTITHREAD_LIBRARY:STRING=OPENMP \
0d01f19
%endif
0d01f19
       -DOCE_DRAW=ON \
0d01f19
       -DOCE_TESTING=ON \
0d01f19
       ../
0d01f19
0d01f19
make %{?_smp_mflags}
0d01f19
0d01f19
0d01f19
%install
0d01f19
pushd build
b2c3b5e
%make_install
0d01f19
popd
0d01f19
0d01f19
# Install manpage for DRAWEXE
0d01f19
install -Dm 0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/DRAWEXE.1
0d01f19
0d01f19
# Install and validate desktop file
0d01f19
desktop-file-install                           \
0d01f19
    --dir=%{buildroot}%{_datadir}/applications \
0d01f19
    %{SOURCE2}
0d01f19
0d01f19
# Install icons
0d01f19
for size in 256 128 64 48; do
0d01f19
    icon=%{_sourcedir}/oce-${size}.png
0d01f19
    install -Dm 0644 $icon \
0d01f19
        %{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/oce.png
0d01f19
done
0d01f19
5fec6e7
0d01f19
%check
0d01f19
pushd build/test
a565c8d
export CTEST_OUTPUT_ON_FAILURE=1
0d01f19
make test
0d01f19
5fec6e7
0d01f19
%post foundation -p /sbin/ldconfig
0d01f19
%postun foundation -p /sbin/ldconfig
0d01f19
0d01f19
%post modeling -p /sbin/ldconfig
0d01f19
%postun modeling -p /sbin/ldconfig
0d01f19
0d01f19
%post ocaf -p /sbin/ldconfig
0d01f19
%postun ocaf -p /sbin/ldconfig
0d01f19
0d01f19
%post visualization -p /sbin/ldconfig
0d01f19
%postun visualization -p /sbin/ldconfig
0d01f19
0d01f19
%post draw
0d01f19
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
0d01f19
0d01f19
%postun draw
0d01f19
if [ $1 -eq 0 ] ; then
0d01f19
    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
0d01f19
    /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
0d01f19
fi
0d01f19
0d01f19
%posttrans draw
0d01f19
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
0d01f19
0d01f19
0d01f19
%files foundation
5fec6e7
%doc AUTHORS.md NEWS.md README.md
764eba5
%license LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt
0d01f19
# Foundation
0d01f19
%{_libdir}/libTKernel.so.*
0d01f19
%{_libdir}/libTKMath.so.*
a565c8d
%{_datadir}/oce-%{ver_major}.%{ver_minor}/
0d01f19
0d01f19
%files modeling
0d01f19
# Modeling Data
0d01f19
%{_libdir}/libTKG2d.so.*
0d01f19
%{_libdir}/libTKG3d.so.*
0d01f19
%{_libdir}/libTKGeomBase.so.*
0d01f19
%{_libdir}/libTKBRep.so.*
0d01f19
# Modeling Algorithms
0d01f19
%{_libdir}/libTKGeomAlgo.so.*
0d01f19
%{_libdir}/libTKTopAlgo.so.*
0d01f19
%{_libdir}/libTKPrim.so.*
0d01f19
%{_libdir}/libTKBO.so.*
0d01f19
%{_libdir}/libTKHLR.so.*
0d01f19
%{_libdir}/libTKMesh.so.*
0d01f19
%{_libdir}/libTKShHealing.so.*
0d01f19
%{_libdir}/libTKXMesh.so.*
0d01f19
%{_libdir}/libTKBool.so.*
0d01f19
%{_libdir}/libTKFillet.so.*
0d01f19
%{_libdir}/libTKFeat.so.*
0d01f19
%{_libdir}/libTKOffset.so.*
0d01f19
# Data exchange
0d01f19
%{_libdir}/libTKSTL.so.*
0d01f19
%{_libdir}/libTKXSBase.so.*
0d01f19
%{_libdir}/libTKSTEPBase.so.*
0d01f19
%{_libdir}/libTKIGES.so.*
0d01f19
%{_libdir}/libTKSTEPAttr.so.*
0d01f19
%{_libdir}/libTKSTEP209.so.*
0d01f19
%{_libdir}/libTKSTEP.so.*
0d01f19
%{_libdir}/libTKVRML.so.*
0d01f19
%{_libdir}/libTKXCAF.so.*
0d01f19
%{_libdir}/libTKXCAFSchema.so.*
0d01f19
%{_libdir}/libTKXmlXCAF.so.*
0d01f19
%{_libdir}/libTKBinXCAF.so.*
0d01f19
%{_libdir}/libTKXDEIGES.so.*
0d01f19
%{_libdir}/libTKXDESTEP.so.*
0d01f19
0d01f19
%files visualization
0d01f19
# Visualization Dependents
0d01f19
%{_libdir}/libTKService.so.*
0d01f19
%{_libdir}/libTKV3d.so.*
0d01f19
# Visualization
0d01f19
%{_libdir}/libTKOpenGl.so.*
0d01f19
%{_libdir}/libTKMeshVS.so.*
0d01f19
%{_libdir}/libTKNIS.so.*
0d01f19
%{_libdir}/libTKVoxel.so.*
0d01f19
0d01f19
%files ocaf
0d01f19
# Application framework
0d01f19
%{_libdir}/libTKCDF.so.*
0d01f19
%{_libdir}/libPTKernel.so.*
0d01f19
%{_libdir}/libTKLCAF.so.*
0d01f19
%{_libdir}/libFWOSPlugin.so.*
0d01f19
%{_libdir}/libTKPShape.so.*
0d01f19
%{_libdir}/libTKBinL.so.*
0d01f19
%{_libdir}/libTKXmlL.so.*
0d01f19
%{_libdir}/libTKPLCAF.so.*
0d01f19
%{_libdir}/libTKTObj.so.*
0d01f19
%{_libdir}/libTKShapeSchema.so.*
0d01f19
%{_libdir}/libTKStdLSchema.so.*
0d01f19
%{_libdir}/libTKCAF.so.*
0d01f19
%{_libdir}/libTKBin.so.*
0d01f19
%{_libdir}/libTKXml.so.*
0d01f19
%{_libdir}/libTKPCAF.so.*
0d01f19
%{_libdir}/libTKBinTObj.so.*
0d01f19
%{_libdir}/libTKXmlTObj.so.*
0d01f19
%{_libdir}/libTKStdSchema.so.*
0d01f19
0d01f19
%files draw
0d01f19
# Draw Libraries
a565c8d
%dir %{_libdir}/oce-%{ver_major}.%{ver_minor}
a565c8d
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKDraw.so.*
a565c8d
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKTopTest.so.*
a565c8d
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKViewerTest.so.*
a565c8d
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKXSDRAW.so.*
a565c8d
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKDCAF.so.*
a565c8d
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKXDEDRAW.so.*
a565c8d
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKTObjDRAW.so.*
0d01f19
# DRAWEXE application
0d01f19
%{_bindir}/DRAWEXE
0d01f19
%{_mandir}/man1/DRAWEXE.1.gz
0d01f19
%{_datadir}/applications/opencascade-draw.desktop
0d01f19
%{_datadir}/icons/hicolor/*/apps/*
0d01f19
0d01f19
%files devel
0d01f19
%doc examples
0d01f19
%{_includedir}/*
0d01f19
%{_libdir}/*.so
a565c8d
%{_libdir}/oce-%{ver_major}.%{ver_minor}/*.so
a565c8d
%{_libdir}/oce-%{ver_major}.%{ver_minor}/*.cmake
0d01f19
0d01f19
0d01f19
%changelog
5fec6e7
* Tue Mar 29 2016 Richard Shaw <hobbes1069@gmail.com> - 0.17.1-1
5fec6e7
- Update to latest upstream release.
5fec6e7
7d3e91c
* Wed Feb 17 2016 Richard Shaw <hobbes1069@gmail.com> - 0.16.1-7
7d3e91c
- Apply patch from upstream to address FTBFS with GCC 6.
7d3e91c
ce7b340
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-6.2
ce7b340
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
ce7b340
4dc3e77
* Fri Jan 15 2016 Jerry James <loganjerry@gmail.com> - 0.16.1-6
4dc3e77
- Rebuild for tbb 4.4u2
4dc3e77
764eba5
* Tue Jul  7 2015 Richard Shaw <hobbes1069@gmail.com> - 0.16.1-5
764eba5
- Add OCE-draw to devel package requirements, fixes BZ#1239254.
764eba5
- Update spec file to use license macro where appropriate.
764eba5
- Perform hardened builds.
764eba5
a165183
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.16.1-4.1
a165183
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
a165183
a61fb6f
* Thu Apr 30 2015 Jiri Kastner <jkastner@redhat.com> - 0.16.1-4
a61fb6f
- added missing libX* dependencies
a61fb6f
59e28ee
* Thu Apr 30 2015 Jiri Kastner <jkastner@redhat.com> - 0.16.1-3
59e28ee
- fix tbb and freeimage dependency conditions
59e28ee
05a80be
* Tue Apr 28 2015 Jiri Kastner <jkastner@redhat.com> - 0.16.1-2
05a80be
- skipping failing tests on rhel6
05a80be
a565c8d
* Fri Apr 24 2015 Richard Shaw <hobbes1069@gmail.com> - 0.16.1-1
a565c8d
- Update to latest upstream release.
a565c8d
10d7f94
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.16-1.1
10d7f94
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
10d7f94
fd0cf76
* Mon Jul 21 2014 Richard Shaw <hobbes1069@gmail.com> - 0.16-1
fd0cf76
- Update to latest upstream release.
fd0cf76
fd0cf76
* Fri Jun 06 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
73305a9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
73305a9
ffb9b22
* Wed May 21 2014 Jaroslav Škarvada <jskarvad@redhat.com> - 0.15-3.1
ffb9b22
- Rebuilt for https://fedoraproject.org/wiki/Changes/f21tcl86
ffb9b22
b2c3b5e
* Mon May 19 2014 Richard Shaw <hobbes1069@gmail.com> - 0.15-3
b2c3b5e
- gxx files no longer empty so stop removing them.
b2c3b5e
0d01f19
* Sat Feb 15 2014 Richard Shaw <hobbes1069@gmail.com> - 0.15-2
0d01f19
- Update license tag and include LGPL exception file in doc.
0d01f19
0d01f19
* Wed Feb 12 2014 Richard Shaw <hobbes1069@gmail.com> - 0.15-1
0d01f19
- Update to latest upstream release.
0d01f19
0d01f19
* Mon Jan 27 2014 Richard Shaw <hobbes1069@gmail.com> - 0.15-0.2.rc2
0d01f19
- Test build of 0.15 release candidate.
0d01f19
0d01f19
* Thu Oct 10 2013 Richard Shaw <hobbes1069@gmail.com> - 0.13-1
0d01f19
- Update to latest upstream release.
0d01f19
0d01f19
* Mon Jul 15 2013 Richard Shaw <hobbes1069@gmail.com> - 0.12-1
0d01f19
- Update to latest upstream release as it adds some performance enhancements.
0d01f19
0d01f19
* Mon Feb 18 2013 Richard Shaw <hobbes1069@gmail.com> - 0.11-2
0d01f19
- Add tbb-devel as build requirement.
0d01f19
0d01f19
* Fri Feb 15 2013 Richard Shaw <hobbes1069@gmail.com> - 0.11-1
0d01f19
- Update to latest upstream release.
0d01f19
0d01f19
* Wed May 02 2012 Richard Shaw <hobbes1069@gmail.com> - 0.8.0-3
0d01f19
- Update icons.
0d01f19
0d01f19
* Mon Dec 19 2011 Richard Shaw <hobbes1069@gmail.com> - 0.8.0-2
0d01f19
- Build against OpenMP for parallelization.
0d01f19
- Fix problem with OCE overriding build flags.
0d01f19
0d01f19
* Mon Dec 12 2011 Richard Shaw <hobbes1069@gmail.com> - 0.8.0-1
0d01f19
- Update to 0.8.0.
0d01f19
- Use %%{buildroot} consistently.
0d01f19
- Fix excess linking.
0d01f19
0d01f19
* Tue Nov 08 2011 Richard Shaw <hobbes1069@gmail.com> - 0.7.0-1
0d01f19
- Initial release.