SHA256
1
0
forked from pool/vtk
vtk/vtk.spec

363 lines
10 KiB
RPMSpec

%define lib_ver 5.0
%define qtdir %{_libdir}/qt3
Name: vtk
Summary: The Visualization Toolkit - A high level 3D visualization library
Version: %{lib_ver}.4
Release: 2
Packager: Werner Hoch <werner.ho@gmx.de>
License: BSD
Group: System Environment/Libraries
Source: http://www.vtk.org/files/release/5.0/vtk-%{version}.tar.bz2
Source1: http://www.vtk.org/files/release/5.0/vtkdata-%{version}.tar.bz2
Patch0: vtk-5.0.0-pythondestdir.patch
Patch1: vtk-5.0.4-gcc43.patch
URL: http://www.vtk.org
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: cmake, tcl-devel, tk-devel, qt3-devel, python-devel
BuildRequires: expat, libjpeg-devel, libpng-devel, freetype2-devel
BuildRequires: libtiff-devel, zlib-devel, doxygen, graphviz
# tar-1.14.90+ uses --strip-components option
BuildRequires: tar > 1.14.90
BuildRequires: chrpath
%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
%patch1 -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} \
-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=ON \
-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}
cd Utilities/Doxygen
make DoxygenDoc
%install
rm -rf $RPM_BUILD_ROOT
make install
if [ "%{_lib}" != lib -a "`ls $RPM_BUILD_ROOT%{_prefix}/lib/*`" != "" ]; then
mkdir -p $RPM_BUILD_ROOT%{_libdir}
mv $RPM_BUILD_ROOT%{_prefix}/%{_lib}/* $RPM_BUILD_ROOT%{_libdir}/
fi
mv $RPM_BUILD_ROOT%{_prefix}/local/%{_lib}/python* $RPM_BUILD_ROOT%{_libdir}/
# install doc
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{name}-docs
cp -a Utilities/Doxygen/doc/html $RPM_BUILD_ROOT%{_datadir}/%{name}-docs/api
# 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}
# install data
install -d $RPM_BUILD_ROOT%{_datadir}/%{name}-data
tar -xjvf %{SOURCE1} --strip-components 1 \
-C $RPM_BUILD_ROOT%{_datadir}/%{name}-data
# fix permissions and wrong eol encoding
find $RPM_BUILD_ROOT%{_datadir}/%{name}-data -type f | xargs chmod 644
sed -i 's/\r//' $RPM_BUILD_ROOT%{_datadir}/%{name}-data/Data/usa.vtk
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
# 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
# set correct execution bit on libs, so they are processed by
# find-debuginfo
find $RPM_BUILD_ROOT%{_libdir} -type f -name \*.so\* | xargs chmod +x
# Make shared libs and scripts executable
chmod a+x $RPM_BUILD_ROOT%{_libdir}/lib*.so.*
chmod a+x $RPM_BUILD_ROOT%{_libdir}/vtk-5.0/doxygen/*.pl
chmod a+x $RPM_BUILD_ROOT%{_libdir}/vtk-5.0/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}/*
%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.*
%doc README.html
%doc vtkLogo.jpg
%doc Copyright.txt
%files devel
%defattr(-,root,root)
%dir %{_libdir}/vtk-%{lib_ver}/CMake
%dir %{_libdir}/vtk-%{lib_ver}/doxygen
%{_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
%doc README.html
%doc vtkLogo.jpg
%doc Utilities/Upgrading/*.txt
%doc Utilities/Upgrading/*.pdf
%doc Utilities/Upgrading/*.cmake
%doc %{_libdir}/vtk-%{lib_ver}/doxygen/*
%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,-)
%{_bindir}/vtkWrapPython
%{_bindir}/vtkWrapPythonInit
%{_bindir}/vtkpython
%{_libdir}/libvtk*Python*.so.*
%{_libdir}/python*/site-packages/*
%{_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
%files data
%defattr(-,root,root,-)
%{_datadir}/%{name}-data
%files doc
%defattr(-,root,root,-)
%{_datadir}/%{name}-docs
%clean
rm -rf $RPM_BUILD_ROOT
%changelog
* 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