Blob Blame History Raw
%global ver_major 0
%global ver_minor 18

Name:           OCE
Version:        0.18.3
Release:        2%{?dist}
Summary:        OpenCASCADE Community Edition

License:        LGPLv2 with exception
URL:            https://github.com/tpaviot/oce
Source0:        https://github.com/tpaviot/oce/archive/%{name}-%{version}%{?relcan:-rc%{relcan}}.tar.gz
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 gcc gcc-c++
BuildRequires:  desktop-file-utils
# Libraries
BuildRequires:  xorg-x11-proto-devel
BuildRequires:  libXxf86misc-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

# https://fedorahosted.org/fpc/ticket/174
Provides:       bundled(gnulib)


%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:          System Environment/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:          System Environment/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:          System Environment/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:          System Environment/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:          System Environment/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:          System Environment/Libraries

%description draw
OpenCASCADE CAE DRAW test harness.


%package devel
Summary:        OpenCASCADE CAE platform library development files
Group:          Development/Libraries
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:       libXxf86misc-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 -n oce-%{name}-%{version}


%build
rm -rf build && mkdir build && pushd build
# Stop excessive linking that cmake projects are prone to. 
export LDFLAGS="-Wl,--as-needed"
%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
       -DOCE_INSTALL_PREFIX=%{_prefix} \
       -DOCE_INSTALL_LIB_DIR=%{_lib} \
       -DOCE_WITH_FREEIMAGE=ON \
       -DOCE_WITH_GL2PS=ON \
       -DOCE_MULTITHREAD_LIBRARY:STRING=TBB \
       -DCMAKE_SKIP_RPATH=FALSE \
       -DOCE_DRAW=ON \
       -DOCE_TESTING=ON \
       ../

make %{?_smp_mflags}


%install
pushd build
%make_install
popd

# 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}/oce-${size}.png
    install -Dm 0644 $icon \
        %{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/oce.png
done


%check
pushd build/test
export CTEST_OUTPUT_ON_FAILURE=1
make test


%ldconfig_scriptlets foundation
%ldconfig_scriptlets modeling
%ldconfig_scriptlets ocaf
%ldconfig_scriptlets visualization


%files foundation
%doc AUTHORS.md NEWS.md README.md
%license LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt
# Foundation
%{_libdir}/libTKernel.so.*
%{_libdir}/libTKMath.so.*
%{_datadir}/oce-%{ver_major}.%{ver_minor}/

%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}/libTKHLR.so.*
%{_libdir}/libTKMesh.so.*
%{_libdir}/libTKShHealing.so.*
%{_libdir}/libTKXMesh.so.*
%{_libdir}/libTKBool.so.*
%{_libdir}/libTKFillet.so.*
%{_libdir}/libTKFeat.so.*
%{_libdir}/libTKOffset.so.*
# Data exchange
%{_libdir}/libTKSTL.so.*
%{_libdir}/libTKXSBase.so.*
%{_libdir}/libTKSTEPBase.so.*
%{_libdir}/libTKIGES.so.*
%{_libdir}/libTKSTEPAttr.so.*
%{_libdir}/libTKSTEP209.so.*
%{_libdir}/libTKSTEP.so.*
%{_libdir}/libTKVRML.so.*
%{_libdir}/libTKXCAF.so.*
%{_libdir}/libTKXCAFSchema.so.*
%{_libdir}/libTKXmlXCAF.so.*
%{_libdir}/libTKBinXCAF.so.*
%{_libdir}/libTKXDEIGES.so.*
%{_libdir}/libTKXDESTEP.so.*

%files visualization
# Visualization Dependents
%{_libdir}/libTKService.so.*
%{_libdir}/libTKV3d.so.*
# Visualization
%{_libdir}/libTKOpenGl.so.*
%{_libdir}/libTKMeshVS.so.*
%{_libdir}/libTKNIS.so.*
%{_libdir}/libTKVoxel.so.*

%files ocaf
# Application framework
%{_libdir}/libTKCDF.so.*
%{_libdir}/libPTKernel.so.*
%{_libdir}/libTKLCAF.so.*
%{_libdir}/libFWOSPlugin.so.*
%{_libdir}/libTKPShape.so.*
%{_libdir}/libTKBinL.so.*
%{_libdir}/libTKXmlL.so.*
%{_libdir}/libTKPLCAF.so.*
%{_libdir}/libTKTObj.so.*
%{_libdir}/libTKShapeSchema.so.*
%{_libdir}/libTKStdLSchema.so.*
%{_libdir}/libTKCAF.so.*
%{_libdir}/libTKBin.so.*
%{_libdir}/libTKXml.so.*
%{_libdir}/libTKPCAF.so.*
%{_libdir}/libTKBinTObj.so.*
%{_libdir}/libTKXmlTObj.so.*
%{_libdir}/libTKStdSchema.so.*

%files draw
# Draw Libraries
%dir %{_libdir}/oce-%{ver_major}.%{ver_minor}
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKDraw.so.*
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKTopTest.so.*
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKViewerTest.so.*
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKXSDRAW.so.*
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKDCAF.so.*
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKXDEDRAW.so.*
%{_libdir}/oce-%{ver_major}.%{ver_minor}/libTKTObjDRAW.so.*
# DRAWEXE application
%{_bindir}/DRAWEXE
%{_mandir}/man1/DRAWEXE.1.gz
%{_datadir}/applications/opencascade-draw.desktop
%{_datadir}/icons/hicolor/*/apps/*

%files devel
%doc examples
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/oce-%{ver_major}.%{ver_minor}/*.so
%{_libdir}/oce-%{ver_major}.%{ver_minor}/*.cmake


%changelog
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.18.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Wed Feb 14 2018 Richard Shaw <hobbes1069@gmail.com> - 0.18.3-1
- Update to 0.18.3.

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.18.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Mon Aug 14 2017 Richard Shaw <hobbes1069@gmail.com>
- Update to latest upstream release.

* Sun Aug 13 2017 Richard Shaw <hobbes1069@gmail.com> - 0.18.1-2
- Work around xlocale.h which was removed from glibc-headers in 2.26.

* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.18.1-1.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.18.1-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Wed May 10 2017 Richard Shaw <hobbes1069@gmail.com> - 0.18.1-1
- Update to latest upstream release.

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.17.1-2.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Sep 22 2016 Jerry James <loganjerry@gmail.com> - 0.17.1-2
- Rebuild for tbb 2017
- tbb is available on all arches in Fedora and RHEL > 6

* Tue Mar 29 2016 Richard Shaw <hobbes1069@gmail.com> - 0.17.1-1
- Update to latest upstream release.

* Wed Feb 17 2016 Richard Shaw <hobbes1069@gmail.com> - 0.16.1-7
- Apply patch from upstream to address FTBFS with GCC 6.

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-6.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Fri Jan 15 2016 Jerry James <loganjerry@gmail.com> - 0.16.1-6
- Rebuild for tbb 4.4u2

* Tue Jul  7 2015 Richard Shaw <hobbes1069@gmail.com> - 0.16.1-5
- Add OCE-draw to devel package requirements, fixes BZ#1239254.
- Update spec file to use license macro where appropriate.
- Perform hardened builds.

* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.16.1-4.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Thu Apr 30 2015 Jiri Kastner <jkastner@redhat.com> - 0.16.1-4
- added missing libX* dependencies

* Thu Apr 30 2015 Jiri Kastner <jkastner@redhat.com> - 0.16.1-3
- fix tbb and freeimage dependency conditions

* Tue Apr 28 2015 Jiri Kastner <jkastner@redhat.com> - 0.16.1-2
- skipping failing tests on rhel6

* Fri Apr 24 2015 Richard Shaw <hobbes1069@gmail.com> - 0.16.1-1
- Update to latest upstream release.

* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.16-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Mon Jul 21 2014 Richard Shaw <hobbes1069@gmail.com> - 0.16-1
- Update to latest upstream release.

* Fri Jun 06 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Wed May 21 2014 Jaroslav Škarvada <jskarvad@redhat.com> - 0.15-3.1
- Rebuilt for https://fedoraproject.org/wiki/Changes/f21tcl86

* Mon May 19 2014 Richard Shaw <hobbes1069@gmail.com> - 0.15-3
- gxx files no longer empty so stop removing them.

* Sat Feb 15 2014 Richard Shaw <hobbes1069@gmail.com> - 0.15-2
- Update license tag and include LGPL exception file in doc.

* Wed Feb 12 2014 Richard Shaw <hobbes1069@gmail.com> - 0.15-1
- Update to latest upstream release.

* Mon Jan 27 2014 Richard Shaw <hobbes1069@gmail.com> - 0.15-0.2.rc2
- Test build of 0.15 release candidate.

* Thu Oct 10 2013 Richard Shaw <hobbes1069@gmail.com> - 0.13-1
- Update to latest upstream release.

* Mon Jul 15 2013 Richard Shaw <hobbes1069@gmail.com> - 0.12-1
- Update to latest upstream release as it adds some performance enhancements.

* Mon Feb 18 2013 Richard Shaw <hobbes1069@gmail.com> - 0.11-2
- Add tbb-devel as build requirement.

* Fri Feb 15 2013 Richard Shaw <hobbes1069@gmail.com> - 0.11-1
- Update to latest upstream release.

* Wed May 02 2012 Richard Shaw <hobbes1069@gmail.com> - 0.8.0-3
- Update icons.

* Mon Dec 19 2011 Richard Shaw <hobbes1069@gmail.com> - 0.8.0-2
- Build against OpenMP for parallelization.
- Fix problem with OCE overriding build flags.

* Mon Dec 12 2011 Richard Shaw <hobbes1069@gmail.com> - 0.8.0-1
- Update to 0.8.0.
- Use %%{buildroot} consistently.
- Fix excess linking.

* Tue Nov 08 2011 Richard Shaw <hobbes1069@gmail.com> - 0.7.0-1
- Initial release.