File graphviz-plugins.spec of Package graphviz

#
# spec file for package graphviz-plugins (Version 2.12)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

# norootforbuild
# nodebuginfo

Name:           graphviz-plugins
%define mname graphviz
BuildRequires:  libexpat-devel libjpeg-devel libpng-devel zlib-devel
BuildRequires:  freetype2-devel >= 2 gcc-c++ ksh libstdc++-devel
BuildRequires:  bison flex glib2-devel m4 perl python-devel swig tk-devel >= 8.3 xorg-x11-devel
BuildRequires:  php5-devel ruby-devel xorg-x11-libICE-devel xorg-x11-libSM-devel xorg-x11-libXpm-devel
BuildRequires:  xorg-x11-libX11-devel xorg-x11-libXext-devel xorg-x11-libXmu-devel xorg-x11-libXt-devel
BuildRequires:  cairo-devel gcc-java gmp-devel guile-devel libgcj-devel lua-devel mono-core ocaml pango-devel
BuildRequires:  graphviz libgnomeui-devel php5-devel
%if 0%{?suse_version} > 1020
BuildRequires:  fdupes
%endif
Version:        2.12
Release:        11
AutoReqProv:    on
Summary:        Graph Visualization Tools
Group:          Productivity/Graphics/Visualization/Graph
Source:         http://www.graphviz.org/pub/graphviz/ARCHIVE/%{mname}-%{version}.tar.bz2
#Source1:        %{name}-rpmlintrc
Patch0:         graphviz-fix-pkgIndex.patch
Patch1:         graphviz-aliasing-fixes.patch
Patch3:         graphviz-fix_swig_template.patch
Patch4:         graphviz-neato_splines.patch
Patch7:         graphviz-strcmp_fix.patch
# This fix will be in 2.13
Patch8:         graphviz-2.11-php_check.patch
Patch9:         graphviz-no_libtool_patching.patch
Patch10:        graphviz-fix_manpages.patch
Patch11:        graphviz-gv_aliasing.patch
Patch12:        graphviz-php5_include_dirs.patch
Patch13:        graphviz-codecleanup.patch
Patch14:        graphviz-module_avoid-version.patch
Patch15:        graphviz-missing_includes.patch
Url:            http://www.graphviz.org/
License:        IBM Public License
Prefix:         /usr
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
PreReq:         /bin/cat

%description
A collection of tools and tcl packages for the manipulation and layout
of graphs (as in nodes and edges, not as in bar charts).



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-gd
Group:          Productivity/Graphics/Visualization/Graph
Summary:        Graphviz plugin for renderers based on gd
Requires:       graphviz = %{version}-%{release} gd

%description -n graphviz-gd
Graphviz plugin for renderers based on gd



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-guile
Group:          Productivity/Graphics/Visualization/Graph
Summary:        Graph Visualization Tools
Requires:       graphviz = %{version}-%{release} guile

%description -n graphviz-guile
A collection of tools and tcl packages for the manipulation and layout
of graphs (as in nodes and edges, not as in bar charts).



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-java
Group:          Productivity/Graphics/Visualization/Graph
Summary:        Graph Visualization Tools
Requires:       graphviz = %{version}-%{release} java

%description -n graphviz-java
A collection of tools and tcl packages for the manipulation and layout
of graphs (as in nodes and edges, not as in bar charts).



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-lua
Group:          Productivity/Graphics/Visualization/Graph
Summary:        Lua extension for graphviz
Requires:       graphviz = %{version}-%{release} lua

%description -n graphviz-lua
Lua extension for graphviz



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-ocaml
Group:          Productivity/Graphics/Visualization/Graph
Summary:        OCAML extension for graphviz
Requires:       graphviz = %{version}-%{release} ocaml

%description -n graphviz-ocaml
OCAML extension for graphviz



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-perl
Group:          Productivity/Graphics/Visualization/Graph
Summary:        Perl extension for Graphviz
Requires:       graphviz = %{version}-%{release} perl

%description -n graphviz-perl
Perl extension for Graphviz



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-php
Group:          Productivity/Graphics/Visualization/Graph
Summary:        PHP Extension for Graphviz
Requires:       graphviz = %{version}-%{release} php5

%description -n graphviz-php
PHP Extension for Graphviz



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-python
Group:          Productivity/Graphics/Visualization/Graph
Summary:        Python Extension for Graphviz
Requires:       graphviz = %{version}-%{release} python

%description -n graphviz-python
Python Extension for Graphviz



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-ruby
Group:          Productivity/Graphics/Visualization/Graph
Summary:        Ruby Extension for Graphviz
Requires:       graphviz = %{version}-%{release} ruby

%description -n graphviz-ruby
Ruby Extension for Graphviz



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-sharp
Group:          Productivity/Graphics/Visualization/Graph
Summary:        C# Extension for Graphviz
Requires:       graphviz = %{version}-%{release} mono-core

%description -n graphviz-sharp
C# extension for graphviz



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-tcl
Group:          Development/Libraries/Tcl
Summary:        Tcl extension tools for graphviz
Requires:       graphviz = %{version}-%{release} tcl >= 8.3 tk

%description -n graphviz-tcl
The graphviz-tcl package contains the various tcl packages (extensions)
for the graphviz tools.



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%package -n graphviz-doc
Group:          Productivity/Graphics/Visualization/Graph
Summary:        Documentation for graphviz

%description -n graphviz-doc
Provides some additional PDF and HTML documentation for graphviz.



Authors:
--------
    David Dobkin <dpd@cs.princeton.edu>
    John Ellson  <ellson@graphviz.org>
    Emden Gansner <erg@research.att.com>
    Eleftherios Koutsofios <ek@research.att.com>
    Stephen North <north@research.att.com>
    Kiem-Phong Vo <kpv@research.att.com>
    Gordon Woodhull <gmcw@worldnet.att.net>

%prep
%setup -q -n %{mname}-%{version}
%patch
%patch1
%patch3
%patch4
%patch7
%patch8
%patch9
%patch10
%patch11
%patch12
%patch13
%patch14
%patch15
# Fix path in generated man pages
sed -e 's$@LIB_DIR@$%{_libdir}$g' tclpkg/gv/gv_doc_langs.tcl >tclpkg/gv/gv_doc_langs.tcl.new && mv tclpkg/gv/gv_doc_langs.tcl.new tclpkg/gv/gv_doc_langs.tcl

%build
./autogen.sh
touch tclpkg/gv/gv.i
WARN_FLAGS="-W -Wall -Wno-unused-parameter -Wno-unknown-pragmas -Wstrict-prototypes -Wpointer-arith"
CFLAGS="$RPM_OPT_FLAGS $WARN_FLAGS"
%ifarch %ix86 x86_64
CFLAGS="$CFLAGS -ffast-math"
%endif
CC=gcc
RANLIB=:
export CC RANLIB
export CFLAGS="$CFLAGS"
export CPPFLAGS="%optflags"
./configure \
      --prefix=%{_prefix} \
      --bindir=%{_bindir} \
      --libdir=%{_libdir} \
      --includedir=%{_includedir} \
      --datadir=%{_datadir} \
      --mandir=%{_mandir} \
      --with-x \
      --with-mylibgd \
      --disable-static \
      --disable-dependency-tracking \
      --with-ipsepcola \
      --without-ming \
      --disable-io
make DESTDIR=%buildroot

%install
make install \
	DESTDIR=%{buildroot} \
	docdir=%{buildroot}%{_docdir}/%{mname} \
	pkgconfigdir=%{_libdir}/pkgconfig
find ${RPM_BUILD_ROOT} -type f -name "*.la" -exec rm -f {} ';'
#rm -rf %{buildroot}/usr/%{_lib}/pkgconfig  # ?
mkdir -p %{buildroot}/%{_docdir}
mkdir -p %{buildroot}%{_datadir}/%{mname}
mkdir -p %{buildroot}%{_datadir}/tcl/%{mname}
mv %buildroot/%{_libdir}/%{mname}/pkgIndex.tcl %{buildroot}%{_datadir}/tcl/%{mname}/
chmod -x %{buildroot}%{_datadir}/%{mname}/lefty/*
cp -a %{buildroot}%{_datadir}/%{mname}/doc __doc
rm -rf %{buildroot}%{_datadir}/%{mname}/doc
mkdir -p %{buildroot}/usr/lib/graphviz
touch %{buildroot}/usr/lib/graphviz/config
#Correct the path to the shared library
for manfile in $(find %{buildroot} -name \*.man); do
    sed -e 's$/usr/lib/graphviz$%{_libdir}/%{mname}$g' $manfile > ${manfile}.new && mv ${manfile}.new ${manfile}
done
rm -f  %{buildroot}/usr/bin/*
rm -rf %{buildroot}/usr/include/graphviz
rm -f  %{buildroot}/usr/lib/graphviz/config
rm -f  %{buildroot}/%{_libdir}/graphviz/libgvplugin_core*
rm -f  %{buildroot}/%{_libdir}/graphviz/libgvplugin_dot_layout*
rm -f  %{buildroot}/%{_libdir}/graphviz/libgvplugin_gd.so
rm -f  %{buildroot}/%{_libdir}/graphviz/libgvplugin_gtk*
rm -f  %{buildroot}/%{_libdir}/graphviz/libgvplugin_neato_layout*
rm -f  %{buildroot}/%{_libdir}/graphviz/libgvplugin_pango*
rm -f  %{buildroot}/%{_libdir}/graphviz/libgvplugin_xlib*
rm -f  %{buildroot}/%{_libdir}/lib*
rm -rf %{buildroot}/%{_libdir}/pkgconfig
rm -rf %{buildroot}/usr/share/graphviz/graphs
rm -rf %{buildroot}/usr/share/graphviz/lefty
rm -rf %{buildroot}/%{_mandir}/man1
rm -f  %{buildroot}/%{_mandir}/man3/*.3.gz
rm -f  %{buildroot}/%{_mandir}/man3/*.3
mv %{buildroot}%{_libdir}/%{mname}/tcl/gv_tcl.man %{buildroot}%{_mandir}/mann/gv_tcl.n 
mv %{buildroot}%{_libdir}/%{mname}/perl/gv_perl.man %{buildroot}%{_mandir}/man3/gv_perl.3pm
for lang in ruby python lua ocaml sharp guile php; do
    mv %{buildroot}%{_libdir}/%{mname}/$lang/gv_$lang.man %{buildroot}%{_mandir}/man3/gv_$lang.3
done
%if 0%{?suse_version} > 1020
%fdupes -s %{buildroot}%{_docdir}
%endif

%clean
rm -rf %{buildroot}

%files -n graphviz-gd
%defattr(-,root,root)
%{_libdir}/graphviz/libgvplugin_gd.so.*

%post -n graphviz-gd
%{_bindir}/dot -c

%postun -n graphviz-gd
if ! test -x $RPM_INSTALL_PREFIX0/bin/dot; then rm -f $RPM_INSTALL_PREFIX0/%{_lib}/graphviz/config; fi

%files -n graphviz-guile
%defattr(-,root,root,-)
%{_libdir}/graphviz/guile
%doc %{_mandir}/man3/gv_guile.3.gz

%files -n graphviz-java
%defattr(-,root,root,-)
%{_libdir}/graphviz/java

%files -n graphviz-sharp
%defattr(-,root,root)
%{_libdir}/graphviz/sharp
%doc %{_mandir}/man3/gv_sharp.3.gz

%files -n graphviz-lua
%defattr(-,root,root,-)
%{_libdir}/graphviz/lua
%doc %{_mandir}/man3/gv_lua.3.gz

%files -n graphviz-ocaml
%defattr(-,root,root,-)
%{_libdir}/graphviz/ocaml
%doc %{_mandir}/man3/gv_ocaml.3.gz

%files -n graphviz-perl
%defattr(-,root,root,-)
%{_libdir}/graphviz/perl
%doc %{_mandir}/man3/*.3pm*

%files -n graphviz-php
%defattr(-,root,root,-)
%{_libdir}/graphviz/php
%doc %{_mandir}/man3/gv_php.3.gz

%files -n graphviz-python
%defattr(-,root,root,-)
%{_libdir}/graphviz/python
%doc %{_mandir}/man3/gv_python.3.gz

%files -n graphviz-ruby
%defattr(-,root,root,-)
%{_libdir}/graphviz/ruby
%doc %{_mandir}/man3/gv_ruby.3.gz

%files -n graphviz-tcl
%defattr(-,root,root)
%dir %{_datadir}/tcl/%{mname}
%{_libdir}/graphviz/tcl
%{_datadir}/tcl/%{mname}/pkgIndex.tcl
%{_datadir}/graphviz/demo
%doc %{_mandir}/mann/*.n*

%files -n graphviz-doc
%docdir %{_defaultdocdir}/%{mname}
%defattr(-,root,root,-)
%doc __doc/*
%changelog
* Fri Oct 26 2007 - pth@suse.de
- Add missing includes.
* Thu Aug 16 2007 - pth@suse.de
- Add missing BuildRequires for fdupes
- Guard fdupes by check for suse_version
* Mon Aug 13 2007 - pth@suse.de
- lib/sfio/sfhdr.h(SFSETLOCALE): fix test for null pointer.
- Fix include paths for php5
- Move gv_php man page to where man searches for it.
- Use %%fdupes
- Add rpmlintrc
- use -fno-strict-aliasing for gv_php
* Mon Jun 11 2007 - ro@suse.de
- no main package, no debuginfo
* Wed Jun 06 2007 - pth@suse.de
- Move man pages to _mandir (bugzilla #281398)
* Fri May 11 2007 - ro@suse.de
- added get_release_number.sh to sync rel-number between
  graphviz and graphviz-plugins
* Thu May 10 2007 - ro@suse.de
- create own specfile for all plugins to reduce build dependencies
  of main package (and break various build cycles)
openSUSE Build Service is sponsored by