+# TODO: nvtt
+#
+# Conditional build:
+%bcond_with fbx # Autodesk FBX SDK support (proprietary)
+%bcond_with ffmpeg # FFmpeg support, needs ffmpeg < 5
+
Summary: Open Scene Graph - real-time visualization library
Summary(pl.UTF-8): Open Scene Graph - biblioteka do wizualizacji
Name: OpenSceneGraph
-Version: 3.5.1
-Release: 10
+Version: 3.6.5
+Release: 3
License: OpenSceneGraph Public Licence (based on LGPL with exceptions)
Group: X11/Libraries
-Source0: http://trac.openscenegraph.org/downloads/developer_releases/%{name}-%{version}.zip
-# Source0-md5: 71b97b18f11b6c361631fc3e34fb4b67
-#Source1: osg-doxygen-0.9.1.tar.gz
-## Source1-md5: 7e6d785d1b763aaeae03c2dc4c148805
-Patch0: ffmpeg3.patch
-URL: http://www.openscenegraph.org/projects/osg/
-BuildRequires: QtCore-devel
-BuildRequires: QtOpenGL-devel
+#Source0Download: https://github.com/openscenegraph/OpenSceneGraph/releases
+Source0: https://github.com/openscenegraph/OpenSceneGraph/archive/%{name}-%{version}.tar.gz
+# Source0-md5: 51b1c6ee5627246e78b23adbf0aa48f8
+# https://src.fedoraproject.org/rpms/OpenSceneGraph/blob/rawhide/f/OpenSceneGraph_asio.patch
+Patch0: %{name}-asio.patch
+Patch1: %{name}-OpenCASCADE.patch
+Patch2: %{name}-gta.patch
+# https://src.fedoraproject.org/rpms/OpenSceneGraph/blob/rawhide/f/OpenSceneGraph-openexr3.patch
+Patch3: %{name}-openexr3.patch
+URL: https://www.openscenegraph.org/index.php/33-openscenegraph/4-front-page
+BuildRequires: Coin-devel
+BuildRequires: EGL-devel
+BuildRequires: OpenCASCADE-devel >= 7.8.0
+BuildRequires: OpenEXR-devel
+BuildRequires: OpenGL-devel >= 2
+BuildRequires: Qt5Core-devel >= 5
+BuildRequires: Qt5Gui-devel >= 5
+BuildRequires: Qt5OpenGL-devel >= 5
+BuildRequires: Qt5Widgets-devel >= 5
+BuildRequires: SoXt-devel
+BuildRequires: EGL-devel
+BuildRequires: SDL2-devel >= 2
+BuildRequires: asio-devel >= 1.11
+BuildRequires: boost-devel >= 1.37
BuildRequires: cairo-devel
-BuildRequires: cmake
-BuildRequires: freetype-devel
+BuildRequires: cmake >= 2.8.0
+BuildRequires: collada-dom-devel
+BuildRequires: curl-devel
+BuildRequires: dcmtk-devel
+%{?with_fbx:BuildRequires: fbxsdk-devel}
+%{?with_ffmpeg:BuildRequires: ffmpeg-devel}
+BuildRequires: fontconfig-devel
+BuildRequires: freetype-devel >= 2
+BuildRequires: gdal-devel
BuildRequires: giflib-devel
+BuildRequires: glib2-devel >= 2.0
+BuildRequires: gstreamer-plugins-base-devel
BuildRequires: gtk+2-devel
-BuildRequires: gtkglext-devel
+# only for osgviewerGTK, which is not built
+#BuildRequires: gtkglext-devel
+BuildRequires: jasper-devel
+BuildRequires: libgta-devel
BuildRequires: libjpeg-devel
+BuildRequires: liblas-devel
BuildRequires: libpng-devel
-BuildRequires: librsvg-devel
+BuildRequires: librsvg-devel >= 1:2.35
BuildRequires: libtiff-devel
+BuildRequires: libvncserver-devel
+BuildRequires: lua52-devel >= 5.2
BuildRequires: pkgconfig
BuildRequires: poppler-glib-devel
-BuildRequires: qt4-build
-BuildRequires: qt4-qmake
-BuildRequires: rpmbuild(macros) >= 1.600
+BuildRequires: qt5-build >= 5
+BuildRequires: qt5-qmake >= 5
+BuildRequires: rpmbuild(macros) >= 1.605
BuildRequires: unzip
-#BuildRequires: xulrunner-devel
+BuildRequires: xorg-lib-libX11-devel
+BuildRequires: xorg-lib-libXinerama-devel
+BuildRequires: xorg-lib-libXrandr-devel
BuildRequires: zlib-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define specflags -std=c++11
+#define specflags -std=c++11
%description
The Open Scene Graph is a cross-platform C++/OpenGL library for the
Open Scene Graph to wieloplatformowa oparta o C++ i OpenGL biblioteka
do wizualizacji w czasie rzeczywistym.
+%package plugins
+Summary: Plugins for Open Scene Graph
+Summary(pl.UTF-8): Wtyczki dla biblioteki Open Scene Graph
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: librsvg-devel >= 1:2.35
+
+%description plugins
+Plugins for Open Scene Graph library.
+
+%description plugins -l pl.UTF-8
+Wtyczki dla biblioteki Open Scene Graph.
+
%package devel
Summary: Header files for Open Scene Graph
Summary(pl.UTF-8): Pliki nagłówkowe dla Open Scene Graph
%description examples -l pl.UTF-8
Przykłady dla biblioteki Open Scene Graph.
-%package plugins
-Summary: Plugins for Open Scene Graph
-Summary(pl.UTF-8): Wtyczki dla biblioteki Open Scene Graph
-Group: Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description plugins
-Plugins for Open Scene Graph library.
-
-%description plugins -l pl.UTF-8
-Wtyczki dla biblioteki Open Scene Graph.
-
%prep
-%setup -q
+%setup -q -n %{name}-%{name}-%{version}
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
%build
install -d build
cd build
-%cmake \
- -DDESIRED_QT_VERSION=4 \
-%ifarch x32
+%cmake .. \
+ -DDESIRED_QT_VERSION=5 \
+%if "%{_lib}" == "lib64"
+ -DLIB_POSTFIX=64 \
+%endif
+%if "%{_lib}" == "libx32"
-DLIB_POSTFIX=x32 \
%endif
- ../
+ %{!?with_ffmpeg:-DCMAKE_DISABLE_FIND_PACKAGE_FFmpeg=1} \
+ -DOSG_USE_LOCAL_LUA_SOURCE=OFF
+
%{__make}
%install
%files
%defattr(644,root,root,755)
+%doc AUTHORS.txt ChangeLog LICENSE.txt NEWS.txt README.md
%attr(755,root,root) %{_libdir}/libOpenThreads.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libOpenThreads.so.20
+%attr(755,root,root) %ghost %{_libdir}/libOpenThreads.so.21
%attr(755,root,root) %{_libdir}/libosg.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosg.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosg.so.161
%attr(755,root,root) %{_libdir}/libosgAnimation.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgAnimation.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgAnimation.so.161
%attr(755,root,root) %{_libdir}/libosgDB.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgDB.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgDB.so.161
%attr(755,root,root) %{_libdir}/libosgFX.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgFX.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgFX.so.161
%attr(755,root,root) %{_libdir}/libosgGA.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgGA.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgGA.so.161
%attr(755,root,root) %{_libdir}/libosgManipulator.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgManipulator.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgManipulator.so.161
%attr(755,root,root) %{_libdir}/libosgParticle.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgParticle.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgParticle.so.161
%attr(755,root,root) %{_libdir}/libosgPresentation.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgPresentation.so.141
-%attr(755,root,root) %{_libdir}/libosgQt.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgQt.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgPresentation.so.161
+#%attr(755,root,root) %{_libdir}/libosgQt.so.*.*.*
+#%attr(755,root,root) %ghost %{_libdir}/libosgQt.so.141
%attr(755,root,root) %{_libdir}/libosgShadow.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgShadow.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgShadow.so.161
%attr(755,root,root) %{_libdir}/libosgSim.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgSim.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgSim.so.161
%attr(755,root,root) %{_libdir}/libosgTerrain.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgTerrain.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgTerrain.so.161
%attr(755,root,root) %{_libdir}/libosgText.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgText.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgText.so.161
%attr(755,root,root) %{_libdir}/libosgUI.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgUI.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgUI.so.161
%attr(755,root,root) %{_libdir}/libosgUtil.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgUtil.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgUtil.so.161
%attr(755,root,root) %{_libdir}/libosgViewer.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgViewer.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgViewer.so.161
%attr(755,root,root) %{_libdir}/libosgVolume.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgVolume.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgVolume.so.161
%attr(755,root,root) %{_libdir}/libosgWidget.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libosgWidget.so.141
+%attr(755,root,root) %ghost %{_libdir}/libosgWidget.so.161
%files plugins
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libosgManipulator.so
%attr(755,root,root) %{_libdir}/libosgParticle.so
%attr(755,root,root) %{_libdir}/libosgPresentation.so
-%attr(755,root,root) %{_libdir}/libosgQt.so
+#%attr(755,root,root) %{_libdir}/libosgQt.so
%attr(755,root,root) %{_libdir}/libosgShadow.so
%attr(755,root,root) %{_libdir}/libosgSim.so
%attr(755,root,root) %{_libdir}/libosgTerrain.so
%{_pkgconfigdir}/openscenegraph-osgGA.pc
%{_pkgconfigdir}/openscenegraph-osgManipulator.pc
%{_pkgconfigdir}/openscenegraph-osgParticle.pc
-%{_pkgconfigdir}/openscenegraph-osgQt.pc
+#%{_pkgconfigdir}/openscenegraph-osgQt.pc
%{_pkgconfigdir}/openscenegraph-osgShadow.pc
%{_pkgconfigdir}/openscenegraph-osgSim.pc
%{_pkgconfigdir}/openscenegraph-osgTerrain.pc
%files examples
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/*
+%attr(755,root,root) %{_bindir}/osgarchive
+%attr(755,root,root) %{_bindir}/osgconv
+%attr(755,root,root) %{_bindir}/osgfilecache
+%attr(755,root,root) %{_bindir}/osgversion
+%attr(755,root,root) %{_bindir}/osgviewer
+%attr(755,root,root) %{_bindir}/present3D
%{_examplesdir}/%{name}-%{version}