Blob Blame Raw
Name:           paraview
Version:        2.4.3
Release:        5%{?dist}
Summary:        Parallel visualization application

Group:          Applications/Engineering
License:        Distributable
URL:            http://www.paraview.org/
Source0:        http://www.paraview.org/files/v2.4/paraview-%{version}.tar.gz
Source1:        paraview_22x22.png
Source2:        paraview.xml
Patch0:         paraview-2.4.2-tcltk.patch
Patch1:         paraview-2.4.3-png.patch
Patch2:         paraview-2.4.3-python.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  cmake, lam
BuildRequires:  libGLU-devel, libXt-devel
BuildRequires:  python-devel, tk-devel, hdf5-devel
BuildRequires:  freetype-devel, libjpeg-devel, libpng-devel, libtiff-devel, zlib-devel
BuildRequires:  expat-devel
BuildRequires:  /usr/bin/desktop-file-install
Requires:       %{name}-data = %{version}-%{release}
Requires(post):   /usr/bin/update-desktop-database
Requires(postun): /usr/bin/update-desktop-database


%description
ParaView is an application designed with the need to visualize large data
sets in mind. The goals of the ParaView project include the following:

    * Develop an open-source, multi-platform visualization application.
    * Support distributed computation models to process large data sets.
    * Create an open, flexible, and intuitive user interface.
    * Develop an extensible architecture based on open standards.

ParaView runs on distributed and shared memory parallel as well as single
processor systems and has been successfully tested on Windows, Linux and
various Unix workstations and clusters. Under the hood, ParaView uses the
Visualization Toolkit as the data processing and rendering engine and has a
user interface written using a unique blend of Tcl/Tk and C++.

NOTE: This version has NOT been compiled with MPI support.


%package        mpi
Summary:        Parallel visualization application
Group:          Applications/Engineering
Requires:       %{name}-data = %{version}-%{release}
Provides:       %{name}
Requires(post):   /usr/bin/update-desktop-database
Requires(postun): /usr/bin/update-desktop-database

%description    mpi
ParaView is an application designed with the need to visualize large data
sets in mind. The goals of the ParaView project include the following:

    * Develop an open-source, multi-platform visualization application.
    * Support distributed computation models to process large data sets.
    * Create an open, flexible, and intuitive user interface.
    * Develop an extensible architecture based on open standards.

ParaView runs on distributed and shared memory parallel as well as single
processor systems and has been successfully tested on Windows, Linux and
various Unix workstations and clusters. Under the hood, ParaView uses the
Visualization Toolkit as the data processing and rendering engine and has a
user interface written using a unique blend of Tcl/Tk and C++.

NOTE: This version has been compiled with LAM-MPI support and requires an
operating LAM-MPI runtime enviroment.


%package        data
Summary:        Data files for ParaView
Group:          Applications/Engineering
Requires(post):   /usr/bin/update-mime-database
Requires(postun): /usr/bin/update-mime-database

%description    data
%{summary}.


%package        demos
Summary:        Demo files for ParaView
Group:          Applications/Engineering
Requires:       %{name}-data = %{version}-%{release}

%description    demos
%{summary}.


%prep
%setup -q
%patch -p1 -b .tcltk
%patch1 -p1 -b .png
%patch2 -p1 -b .python
rm -rf Utilities/TclTk
sed -i -e 's,INSTALL_FILES(/man/,INSTALL_FILES(/share/man/,' Utilities/IceT/doc/man/CMakeLists.txt


%build
rm -rf fedora fedora-mpi
mkdir fedora
pushd fedora
export CC='gcc'
export CXX='g++'
export MAKE='make'
export CFLAGS="$RPM_OPT_FLAGS"
export CXXFLAGS="$RPM_OPT_FLAGS"
cmake .. \
        -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
        -DPV_INSTALL_LIB_DIR:PATH=/%{_lib}/paraview-2.4 \
        -DCMAKE_SKIP_RPATH:BOOL=ON \
        -DBUILD_SHARED_LIBS:BOOL=ON \
        -DCMAKE_CXX_COMPILER:FILEPATH=$CXX \
        -DCMAKE_C_COMPILER:FILEPATH=$CC \
        -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
        -DTCL_LIBRARY:PATH=tcl \
        -DTK_LIBRARY:PATH=tk \
        -DPARAVIEW_USE_SYSTEM_HDF5:BOOL=ON \
        -DVTK_USE_MAGLED_MESA:BOOL=ON \
        -DVTK_USE_SYSTEM_EXPAT:BOOL=ON \
        -DVTK_USE_SYSTEM_FREETYPE: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 \
        -DBUILD_DOCUMENTATION:BOOL=ON \
        -DBUILD_EXAMPLES:BOOL=ON
# Broken at the moment
#        -DPARAVIEW_WRAP_PYTHON:BOOL=ON \
#
make
popd
mkdir fedora-mpi
pushd fedora-mpi
export CC='gcc'
export CXX='g++'
export MAKE='make'
export CFLAGS="$RPM_OPT_FLAGS"
export CXXFLAGS="$RPM_OPT_FLAGS"
cmake .. \
        -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
        -DPV_INSTALL_LIB_DIR:PATH=/%{_lib}/paraview-2.4-mpi \
        -DCMAKE_SKIP_RPATH:BOOL=ON \
        -DBUILD_SHARED_LIBS:BOOL=ON \
        -DCMAKE_CXX_COMPILER:FILEPATH=$CXX \
        -DCMAKE_C_COMPILER:FILEPATH=$CC \
        -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
        -DTCL_LIBRARY:PATH=tcl \
        -DTK_LIBRARY:PATH=tk \
        -DPARAVIEW_USE_SYSTEM_HDF5:BOOL=ON \
        -DVTK_USE_MPI:BOOL=ON \
        -DMPI_INCLUDE_PATH:PATH=%{_includedir}/lam \
        -DMPI_LIBRARY:STRING="-L%{_libdir}/lam -llammpio -llammpi++ -llamf77mpi -lmpi -llam -laio -lutil -ldl" \
        -DVTK_USE_MAGLED_MESA:BOOL=ON \
        -DVTK_USE_SYSTEM_EXPAT:BOOL=ON \
        -DVTK_USE_SYSTEM_FREETYPE: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 \
        -DBUILD_DOCUMENTATION:BOOL=ON \
        -DBUILD_EXAMPLES:BOOL=ON
# Broken at the moment
#        -DPARAVIEW_WRAP_PYTHON:BOOL=ON \
#
make


%install
rm -rf $RPM_BUILD_ROOT

#Fix permissions
find . \( -name \*.txt -o -name \*.xml -o -name '*.[ch]' -o -name '*.[ch][px][px]' \) -print0 | xargs -0 chmod -x

# Create some needed directories
install -d $RPM_BUILD_ROOT%{_datadir}/applications
install -d $RPM_BUILD_ROOT%{_datadir}/pixmaps
install -m644 %SOURCE1 $RPM_BUILD_ROOT%{_datadir}/pixmaps
install -d $RPM_BUILD_ROOT%{_datadir}/mime/packages
install -m644 %SOURCE2 $RPM_BUILD_ROOT%{_datadir}/mime/packages

# Install mpi version
pushd fedora-mpi
make install DESTDIR=$RPM_BUILD_ROOT
#Get rid of useless man and cmake files
rm -rf $RPM_BUILD_ROOT%{_mandir}
rm $RPM_BUILD_ROOT%{_libdir}/paraview-2.4-mpi/*ICET*cmake
cat > paraview-mpi.desktop <<EOF
[Desktop Entry]
Encoding=UTF-8
Name=ParaView Viewer MPI
GenericName=Data Viewer
Comment=ParaView allows MPI enabled viewing of large data sets
Type=Application
Terminal=false
Icon=paraview_22x22.png
MimeType=application/x-paraview
Categories=Application;Graphics;
Exec=mpirun C paraview-mpi
EOF

desktop-file-install --vendor=fedora \
       --add-category=X-Fedora \
       --dir %{buildroot}%{_datadir}/applications/ \
       paraview-mpi.desktop

popd

#Move the mpi binaries out of the way
pushd $RPM_BUILD_ROOT/%{_bindir}
for f in *
do
   mv $f ${f}-mpi
done
popd

#Install the normal version
pushd fedora
make install DESTDIR=$RPM_BUILD_ROOT
cat > paraview.desktop <<EOF
[Desktop Entry]
Encoding=UTF-8
Name=ParaView Viewer
GenericName=Data Viewer
Comment=ParaView allows viewing of large data sets
Type=Application
Terminal=false
Icon=paraview_22x22.png
MimeType=application/x-paraview
Categories=Application;Graphics;
Exec=paraview
EOF

desktop-file-install --vendor=fedora \
       --add-category=X-Fedora \
       --dir %{buildroot}%{_datadir}/applications/ \
       paraview.desktop

popd


%clean
rm -rf $RPM_BUILD_ROOT


%post
update-desktop-database &> /dev/null ||:

%postun
update-desktop-database &> /dev/null ||:


%post   mpi
update-desktop-database &> /dev/null ||:

%postun mpi
update-desktop-database &> /dev/null ||:


%post   data
update-mime-database %{_datadir}/mime &> /dev/null || :

%postun data
update-mime-database %{_datadir}/mime &> /dev/null || :


%files
%defattr(-,root,root,-)
%doc Copyright.txt README.html
%{_bindir}/paraview
%{_bindir}/pvbatch
%{_bindir}/pvclient
%{_bindir}/pvdataserver
#%{_bindir}/pvpython
%{_bindir}/pvrenderserver
%{_bindir}/pvserver
%{_datadir}/applications/fedora-paraview.desktop
%{_libdir}/paraview-2.4/


%files mpi
%defattr(-,root,root,-)
%doc Copyright.txt README.html
%{_bindir}/paraview-mpi
%{_bindir}/pvbatch-mpi
%{_bindir}/pvclient-mpi
%{_bindir}/pvdataserver-mpi
#%{_bindir}/pvpython-mpi
%{_bindir}/pvrenderserver-mpi
%{_bindir}/pvserver-mpi
%{_datadir}/applications/fedora-paraview-mpi.desktop
%{_libdir}/paraview-2.4-mpi/


%files data
%defattr(-,root,root,-)
%{_datadir}/paraview-2.4/
%exclude %{_datadir}/paraview-2.4/Demos
%{_datadir}/pixmaps/paraview_22x22.png
%{_datadir}/mime/packages/paraview.xml


%files demos
%defattr(-,root,root,-)
%{_datadir}/paraview-2.4/Demos/


%changelog
* Wed Apr 12 2006 - Orion Poplawski <orion@cora.wnra.com> - 2.4.3-5
- Cleanup permissions

* Mon Apr 10 2006 - Orion Poplawski <orion@cora.wnra.com> - 2.4.3-4
- Add icon and cleanup desktop file

* Mon Apr 10 2006 - Orion Poplawski <orion@cora.wnra.com> - 2.4.3-3
- Add VTK_USE_MANGLE_MESA for off screen rendering
- Cleanup source permisions
- Add an initial .desktop file
- Make requirement on -data specific to version
- Don't package Ice-T man pages and cmake files

* Thu Apr  6 2006 - Orion Poplawski <orion@cora.wnra.com> - 2.4.3-2
- Add mpi version

* Tue Apr  4 2006 - Orion Poplawski <orion@cora.wnra.com> - 2.4.3-1
- Initial Fedora Extras version