graphviz/graphviz-plugins.spec

626 lines
20 KiB
RPMSpec

#
# spec file for package graphviz-plugins (Version 2.18)
#
# Copyright (c) 2008 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/
#
# nodebuginfo
%define mname graphviz
Name: graphviz-plugins
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
%if 0%{?suse_version} > 1020
BuildRequires: fdupes
%endif
Version: 2.18
Release: 4
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
Patch2: graphviz-fix_swig_template.patch
Patch3: graphviz-neato_splines.patch
Patch4: graphviz-strcmp_fix.patch
Patch5: graphviz-fix_manpages.patch
Patch7: graphviz-codecleanup.patch
Patch8: graphviz-missing_includes.patch
Patch9: graphviz-configure_grok_vars.patch
Patch10: graphviz-2.18-duplicate_decls.patch
Patch11: graphviz-%{version}-interpreter_names.patch
#Patches above 100 are graphviz-plugins specific.
Patch100: graphviz-plugins-fix_install_dirs.patch
Patch101: graphviz-plugins-tcl_install_dir.patch
Url: http://www.graphviz.org/
License: IBM Public License
Prefix: /usr
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: /bin/cat
%define rb_libdir %{_libdir}/ruby
%define rb_sitedir %{rb_libdir}/site_ruby/%{rb_ver}
%define rb_vendordir %{rb_libdir}/vendor_ruby/%{rb_ver}
%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
License: IBM Public License
Group: Productivity/Graphics/Visualization/Graph
Summary: Graphviz plugin for renderers based on gd
Requires: graphviz = %{version}-%{release} gd
PreReq: /bin/rm
%description -n graphviz-gd
The graphviz-gd package contains the gd 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-guile
License: IBM Public License
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
License: IBM Public License
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
License: IBM Public License
Group: Productivity/Graphics/Visualization/Graph
Summary: Lua extension for graphviz
Requires: graphviz = %{version}-%{release} lua
%description -n graphviz-lua
The graphviz-lua package contains the lua extension 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-ocaml
License: IBM Public License
Group: Productivity/Graphics/Visualization/Graph
Summary: OCAML extension for graphviz
Requires: graphviz = %{version}-%{release} ocaml
%description -n graphviz-ocaml
The graphviz-ocaml package contains the Objective Caml extension 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-perl
License: IBM Public License
Group: Productivity/Graphics/Visualization/Graph
Summary: Perl extension for Graphviz
Requires: graphviz = %{version}-%{release} perl
%description -n graphviz-perl
The graphviz-perl package contains the Perl extension 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-php
License: IBM Public License
Group: Productivity/Graphics/Visualization/Graph
Summary: PHP Extension for Graphviz
Requires: graphviz = %{version}-%{release} php5
%description -n graphviz-php
The graphviz-php package contains the PHP extension 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-python
License: IBM Public License
Group: Productivity/Graphics/Visualization/Graph
Summary: Python Extension for Graphviz
Requires: graphviz = %{version}-%{release} python
%description -n graphviz-python
The graphviz-python package contains the Python extension 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-ruby
License: IBM Public License
Group: Productivity/Graphics/Visualization/Graph
Summary: Ruby Extension for Graphviz
Requires: graphviz = %{version}-%{release} ruby
%description -n graphviz-ruby
The graphviz-ruby package contains the ruby extension 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-sharp
License: IBM Public License
Group: Productivity/Graphics/Visualization/Graph
Summary: C# Extension for Graphviz
Requires: graphviz = %{version}-%{release} mono-core
%description -n graphviz-sharp
The graphviz-sharp package contains the C# extension 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-tcl
License: IBM Public License
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
License: IBM Public License
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
%patch2
%patch3
%patch4
%patch5
%patch7
%patch8
%patch9
%patch10
%patch11
%patch100
%patch101
# 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
# remove broken macros
rm m4/iconv.m4 m4/lib-*.m4
cp /usr/share/gettext/config.rpath config
%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 {} ';'
mkdir -p %{buildroot}/%{_docdir}
mkdir -p %{buildroot}%{_datadir}/%{mname}
mkdir -p %{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}/graphviz/libgvplugin_gdk_pixbuf*
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
rm -f %{buildroot}%{_mandir}/man7/*.7
rm -f %{buildroot}%{_mandir}/man7/*.7.gz
for lib in libgdtclft* libgv_tcl.so libtcldot* libtclplan* libtkspline*; do
mv %{buildroot}%{_libdir}/%{mname}/tcl/${lib} %{buildroot}%{_libdir}
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
%post -n graphviz-tcl -p /sbin/ldconfig
%postun -n graphviz-tcl -p /sbin/ldconfig
%files -n graphviz-guile
%defattr(-,root,root,-)
%{_libdir}/graphviz/guile
%doc %{_mandir}/mann/gv_guile.n.gz
%files -n graphviz-java
%defattr(-,root,root,-)
%{_libdir}/graphviz/java
%files -n graphviz-sharp
%defattr(-,root,root)
%{_libdir}/graphviz/sharp
%doc %{_mandir}/mann/gv_sharp.n.gz
%files -n graphviz-lua
%defattr(-,root,root,-)
%{_datadir}/%{mname}/demo/modgraph.lua
%{_libdir}/graphviz/lua
%doc %{_mandir}/mann/gv_lua.n.gz
%files -n graphviz-ocaml
%defattr(-,root,root,-)
%{_libdir}/graphviz/ocaml
%doc %{_mandir}/mann/gv_ocaml.n.gz
%files -n graphviz-perl
%defattr(-,root,root,-)
%{_libdir}/graphviz/perl
%{perl_vendorarch}/gv.pm
%{perl_vendorarch}/gv.so
%{_datadir}/%{mname}/demo/modgraph.pl
%doc %{_mandir}/mann/gv_perl.n.gz
%files -n graphviz-php
%defattr(-,root,root,-)
%{_libdir}/php5/extensions/gv.so
%{_datadir}/php5/gv.php
%doc %{_mandir}/mann/gv_php.n.gz
%{_libdir}/%{mname}-%{version}
%dir %{_libdir}/%{mname}/php
%{_libdir}/%{mname}/php/gv.php
%{_libdir}/%{mname}/php/gv.so
%{_libdir}/%{mname}/php/libgv_php.so
%{_datadir}/%{mname}/demo/modgraph.php
%files -n graphviz-python
%defattr(-,root,root,-)
%{_libdir}/graphviz/python
%{py_sitedir}/_gv.so
%{py_sitedir}/gv.py
%doc %{_mandir}/mann/gv_python.n.gz
%{_datadir}/%{mname}/demo/modgraph.py
%files -n graphviz-ruby
%defattr(-,root,root,-)
%{_libdir}/graphviz/ruby
%{rb_sitedir}/*-%{_os}/gv.so
%doc %{_mandir}/mann/gv_ruby.n.gz
%{_datadir}/%{mname}/demo/modgraph.rb
%files -n graphviz-tcl
%defattr(-,root,root)
%dir %{_datadir}/tcl/%{mname}
%{_libdir}/libgdtclft*
%{_libdir}/libgv_tcl.so
%{_libdir}/libtcldot*
%{_libdir}/libtclplan*
%{_libdir}/libtkspline*
%{_datadir}/tcl/%{mname}/pkgIndex.tcl
%{_datadir}/graphviz/demo
%doc %{_mandir}/mann/*.n*
%exclude %{_mandir}/mann/gv_lua.n.gz
%exclude %{_mandir}/mann/gv_perl.n.gz
%exclude %{_mandir}/mann/gv_ruby.n.gz
%exclude %{_mandir}/mann/gv_sharp.n.gz
%exclude %{_mandir}/mann/gv_guile.n.gz
%exclude %{_mandir}/mann/gv_python.n.gz
%exclude %{_mandir}/mann/gv_php.n.gz
%exclude %{_mandir}/mann/gv_ocaml.n.gz
%exclude %{_datadir}/%{mname}/demo/modgraph.rb
%exclude %{_datadir}/%{mname}/demo/modgraph.php
%exclude %{_datadir}/%{mname}/demo/modgraph.py
%exclude %{_datadir}/%{mname}/demo/modgraph.lua
%exclude %{_datadir}/%{mname}/demo/modgraph.pl
%files -n graphviz-doc
%docdir %{_defaultdocdir}/%{mname}
%defattr(-,root,root,-)
%doc __doc/*
%changelog
* Mon Apr 07 2008 pth@suse.de
- Fix paths for lua and php interpreter in examples.
* Thu Apr 03 2008 pth@suse.de
- Fix package and filelist correctly.
- Install tcl specific libraries to %%_libdir
- Properly package language specific demo code
* Mon Mar 31 2008 ro@suse.de
- fix build (added directories to filelist)
* Fri Mar 28 2008 pth@suse.de
- Update to 2.18. Changes since 2.12:
- Lots of bugs fixed, see ChangeLog for detailed list.
- in -Tps use a new number formatter that suppresses trailing 0.
- support tcl/tk-8.5
- support gcc-4.3
- support for node usershapes/images in svg format
- install: perl, php, python, ruby, tcl, bindings in
language-specified directories
- add arrowhead scaling with edge penwidth
- add "folder" node shape
- add "smyna" large graph view (thanks Arif) (not yet included
in binary distros)
* 2.16.1
- Improvements to PHP binding
- Improvements to OCAML binding
- Make regression tests run from the build tree, rather than require
installation
- Repair freetype detection on RedHat-7 (Yes, people still use it!!)
- Fix zoom-at-mouse-location in -Txlib and -Tgtk
- Fix some dotty regressions
* 2.15
- new regression test suite
- new cgraph library (will eventually replace graph and agraph)
- add "image" and "imagescale" for simpler support for images in nodes
- add "tab" "box3d" and "component" shapes. - Diomidis Spinellis
- replace arith.h in distro
- add functions to access version info to avoid need for gvcint.h
- Fix problem with irregular character spacing at 96dpi in pango/cairo
output formats.
- Add gdk_pixbuf plugin providing: .bmp .ico .jpg .png .tif
- Add DevIL plugin providing: .bmp .jpg .png .tif .tga
- Extend GD plugin to provide a backend to cairo for: .gif .jpg .png .gd
.gd2 .wbmp <- gifs are now antialiased
- Rework plugin framework to separate device from renderer, and to
autoload load dependendent plugins
- show defaults in output from: ./configure --help
- add more info to dot -v and dot -v2 debug outputs
- various issues with CR/LF in windows, but not in binary outputs.
* 2.14.1
- Add xdot parsing library to source distros
- graphviz.spec fixes for rpm distros from Gareth Armstrong
- moved language binding man pages to mann
(gv_php.n, gv_ocaml.n, etc.)
- New access functions for version info in GVC_t - permits
gvcint.h to be private.
* 2.14:
- Using system version of libgd if gd-2.0.34 or later.
internal copy of gd updated to gd-2.0.35.
- Updated GVGUI viewer for Windows
- Added support for selection of edge routing types:
line, polyline, orthogonal, spline
- Added -Tvml support
- Adapt the patch to allow ^LT_(CURRENT|REVISION|AGE)$ in
configure script and reenable the use of these variables.
* Thu Mar 13 2008 schwab@suse.de
- Allow ^LT_(CURRENT|REVISION|AGE)$ in configure script.
- Remove broken autoconf macros.
* 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)