vtk/vtk.spec

368 lines
10 KiB
RPMSpec
Raw Normal View History

%define lib_ver 5.2
%define qtdir %{_libdir}/qt3
Name: vtk
Summary: The Visualization Toolkit - A high level 3D visualization library
Version: %{lib_ver}.1
Release: 1
Packager: Werner Hoch <werner.ho@gmx.de>
License: BSD
Group: System Environment/Libraries
URL: http://www.vtk.org
Source: vtk-%{version}.tar.bz2
Patch0: vtk-5.2.1-pythondestdir.patch
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: cmake, tcl-devel, tk-devel, qt3-devel, python-devel
BuildRequires: libexpat-devel, libjpeg-devel, libpng-devel, freetype2-devel
BuildRequires: libtiff-devel, zlib-devel
BuildRequires: doxygen, graphviz, gnuplot
# tar-1.14.90+ uses --strip-components option
BuildRequires: tar > 1.14.90
BuildRequires: chrpath
%if 0%{?suse_version} >= 1110
BuildRequires: freeglut-devel
%endif
%description
VTK is an open-source software system for image processing, 3D
graphics, volume rendering and visualization. VTK includes many
advanced algorithms (e.g., surface reconstruction, implicit modelling,
decimation) and rendering techniques (e.g., hardware-accelerated
volume rendering, LOD control)
%package devel
Summary: VTK header files for building C++ code
Requires: vtk = %{version}
Group: Development/Libraries
%description devel
This provides the VTK header files required to compile C++ programs that
use VTK to do 3D visualisation
%package tcl
Summary: Tcl bindings for VTK
Requires: vtk = %{version}
Group: System Environment/Libraries
%description tcl
tcl bindings for VTK
%package python
Summary: Python bindings for VTK
Requires: vtk = %{version}
Group: System Environment/Libraries
%description python
python bindings for VTK
%package qt
Summary: QT VTK widget
Requires: vtk = %{version}
Requires: qt3
Group: Development/Libraries
%description qt
Qt VTK widget
%package examples
Summary: Examples for VTK
Requires: vtk = %{version}, vtk-data = %{version}
Group: Applications/Engineering
%description examples
This package contains many well-commented examples showing how to use
VTK. Examples are available in the C++, Tcl, Python and Java
programming languages
%package testing-progs
Summary: Testing programs for VTK
Requires: %{name} = %{version}, vtk-data = %{version}
Group: Applications/Engineering
%description testing-progs
Testing programs for VTK
%package data
Summary: Data for VTK
Requires: vtk = %{version}
Group: Development/Libraries
%description data
Example data file for VTK
%package doc
Summary: Documentation for VTK
Requires: vtk = %{version}
Group: Development/Libraries
%description doc
This package contains the doxygen-generated documentation from the VTK
source
%prep
%setup -n VTK -q
%patch0 -p1
# Replace relative path ../../../VTKData with %{_datadir}/vtkdata-%{version}
# otherwise it will break on symlinks.
grep -rl '\.\./\.\./\.\./\.\./VTKData' . | xargs \
perl -pi -e's,\.\./\.\./\.\./\.\./VTKData,%{_datadir}/%{name}-data,g'
%build
cmake . \
-DDESIRED_QT_VERSION=3 \
-DCMAKE_C_FLAGS:STRING="$RPM_OPT_FLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$RPM_OPT_FLAGS" \
-DCMAKE_INSTALL_PREFIX:PATH=$RPM_BUILD_ROOT \
-DVTK_INSTALL_BIN_DIR:PATH=%{_bindir} \
-DVTK_INSTALL_INCLUDE_DIR:PATH=%{_includedir}/%{name} \
-DVTK_INSTALL_LIB_DIR:PATH=%{_libdir} \
-DVTK_DATA_ROOT:PATH=%{_datadir}/%{name}-data \
-DVTK_WRAP_PYTHON:BOOL=ON \
-DVTK_WRAP_TCL:BOOL=ON \
-DVTK_USE_PARALLEL:BOOL=ON \
-DVTK_USE_RENDERING:BOOL=ON \
-DBUILD_DOCUMENTATION:BOOL=OFF \
-DBUILD_EXAMPLES:BOOL=ON \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DVTK_USE_GUISUPPORT:BOOL=ON \
-DVTK_USE_QVTK:BOOL=ON \
-DVTK_INSTALL_QT_DIR:STRING=%{qtdir}/plugins/designer \
-DVTK_LEGACY_REMOVE:BOOL=ON \
-DVTK_USE_GL2PS:BOOL=ON \
-DVTK_USE_SYSTEM_EXPAT:BOOL=ON \
-DVTK_USE_SYSTEM_JPEG:BOOL=ON \
-DVTK_USE_SYSTEM_PNG:BOOL=ON \
-DVTK_USE_SYSTEM_TIFF:BOOL=ON \
-DVTK_USE_SYSTEM_ZLIB:BOOL=ON \
-DVTK_USE_SYSTEM_EXPAT:BOOL=ON \
-DVTK_USE_SYSTEM_FREETYPE:BOOL=ON \
-DVTK_HAVE_GETSOCKNAME_WITH_SOCKLEN_T:INTERNAL=1
make %{_smp_mflags}
%install
make install
# install testing-progs and examples
find bin -type f | egrep -v '\.' > bin-progs-list
install -d $RPM_BUILD_ROOT%{_bindir}
install -m 755 `cat bin-progs-list` $RPM_BUILD_ROOT%{_bindir}
# generate the package testing-progs lists and store them in file-lists
echo "%defattr (-, root, root)" > testing-progs-list
find $RPM_BUILD_ROOT%{_bindir} -type f | \
sed -e "s#^$RPM_BUILD_ROOT##" | \
egrep -v '^%{_bindir}/(qt.*|vtk|pvtk|vtkWrap.*|vtkpython|pvtkpython)$'\
>> testing-progs-list
# examples and testing files
for d in Common Filtering GenericFiltering Graphics Hybrid IO \
Imaging Parallel Rendering VolumeRendering Widgets
do
install -d $RPM_BUILD_ROOT%{_datadir}/%{name}-examples/Testing/$d
cp -a $d/Testing/* \
$RPM_BUILD_ROOT%{_datadir}/%{name}-examples/Testing/$d
done
cp -a Examples $RPM_BUILD_ROOT%{_datadir}/%{name}-examples
# get rid of unwanted files
find $RPM_BUILD_ROOT%{_datadir}/%{name}-examples \
-name "*.o" -exec rm {} ';' -o \
-name CMakeCache.txt -exec rm {} ';' -o \
-name Makefile -exec rm {} ';' -o \
-name DartTestfile.txt -exec rm {} ';' -o \
-name .NoDartCoverage -exec rm {} ';' -o \
-name "cmake.*" -exec rm {} ';' -o \
-name "cmake_install.*" -exec rm {} ';' -o \
-name "*.pyc" -exec rm {} ';' -o \
-name "*.pyo" -exec rm {} ';'
find $RPM_BUILD_ROOT%{_datadir}/%{name}-examples \
-type d -name CVS | xargs rm -rf
find $RPM_BUILD_ROOT%{_datadir}/%{name}-examples \
-name "CMake*" | xargs rm -rf
# cmake, testing
install -d $RPM_BUILD_ROOT/%{_libdir}/vtk-%{lib_ver}/CMake
install -d $RPM_BUILD_ROOT/%{_libdir}/vtk-%{lib_ver}/testing
mv $RPM_BUILD_ROOT/%{_libdir}/*.cmake $RPM_BUILD_ROOT/%{_libdir}/vtk-%{lib_ver}
mv $RPM_BUILD_ROOT/%{_libdir}/CMake/* $RPM_BUILD_ROOT/%{_libdir}/vtk-%{lib_ver}/CMake
mv $RPM_BUILD_ROOT/%{_libdir}/hints $RPM_BUILD_ROOT/%{_libdir}/vtk-%{lib_ver}
mv $RPM_BUILD_ROOT/%{_libdir}/pkgIndex.tcl $RPM_BUILD_ROOT/%{_libdir}/vtk-%{lib_ver}
mv $RPM_BUILD_ROOT/%{_libdir}/testing $RPM_BUILD_ROOT/%{_libdir}/vtk-%{lib_ver}
mv $RPM_BUILD_ROOT/%{_libdir}/tcl $RPM_BUILD_ROOT/%{_libdir}/vtk-%{lib_ver}
# remove doxygen scripts and
rm -rf $RPM_BUILD_ROOT/%{_libdir}/doxygen
rm -rf $RPM_BUILD_ROOT/%{_libdir}/doc
# make scripts executable
chmod a+x $RPM_BUILD_ROOT%{_libdir}/vtk-%{lib_ver}/testing/*.{py,tcl}
# Remove exec bit from not-scripts
for file in `find $RPM_BUILD_ROOT Utilities/Upgrading -type f -perm 0755 | xargs -r file | grep ASCII | awk -F: '{print $1}'`; do
head -1 $file | grep '^#!' > /dev/null && continue
chmod 0644 $file
done
# drop empty files
find $RPM_BUILD_ROOT -size 0 | xargs rm -f
# Remove any remnants of rpaths
chrpath -d $RPM_BUILD_ROOT%{_bindir}/*
# make doc-dirs
for dir in vtk vtk-devel vtk-tcl vtk-testing-progs ; do
install -d $RPM_BUILD_ROOT/%{_docdir}/"$dir"
done
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%post tcl -p /sbin/ldconfig
%post python -p /sbin/ldconfig
%post qt -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%postun tcl -p /sbin/ldconfig
%postun python -p /sbin/ldconfig
%postun qt -p /sbin/ldconfig
%files
%defattr(-,root,root)
%{_libdir}/libvtkCommon.so.*
%{_libdir}/libvtkFiltering.so.*
%{_libdir}/libvtkGenericFiltering.so.*
%{_libdir}/libvtkGraphics.so.*
%{_libdir}/libvtkHybrid.so.*
%{_libdir}/libvtkImaging.so.*
%{_libdir}/libvtkIO.so.*
%{_libdir}/libvtkParallel.so.*
%{_libdir}/libvtkRendering.so.*
%{_libdir}/libvtkftgl.so.*
%{_libdir}/libvtkDICOMParser.so.*
%{_libdir}/libvtkVolumeRendering.so.*
%{_libdir}/libvtksys.so.*
%{_libdir}/libvtkWidgets.so.*
%{_libdir}/libvtkNetCDF.so.*
%{_libdir}/libvtkexoIIc.so.*
%{_libdir}/libvtkInfovis.so.*
%{_libdir}/libvtkViews.so.*
%{_libdir}/libvtklibxml2.so.*
%{_libdir}/libvtkmetaio.so.*
%{_libdir}/libvtksqlite.so.*
%{_libdir}/libvtkverdict.so.*
%doc README.html
%doc vtkLogo.jpg
%doc Copyright.txt
%files devel
%defattr(-,root,root,-)
%dir %{_libdir}/vtk-%{lib_ver}/CMake
%{_includedir}/*
%{_libdir}/vtk-%{lib_ver}/CMake/*
%{_libdir}/vtk-%{lib_ver}/*.cmake
%{_libdir}/vtk-%{lib_ver}/hints
%{_libdir}/libvtkCommon.so
%{_libdir}/libvtkFiltering.so
%{_libdir}/libvtkGenericFiltering.so
%{_libdir}/libvtkGraphics.so
%{_libdir}/libvtkHybrid.so
%{_libdir}/libvtkImaging.so
%{_libdir}/libvtkIO.so
%{_libdir}/libvtkParallel.so
%{_libdir}/libvtkRendering.so
%{_libdir}/libvtkftgl.so
%{_libdir}/libvtkDICOMParser.so
%{_libdir}/libvtkVolumeRendering.so
%{_libdir}/libvtksys.so
%{_libdir}/libvtkWidgets.so
%{_libdir}/libvtkNetCDF.so
%{_libdir}/libvtkexoIIc.so
%{_libdir}/libvtk*TCL.so
%{_libdir}/libvtk*Python*.so
%{_libdir}/libQVTK.so
%{_libdir}/libvtkInfovis.so
%{_libdir}/libvtkViews.so
%{_libdir}/libvtklibxml2.so
%{_libdir}/libvtkmetaio.so
%{_libdir}/libvtksqlite.so
%{_libdir}/libvtkverdict.so
%doc README.html
%doc vtkLogo.jpg
%defattr(0644,root,root,-)
%doc Utilities/Upgrading/*.txt
%doc Utilities/Upgrading/*.pdf
%doc Utilities/Upgrading/*.cmake
%files testing-progs -f testing-progs-list
%defattr(-,root,root,-)
%doc README.html
%doc vtkLogo.jpg
%files tcl
%defattr(-,root,root,-)
%dir %{_libdir}/vtk-%{lib_ver}/testing
%{_bindir}/vtkWrapTcl
%{_bindir}/vtkWrapTclInit
%{_libdir}/libvtk*TCL.so.*
%{_bindir}/vtk
%{_libdir}/vtk-%{lib_ver}/tcl
%{_libdir}/vtk-%{lib_ver}/testing/*.tcl
%{_libdir}/vtk-%{lib_ver}/pkgIndex.tcl
%doc README.html
%doc vtkLogo.jpg
%files python
%defattr(-,root,root,-)
%dir %{_libdir}/vtk-%{lib_ver}/testing
%{_bindir}/vtkWrapPython
%{_bindir}/vtkWrapPythonInit
%{_bindir}/vtkpython
%{_libdir}/libvtk*Python*.so.*
%{py_sitedir}/*
%{_libdir}/vtk-%{lib_ver}/testing/*.py
%files qt
%defattr(-,root,root,-)
%{_libdir}/libQVTK.so.*
%{_bindir}/qtevents
%{_bindir}/qtimageviewer
%{_bindir}/qtsimpleview
%{qtdir}/plugins/designer/libQVTKWidgetPlugin.so
%files examples
%defattr(-,root,root,-)
%{_datadir}/%{name}-examples
%changelog
* Sat Jan 03 2009 Werner Hoch <werner.ho@gmx.de> - 5.2.1
- removed vtk-data
- removed vtk-doc (doxygen)
- new version 5.2.1
- build fixes for openSUSE 11.1
* Sat Aug 09 2008 Werner Hoch <werner.ho@gmx.de> - 5.0.4
- switched to the specfile from Jaroslaw Zachwieja
http://www2.warwick.ac.uk/fac/sci/csc/people/computingstaff/jaroslaw_zachwieja/vtk/
- use qt3 instead of qt4
* Thu Jul 18 2008 Werner Hoch <werner.ho@gmx.de> - 5.0.4
- specfile taken from fedora core 9 and adapted to opensuse