SHA256
1
0
forked from pool/graphviz
Dominique Leuenberger 2021-04-14 08:10:14 +00:00 committed by Git OBS Bridge
commit cd03620ef0
10 changed files with 289 additions and 1996 deletions

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>addons</package>
</multibuild>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8faf3fc25317b1d15166205bf64c1b4aed55a8a6959dcabaa64dbad197e47add
size 26246717

View File

@ -0,0 +1,8 @@
--- graphviz-2.46.1/cmd/gvmap/gvmap.sh.orig 2021-02-18 18:41:12.414357238 +0100
+++ graphviz-2.46.1/cmd/gvmap/gvmap.sh 2021-02-18 18:41:23.626463135 +0100
@@ -1,4 +1,4 @@
-#!/usr/bin/env ksh
+#!/usr/bin/ksh
# Script for gvmap pipeline
# Use -A to add flags for gvmap; e.g., -Ae results in gvmap -e

3
graphviz-2.46.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:931ed197bc833aec8501d66194b01620dd395130c380e350a6ec1b31e4866eac
size 34065777

File diff suppressed because it is too large Load Diff

View File

@ -1,717 +0,0 @@
#
# spec file for package graphviz-addons
#
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
#fixes build failure caused by new .debug files, not sure how to fix correctly
%define mname graphviz
%define libname libgraphviz6
# name of the plugin config file that dot creates
%define config_file config6
# Build with extras or not, determines pulling additional dependencies
# and breaks build cycle
%bcond_without extras
# Java and ocaml are not in ring1, thus this gets overriden in staging
%bcond_without java
%bcond_with ocaml
# PHP7 requires swig >= 3.0.11, not available on Leap 42.x
%if 0%{?suse_version} >= 1500
%define php_version 7
%else
%define php_version 5
%endif
%define ruby_version $(pkg-config --variable=RUBY_API_VERSION %{_libdir}/pkgconfig/ruby-*.pc)
# No pkgconfig(gts) in sle12 GA or SPx, but in sle15
%if 0%{?suse_version} == 1315 && !0%{?is_opensuse}
%define sle12 1
%else
%define sle12 0
%endif
%bcond_without python2
Name: graphviz-addons
Version: 2.42.3
Release: 0
Summary: Graph Visualization Tools
License: EPL-1.0
Group: Productivity/Graphics/Visualization/Graph
URL: http://www.graphviz.org/
Source: https://www2.graphviz.org/Packages/stable/portable_source/graphviz-%{version}.tar.gz
Source2: graphviz-rpmlintrc
#PATCH-FIX-UPSTREAM add flags to also link against libGLU and libGL
Patch1: graphviz-smyrna-link_against_glu.patch
Patch2: graphviz-fix-pkgIndex.patch
#PATCH-FIX-UPSTREAM Off-by-one bug
Patch3: graphviz-array_overflow.patch
Patch6: graphviz-2.20.2-interpreter_names.patch
#PATCH-FIX-UPSTREAM Don't warn about harmless issues with swig generated code
Patch7: graphviz-useless_warnings.patch
Patch8: graphviz-no_strict_aliasing.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: guile-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: pkgconfig(expat)
%if 0%{sle12} != 1
BuildRequires: pkgconfig(gts)
%endif
BuildRequires: pkgconfig(zlib)
Requires: graphviz-plugins-core = %{version}
Recommends: graphviz-gd = %{version}
%if %{with extras}
BuildRequires: argon2-devel
BuildRequires: freeglut-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: perl
%if 0%{?suse_version} >= 1500
BuildRequires: php7-devel
BuildRequires: swig >= 3.0.11
%else
BuildRequires: php5-devel
BuildRequires: swig
%endif
BuildRequires: ruby-devel
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5PrintSupport)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2) >= 2
BuildRequires: pkgconfig(gdlib)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(gtkglext-1.0)
BuildRequires: pkgconfig(ice)
BuildRequires: pkgconfig(ijs)
BuildRequires: pkgconfig(libglade-2.0)
BuildRequires: pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(lua)
BuildRequires: pkgconfig(pango)
%if %{with python2}
BuildRequires: pkgconfig(python)
%endif
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(tcl)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xaw7)
BuildRequires: pkgconfig(xext)
%if %{with java}
BuildRequires: java-devel >= 1.6.0
%endif
%if %{with ocaml}
BuildRequires: ocaml
%endif
%endif
%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).
%package -n graphviz-gvedit
Summary: Graph editor based on Qt
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz
%description -n graphviz-gvedit
The Qt5 graph editor included with graphviz, packaged
separately to avoid cycles in the build of the graphviz
package.
%package -n graphviz-smyrna
Summary: Large graph viewer
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz
%description -n graphviz-smyrna
Experimental large graph viewer using graphviz
%package -n graphviz-gnome
Summary: Graphviz plugins that use gtk/GNOME
Group: Productivity/Graphics/Visualization/Graph
Recommends: plugin-core = %{version}
Requires(post): graphviz = %{version}
Supplements: packageand(graphviz:xorg-x11-fonts-core)
%description -n graphviz-gnome
Graphviz plugins that use gtk/GNOME.
%package -n graphviz-gd
Summary: Graphviz plugin for renderers based on gd
Group: Productivity/Graphics/Visualization/Graph
Requires(post): graphviz >= %{version}
%description -n graphviz-gd
The graphviz-gd package contains the gd extensions for the graphviz
tools.
%package -n graphviz-guile
Summary: Graph Visualization Tools
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Requires: 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).
%package -n graphviz-java
Summary: Graph Visualization Tools
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Requires: 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).
%package -n graphviz-x11
Summary: Graph editors based on X11
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz
%description -n graphviz-x11
The lefty/dotty/lneato X11 graph editors included with graphviz,
packaged separately to reduce build dependencies.
%package -n graphviz-lua
Summary: Lua extension for graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Requires: lua
%description -n graphviz-lua
The graphviz-lua package contains the lua extension for the graphviz
tools.
%package -n graphviz-ocaml
Summary: OCAML extension for graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Requires: ocaml
%description -n graphviz-ocaml
The graphviz-ocaml package contains the Objective Caml extension for
the graphviz tools.
%package -n graphviz-perl
Summary: Perl extension for Graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Requires: perl = %{perl_version}
%description -n graphviz-perl
The graphviz-perl package contains the Perl extension for the graphviz
tools.
%package -n graphviz-php
Summary: PHP Extension for Graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Requires: php%{php_version}
%description -n graphviz-php
The graphviz-php package contains the PHP extension for the graphviz
tools.
%package -n python2-gv
Summary: Python Extension for Graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
%description -n python2-gv
The package contains the Python extension for the
graphviz tools.
%package -n python3-gv
Summary: Python 3 Extension for Graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Provides: graphviz-python
Obsoletes: graphviz-python
%description -n python3-gv
The package contains the Python extension for the
graphviz tools.
%package -n graphviz-ruby
Summary: Ruby Extension for Graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Requires: ruby
%description -n graphviz-ruby
The graphviz-ruby package contains the ruby extension for the graphviz
tools.
%package -n graphviz-tcl
Summary: Tcl extension tools for graphviz
Group: Development/Libraries/Tcl
Requires: graphviz = %{version}
Requires: tcl >= 8.3
Requires: tk
%description -n graphviz-tcl
The graphviz-tcl package contains the various tcl packages (extensions)
for the graphviz tools.
%package -n graphviz-doc
Summary: Documentation for graphviz
Group: Documentation/Howto
%description -n graphviz-doc
Provides some additional PDF and HTML documentation for graphviz.
%package -n %{libname}
Summary: Library for the manipulation of layout of graphs
Group: System/Libraries
Recommends: graphviz-plugins-core
%description -n %{libname}
Library for the manipulation of layout of graphs (as in nodes and edges,
not as in bar charts).
%package plugins-core
Summary: Core plugins for graphviz
# Needed for dot binary
Group: Productivity/Graphics/Visualization/Graph
Requires(post): %{mname}
%description plugins-core
Core plugins for graphviz:
* libgvplugin_core
* libgvplugin_dot_layout
* libgvplugin_neato_layout
%package devel
Summary: Graphviz development package
Group: Development/Libraries/C and C++
Requires: %{libname} = %{version}
Requires: %{mname} = %{version}
%description devel
The graphviz-devel package contains all that's necessary for developing
programs that use the graphviz libraries including man3 pages.
#autosetup breaks graphviz-addons
%prep
%setup -q -n %{mname}-%{version}
%patch1
%patch2
%patch3
%patch6
%patch7
%patch8
# pkg-config returns 0 (TRUE) when guile-2.2 is present
if pkg-config --atleast-version=2.2 guile-2.2; then
sed "s/guile-2.0/guile-2.2/" -i configure.ac
fi
rm -f contrib/gprof2dot.awk
# Fix path for lua/php install
sed -i \
-e 's@LUA_INSTALL_DIR="/usr.*@LUA_INSTALL_DIR=%{lua_archdir}@' \
-e 's@\(PHP_INSTALL_DIR=.*\)/php/modules@\1/php%{php_version}/extensions@' \
-e 's@\(PHP_INSTALL_DATADIR=.*\)/php@\1/php%{php_version}@' \
configure.ac
%build
./autogen.sh RUBY_VER=%{ruby_version}
CFLAGS="%{optflags} -ffast-math -fno-strict-aliasing -fno-strict-overflow -fPIC"
%if %{with extras}
CFLAGS="$CFLAGS -I/usr/include/ruby-%{ruby_version}.0"
#seems to be broken? gives -I/usr/lib64/ruby/2.6.0/x86_64-linux-gnu, ruby.h is in /usr/lib64/ruby/2.6.0
#CFLAGS="$CFLAGS $(pkg-config --cflags ruby-$(echo {rb_ver} | sed 's|\.[^.]*$||'))"
%endif
export CFLAGS="$CFLAGS"
export CPPFLAGS="$CFLAGS"
export LDFLAGS="-pie"
%configure \
--disable-static \
--without-included-ltdl \
--disable-ltdl-install \
--with-ipsepcola \
--without-ming \
--disable-io \
--without-visio \
%if %{with extras}
%if %{with python2}
--enable-python2 \
%else
--disable-python \
--disable-python2 \
%endif
--with-x \
--with-qt \
--with-smyrna \
RUBY_VER=%{ruby_version} \
%else
--without-mylibgd \
--without-libgd \
%endif
--disable-silent-rules
make %{?_smp_mflags}
%install
make install \
DESTDIR=%{buildroot} \
docdir=%{buildroot}%{_docdir}/%{mname} \
pkgconfigdir=%{_libdir}/pkgconfig
find %{buildroot} -type f -name "*.la" -delete -print
mkdir -p %{buildroot}/%{_docdir}
mkdir -p %{buildroot}%{_datadir}/%{nmame}
rm -f %{buildroot}/%{_libdir}/%{mname}/pkgIndex.tcl
chmod -x %{buildroot}%{_datadir}/%{mname}/lefty/*
mkdir -p %{buildroot}%{_libdir}/graphviz
touch %{buildroot}%{_libdir}/graphviz/%{config_file}
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/
cat <<EOF >%{buildroot}%{_sysconfdir}/ld.so.conf.d/%{mname}.conf
%{_libdir}/%{mname}
%{_libdir}/%{mname}/sharp
%{_libdir}/%{mname}/java
%{_libdir}/%{mname}/perl
%{_libdir}/%{mname}/php
%{_libdir}/%{mname}/ocaml
%{_libdir}/%{mname}/python
%{_libdir}/%{mname}/lua
%{_libdir}/%{mname}/tcl
%{_libdir}/%{mname}/guile
%{_libdir}/%{mname}/ruby
EOF
#Correct the path to the shared library
for manfile in $(find %{buildroot} -name \*.man); do
sed -i \
-e 's$%{_prefix}/lib/graphviz$%{_libdir}/%{mname}$g' \
$manfile
done
# There are no such binaries distributed by us
rm -f %{buildroot}%{_mandir}/man1/mingle.1
%if %{with extras}
# Fix doc location
cp -a %{buildroot}%{_datadir}/%{mname}/doc %{buildroot}%{_defaultdocdir}/%{mname}-doc
%fdupes -s %{buildroot}%{_defaultdocdir}/%{mname}-doc
# Prune all the content of the base graphviz package
rm -rf %{buildroot}%{_libdir}/pkgconfig
rm -rf %{buildroot}%{_includedir}
rm -rf %{buildroot}%{_datadir}/graphviz/examples
rm -rf %{buildroot}%{_datadir}/graphviz/graphs
rm -rf %{buildroot}%{_datadir}/graphviz/gvpr
rm -f %{buildroot}%{_mandir}/man3/*.3
rm -f %{buildroot}%{_mandir}/man7/*.7
rm -f %{buildroot}%{_libdir}/graphviz/%{config_file}
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_core*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_dot_layout*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_neato_layout*
# binaries removal
for i in acyclic bcomps ccomps circo cluster dijkstra dot dot2gxl dot_builtins edgepaint fdp gc gml2gv graphml2gv gv2gml gv2gxl gvcolor gvgen gvmap gvmap.sh gvpack gvpr gxl2dot gxl2gv mm2gv neato nop osage patchwork prune sccmap sfdp tred twopi unflatten vimdot; do
rm -f %{buildroot}%{_bindir}/$i
rm -f %{buildroot}%{_mandir}/man1/$i.1
done
# libraries removal
rm -f %{buildroot}%{_sysconfdir}/ld.so.conf.d/graphviz.conf
rm -f %{buildroot}%{_libdir}/lib{cdt,cgraph,gvc,gvpr,pathplan,xdot,lab_gamut}.so*
# Fix tcl locations
for lib in libgdtclft* libgv_tcl.so libtcldot* libtclplan* ; do
mv %{buildroot}%{_libdir}/%{mname}/tcl/${lib} %{buildroot}%{_libdir}
done
# remove duplicated tcl files
for i in libgdtclft.so.0.0.0 libgv_tcl.so libtcldot.so.0.0.0 libtcldot_builtin.so.0.0.0 libtclplan.so.0.0.0; do
rm -f %{buildroot}%{_libdir}/tcl8.6/graphviz/$i
ln -s %{_libdir}/$i %{buildroot}%{_libdir}/tcl8.6/graphviz/$i
done
mkdir -p %{buildroot}%{_datadir}/tcl/%{mname}/
mv %{buildroot}%{_libdir}/%{mname}/tcl/pkgIndex.tcl %{buildroot}%{_datadir}/tcl/%{mname}/pkgIndex.tcl
# remove graphviz bindings from graphviz dir, these are installed into the language specific directories
rm -rf %{buildroot}%{_libdir}/graphviz/lua
rm -rf %{buildroot}%{_libdir}/graphviz/perl
rm -rf %{buildroot}%{_libdir}/graphviz/php
rm -rf %{buildroot}%{_libdir}/graphviz/python
rm -rf %{buildroot}%{_libdir}/graphviz/ruby
%else
# These are part of gnome subpkg
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_pango*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_xlib*
# This is part of the gd subpkg only
rm -f %{buildroot}%{_mandir}/man1/{diffimg.1*,dotty.1*,lefty.1*,lneato.1*}
# This is part of the x11 subpkg only
rm -rf %{buildroot}%{_datadir}/graphviz/lefty
%endif
# Remove wrongly located docs
rm -rf %{buildroot}%{_datadir}/%{mname}/doc
%post plugins-core
# run "dot -c" to generate plugin config %%{_libdir}/graphviz/config
dot -c
test -s %{_libdir}/graphviz/%{config_file} || echo "%{_libdir}/graphviz/%{config_file} doesn't exist! Check installation."
%postun plugins-core
if ! test -x %{_bindir}/dot; then
rm -f %{_libdir}/%{mname}/%{config_file}
fi
%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%if %{with extras}
%files -n graphviz-gvedit
%license COPYING
%{_bindir}/gvedit
%dir %{_datadir}/%{mname}/gvedit
%{_datadir}/%{mname}/gvedit/attrs.txt
%{_mandir}/man1/gvedit.1%{ext_man}
%files -n graphviz-smyrna
%license COPYING
%{_bindir}/smyrna
%{_datadir}/%{mname}/smyrna
%{_mandir}/man1/smyrna.1%{ext_man}
%files -n graphviz-gd
%{_bindir}/diffimg
%{_mandir}/man1/diffimg.1%{ext_man}
%{_libdir}/graphviz/libgvplugin_gd.so*
%post -n graphviz-gd
%{_bindir}/dot -c
%postun -n graphviz-gd
%{_bindir}/dot -c 2>/dev/null
%post -n graphviz-gnome
%{_bindir}/dot -c
%postun -n graphviz-gnome
%{_bindir}/dot -c 2>/dev/null
%files -n graphviz-gnome
%{_libdir}/graphviz/libgvplugin_gs*
%{_libdir}/graphviz/libgvplugin_rsvg*
%{_libdir}/graphviz/libgvplugin_pango*
%{_libdir}/graphviz/libgvplugin_gtk*
%{_libdir}/graphviz/libgvplugin_xlib*
%{_libdir}/graphviz/libgvplugin_gdk*
%post -n graphviz-tcl -p /sbin/ldconfig
%postun -n graphviz-tcl -p /sbin/ldconfig
%files -n graphviz-guile
%{_libdir}/graphviz/guile
%{_mandir}/man3/gv.3guile%{ext_man}
%if %{with java}
%files -n graphviz-java
%{_libdir}/graphviz/java
%{_mandir}/man3/gv.3java%{ext_man}
%endif
%files -n graphviz-lua
%{lua_archdir}/gv.so
%{_mandir}/man3/gv.3lua%{ext_man}
%files -n graphviz-x11
%license COPYING
%{_bindir}/dotty
%{_bindir}/lefty
%{_bindir}/lneato
%{_datadir}/%{mname}/lefty
%{_mandir}/man1/dotty.1%{ext_man}
%{_mandir}/man1/lefty.1%{ext_man}
%{_mandir}/man1/lneato.1%{ext_man}
%if %{with ocaml}
%files -n graphviz-ocaml
%{_libdir}/graphviz/ocaml
%{_mandir}/man3/gv.3ocaml%{ext_man}
%endif
%files -n graphviz-perl
%{perl_vendorarch}/gv.pm
%{perl_vendorarch}/gv.so
%{_mandir}/man3/gv.3perl%{ext_man}
%files -n graphviz-php
%{_libdir}/php%{php_version}/extensions/gv.so
%{_datadir}/php%{php_version}/gv.php
%{_mandir}/man3/gv.3php%{ext_man}
%if %{with python2}
%files -n python2-gv
%dir %{_libdir}/graphviz/python2
%{python_sitearch}/_gv.so
%{python_sitearch}/gv.py
%{_libdir}/graphviz/python2/_gv.so
%{_libdir}/graphviz/python2/gv.py
%{_libdir}/graphviz/python2/libgv_python2.so
%endif
%files -n python3-gv
%dir %{_libdir}/graphviz/python3
%{python3_sitearch}/_gv.so
%{python3_sitearch}/gv.py
%{_libdir}/graphviz/python3/_gv.so
%{_libdir}/graphviz/python3/gv.py
%{_libdir}/graphviz/python3/libgv_python3.so
%{_mandir}/man3/gv.3python%{ext_man}
%files -n graphviz-ruby
%{rb_vendorarchdir}/gv.so
%{_mandir}/man3/gv.3ruby%{ext_man}
%files -n graphviz-tcl
%dir %{_datadir}/tcl/%{mname}
%{_libdir}/tcl[0-9].[0-9]
%{_libdir}/libgdtclft*
%{_libdir}/libgv_tcl.so
%{_libdir}/libtcldot*
%{_libdir}/libtclplan*
%{_datadir}/tcl/%{mname}/pkgIndex.tcl
%{_mandir}/man3/*.3tcl*
%files -n graphviz-doc
%docdir %{_defaultdocdir}/%{mname}-doc
%{_defaultdocdir}/%{mname}-doc
%{_datadir}/graphviz/demo
%else
%files
%doc doc/FAQ.html AUTHORS README NEWS ChangeLog
%license COPYING
%{_bindir}/acyclic
%{_bindir}/bcomps
%{_bindir}/ccomps
%{_bindir}/circo
%{_bindir}/cluster
%{_bindir}/dijkstra
%{_bindir}/dot
%{_bindir}/dot2gxl
%{_bindir}/dot_builtins
%{_bindir}/edgepaint
%{_bindir}/fdp
%{_bindir}/gc
%{_bindir}/gml2gv
%{_bindir}/graphml2gv
%{_bindir}/gv2gml
%{_bindir}/gv2gxl
%{_bindir}/gvcolor
%{_bindir}/gvgen
%{_bindir}/gvmap
%{_bindir}/gvmap.sh
%{_bindir}/gvpack
%{_bindir}/gvpr
%{_bindir}/gxl2dot
%{_bindir}/gxl2gv
%{_bindir}/mm2gv
%{_bindir}/neato
%{_bindir}/nop
%{_bindir}/osage
%{_bindir}/patchwork
%{_bindir}/prune
%{_bindir}/sccmap
%{_bindir}/sfdp
%{_bindir}/tred
%{_bindir}/twopi
%{_bindir}/unflatten
%dir %{_datadir}/%{mname}
%{_datadir}/%{mname}/graphs
%dir %{_datadir}/%{mname}/gvpr
%{_datadir}/%{mname}/gvpr/addranks
%{_datadir}/%{mname}/gvpr/addrings
%{_datadir}/%{mname}/gvpr/anon
%{_datadir}/%{mname}/gvpr/attr
%{_datadir}/%{mname}/gvpr/bb
%{_datadir}/%{mname}/gvpr/bbox
%{_datadir}/%{mname}/gvpr/cliptree
%{_datadir}/%{mname}/gvpr/col
%{_datadir}/%{mname}/gvpr/collapse
%{_datadir}/%{mname}/gvpr/color
%{_datadir}/%{mname}/gvpr/dechain
%{_datadir}/%{mname}/gvpr/deghist
%{_datadir}/%{mname}/gvpr/deledges
%{_datadir}/%{mname}/gvpr/delmulti
%{_datadir}/%{mname}/gvpr/delnodes
%{_datadir}/%{mname}/gvpr/depath
%{_datadir}/%{mname}/gvpr/dijkstra
%{_datadir}/%{mname}/gvpr/flatten
%{_datadir}/%{mname}/gvpr/get-layers-list
%{_datadir}/%{mname}/gvpr/group
%{_datadir}/%{mname}/gvpr/indent
%{_datadir}/%{mname}/gvpr/knbhd
%{_datadir}/%{mname}/gvpr/maxdeg
%{_datadir}/%{mname}/gvpr/path
%{_datadir}/%{mname}/gvpr/rotate
%{_datadir}/%{mname}/gvpr/scale
%{_datadir}/%{mname}/gvpr/scalexy
%{_datadir}/%{mname}/gvpr/span
%{_datadir}/%{mname}/gvpr/topon
%{_datadir}/%{mname}/gvpr/treetoclust
%{_datadir}/%{mname}/gvpr/chkclusters
%{_datadir}/%{mname}/gvpr/cycle
%{_datadir}/%{mname}/gvpr/addedges
%{_datadir}/%{mname}/gvpr/binduce
%{_datadir}/%{mname}/gvpr/bipart
%{_datadir}/%{mname}/gvpr/chkedges
%{_datadir}/%{mname}/gvpr/histogram
%{_mandir}/man1/*.1%{ext_man}
%{_mandir}/man7/*.7%{ext_man}
%exclude %{_mandir}/man1/smyrna.1%{ext_man}
%files -n %{libname}
%{_libdir}/*.so.*
%config %{_sysconfdir}/ld.so.conf.d/graphviz.conf
%files plugins-core
%dir %{_libdir}/%{name}
%ghost %{_libdir}/%{name}/%{config_file}
%{_libdir}/%{name}/*.so*
%files devel
%{_includedir}/graphviz
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%{_mandir}/man3/*.3%{ext_man}
%endif
%changelog

View File

@ -0,0 +1,11 @@
--- configure.ac 2019-07-13 05:14:04.000000000 +0200
+++ configure.ac 2020-12-31 13:46:52.374560516 +0100
@@ -1116,7 +1116,7 @@ else
PHP_INCLUDES="`$PHPCONFIG --includes`"
PHP_INSTALL_DIR="`$PHPCONFIG --extension-dir`"
PHP_INSTALL_DATADIR="/usr/share/php"
- PHP_LIBS="`$PHPCONFIG --ldflags` `$PHPCONFIG --libs`"
+ PHP_LIBS="`$PHPCONFIG --ldflags`"
save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $PHP_INCLUDES"
AC_CHECK_HEADER(php.h,,[

View File

@ -1,9 +1,8 @@
--- .orig/lib/vmalloc/Makefile.am 2019-04-02 14:39:35.873818775 +0200
+++ lib/vmalloc/Makefile.am 2019-04-02 14:50:07.659001790 +0200
@@ -9,4 +9,6 @@
vmprofile.c vmregion.c vmsegment.c vmset.c vmstat.c vmstrdup.c \
vmtrace.c vmwalk.c
--- graphviz-2.46.1/lib/vmalloc/Makefile.am.orig 2021-02-18 17:44:23.990163756 +0100
+++ graphviz-2.46.1/lib/vmalloc/Makefile.am 2021-02-18 17:46:38.615438829 +0100
@@ -9,4 +9,5 @@
vmopen.c \
vmstrdup.c
+libvmalloc_C_la_CFLAGS = -fno-strict-aliasing
+
EXTRA_DIST = README vmalloc.vcxproj*
EXTRA_DIST = vmalloc.vcxproj*

View File

@ -1,3 +1,167 @@
-------------------------------------------------------------------
Thu Apr 8 16:01:30 UTC 2021 - Christian Vögl <christian.voegl@suse.com>
- Buildrequire full ghostscript in the addons package
to avoid a conflict betwen ghostcript-mini and ghostscript-devel
-------------------------------------------------------------------
Tue Mar 16 10:56:53 UTC 2021 - Christian Vögl <christian.voegl@suse.com>
- Replace ghostscript-mini dependency with ghostscript_any
-------------------------------------------------------------------
Mon Mar 1 13:55:28 UTC 2021 - Christian Vögl <christian.voegl@suse.com>
- Add graphviz-webp package to for webp image support
-------------------------------------------------------------------
Tue Feb 23 16:10:57 UTC 2021 - Christian Vögl <christian.voegl@suse.com>
- Reenable ghostscript, but require just ghostscript-mini
-------------------------------------------------------------------
Thu Feb 18 18:04:09 UTC 2021 - Christian Vögl <christian.voegl@suse.com>
- Update to new release 2.46.1 (changes since 2.44.1)
* Support for building against Guile 2.2
* Portable source is now also offered as a .tar.xz
* CentOS/RHEL 6 is no longer supported
* Vestiges of Qt4 support have been removed
* C++11 support is now required of the C++ compiler used to build Graphviz
* C99 support is now required of the C compiler used to build Graphviz
* Question about userout() function in agerror.c #1924
* The minimum version of Python required to run the test suite is 3.6
* memory leak in label construction
* gvedit compilation errors out, but works if manually compiled with qt5 #1862
* incorrect HTML BR attribute parsing code #1913
* broken overflow checks in RectArea #1906
* various memory leaks !1699
* Fix bad free in lefty !1709
* typo in pathcross #1926
* Out-of-bounds write caused by incorrect error handling of malloc in genUserdata #1928
* Offer .tar.xz files too #454
* Header file graphviz_version.h has no include guards #1929
* regression: newlines embedded in quoted labels / node names are not preserved in 2.46.0 #1931
* Properly fill graphviz_version.h !1706
* Cgraph's agxbuf API gained a new function agxbdisown(), for dissociating
* backing memory from the managed buffer
* Build system support for the Elbrus 2000 CPU, thanks to Michael Shigorin
* Cgraph's agheap() API has been removed
* Autotools build system support for eFence has been removed
* Building Graphviz with ICC defaults to -O2 instead of -O0
* Build system work arounds for GCC 3 have been removed
* Incomplete support for running the test suite under CMake has been removed
* Portable source tarballs now use the “ustar” POSIX format
* Minimum version of Flex required to build Graphviz is now 2.5.2
* Minimum version of Bison required to build Graphviz is now 3.0
* Minimum version of CMake required to build Graphviz using CMake is now 3.1
* gvpr: line numbers in gvpr errors/warnings are incorrect #1594
* URL typo in patchwork man page
* Escaped backslashes are not correctly handled when producing xdot with dot #165
* heap-over-flow(off-by-null) in lib/common/shapes.c #1700
* Windows MSBuild executables have the wrong version #1745
* Cast Overflow at pango_textlayout #1314
* x11 back end segfaults if display is unavailable #1776
* typo in cmd/gvpr/lib/clustg #1781
* Segfault in dot #1783
* Incorrect 'Arrow type "s" unknown' error #1444
* segfault on reading 0x10 #1724
* Null-dereference READ (144736912) #1676
* "Warning! PATH too long installer unable to modify PATH!" using CMake Windows installer and PATH length > 1024 #1770
* gvedit -? gives "option - unrecognized - ignored" instead of showing usage #1813
* lefty is not built for Windows (fixed for MSBuild builds only) #1818
* a failure to detect OpenGL glGenTextures() errors has been corrected
* sfio does compile time benchmarknig #1422
* iffe "lib" check always succeeds when compiler optimises #1521
* syntax error near text who is not present #1411
* Explicitly links with libstdc++; should allow libc++ if appropriate #163
* A macOS file that was erroneously excluded from portable source tarballs has
* been restored
* Add option -? for usage to diffimg
* Add option -? for usage to dotty
* Add option -? for usage to lneato
* Add option -? for usage to vimdot
* Fix smyrna -? to actually print usage instead of error
* Fix edgepaint -? to actually print usage instead of error
* Remove '"' from usage text in non-Windows version of dotty
* Correct misspelled 'smyrna' in usage
* Fix edgepaint -o option
* Correct shebang of gvmap.sh to use ksh
* Fix gvmap.sh -? option to exit with zero exit status
* Graphviz doesn't build on MacOS with the latest libc++ #1785
* make fails if ps2pdf is not installed (using autotools) #1763
* multiple graphs to file output causes a segfault #1845
* lefty PTY functionality relies on file descriptor implementation details #1823
* buffer overflow in fdpgen
* Crashes by VRML output when current directory is not writable #793
* Segmentation fault when newrank=true #1221
* sfdp craches #236
* fdp segmentation fault with GK=0 #1290
* fdp crash #1865
* Graphviz always crash with this simple dot file #167
* Seg fault in dot #1771
* gml2gv doesn't handle some attributes correctly #1869
* Add missing circo, fdp, neato, osage, patchwork, sfdp & twopi tools to Windows builds (copies of dot)
* Add gv2gml tool to CMake (copy of gml2gv on Windows, symlink to gml2gv otherwise)
* Regression: fdp generates internal names in the output #1876
* Regression: fdp assertion error on cluster in edge #1877
* Regression in id / &lt;title&gt; in svg for twopi #1907
- graphviz-2.46-fix-shebang.patch added to make rpmlint happy
- graphviz-no_strict_aliasing.patch changed to be applicable to current files
- configure without ghostscript to break new build cycle
- Update source URLs
-------------------------------------------------------------------
Thu Dec 31 16:07:29 UTC 2020 - Arjen de Korte <suse+build@de-korte.org>
- Use _multibuild to build graphviz and graphviz-addons in a single
development project
- graphviz-addons.changes
- graphviz-addons.spec
-------------------------------------------------------------------
Thu Dec 31 14:30:11 UTC 2020 - Arjen de Korte <suse+build@de-korte.org>
- Update to new release 2.44.1 (changes since 2.42.3)
* applied RH patches (from graphviz-2.42.2-8.fc32.src.rpm)
* some allocation failures that could previously allow memory
corruption now exit
* lab_gamut.3.pdf is no longer included in release archives
* Fixed Neato's hier mode is broken since v2.44.0
* Fixed segmentation fault (core dumped)
* New SGD mode in neato
* Add pkg-config files
* tred: add feature to output removed edges to stderr upon request
* Workaround: avoid creating a virtual edge loop.
* Add riscv64 to host_cpu configure.ac
* lib/cgraph: include empty malloc.h from subdir include
* lib/gvpr: compile mkdefs with $(HOSTCC) rather than $(CC)
* lib/vpsc: rename bcopy->b_copy
* Fixed the NativeCodeAnalysis task failed unexpectedly.
* Include all test files in distro
* host_cpu add mips64 platform
* Correct description of 'port' syntax in manual
* svg output displays TITLE of %3 if graph had no name
* XML errors in generated SVG when URL attribute contains
ampersand (&)
* Test files missing from source distributions
* SVG error for "g.transform.scale " in graphviz version 2.43
- BuildRequires for ghostscript and groff (generate cdt documentation)
- Extension graphviz-php changes:
* Require php(api) and php(zend-abi) to guarantee ABI compatibility
* Don't pull in extra libraries from PHP
+ graphviz-no_php_extra_libs.patch
* Remove argon2-devel from list of dependencies
* Automatically enable extension when installed by providing
/etc/php{5,7}/conf.d/gv.ini
-------------------------------------------------------------------
Tue Mar 31 13:07:32 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
- Rename python*-graphviz to python*-gv, there is also normal
pypi graphviz package and we clash otherwise and override
each other
-------------------------------------------------------------------
Fri Mar 27 20:28:30 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file for package graphviz
#
# Copyright (c) 2020 SUSE LLC
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,24 +16,33 @@
#
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "addons"
%define psuffix -%{flavor}
%else
%define psuffix %{nil}
%endif
#fixes build failure caused by new .debug files, not sure how to fix correctly
%define mname graphviz
%define libname libgraphviz6
# name of the plugin config file that dot creates
%define config_file config6
# Build with extras or not, determines pulling additional dependencies
# and breaks build cycle
%bcond_with extras
# Java and ocaml are not in ring1, thus this gets overriden in staging
%bcond_without java
%bcond_with ocaml
%if "%{flavor}" == "addons"
# PHP7 requires swig >= 3.0.11, not available on Leap 42.x
%if 0%{?suse_version} >= 1500
%define php_version 7
%else
%define php_version 5
%endif
%define phpconf_dir %{_sysconfdir}/php%{php_version}/conf.d
%define phpext_dir %(%{__php_config} --extension-dir)
%endif
%define ruby_version $(pkg-config --variable=RUBY_API_VERSION %{_libdir}/pkgconfig/ruby-*.pc)
@ -43,15 +52,16 @@
%else
%define sle12 0
%endif
Name: graphviz
Version: 2.42.3
%bcond_without python2
Name: graphviz%{psuffix}
Version: 2.46.1
Release: 0
Summary: Graph Visualization Tools
License: EPL-1.0
Group: Productivity/Graphics/Visualization/Graph
URL: http://www.graphviz.org/
Source: https://www2.graphviz.org/Packages/stable/portable_source/graphviz-%{version}.tar.gz
Source2: graphviz-rpmlintrc
URL: https://www.graphviz.org/
Source0: https://gitlab.com/graphviz/graphviz/-/archive/2.46.1/graphviz-%{version}.tar.gz
Source1: graphviz-rpmlintrc
#PATCH-FIX-UPSTREAM add flags to also link against libGLU and libGL
Patch1: graphviz-smyrna-link_against_glu.patch
Patch2: graphviz-fix-pkgIndex.patch
@ -62,6 +72,8 @@ Patch6: graphviz-2.20.2-interpreter_names.patch
#PATCH-FIX-UPSTREAM Don't warn about harmless issues with swig generated code
Patch7: graphviz-useless_warnings.patch
Patch8: graphviz-no_strict_aliasing.patch
Patch9: graphviz-no_php_extra_libs.patch
Patch10: graphviz-2.46-fix-shebang.patch
BuildRequires: autoconf
BuildRequires: automake
@ -69,6 +81,7 @@ BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: groff
BuildRequires: guile-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool
@ -80,14 +93,14 @@ BuildRequires: pkgconfig(gts)
BuildRequires: pkgconfig(zlib)
Requires: graphviz-plugins-core = %{version}
Recommends: graphviz-gd = %{version}
%if %{with extras}
BuildRequires: argon2-devel
%if "%{flavor}" == "addons"
BuildRequires: freeglut-devel
BuildRequires: ghostscript
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libwebp-devel
BuildRequires: perl
BuildRequires: python3-devel
%if 0%{?suse_version} >= 1500
BuildRequires: php7-devel
BuildRequires: swig >= 3.0.11
@ -112,7 +125,10 @@ BuildRequires: pkgconfig(libglade-2.0)
BuildRequires: pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(lua)
BuildRequires: pkgconfig(pango)
%if %{with python2}
BuildRequires: pkgconfig(python)
%endif
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(tcl)
BuildRequires: pkgconfig(x11)
@ -124,6 +140,8 @@ BuildRequires: java-devel >= 1.6.0
%if %{with ocaml}
BuildRequires: ocaml
%endif
%else # if "{flavor}" == "addons"
BuildRequires: ghostscript_any
%endif
%description
@ -231,19 +249,31 @@ Summary: PHP Extension for Graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Requires: php%{php_version}
Requires: php(api) = %{php_core_api}
Requires: php(zend-abi) = %{php_zend_api}
%description -n graphviz-php
The graphviz-php package contains the PHP extension for the graphviz
tools.
%package -n graphviz-python
%package -n python2-gv
Summary: Python Extension for Graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Requires: python
%description -n graphviz-python
The graphviz-python package contains the Python extension for the
%description -n python2-gv
The package contains the Python extension for the
graphviz tools.
%package -n python3-gv
Summary: Python 3 Extension for Graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Provides: graphviz-python
Obsoletes: graphviz-python
%description -n python3-gv
The package contains the Python extension for the
graphviz tools.
%package -n graphviz-ruby
@ -267,6 +297,18 @@ Requires: tk
The graphviz-tcl package contains the various tcl packages (extensions)
for the graphviz tools.
%package -n graphviz-webp
Summary: WebP support for graphviz
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz = %{version}
Requires: graphviz-gnome = %{version}
Requires: libwebp7
%description -n graphviz-webp
The graphviz-webp package contains files needed for the support of WebP images
%package -n graphviz-doc
Summary: Documentation for graphviz
Group: Documentation/Howto
@ -316,7 +358,9 @@ programs that use the graphviz libraries including man3 pages.
%patch6
%patch7
%patch8
%patch8 -p1
%patch9
%patch10 -p1
# pkg-config returns 0 (TRUE) when guile-2.2 is present
if pkg-config --atleast-version=2.2 guile-2.2; then
@ -336,7 +380,7 @@ sed -i \
./autogen.sh RUBY_VER=%{ruby_version}
CFLAGS="%{optflags} -ffast-math -fno-strict-aliasing -fno-strict-overflow -fPIC"
%if %{with extras}
%if "%{flavor}" == "addons"
CFLAGS="$CFLAGS -I/usr/include/ruby-%{ruby_version}.0"
#seems to be broken? gives -I/usr/lib64/ruby/2.6.0/x86_64-linux-gnu, ruby.h is in /usr/lib64/ruby/2.6.0
@ -355,7 +399,13 @@ export LDFLAGS="-pie"
--without-ming \
--disable-io \
--without-visio \
%if %{with extras}
%if "%{flavor}" == "addons"
%if %{with python2}
--enable-python2 \
%else
--disable-python \
--disable-python2 \
%endif
--with-x \
--with-qt \
--with-smyrna \
@ -409,7 +459,13 @@ done
# There are no such binaries distributed by us
rm -f %{buildroot}%{_mandir}/man1/mingle.1
%if %{with extras}
%if "%{flavor}" == "addons"
mkdir -p %{buildroot}/%{phpconf_dir}
cat > %{buildroot}%{phpconf_dir}/gv.ini <<EOF
; comment out next line to disable gv extension in php
extension = gv.so
EOF
# Fix doc location
cp -a %{buildroot}%{_datadir}/%{mname}/doc %{buildroot}%{_defaultdocdir}/%{mname}-doc
%fdupes -s %{buildroot}%{_defaultdocdir}/%{mname}-doc
@ -476,7 +532,7 @@ fi
%postun -n %{libname} -p /sbin/ldconfig
%if %{with extras}
%if "%{flavor}" == "addons"
%files -n graphviz-gvedit
%license COPYING
%{_bindir}/gvedit
@ -518,6 +574,12 @@ fi
%post -n graphviz-tcl -p /sbin/ldconfig
%postun -n graphviz-tcl -p /sbin/ldconfig
%post -n graphviz-webp
%{_bindir}/dot -c
%postun -n graphviz-webp
%{_bindir}/dot -c 2>/dev/null
%files -n graphviz-guile
%{_libdir}/graphviz/guile
%{_mandir}/man3/gv.3guile%{ext_man}
@ -554,18 +616,23 @@ fi
%{_mandir}/man3/gv.3perl%{ext_man}
%files -n graphviz-php
%{_libdir}/php%{php_version}/extensions/gv.so
%{phpext_dir}/gv.so
%{_datadir}/php%{php_version}/gv.php
%{_mandir}/man3/gv.3php%{ext_man}
%config(noreplace) %{phpconf_dir}/gv.ini
%files -n graphviz-python
%if %{with python2}
%files -n python2-gv
%dir %{_libdir}/graphviz/python2
%dir %{_libdir}/graphviz/python3
%{python_sitearch}/_gv.so
%{python_sitearch}/gv.py
%{_libdir}/graphviz/python2/_gv.so
%{_libdir}/graphviz/python2/gv.py
%{_libdir}/graphviz/python2/libgv_python2.so
%endif
%files -n python3-gv
%dir %{_libdir}/graphviz/python3
%{python3_sitearch}/_gv.so
%{python3_sitearch}/gv.py
%{_libdir}/graphviz/python3/_gv.so
@ -587,6 +654,9 @@ fi
%{_datadir}/tcl/%{mname}/pkgIndex.tcl
%{_mandir}/man3/*.3tcl*
%files -n graphviz-webp
%{_libdir}/graphviz/libgvplugin_webp.so*
%files -n graphviz-doc
%docdir %{_defaultdocdir}/%{mname}-doc
%{_defaultdocdir}/%{mname}-doc