Blob Blame History Raw
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
%{!?octave_api: %define octave_api %(octave-config -p API_VERSION || echo 0)}
%{!?build_doc:%define build_doc 0}
%{!?with_octave:%define with_octave 1}

Name:           plplot
Version:        5.7.4
Release:        4%{?dist}
Summary:        Library of functions for making scientific plots

Group:          Applications/Engineering
License:        LGPLv2+
URL:            http://plplot.sourceforge.net/
Source0:        http://downloads.sourceforge.net/plplot/%{name}-%{version}.tar.gz
Patch1:         plplot-5.7.4-octave.patch
Patch2:         plplot-5.7.4-info.patch
Patch5:         plplot-5.7.2-multilib.patch
Patch6:         plplot-5.7.3-jni.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  cmake, libtool-ltdl-devel, swig
BuildRequires:  gcc-gfortran
# Ada is not available on ppc64 and not working on x86_64
%ifnarch ppc64
BuildRequires:  gcc-gnat
%define build_ada -DENABLE_ada:BOOL=ON
%else
%define build_ada %{nil}
%endif
%if %{with_octave}
BuildRequires:  octave-devel
%define build_octave %{nil}
%else
Obsoletes:      %{name}-octave < %{version}-%{release}
%define build_octave -DENABLE_octave:BOOL=OFF
%endif
BuildRequires:  java-devel, libgcj-devel
BuildRequires:  freetype-devel, qhull-devel , ncurses-devel
BuildRequires:  gd-devel, tcl-devel, tk-devel, itcl-devel, itk-devel
BuildRequires:  python-devel, pygtk2-devel, numpy
BuildRequires:  libgnomeui-devel, libgnomeprintui22-devel, gnome-python2-devel
BuildRequires:  perl(XML::DOM), lasi-devel, wxGTK-devel, agg-devel
BuildRequires:  freefont
#BuildRequires:  perl(PDL::Graphics::PLplot)
%ifarch %{ix86} x86_64
BuildRequires:  svgalib-devel
%endif
%if %{build_doc}
BuildRequires:  docbook2X
%endif
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
Requires:       freefont

%description
PLplot is a library of functions that are useful for making scientific
plots.

PLplot can be used from within compiled languages such as C, C++,
FORTRAN and Java, and interactively from interpreted languages such as
Octave, Python, Perl and Tcl.

The PLplot library can be used to create standard x-y plots, semilog
plots, log-log plots, contour plots, 3D surface plots, mesh plots, bar
charts and pie charts. Multiple graphs (of the same or different sizes)
may be placed on a single page with multiple lines in each graph.

A variety of output file devices such as Postscript, png, jpeg, LaTeX
and others, as well as interactive devices such as xwin, tk, xterm and
Tektronics devices are supported. New devices can be easily added by
writing a small number of device dependent routines.

There are almost 2000 characters in the extended character set. This
includes four different fonts, the Greek alphabet and a host of
mathematical, musical, and other symbols. Some devices supports its own
way of dealing with text, such as the Postscript and LaTeX drivers, or
the png and jpeg drivers that uses the Freetype library.


%package        libs
Summary:        Libraries for PLplot
Group:          Development/Libraries

%description    libs
%{summary}.


%package        devel
Summary:        Development headers and libraries for PLplot
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}
Requires:       %{name}-libs = %{version}-%{release}
Requires:       pkgconfig
Requires:       qhull-devel, freetype-devel

%description    devel
%{summary}.


%package        gnome
Summary:        Functions for scientific plotting with GNOME
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}

%description    gnome
%{summary}.

%package        gnome-devel
Summary:        Development files for using PLplot GNOME
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}
Requires:       %{name}-devel = %{version}-%{release}
Requires:       %{name}-gnome = %{version}-%{release}
Requires:       pkgconfig
Requires:       libgnomecanvas-devel, libgnomeprintui22-devel

%description    gnome-devel
%{summary}.


%package        java
Summary:        Functions for scientific plotting with Java
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}
Requires:       java

%description    java
%{summary}.

%package        java-devel
Summary:        Development files for using PLplot GNOME
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}
Requires:       %{name}-devel = %{version}-%{release}
Requires:       %{name}-java = %{version}-%{release}

%description    java-devel
%{summary}.


%if %{with_octave}
%package        octave
Summary:        Functions for scientific plotting with Octave
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}, octave
Requires:       octave(api) = %{octave_api}

%description    octave
%{summary}.
%endif


#%package        perl
#Summary:        Examples for using plplot with PDL
#Group:          Development/Libraries
#Requires:       %{name} = %{version}-%{release}
#
#%description    perl
#%{summary}.


%package        tk
Summary:        Functions for scientific plotting with Tk
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}

%description    tk
%{summary}.

%package        tk-devel
Summary:        Development files for using PLplot with Tk
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}
Requires:       %{name}-devel = %{version}-%{release}
Requires:       %{name}-tk = %{version}-%{release}
Requires:       pkgconfig

%description    tk-devel
%{summary}.


%package        wxGTK
Summary:        Functions for scientific plotting with wxGTK
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}

%description    wxGTK
%{summary}.

%package        wxGTK-devel
Summary:        Development files for using PLplot with wxGTK
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}
Requires:       %{name}-devel = %{version}-%{release}
Requires:       %{name}-wxGTK = %{version}-%{release}
Requires:       pkgconfig

%description    wxGTK-devel
%{summary}.


%prep
%setup -q
%patch1 -p1 -b .octave -E
%patch2 -p1 -b .orig
%patch5 -p1 -b .multilib
%patch6 -p1 -b .jni


%build
mkdir fedora
cd fedora
export CFLAGS="$RPM_OPT_FLAGS"
export CXXFLAGS="$RPM_OPT_FLAGS"
export FFLAGS="$RPM_OPT_FLAGS"
%cmake .. \
	%{build_ada} \
	%{build_octave} \
	-DENABLE_pdl:BOOL=ON \
	-DHAVE_PTHREAD:BOOL=ON \
	-DPL_FREETYPE_FONT_PATH:PATH="/usr/share/fonts/freefont" \
	-DPLD_aqt:BOOL=ON \
	-DPLD_conex:BOOL=ON \
	-DPLD_dg300:BOOL=ON \
	-DPLD_imp:BOOL=ON \
	-DPLD_linuxvga:BOOL=ON \
	-DPLD_ljii:BOOL=ON \
	-DPLD_ljiip:BOOL=ON \
	-DPLD_mskermit:BOOL=ON \
	-DPLD_ntk:BOOL=ON \
	-DPLD_pstex:BOOL=ON \
	-DPLD_svg:BOOL=ON \
	-DPLD_tek4010:BOOL=ON \
	-DPLD_tek4010f:BOOL=ON \
	-DPLD_tek4107:BOOL=ON \
	-DPLD_tek4107f:BOOL=ON \
	-DPLD_versaterm:BOOL=ON \
	-DPLD_vlt:BOOL=ON \
	-DPLD_xterm:BOOL=ON \
	-DPLD_wxwidgets:BOOL=ON \
%if %{build_doc}
	-DBUILD_DOC:BOOL=ON \
%else
	-DPREBUILT_DOC:BOOL=ON \
%endif
	-DBUILD_TEST:BOOL=ON
make VERBOSE=1


%install
rm -rf $RPM_BUILD_ROOT
cd fedora
make install DESTDIR=$RPM_BUILD_ROOT
mv $RPM_BUILD_ROOT/%{_docdir}/plplot $RPM_BUILD_ROOT/%{_docdir}/plplot-%{version}

# Fix up tclIndex files so they are the same on all builds
for file in $RPM_BUILD_ROOT%{_datadir}/plplot%{version}/examples/*/tclIndex
do
   grep '^[# ]' ${file} > tclIndex.hd
   grep -v '^[# ]' ${file} | sort > tclIndex
   cat tclIndex.hd tclIndex > ${file}
done


%check
cd fedora
#Hack
export ITCL_LIBRARY=%{_libdir}/itcl3.3
# Exclude psttfc test for now
ctest -V -E psttfc


%clean
rm -rf $RPM_BUILD_ROOT


%post
/sbin/ldconfig
/sbin/install-info %{_infodir}/plplotdoc.info %{_infodir}/dir || :

%preun
if [ $1 = 0 ]; then
    /sbin/install-info --delete %{_infodir}/plplotdoc.info %{_infodir}/dir || :
fi

%postun -p /sbin/ldconfig

%post gnome -p /sbin/ldconfig

%postun gnome -p /sbin/ldconfig

%if %{with_octave}
%post octave -p /sbin/ldconfig

%postun octave -p /sbin/ldconfig
%endif

%post tk -p /sbin/ldconfig

%postun tk -p /sbin/ldconfig


%files
%defattr(-,root,root,-)
%{_docdir}/plplot-%{version}/
%{_bindir}/plm2gif
%{_bindir}/plpr
%{_bindir}/plrender
%{_bindir}/pltek
%{_bindir}/pstex2eps
%dir %{_libdir}/plplot%{version}
%dir %{_libdir}/plplot%{version}/driversd
%{_libdir}/plplot%{version}/driversd/dg300.rc
%{_libdir}/plplot%{version}/driversd/dg300.so
%{_libdir}/plplot%{version}/driversd/gd.rc
%{_libdir}/plplot%{version}/driversd/gd.so
%{_libdir}/plplot%{version}/driversd/hpgl.rc
%{_libdir}/plplot%{version}/driversd/hpgl.so
%{_libdir}/plplot%{version}/driversd/impress.rc
%{_libdir}/plplot%{version}/driversd/impress.so
%ifarch %{ix86} x86_64
%{_libdir}/plplot%{version}/driversd/linuxvga.rc
%{_libdir}/plplot%{version}/driversd/linuxvga.so
%endif
%{_libdir}/plplot%{version}/driversd/ljii.rc
%{_libdir}/plplot%{version}/driversd/ljii.so
%{_libdir}/plplot%{version}/driversd/ljiip.rc
%{_libdir}/plplot%{version}/driversd/ljiip.so
%{_libdir}/plplot%{version}/driversd/mem.rc
%{_libdir}/plplot%{version}/driversd/mem.so
%{_libdir}/plplot%{version}/driversd/ntk.rc
%{_libdir}/plplot%{version}/driversd/ntk.so
%{_libdir}/plplot%{version}/driversd/null.rc
%{_libdir}/plplot%{version}/driversd/null.so
%{_libdir}/plplot%{version}/driversd/pbm.rc
%{_libdir}/plplot%{version}/driversd/pbm.so
%{_libdir}/plplot%{version}/driversd/plmeta.rc
%{_libdir}/plplot%{version}/driversd/plmeta.so
%{_libdir}/plplot%{version}/driversd/ps.rc
%{_libdir}/plplot%{version}/driversd/ps.so
%{_libdir}/plplot%{version}/driversd/pstex.rc
%{_libdir}/plplot%{version}/driversd/pstex.so
%{_libdir}/plplot%{version}/driversd/psttf.rc
%{_libdir}/plplot%{version}/driversd/psttf.so
%{_libdir}/plplot%{version}/driversd/svg.rc
%{_libdir}/plplot%{version}/driversd/svg.so
%{_libdir}/plplot%{version}/driversd/tek.rc
%{_libdir}/plplot%{version}/driversd/tek.so
%{_libdir}/plplot%{version}/driversd/xfig.rc
%{_libdir}/plplot%{version}/driversd/xfig.so
%{_libdir}/plplot%{version}/driversd/xwin.rc
%{_libdir}/plplot%{version}/driversd/xwin.so
%{python_sitearch}/_plplotcmodule.so
%{python_sitearch}/plplot.py*
%{python_sitearch}/plplot_widgetmodule.so
%{python_sitearch}/plplotc.py*
%{python_sitearch}/plplotcanvas.py*
%{_infodir}/plplotdoc.info*
%{_mandir}/man1/plm2gif.1.gz
%{_mandir}/man1/plpr.1.gz
%{_mandir}/man1/plrender.1.gz
%{_mandir}/man1/pltek.1.gz
%{_mandir}/man1/pstex2eps.1.gz
%dir %{_datadir}/plplot%{version}
%{_datadir}/plplot%{version}/*.map
%{_datadir}/plplot%{version}/*.fnt
%{_datadir}/plplot%{version}/pkgIndex.tcl
%{_datadir}/plplot%{version}/tcl/
%dir %{_datadir}/plplot%{version}/examples
%{_datadir}/plplot%{version}/examples/python/
%{_datadir}/plplot%{version}/examples/test_python.sh
%{_datadir}/plplot%{version}/examples/test_tcl.sh
%{_datadir}/plplot%{version}/examples/plplot-test.sh

%files libs
%defattr(-,root,root,-)
%{_libdir}/libcsirocsa.so.*
%{_libdir}/libcsironn.so.*
%{_libdir}/libplplotcxxd.so.*
%{_libdir}/libplplotd.so.*
%{_libdir}/libplplotf77cd.so.*
%{_libdir}/libplplotf77d.so.*
%{_libdir}/libplplotf95cd.so.*
%{_libdir}/libplplotf95d.so.*

%files devel
%defattr(-,root,root,-)
#%{_bindir}/plplot-config
%{_includedir}/plplot/
%{_libdir}/libcsirocsa.so
%{_libdir}/libcsironn.so
%{_libdir}/libplplotcxxd.so
%{_libdir}/libplplotd.so
%{_libdir}/libplplotf77cd.so
%{_libdir}/libplplotf77d.so
%{_libdir}/libplplotf95cd.so
%{_libdir}/libplplotf95d.so
%{_libdir}/fortran/
%{_libdir}/pkgconfig/plplotd.pc
%{_libdir}/pkgconfig/plplotd-c++.pc
%{_libdir}/pkgconfig/plplotd-f77.pc
%{_libdir}/pkgconfig/plplotd-f95.pc
%{_datadir}/plplot%{version}/examples/lena.pgm
%{_datadir}/plplot%{version}/examples/c/
%{_datadir}/plplot%{version}/examples/c++/
%{_datadir}/plplot%{version}/examples/f77/
%{_datadir}/plplot%{version}/examples/f95/
%{_datadir}/plplot%{version}/examples/Makefile
%ifnarch ppc64
%{_datadir}/plplot%{version}/examples/test_ada.sh
%endif
%{_datadir}/plplot%{version}/examples/test_c.sh
%{_datadir}/plplot%{version}/examples/test_cxx.sh
%{_datadir}/plplot%{version}/examples/test_f77.sh
%{_datadir}/plplot%{version}/examples/test_f95.sh
%{_mandir}/man3/pl*.3*

%files gnome
%defattr(-,root,root,-)
%{_libdir}/libplplotgnome2d.so.*
%{_libdir}/plplot%{version}/driversd/gcw.rc
%{_libdir}/plplot%{version}/driversd/gcw.so
%{python_sitearch}/gcwmodule.so
%{python_sitearch}/cplplotcanvasmodule.so

%files gnome-devel
%defattr(-,root,root,-)
%{_libdir}/libplplotgnome2d.so
%{_libdir}/pkgconfig/plplotd-gnome2.pc

%files java
%defattr(-,root,root,-)
%{_libdir}/plplot%{version}/plplotjavac_wrap.so
%{_datadir}/java/plplot.jar

%files java-devel
%defattr(-,root,root,-)
%{_datadir}/plplot%{version}/examples/java/
%{_datadir}/plplot%{version}/examples/test_java.sh

%if %{with_octave}
%files octave
%defattr(-,root,root,-)
%{_datadir}/plplot_octave/
%{_datadir}/octave/site/m/PLplot/
%{_libexecdir}/octave/site/oct/*/plplot_octave.oct
%{_datadir}/plplot%{version}/examples/lena.img
%{_datadir}/plplot%{version}/examples/octave/
%{_datadir}/plplot%{version}/examples/test_octave.sh
%endif

#%files perl
#%defattr(-,root,root,-)
#%{_datadir}/plplot%{version}/examples/perl/
#%{_datadir}/plplot%{version}/examples/test_perl.sh

%files tk
%defattr(-,root,root,-)
%{_bindir}/plserver
%{_bindir}/pltcl
%{_libdir}/libplplottcltkd.so.*
%{_libdir}/libtclmatrixd.so.*
%{_libdir}/plplot%{version}/driversd/tk.rc
%{_libdir}/plplot%{version}/driversd/tk.so
%{_libdir}/plplot%{version}/driversd/tkwin.rc
%{_libdir}/plplot%{version}/driversd/tkwin.so
%{_mandir}/man1/plserver.1.gz
%{_mandir}/man1/pltcl.1.gz

%files tk-devel
%defattr(-,root,root,-)
%{_libdir}/libplplottcltkd.so
%{_libdir}/libtclmatrixd.so
%{_libdir}/pkgconfig/plplotd-tcl.pc
%{_datadir}/plplot%{version}/examples/tcl/
%{_datadir}/plplot%{version}/examples/tk/

%files wxGTK
%defattr(-,root,root,-)
%{_libdir}/libplplotwxwidgetsd.so.*
%{_libdir}/plplot%{version}/driversd/wxwidgets.rc
%{_libdir}/plplot%{version}/driversd/wxwidgets.so

%files wxGTK-devel
%{_libdir}/libplplotwxwidgetsd.so
%{_libdir}/pkgconfig/plplotd-wxwidgets.pc

%changelog
* Tue Oct 16 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.4-4
- Add patch from svn to fix octave bindings for octave 2.9.15, drop
  old version

* Thu Aug 23 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.4-3
- Add perl sub-package for PDL/plpot examples

* Thu Aug 23 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.4-2
- Rebuild for BuildID

* Tue Aug 14 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.4-1
- Update to 5.7.4
- Re-enable ada on x86_64
- Enable PDL tests
- Set HAVE_PTHREAD for the xwin driver

* Wed Aug  8 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.3-4
- BR numpy rather than python-numeric - doesn't do anything yet?

* Tue Aug  7 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.3-3
- Disable Ada interface on ppc64 until available (bug #241233)
- Add svn patch to fix ada bindings on x86_64 and other issues
- Add build_doc conditional to test doc builds
- Disable octave until plplot supports octave 2.9.11+
- Update license to LGPLv2+
- Exclude psttfc test until fixed

* Mon Apr 16 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.3-2
- Use cmake macros

* Mon Mar 26 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.3-1
- Update to 5.7.3
- Hack to run itcl examples
- Install Java JNI into %%{_libdir}/plplot%%{_version}
- java package requires java (bug #233905)
- devel requires main package (bug #233905)
- Enable octave api requirement
- Enable new ada interface - not installed yet though
- Renaable pstex driver

* Tue Mar 20 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.2-4
- Set PREBUILT_DOC so docs are installed

* Wed Mar 14 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.2-3
- Fix up tclIndex files so they are the same on all builds (bug #228172)
- Fix up examples/tk/Makefile for multilib (bug #228172)
- Install python in arch specific dirs (bug #228173)
- Enable itcl
- Update to CVS

* Fri Feb 09 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.2-2
- Rebuild for Tcl 8.5

* Tue Jan 23 2007 - Orion Poplawski <orion@cora.nwra.com> - 5.7.2-1
- Update to 5.7.2 which uses cmake
- Add patch to use -nopgcpp with swig java generation
- Enable more drivers

* Thu Dec 14 2006 - Jef Spaleta <jspaleta@gmail.com> - 5.6.1-9
- Bump and build for python 2.5

* Thu Nov  2 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.6.1-8
- Point to the freefont package properly (bug #210517)
- Move libriaries to -libs, -devel requires -libs for multilib support
- Change BR on gnome-python2 to gnome-python2-devel

* Fri Oct  6 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.6.1-7
- Rebuild for new octave API version

* Tue Oct  3 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.6.1-6
- rebuilt for unwind info generation, broken in gcc-4.1.1-21

* Mon Sep 25 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.6.1-5
- Add needed Requires for -devel packages (bug #202168)
- Patch .info rather than .texi, and actually apply

* Mon Aug 28 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.6.1-4
- Rebuild for new octave API version
- Add patch for texinfo file to fix category

* Mon Aug  7 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.6.1-3
- Add BR ncurses-devel

* Mon Aug  7 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.6.1-2
- Add patch to support octave 2.9.7 (bug #201443)

* Mon May 22 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.6.1-1
- Update to 5.6.1
- Enable f95 bindings
- Remove patches applied upstream
- Now include pkgconfig files
- pstex driver no longer shipped

* Mon Apr 24 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.6.0-1
- Update to 5.6.0 with new psttf driver
- Add wxGTK support

* Fri Feb 24 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-12
- Rebuild for FC5 gcc/glibc changes

* Wed Feb  1 2006 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-11
- Package .pyc and .pyo files

* Thu Dec 22 2005 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-10
- Add patch to strip X check from configure for modular X
- Rework patches to patch configure and avoid autoconf
- Teporarily add BR on libXau-devel and libXdmcp (bz #176313)

* Thu Dec 15 2005 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-9
- Rebuild for gcc 4.1

* Tue Aug 30 2005 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-8
- Re-enable java on ppc - should be fixed in upstream rawhide

* Thu Aug 11 2005 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-7
- Breakout java into its own sub-package, don't build on non x86
- Add patch to fix c test on ppc

* Wed Aug 10 2005 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-6
- Add patch to find tcl on x86_64
- Add patch to use new octave in devel

* Tue Aug 09 2005 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-5
- Explicitly turn off unused features in configure
- rpmlint cleanup
- add make check

* Mon Aug 08 2005 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-4
- Remove smp build due to problems
- Add gnome-python2 BuildRequires

* Mon Aug 08 2005 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-3
- Split into multipe packages

* Mon Aug 08 2005 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-2
- Shorten summary
- Fix Source URL

* Thu Aug 04 2005 - Orion Poplawski <orion@cora.nwra.com> - 5.5.3-1
- Initial Fedora Extras release