# # Copyright (c) 2005, 2006, 2007, 2008 Ralf Corsepius, Ulm, Germany. # This file and all modifications and additions to the pristine # package are under the same license as the package itself. # %define apivers 2.8.2 %define srcvers 2.8.2 # HACK: Work around to yum not being able to remove packages %define _obsolete_Producer 1 # Force pushing out OSG1's Producer %define OSG1_Producer 1:1.2-0 Name: OpenSceneGraph Version: %{apivers} Release: 1%{?dist} Summary: High performance real-time graphics toolkit Group: Applications/Multimedia # The OSGPL is just the wxWidgets license. License: wxWidgets URL: http://www.openscenegraph.org/ Source0: http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-%{srcvers}/OpenSceneGraph-%{version}.zip Patch0: OpenSceneGraph-%{version}.diff BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libGL-devel BuildRequires: libGLU-devel BuildRequires: libXmu-devel BuildRequires: libX11-devel BuildRequires: Inventor-devel BuildRequires: freeglut-devel BuildRequires: libjpeg-devel BuildRequires: libungif-devel BuildRequires: libtiff-devel BuildRequires: libpng-devel BuildRequires: doxygen graphviz BuildRequires: cmake BuildRequires: wxGTK-devel %if "%{version}" >= "2.4.0" BuildRequires: curl-devel %endif BuildRequires: qt-devel BuildRequires: SDL-devel BuildRequires: fltk-devel # OSG packaging madness ;) %if "%{version}" >= "2.6.0" %define OSGSRCDIR OpenSceneGraph-%{version} %else %if "%{version}" >= "2.4.0" %define OSGSRCDIR OpenSceneGraph %else %if "%{version}" >= "2.2.0" %define OSGSRCDIR OpenSceneGraph-%{version} %else %define OSGSRCDIR OpenSceneGraph %endif %endif %endif %if "%{name}" == "OpenSceneGraph" Provides: OpenSceneGraph2 = %{version}-%{release} %endif %description The OpenSceneGraph is an OpenSource, cross platform graphics toolkit for the development of high performance graphics applications such as flight simulators, games, virtual reality and scientific visualization. Based around the concept of a SceneGraph, it provides an object oriented framework on top of OpenGL freeing the developer from implementing and optimizing low level graphics calls, and provides many additional utilities for rapid development of graphics applications. %prep %setup -q -c cd %{OSGSRCDIR} %{?PATCH0:%patch0 -p1} %if "%{version}" >= "2.4.0" sed -i \ -e 's,^OUTPUT_DIRECTORY.*doc/,OUTPUT_DIRECTORY = doc,' \ -e 's,^HTML_OUTPUT[ ]*= OpenSceneGraphReferenceDocs,HTML_OUTPUT = html,' \ doc/Doxyfiles/doxyfile.cmake %endif cd .. %build mkdir -p BUILD pushd BUILD %if "%{version}" >= "2.4.0" # [2009-08-12 ES] leading '%' is syntax error #%cmake -DBUILD_OSG_EXAMPLES=ON -DBUILD_OSG_WRAPPERS=ON -DBUILD_DOCUMENTATION=ON ../%{OSGSRCDIR} cmake -DBUILD_OSG_EXAMPLES=ON -DBUILD_OSG_WRAPPERS=ON -DBUILD_DOCUMENTATION=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr ../%{OSGSRCDIR} %else # Should add -DBUILD_DOCUMENTATION=ON, but it's broken # [2009-08-12 ES] leading '%' is syntax error cmake -DBUILD_OSG_EXAMPLES=ON -DBUILD_OSG_WRAPPERS=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr ../%{OSGSRCDIR} %endif make VERBOSE=1 %{?_smp_mflags} # [2009-08-12 ES] Documentation seems to be broken #%if "%{version}" >= "2.4.0" #make DoxygenDoc #%else ## Manually invoke doxygen, because doc-building is broken in OSG's cmake stuff #OSGHOME=../%{OSGSRCDIR} doxygen ../%{OSGSRCDIR}/doc/Doxyfiles/core_Doxyfile #%endif popd # HACK: Upstream stuff lacks cmake support and is broken # [2009-08-12 ES] Hack seems not to work. .pc files seem to be missing. #sed -i -e 's,^prefix=.*$,prefix=%{_prefix},' \ # -e 's,^libdir=.*$,libdir=%{_libdir},' \ # -e 's,^includedir=.*$,includedir=%{_includedir},' \ # -e '/^Conflicts.*$/d' \ # %{OSGSRCDIR}/packaging/pkgconfig/openscenegraph.pc \ # %{OSGSRCDIR}/packaging/pkgconfig/openthreads.pc #%if "%{version}" < "2.2.0" #sed -i -e 's,Version:.*,Version: 2.0.0,' \ # %{OSGSRCDIR}/packaging/pkgconfig/openscenegraph.pc #sed -i -e 's,Version:.*,Version: 1.9.5,' \ # %{OSGSRCDIR}/packaging/pkgconfig/openthreads.pc #%endif %install rm -rf $RPM_BUILD_ROOT pushd BUILD make install DESTDIR=${RPM_BUILD_ROOT} # Supposed to take OpenSceneGraph data mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/OpenSceneGraph popd # Abandoned w/ 2.0 by upstream, re-added to 2.1.* # [2009-08-12 ES] These files seem not to be present. #install -m 644 -D %{OSGSRCDIR}/packaging/pkgconfig/openthreads.pc \ # ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig/openthreads.pc #install -m 644 -D %{OSGSRCDIR}/packaging/pkgconfig/openscenegraph.pc \ # ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig/openscenegraph.pc %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %doc %{OSGSRCDIR}/{AUTHORS,LICENSE,NEWS,README}.txt %{_bindir}/osgarchive %{_bindir}/osgconv %{_bindir}/osgversion %{_bindir}/osgviewer %if "%{version}" >= "2.6.0" %{_bindir}/osgfilecache %endif %package libs Summary: Devel files for OpenSceneGraph Group: Applications/Multimedia %if "%{name}" == "OpenSceneGraph" Provides: OpenSceneGraph2-libs = %{version}-%{release} %endif %if %{?_obsolete_Producer} # HACK: Upstream abandoned Producer, but yum doesn't want to remove packages. # Required to let yum remove Producer (from OSG-1) Obsoletes: Producer <= %{OSG1_Producer} %endif %description libs Runtime libraries files for OpenSceneGraph. %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %files libs %defattr(-,root,root,-) %{_libdir}/osgPlugins-%{apivers} %{_libdir}/libosg*.so.* %package devel Summary: Devel files for OpenSceneGraph Group: Applications/Multimedia %if "%{name}" == "OpenSceneGraph" Provides: OpenSceneGraph2-devel = %{version}-%{release} %endif Requires: OpenSceneGraph2-libs = %{version}-%{release} Requires: pkgconfig Requires: OpenThreads-devel %if %{?_obsolete_Producer} # HACK: Upstream abandoned Producer, but yum doesn't want to remove packages. # Required to let yum remove Producer (from OSG-1) Obsoletes: Producer-devel <= %{OSG1_Producer} %endif %description devel Development files for OpenSceneGraph. %files devel %defattr(-,root,root,-) # [2009-08-14 ES] Documentation is broken #%doc BUILD/doc/html %{_includedir}/osg* %{_libdir}/pkgconfig/openscenegraph.pc %{_libdir}/libosg*.so /usr/doc/OpenSceneGraphReferenceDocs %package examples-SDL Summary: OSG sample applications using SDL Group: Applications/Multimedia %if "%{name}" == "OpenSceneGraph" Provides: OpenSceneGraph2-examples-SDL = %{version}-%{release} %endif %description examples-SDL OSG sample applications using SDL %files examples-SDL %defattr(-,root,root,-) %{_bindir}/osgviewerSDL %package examples-fltk Summary: OSG sample applications using FLTK Group: Applications/Multimedia %if "%{name}" == "OpenSceneGraph" Provides: OpenSceneGraph2-examples-fltk = %{version}-%{release} %endif %description examples-fltk OSG sample applications using FLTK %files examples-fltk %defattr(-,root,root,-) %{_bindir}/osgviewerFLTK %package examples-qt Summary: OSG sample applications using qt Group: Applications/Multimedia %if "%{name}" == "OpenSceneGraph" Provides: OpenSceneGraph2-examples-qt = %{version}-%{release} %endif %description examples-qt OSG sample applications using qt %files examples-qt %defattr(-,root,root,-) %{_bindir}/osgviewerQT # OpenSceneGraph-examples %package examples Summary: Sample applications for OpenSceneGraph Group: Applications/Multimedia %if "%{name}" == "OpenSceneGraph" Provides: OpenSceneGraph2-examples = %{version}-%{release} %endif %description examples Sample applications for OpenSceneGraph %files examples %defattr(-,root,root,-) %if "%{version}" >= "2.8.2" %{_bindir}/osg2cpp %{_bindir}/osganimationmakepath %{_bindir}/osganimationnode %{_bindir}/osganimationskinning %{_bindir}/osganimationsolid %{_bindir}/osganimationtimeline %{_bindir}/osganimationviewer %{_bindir}/osgautocapture %{_bindir}/osgbrowser %{_bindir}/osgcluster %{_bindir}/osgdrawinstanced %{_bindir}/osggameoflife %{_bindir}/osgmemorytest %{_bindir}/osgpackeddepthstencil %{_bindir}/osgpdf %{_bindir}/osgrobot %{_bindir}/osgsidebyside %{_bindir}/osgwidgetmessagebox %{_bindir}/osgwidgetperformance %endif %if "%{version}" >= "2.6.0" %{_bindir}/osgfilecache %{_bindir}/osgfont %{_bindir}/osgimagesequence %{_bindir}/osgkdtree %{_bindir}/osgscreencapture %{_bindir}/osgwidgetaddremove %{_bindir}/osgwidgetbox %{_bindir}/osgwidgetcanvas %{_bindir}/osgwidgetframe %{_bindir}/osgwidgetinput %{_bindir}/osgwidgetlabel %{_bindir}/osgwidgetmenu %{_bindir}/osgwidgetnotebook %{_bindir}/osgwidgetscrolled %{_bindir}/osgwidgetshader %{_bindir}/osgwidgetstyled %{_bindir}/osgwidgettable %{_bindir}/osgwidgetwindow %endif %if "%{version}" >= "2.4.0" %{_bindir}/osggeometryshaders %{_bindir}/osgmultiplerendertargets %{_bindir}/osgmultitexturecontrol %{_bindir}/osgocclusionquery %{_bindir}/osgsharedarray %{_bindir}/osgstereomatch %{_bindir}/osgtext3D %{_bindir}/osgthirdpersonview %endif %if "%{version}" >= "2.2.0" %{_bindir}/osgdepthpeeling %endif %{_bindir}/osganimate %{_bindir}/osgautotransform %{_bindir}/osgbillboard %{_bindir}/osgblendequation %{_bindir}/osgcallback %{_bindir}/osgcamera %{_bindir}/osgcatch %{_bindir}/osgclip %if "%{version}" < "2.0" # doesn't build w/ 2.0 %{_bindir}/osgcluster %endif %{_bindir}/osgcompositeviewer %{_bindir}/osgcopy %{_bindir}/osgcubemap %{_bindir}/osgdelaunay %{_bindir}/osgdepthpartition %if "%{version}" < "2.2.0" %{_bindir}/osgdepthshadow %endif %{_bindir}/osgdistortion %{_bindir}/osgfadetext %{_bindir}/osgforest %{_bindir}/osgfxbrowser %{_bindir}/osggeodemo %{_bindir}/osggeometry %{_bindir}/osghangglide %{_bindir}/osghud %{_bindir}/osgimpostor %{_bindir}/osgintersection %{_bindir}/osgintrospection %{_bindir}/osgkeyboard %{_bindir}/osgkeyboardmouse %{_bindir}/osglauncher %{_bindir}/osglight %{_bindir}/osglightpoint %{_bindir}/osglogicop %{_bindir}/osglogo %{_bindir}/osgmanipulator %{_bindir}/osgmotionblur %{_bindir}/osgmovie %{_bindir}/osgmultitexture %{_bindir}/osgoccluder %{_bindir}/osgpagedlod %{_bindir}/osgparametric %{_bindir}/osgparticle %{_bindir}/osgparticleeffects %{_bindir}/osgpick %{_bindir}/osgplanets %{_bindir}/osgpoints %{_bindir}/osgpointsprite %{_bindir}/osgprecipitation %{_bindir}/osgprerender %{_bindir}/osgprerendercubemap %{_bindir}/osgreflect %{_bindir}/osgscalarbar %{_bindir}/osgscribe %{_bindir}/osgsequence %{_bindir}/osgshaders %{_bindir}/osgshaderterrain %{_bindir}/osgshadow %if "%{version}" < "2.2.0" %{_bindir}/osgshadowtexture %endif %{_bindir}/osgshape %{_bindir}/osgsimplifier %{_bindir}/osgslice %{_bindir}/osgspacewarp %{_bindir}/osgspheresegment %{_bindir}/osgspotlight %{_bindir}/osgstereoimage %{_bindir}/osgteapot %{_bindir}/osgterrain %{_bindir}/osgtessellate %{_bindir}/osgtext %{_bindir}/osgtexture1D %{_bindir}/osgtexture2D %{_bindir}/osgtexture3D %{_bindir}/osgtexturerectangle %{_bindir}/osgunittests %{_bindir}/osgvertexprogram %{_bindir}/osgviewerGLUT %{_bindir}/osgviewerWX %{_bindir}/osgvolume %{_bindir}/osgwindows %{_bindir}/osgphotoalbum %{_bindir}/osgsimulation %{_datadir}/OpenSceneGraph # OpenThreads %package -n OpenThreads Summary: OpenThreads Group: Applications/Multimedia License: wxWidgets %description -n OpenThreads OpenThreads is intended to provide a minimal & complete Object-Oriented (OO) thread interface for C++ programmers. It is loosely modeled on the Java thread API, and the POSIX Threads standards. The architecture of the library is designed around "swappable" thread models which are defined at compile-time in a shared object library. %post -n OpenThreads -p /sbin/ldconfig %postun -n OpenThreads -p /sbin/ldconfig %files -n OpenThreads %defattr(-,root,root,-) %doc %{OSGSRCDIR}/{AUTHORS,LICENSE,NEWS,README}.txt %{_libdir}/libOpenThreads.so.* # OpenThreads-devel %package -n OpenThreads-devel Summary: Devel files for OpenThreads Group: Applications/Multimedia License: wxWidgets Requires: OpenThreads = %{version}-%{release} Requires: pkgconfig %description -n OpenThreads-devel Development files for OpenThreads. %files -n OpenThreads-devel %defattr(-,root,root,-) %{_libdir}/pkgconfig/openthreads.pc %{_libdir}/libOpenThreads.so %{_includedir}/OpenThreads /usr/doc/OpenThreadsReferenceDocs %changelog * Wed Aug 12 2009 Eric Sokolowsky - 2.8.2-1 - Upgrade to OSG-2.8.2. - Fixed syntax errors (inexplicable leading '%' symbol) when invoking cmake. - Disabled generation of Doxygen documentation, which seems to be broken. - Removed old hacks. - Removed .pc files. - Changed default root to /usr from /usr/local. * Wed Aug 14 2008 Ralf Corsépius - 2.6.0-1 - Upgrade to OSG-2.6.0. * Wed Aug 13 2008 Ralf Corsépius - 2.4.0-4 - Preps for 2.6.0. - Reflect the Source0-URL having changed. - Major spec-file overhaul. * Thu May 22 2008 Tom "spot" Callaway - 2.4.0-3 - fix license tag * Tue May 13 2008 Ralf Corsépius - 2.4.0-2 - Add Orion Poplawski's patch to fix building with cmake-2.6.0. * Mon May 12 2008 Ralf Corsépius - 2.4.0-1 - Upstream update. - Adjust patches to 2.4.0. * Mon Feb 11 2008 Ralf Corsépius - 2.2.0-5 - Add *-examples-SDL package. - Add osgviewerSDL. - Add *-examples-fltk package. - Add osgviewerFLTK. - Add *-examples-qt package. - Move osgviewerQT to *-examples-qt package. * Mon Feb 11 2008 Ralf Corsépius - 2.2.0-4 - Rebuild for gcc43. - OpenSceneGraph-2.2.0.diff: Add gcc43 hacks. * Wed Nov 28 2007 Ralf Corsépius - 2.2.0-3 - Re-add apivers. - Rebuild against doxygen-1.5.3-1 (BZ 343591). * Thu Nov 02 2007 Ralf Corsépius - 2.2.0-2 - Add qt. * Thu Nov 01 2007 Ralf Corsépius - 2.2.0-1 - Upstream upgrade. - Reflect Source0-URL having changed once again. - Reflect upstream packaging changes to spec. * Sat Oct 20 2007 Ralf Corsépius - 2.0-8 - Reflect Source0-URL having changed. * Thu Sep 27 2007 Ralf Corsépius - 2.0-7 - Let OpenSceneGraph-libs Obsoletes: Producer - Let OpenSceneGraph-devel Obsoletes: Producer-devel. * Wed Sep 26 2007 Ralf Corsépius - 2.0-6 - By public demand, add upstream's *.pcs. - Add hacks to work around the worst bugs in *.pcs. - Add OpenSceneGraph2-devel. - Move ldconfig to *-libs. - Abandon OpenThreads2. - Remove obsolete applications. * Wed Aug 22 2007 Ralf Corsépius - 2.0-5 - Prepare renaming package into OpenSceneGraph2. - Split out run-time libs into *-libs subpackage. - Rename pkgconfig files into *-2.pc. - Reactivate ppc64. - Mass rebuild. * Sat Jun 30 2007 Ralf Corsépius - 2.0-4 - Cleanup CVS. - Add OSG1_Producer define. * Fri Jun 29 2007 Ralf Corsépius - 2.0-3 - Re-add (but don't ship) *.pc. - Let OpenSceneGraph "Obsolete: Producer". - Let OpenSceneGraph-devel "Obsolete: Producer-devel". * Wed Jun 27 2007 Ralf Corsépius - 2.0-2 - Build docs. * Fri Jun 22 2007 Ralf Corsépius - 2.0-1 - Upgrade to 2.0. * Thu Jun 21 2007 Ralf Corsépius - 1.2-4 - ExcludeArch: ppc64 (BZ 245192, 245196). * Thu Jun 21 2007 Ralf Corsépius - 1.2-3 - Remove demeter (Defective, abandoned by upstream). * Wed Mar 21 2007 Ralf Corsépius - 1.2-2 - Attempt to build with gdal enabled. * Wed Oct 05 2006 Ralf Corsépius - 1.2-1 - Upstream update. - Remove BR: flex bison. - Drop osgfbo and osgpbuffer. * Tue Sep 05 2006 Ralf Corsépius - 1.1-2 - Mass rebuild. * Thu Aug 24 2006 Ralf Corsépius - 1.1-1 - Upstream update. * Sat Jul 08 2006 Ralf Corsépius - 1.0-5 - Rebuilt to with gcc-4.1.1-6. * Tue Jun 07 2006 Ralf Corsépius - 1.0-4 - Try to avoid adding SONAMEs on plugins and applications. * Tue Jun 06 2006 Ralf Corsépius - 1.0-3 - Add SONAME hack to spec (PR 193934). - Regenerate OpenSceneGraph-1.0.diff. - Remove OpenSceneGraph-1.0.diff from look-aside cache. Add to CVS instead. - Fix broken shell fragments. * Sun Feb 19 2006 Ralf Corsépius - 1.0-2 - Rebuild. * Sat Dec 10 2005 Ralf Corsépius - 1.0-1 - Upstream update. * Wed Dec 07 2005 Ralf Corsépius - 0.9.9-5 - Try at getting this package buildable with modular X11. * Tue Dec 06 2005 Ralf Corsepius - 0.9.9-4%{?dist}.1 - Merge diffs into one file. - Fix up *.pcs from inside of *.spec. * Sun Aug 28 2005 Ralf Corsepius - 0.9.9-4 - Propagate %%_libdir to pkgconfig files. - Fix typo in %%ifarch magic to setup LD_LIBRARY_PATH - Move configuration to %%build. - Spec file cosmetics. * Sat Aug 27 2005 Ralf Corsepius - 0.9.9-3 - Add full URL to Debian patch. - Add _with_demeter. - Extend Producer %%description. - Extend OpenThreads %%description. * Tue Aug 09 2005 Ralf Corsepius - 0.9.9-2 - Fix license to OSGPL. - Change permissions on pkgconfig files to 0644. * Tue Aug 02 2005 Ralf Corsepius - 0.9.9-1 - FE submission. * Thu Jul 21 2005 Ralf Corsepius - 0.9.9-0 - Initial spec.