Name: Coin4
Version: 4.0.0
Release: 11%{?dist}
Summary: High-level 3D visualization library
License: BSD and GPLv3+
URL: https://github.com/coin3d/coin/wiki
Source0: https://github.com/coin3d/coin/releases/download/Coin-%{version}/coin-%{version}-src.tar.gz
Patch3: 0003-man3.patch
Patch5: 0005-gcc-4.7.patch
Patch6: 0006-inttypes.patch
Patch11: 0011-Fix-SoCamera-manpage.patch
# Per this thread Coin provides a dummy GLX implementation which causes issues
# when running under Wayland so we patch it out.
# https://forum.freecadweb.org/viewtopic.php?f=8&t=33359#p279513
Patch12: coin-no_glx.patch
BuildRequires: cmake
BuildRequires: doxygen
BuildRequires: gcc-c++
BuildRequires: boost-devel
BuildRequires: zlib-devel
BuildRequires: bzip2-devel
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
BuildRequires: mesa-libGL-devel
BuildRequires: mesa-libGLU-devel
BuildRequires: expat-devel
#BuildRequires: libXext-devel
%description
Coin3D is a high-level, retained-mode toolkit for effective 3D graphics
development. It is API compatible with Open Inventor 2.1.
%package devel
Summary: Development files for Coin
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: zlib-devel
Requires: bzip2-devel
Requires: fontconfig-devel
Requires: freetype-devel
Requires: libGLU-devel
Requires: pkgconfig
Requires(post): /usr/sbin/alternatives
Requires(preun): /usr/sbin/alternatives
Provides: pkgconfig(Coin)
%description devel
Development package for Coin.
%package doc
Summary: HTML developer documentation for Coin
%description doc
%{summary}.
%prep
%autosetup -p1 -n coin
# Update doxygen configuration
doxygen -u docs/coin.doxygen.in
#find -name 'Makefile.*' -exec sed -i -e 's,\$(datadir)/Coin,$(datadir)/Coin4,' {} \;
# bogus permissions
find . \( -name '*.h' -o -name '*.cpp' -o -name '*.c' \) -a -executable -exec chmod -x {} \;
# convert sources to utf-8
for a in $(find . -type f -exec file -i {} \; | grep -i iso | sed -e 's,:.*,,'); do \
/usr/bin/iconv -f ISO-8859-1 -t utf-8 $a > $a~; \
mv $a~ $a; \
done
# get rid of bundled boost headers
rm -rf include/boost
%build
%cmake -DCOIN_BUILD_DOCUMENTATION=TRUE \
-DCOIN_BUILD_DOCUMENTATION_MAN=TRUE \
-DHAVE_MULTIPLE_VERSION=TRUE \
-DUSE_EXTERNAL_EXPAT=TRUE
%cmake_build
%install
%cmake_install
cd %{buildroot}%{_mandir}
/usr/bin/rename .3 .3coin4 man3/*
cd -
mkdir -p %{buildroot}%{_libdir}/Coin4
#mkdir -p %{buildroot}%{_bindir}
#cat > %{buildroot}%{_libdir}/Coin4/coin-config << EOF
#coin-config for Coin4 is here for alternatives compatibility only with Coin2/3.
#Use the CMake import targets instead.
#EOF
mv %{buildroot}%{_bindir}/coin-config %{buildroot}%{_libdir}/Coin4/
ln -sr %{_libdir}/Coin4/coin-config %{buildroot}%{_bindir}/coin-config
mv %{buildroot}%{_libdir}/pkgconfig/Coin.pc %{buildroot}%{_libdir}/pkgconfig/Coin4.pc
ln -sr %{_libdir}/pkgconfig/Coin4.pc %{buildroot}%{_libdir}/pkgconfig/Coin.pc
%check
%ctest
%ldconfig_scriptlets
%post devel
link=$(readlink -e "%{_bindir}/coin-config")
if [ "$link" = "%{_bindir}/coin-config" ]; then
rm -f %{_bindir}/coin-config
fi
if [ "$link" = "%{_libdir}/Coin4/coin-config" ]; then
rm -f %{_bindir}/coin-config
fi
/usr/sbin/alternatives --install "%{_bindir}/coin-config" coin-config \
"%{_libdir}/Coin4/coin-config" 80 \
--slave %{_libdir}/pkgconfig/Coin.pc Coin.pc %{_libdir}/pkgconfig/Coin4.pc \
--slave %{_libdir}/libCoin.so libCoin.so %{_libdir}/libCoin.so.80
%preun devel
if [ $1 = 0 ]; then
/usr/sbin/alternatives --remove coin-config "%{_libdir}/Coin4/coin-config"
fi
%files
%doc AUTHORS ChangeLog README{,.UNIX} THANKS FAQ*
%license COPYING
%dir %{_datadir}/Coin4
%{_datadir}/Coin4/scxml
%{_libdir}/libCoin.so.*
%files devel
%ghost %{_bindir}/coin-config
%ghost %{_libdir}/libCoin.so
%ghost %{_libdir}/pkgconfig/Coin.pc
%{_includedir}/Coin4/
%{_libdir}/cmake/Coin-%{version}/
%{_libdir}/Coin4/coin-config
%{_libdir}/pkgconfig/Coin4.pc
%dir %{_datadir}/Coin4
%{_datadir}/Coin4/draggerDefaults
%{_datadir}/Coin4/shaders
%{_infodir}/Coin4/
%{_mandir}/man?/*
%files doc
%{_docdir}/Coin4/html/
%changelog
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.0-7
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Dec 02 2019 Richard Shaw <hobbes1069@gmail.com> - 4.0.0-4
- Disable building with glx as it causes crashes in FreeCAD on wayland.
* Tue Sep 17 2019 Richard Shaw <hobbes1069@gmail.com> - 4.0.0-2
- Update spec file per reviewer comments.
- Change package name from Coin4 to coin.
* Tue Sep 03 2019 Richard Shaw <hobbes1069@gmail.com> - 4.0.0-1
- Initial packaging.