Blob Blame History Raw
#
# 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.4.0

# 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:        2.4.0
Release:        1%{?dist}
Summary:        High performance real-time graphics toolkit

Group:          Applications/Multimedia
License:        OSGPL
URL:            http://www.openscenegraph.org/
%if "%{version}" >= "2.4.0"
Source0:        http://www.openscenegraph.org/files/OpenSceneGraph-2.4.0/OpenSceneGraph-%{version}.zip
Patch0:         OpenSceneGraph-2.4.0.diff
%else
%if "%{version}" >= "2.2.0"
Source0:        http://www.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-%{version}.zip
Patch0:         OpenSceneGraph-2.2.0.diff
%else
Source0:        http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-%{version}.zip
Patch0:         OpenSceneGraph-%{version}.diff
%endif
%endif

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

%if "%{version}" >= "2.4.0"
%define OSGSRCDIR       OpenSceneGraph
%else
%if "%{version}" >= "2.2.0"
%define OSGSRCDIR	OpenSceneGraph-%{version}
%else
%define OSGSRCDIR	OpenSceneGraph
%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}
cd ..

%build
mkdir -p BUILD
pushd BUILD

# FIXME: Should add -DBUILD_DOCUMENTATION=ON to build the docs, but it's broken
%cmake -DBUILD_OSG_EXAMPLES=ON -DBUILD_OSG_WRAPPERS=ON ../%{OSGSRCDIR}
make VERBOSE=1 %{?_smp_mflags}

# FIXME: Manually invoke doxygen, because doc-building is broken in OSG's cmake stuff
OSGHOME=../%{OSGSRCDIR} doxygen ../%{OSGSRCDIR}/doc/Doxyfiles/core_Doxyfile
popd

# HACK: Upstream stuff lacks cmake support and is broken
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.*
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}/*.txt
%{_bindir}/osgarchive
%{_bindir}/osgconv
%{_bindir}/osgversion
%{_bindir}/osgviewer

%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,-)
%doc BUILD/doc/html
%{_includedir}/osg*
%{_libdir}/pkgconfig/openscenegraph.pc
%{_libdir}/libosg*.so

%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.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:        OSGPL

%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}/*.txt
%{_libdir}/libOpenThreads.so.*

# OpenThreads-devel
%package -n OpenThreads-devel
Summary:        Devel files for OpenThreads
Group:          Applications/Multimedia
License:        OSGPL
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

%changelog
* Mon May 12 2008 Ralf Corsépius <rc040203@freenet.de> - 2.4.0-1
- Upstream update.
- Adjust patches to 2.4.0.

* Mon Feb 11 2008 Ralf Corsépius <rc040203@freenet.de> - 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 <rc040203@freenet.de> - 2.2.0-4
- Rebuild for gcc43.
- OpenSceneGraph-2.2.0.diff: Add gcc43 hacks.

* Wed Nov 28 2007 Ralf Corsépius <rc040203@freenet.de> - 2.2.0-3
- Re-add apivers.
- Rebuild against doxygen-1.5.3-1 (BZ 343591).

* Thu Nov 02 2007 Ralf Corsépius <rc040203@freenet.de> - 2.2.0-2
- Add qt.

* Thu Nov 01 2007 Ralf Corsépius <rc040203@freenet.de> - 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 <rc040203@freenet.de> - 2.0-8
- Reflect Source0-URL having changed.

* Thu Sep 27 2007 Ralf Corsépius <rc040203@freenet.de> - 2.0-7
- Let OpenSceneGraph-libs Obsoletes: Producer
- Let OpenSceneGraph-devel Obsoletes: Producer-devel.

* Wed Sep 26 2007 Ralf Corsépius <rc040203@freenet.de> - 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 <rc040203@freenet.de> - 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 <rc040203@freenet.de> - 2.0-4
- Cleanup CVS.
- Add OSG1_Producer define.

* Fri Jun 29 2007 Ralf Corsépius <rc040203@freenet.de> - 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 <rc040203@freenet.de> - 2.0-2
- Build docs.

* Fri Jun 22 2007 Ralf Corsépius <rc040203@freenet.de> - 2.0-1
- Upgrade to 2.0.

* Thu Jun 21 2007 Ralf Corsépius <rc040203@freenet.de> - 1.2-4
- ExcludeArch: ppc64 (BZ 245192, 245196).

* Thu Jun 21 2007 Ralf Corsépius <rc040203@freenet.de> - 1.2-3
- Remove demeter (Defective, abandoned by upstream).

* Wed Mar 21 2007 Ralf Corsépius <rc040203@freenet.de> - 1.2-2
- Attempt to build with gdal enabled.

* Wed Oct 05 2006 Ralf Corsépius <rc040203@freenet.de> - 1.2-1
- Upstream update.
- Remove BR: flex bison.
- Drop osgfbo and osgpbuffer.

* Tue Sep 05 2006 Ralf Corsépius <rc040203@freenet.de> - 1.1-2
- Mass rebuild.

* Thu Aug 24 2006 Ralf Corsépius <rc040203@freenet.de> - 1.1-1
- Upstream update.

* Sat Jul 08 2006 Ralf Corsépius <rc040203@freenet.de> - 1.0-5
- Rebuilt to with gcc-4.1.1-6.

* Tue Jun 07 2006 Ralf Corsépius <rc040203@freenet.de> - 1.0-4
- Try to avoid adding SONAMEs on plugins and applications.

* Tue Jun 06 2006 Ralf Corsépius <rc040203@freenet.de> - 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 <rc040203@freenet.de> - 1.0-2
- Rebuild.

* Sat Dec 10 2005 Ralf Corsépius <rc040203@freenet.de> - 1.0-1
- Upstream update.

* Wed Dec 07 2005 Ralf Corsépius <rc040203@freenet.de> - 0.9.9-5
- Try at getting this package buildable with modular X11.

* Tue Dec 06 2005 Ralf Corsepius <rc040203@freenet.de> - 0.9.9-4%{?dist}.1
- Merge diffs into one file.
- Fix up *.pcs from inside of *.spec.

* Sun Aug 28 2005 Ralf Corsepius <rc040203@freenet.de> - 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 <rc040203@freenet.de> - 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 <ralf@links2linux.de> - 0.9.9-2
- Fix license to OSGPL.
- Change permissions on pkgconfig files to 0644.

* Tue Aug 02 2005 Ralf Corsepius <ralf@links2linux.de> - 0.9.9-1
- FE submission.

* Thu Jul 21 2005 Ralf Corsepius <ralf@links2linux.de> - 0.9.9-0
- Initial spec.