11 Commits

Author SHA256 Message Date
8e31769a01 Accepting request 1315762 from graphics
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1315762
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/graphviz?expand=0&rev=108
2025-11-06 17:12:52 +00:00
efaced47f6 Accepting request 1314283 from graphics
OBS-URL: https://build.opensuse.org/request/show/1314283
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/graphviz?expand=0&rev=107
2025-10-29 20:04:17 +00:00
OBS User buildservice-autocommit
9ae97666df baserev update by copy to link target
OBS-URL: https://build.opensuse.org/package/show/graphics/graphviz?expand=0&rev=206
2025-10-29 20:04:17 +00:00
OBS User buildservice-autocommit
3dcfe76cbb Updating link to change in openSUSE:Factory/graphviz revision 107
OBS-URL: https://build.opensuse.org/package/show/graphics/graphviz?expand=0&rev=74a16e0da723743b5a3e7de24cec48c0
2025-10-29 20:04:17 +00:00
9e96e3db9e Fix typos in changes file
OBS-URL: https://build.opensuse.org/package/show/graphics/graphviz?expand=0&rev=205
2025-10-29 17:04:15 +00:00
bbbf179acd - Drop graphviz-2.20.2-interpreter_names.patch: do not set the
executable to /usr/bin/lua5.1; the script in question uses
  would not even work with lua 5.1 anymore, as it uses API
  introduced with lua 5.2 anyway. The patch originally dares back
  to 2008 and was barely touched since then.

OBS-URL: https://build.opensuse.org/package/show/graphics/graphviz?expand=0&rev=204
2025-10-29 08:16:28 +00:00
445226a8b7 Accepting request 1313011 from graphics
- Update to 14.0.0
  * Changes see ChangeLog.md
- Remove unneeded patches (fixed mainline):
D graphviz-array_overflow.patch
D graphviz-no_php_extra_libs.patch
D    graphviz-useless_warnings.patch
D    swig-4.1.0.patch
- Remove old, unneeded condition: if 0%{?suse_version} == 1315

OBS-URL: https://build.opensuse.org/request/show/1313011
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/graphviz?expand=0&rev=106
2025-10-27 13:37:15 +00:00
504a96c110 D graphviz-no_php_extra_libs.patch
OBS-URL: https://build.opensuse.org/package/show/graphics/graphviz?expand=0&rev=202
2025-10-22 07:34:44 +00:00
5a6c216358 Accepting request 1311391 from home:trenn:branches:graphics
- Update to 14.0.0
  * Changes see ChangeLog.md
- Remove unneeded patches (fixed mainline):
D graphviz-array_overflow.patch
D    graphviz-useless_warnings.patch
D    swig-4.1.0.patch
- Remove old, unneeded condition: if 0%{?suse_version} == 1315

OBS-URL: https://build.opensuse.org/request/show/1311391
OBS-URL: https://build.opensuse.org/package/show/graphics/graphviz?expand=0&rev=201
2025-10-20 11:29:24 +00:00
4a6de6f74b Accepting request 1282874 from graphics
OBS-URL: https://build.opensuse.org/request/show/1282874
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/graphviz?expand=0&rev=105
2025-06-18 13:53:18 +00:00
736833a325 Accepting request 1281692 from home:alarrosa:branches:graphics
- Update to 12.2.1
  * Added
    - Support for building the SWIG-generated R language bindings
      has been integrated into the CMake build system. This is
      controllable by the -DENABLE_R={AUTO|ON|OFF} option.
    - A sandboxing wrapper, dot_sandbox, is now included with
      Graphviz. Users should prefer their platform’s native
      security solutions, but if nothing better is available this
      wrapper offers safe processing of untrusted inputs in some
      scenarios.
  * Changed
    - JPEG images without an APP0 leading segment are supported for
      use in src fields and friends. Previously Graphviz was overly
      strict with the types of JPEGs it would recognize. #2619
    - The CMake build system now discovers and uses
      pango_fc_font_lock_face if possible, for the Pango plugin to
      provide more information about used fonts.
  * Fixed
    - The GVPR library program depath no longer acts on previously
      deleted nodes, causing unpredictable results. #1702 (closed)
    - Void-typed function parameters (int foo(void bar)) and
      variables void baz; in GVPR are gracefully rejected.
      #2585 (closed)
    - Input that induce a set node height but no set node width no
      longer crash with the failure "Assertion failed:
      (r->boundary[i] <= r->boundary[NUMDIMS + i]), function
      RTreeInsert". It is typically not obvious to users when their
      input falls into this situation, hence why the assertion
      message is quoted here. This was a regression in Graphviz
      12.0.0. #2613 (closed)

OBS-URL: https://build.opensuse.org/request/show/1281692
OBS-URL: https://build.opensuse.org/package/show/graphics/graphviz?expand=0&rev=199
2025-06-04 18:00:50 +00:00
17 changed files with 247 additions and 323 deletions

View File

@@ -1,4 +1,4 @@
<multibuild>
<package>addons</package>
<package>qt5</package>
<package>qt6</package>
</multibuild>

3
graphviz-14.0.0.tar.bz2 Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:78d06cf3db0cc2298199d9ca0a9dd4be7f623f90f70ca72f60f1880d848a4f3d
size 33868656

View File

@@ -1,10 +0,0 @@
Index: tclpkg/gv/demo/modgraph.lua
===================================================================
--- tclpkg/gv/demo/modgraph.lua.orig
+++ tclpkg/gv/demo/modgraph.lua
@@ -1,4 +1,4 @@
-#!/usr/bin/lua
+#!/usr/bin/lua5.1
-- display the kernel module dependencies

View File

@@ -1,18 +0,0 @@
Silent warning:
>> tbl.c:173:15: warning: assignment to char * from incompatible pointer type char (*)[1] [-Wincompatible-pointer-types]
---
cmd/lefty/tbl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- cmd/lefty/tbl.c
+++ cmd/lefty/tbl.c 2024-09-06 08:48:48.059367033 +0000
@@ -170,7 +170,7 @@ Tobj Tcode (Code_t *cp, int ci, int cl)
cp2[i] = cp[i];
if (cp2[i].next != C_NULL)
cp2[i].next -= ci;
- s = &cp[i].u.s;
+ s = &cp[i].u.s[0]; // gcc14
while (*s)
s++;
cn = (long) (s - (char *) &cp[i]) / sizeof (Code_t);

Binary file not shown.

View File

@@ -1,67 +0,0 @@
From 87cc54644e40fccc0651b7fedc137b3dd02b4514 Mon Sep 17 00:00:00 2001
From: Matthew Fernandez <matthew.fernandez@gmail.com>
Date: Mon, 21 Mar 2022 08:09:55 -0700
Subject: [PATCH] smyrna Init: squash -Wincompatible-pointer-types
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
OpenGL has an unorthodox API wherein the `gluTessCallback` functions prototype
indicates it takes a `void(*)(void)`, but its docs¹ explain that the type
actually varies depending on the second argument. As a result, the compiler
(correctly) warns that some of these `gluTessCallback` calls are passing
function pointers that do not have the same ABI. Presumably this works out
because at the end of the day a function pointer is just some bits in C and the
OpenGL implementation branches on the `which` argument and invokes the pointer
correctly. But if OpenGL really wanted to discard type safety this way, it is
not clear to me why they did not make the function pointer argument a `void*`.
Anyway, this commit squashes the compiler warnings which emerge when enabling
this in the CMake build system, failing the build.
Gitlab: related to #1836
¹ This is not the authoritative source, but Microsofts docs for their
implementation provide a good explanation.
https://docs.microsoft.com/en-us/windows/win32/opengl/glutess
---
cmd/smyrna/polytess.c | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
--- cmd/smyrna/polytess.c
+++ cmd/smyrna/polytess.c 2024-09-06 09:04:16.790734526 +0000
@@ -39,15 +39,30 @@ static void CALLBACK vertexCallback(GLvo
}
-static GLUtesselator* Init()
+// OpenGLs `gluTessCallback` function has a prototype indicating it takes a
+// `void(*)(void)`. But its documentation describes passing in various function
+// pointers with differing calling conventions. To use this API while also
+// pacifying all the various build environments, we need this rather silly
+// wrapper.
+#ifdef _MSC_VER
+// MSVC is of the (correct) opinion that casting between function pointers of
+// incompatible calling conventions is unacceptable behavior…
+#define MAKE_GLU_CALLBACK(f) f
+#else
+// …nevertheless other compilers insist we cast or they believe we have made a
+// typo
+#define MAKE_GLU_CALLBACK(f) ((void (*)(void))(f))
+#endif
+
+static GLUtesselator* Init(void)
{
// Create a new tessellation object
GLUtesselator* tobj = gluNewTess();
// Set callback functions
- gluTessCallback(tobj, GLU_TESS_VERTEX, &vertexCallback);
- gluTessCallback(tobj, GLU_TESS_BEGIN, &glBegin);
- gluTessCallback(tobj, GLU_TESS_END, &glEnd);
- gluTessCallback(tobj, GLU_TESS_COMBINE,&combineCallback);
+ gluTessCallback(tobj, GLU_TESS_VERTEX, MAKE_GLU_CALLBACK(vertexCallback));
+ gluTessCallback(tobj, GLU_TESS_BEGIN, MAKE_GLU_CALLBACK(glBegin));
+ gluTessCallback(tobj, GLU_TESS_END, MAKE_GLU_CALLBACK(glEnd));
+ gluTessCallback(tobj, GLU_TESS_COMBINE, MAKE_GLU_CALLBACK(combineCallback));
return tobj;
}

View File

@@ -1,19 +0,0 @@
---
lib/common/htmltable.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: lib/common/htmltable.c
===================================================================
--- lib/common/htmltable.c.orig 2014-04-13 22:40:25.000000000 +0200
+++ lib/common/htmltable.c 2014-05-23 00:01:41.203062717 +0200
@@ -300,8 +300,8 @@ static void doBorder(GVJ_t * job, htmlda
gvrender_polyline(job, AF+2, 4);
break;
case BORDER_TOP|BORDER_LEFT|BORDER_BOTTOM :
- AF[5] = AF[1];
- AF[6] = AF[2];
+ AF[4] = AF[1];
+ AF[5] = AF[2];
gvrender_polyline(job, AF+3, 4);
break;
case BORDER_LEFT|BORDER_BOTTOM|BORDER_RIGHT :

View File

@@ -1,8 +1,23 @@
--- tclpkg/mkpkgindex.sh
+++ tclpkg/mkpkgindex.sh
@@ -22,4 +22,4 @@
echo " package require Tk 8.3" >>pkgIndex.tcl
;;
esac
-echo " load [file join \$dir $lib] $2\"" >>pkgIndex.tcl
+echo " load $lib $2\"" >>pkgIndex.tcl
#--- tclpkg/mkpkgindex.sh
#+++ tclpkg/mkpkgindex.sh
#@@ -22,4 +22,4 @@
# echo " package require Tk 8.3" >>pkgIndex.tcl
# ;;
# esac
#-echo " load [file join \$dir $lib] $2\"" >>pkgIndex.tcl
#+echo " load $lib $2\"" >>pkgIndex.tcl
---
# tclpkg/mkpkgindex.py | 2 +-
# 1 file changed, 1 insertion(+), 1 deletion(-)
#
--- a/tclpkg/mkpkgindex.py
+++ b/tclpkg/mkpkgindex.py
@@ -41,7 +41,7 @@
f.write(f'package ifneeded {options.name} {version} "\n')
if "tk" in str(options.file):
f.write("\tpackage require Tk 8.3\n")
- f.write(f'\tload [file join $dir {options.file}] {options.name}"\n')
+ f.write(f'\tload {options.file} {options.name}"\n')
if __name__ == "__main__":

View File

@@ -1,11 +0,0 @@
--- 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,8 +0,0 @@
--- 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 = vmalloc.vcxproj*

View File

@@ -1,4 +1 @@
# This line is mandatory to access the configuration functions
from Config import *
addFilter("lib.* obsolete-not-provided libgraphviz6")

View File

@@ -1,8 +1,10 @@
Index: configure.ac
===================================================================
--- configure.ac.orig
+++ configure.ac
@@ -2395,7 +2395,7 @@ else
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/configure.ac
+++ b/configure.ac
@@ -1897,7 +1897,7 @@
AC_CHECK_HEADER(GL/glut.h,
AC_CHECK_LIB(glut,main,

View File

@@ -1,17 +0,0 @@
---
tclpkg/gv/Makefile.am | 2 ++
1 file changed, 2 insertions(+)
Index: tclpkg/gv/Makefile.am
===================================================================
--- tclpkg/gv/Makefile.am.orig
+++ tclpkg/gv/Makefile.am
@@ -12,6 +12,8 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/lib/cdt \
-I$(top_srcdir)/lib/pathplan
+AM_CXXFLAGS = -Wno-unused-label -Wno-unused-function \
+ -Wno-unused-but-set-variable
LIBS = -lc
BASESOURCES = gv.cpp gv.i gv_builtins.c gv_channel.h

View File

@@ -1,3 +1,180 @@
-------------------------------------------------------------------
Wed Oct 29 08:03:39 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Drop graphviz-2.20.2-interpreter_names.patch: do not set the
executable to /usr/bin/lua5.1; the script in question used
would not even work with lua 5.1 anymore, as it uses API
introduced with lua 5.2 anyway. The patch originally dates back
to 2008 and was barely touched since then.
-------------------------------------------------------------------
Mon Sep 22 12:40:04 UTC 2025 - Thomas Renninger <trenn@suse.de>
- Update to 14.0.0
* Changes see ChangeLog.md
- Remove unneeded patches (fixed mainline):
D graphviz-array_overflow.patch
D graphviz-no_php_extra_libs.patch
D graphviz-useless_warnings.patch
D swig-4.1.0.patch
- Remove old, unneeded condition: if 0%{?suse_version} == 1315
-------------------------------------------------------------------
Fri May 30 10:49:41 UTC 2025 - Antonio Larrosa <alarrosa@suse.com>
- Update to 12.2.1
* Added
- Support for building the SWIG-generated R language bindings
has been integrated into the CMake build system. This is
controllable by the -DENABLE_R={AUTO|ON|OFF} option.
- A sandboxing wrapper, dot_sandbox, is now included with
Graphviz. Users should prefer their platforms native
security solutions, but if nothing better is available this
wrapper offers safe processing of untrusted inputs in some
scenarios.
* Changed
- JPEG images without an APP0 leading segment are supported for
use in src fields and friends. Previously Graphviz was overly
strict with the types of JPEGs it would recognize. #2619
- The CMake build system now discovers and uses
pango_fc_font_lock_face if possible, for the Pango plugin to
provide more information about used fonts.
* Fixed
- The GVPR library program depath no longer acts on previously
deleted nodes, causing unpredictable results. #1702 (closed)
- Void-typed function parameters (int foo(void bar)) and
variables void baz; in GVPR are gracefully rejected.
#2585 (closed)
- Input that induce a set node height but no set node width no
longer crash with the failure "Assertion failed:
(r->boundary[i] <= r->boundary[NUMDIMS + i]), function
RTreeInsert". It is typically not obvious to users when their
input falls into this situation, hence why the assertion
message is quoted here. This was a regression in Graphviz
12.0.0. #2613 (closed)
- Strings containing double quote characters preceded by escape
sequences (e.g. \n") are once again correctly escaped in dot
or canonical output. This was a regression in Graphviz 9.0.0.
#2614 (closed)
- dot_builtins no longer lists duplicate format options in its
error messages. #2604 (closed)
- A precision error that resulted in truncated edge lines has
been corrected. This was a regression in Graphviz 12.0.0.
#2620 (closed)
- The xlib plugin (-Tx11) resets its initialization state
during finalization. This fixes a rare scenario where
multiple input graphs are supplied and initialization for one
of the not-first graphs fails. In this scenario, finalization
would be unaware of this failure and act on invalid state.
- Update to 12.2.0
* Removed
- Visual Studio build files have been removed. CMake is now the
only supported build system on Windows.
* Added
- Support for building the SWIG-generated PHP language bindings
has been integrated into the CMake build system. This is
controllable by the -DENABLE_PHP={AUTO|ON|OFF} option.
- Support for building the SWIG-generated Python language
bindings has been integrated into the CMake build system.
This is controllable by the -DENABLE_PYTHON={AUTO|ON|OFF}
option.
* Changed
- An algorithm closer to that described in RFC 1942 and/or the
CSS 2.1 specification is now used for sizing table cells
within HTML-like labels. This is less scalable than the
network simplex algorithm it replaces, but in general
produces more intuitive results. #2159 (closed)
- Tooltips on table elements within HTML-like labels are now
propagated to SVGs produced by the core plugin (-Tsvg) even
when the elements do not have href attributes. #1425 (closed)
- In the Autotools build system, pkg-config is the only
supported way for discovering Guile. Previous use of
guile-config* has been removed. #2606 (closed)
- The Autotools release artifacts for macOS
(Darwin_*_graphviz-*.tar.gz) now use relative paths in links
to dependent libraries and plugins. This should make the tree
relocatable instead of having to live at
/Users/gitlab/builds. #2501 (closed)
- gml2gv no longer maps GML label attributes to Graphviz name
attributes. These are now mapped to Graphviz label
attributes. #2586 (closed)
* Fixed
- In the Autotools build system, the core plugin links against
libm, fixing some unresolvable symbols. This was a regression
in Graphviz 4.0.0. Though it would primarily have affected
non-Graphviz applications attempting to load this plugin on
Linux.
- The osage layout engine now understands a cluster to be
indicated by the common rules, including the "cluster" prefix
being case insensitive and the cluster=true attribute as an
alternative. #2187
- acyclic once again produces its output on stdout. This was a
regression in Graphviz 10.0.1. #2600 (closed)
- When using the Tclpathplan module, created vgpanes can once
again be named and addressed. This was a regression in
Graphviz 12.1.2.
- Omitting a polygon identifier when running triangulation
using the Tclpathplan module (e.g. vgpane0 triangulate
instead of vgpane0 triangulate 42) no longer goes unnoticed
and reads invalid memory. This bug seems to have existed
since the first revision of Graphviz.
- When using the Tclpathplan module, defining a malformed
<3-point polygon and then attempting to triangulate this
polygon no longer reads invalid memory. This case is now
rejected with an error during triangulation. Like the
previous entry, this bug seems to have existed since the
first revision of Graphviz.
- When using the Tclpathplan module, binding a panes
triangulation callback to a string ending in a trailing %
(e.g. vgpane0 bind triangle %) no longer causes later
out-of-bounds reads during triangulation. Like the previous
entries, this bug seems to have existed since the first
revision of Graphviz. #2596 (closed)
- Mouse right-clicks in Smyrna are no longer sticky. In some
contexts, right-clicking the mouse would register a mouse
down event but no mouse up event, leading Smyrna to believe
the user was dragging with the right button held down.
- Arrowhead missing from tail-end of edge #2437 (closed)
- The Ruby bindings package (libgv-ruby) is once again
installable on Ubuntu. This became uninstallable when
Ruby 1.8 was no longer available on Ubuntu, as it had a hard
coded dependency of Ruby 1.8. This has now been relaxed to
depend on any Ruby version ≥ 1.8. #2607 (closed)
- Generated GIFs and JPEGs display the graphed image instead
of a single solid color. This was a regression in Graphviz
12.1.1. #2609 (closed)
- The CMake build system includes some supporting pieces of the
SWIG-generated language bindings that were previously
missing. It also links further dependencies that were
previously missing.
- In the CMake build system, linking of the Guile language
bindings uses the full path to libguile, fixing issues on
macOS.
- The provided release packages for Debian-based operating
systems (only Ubuntu currently) have corrected package
dependencies. #2466 (closed)
- Discussion of gvpr -c "" in the gvpr man page has been
removed. This invocation did not do what was claimed.
#2584 (closed)
- To see the full changelog for all intermediate releases, see:
https://gitlab.com/graphviz/graphviz/-/blob/main/CHANGELOG.md
- Use Qt6 instead of Qt5 to build the gvedit tool.
- Drop patches already included in this version:
* gvc-detect-plugin-installation-failure-and-display-an-error.patch
* graphviz-87cc546.patch
- Drop patch that doesn't apply anymore since that code was
removed:
* graphviz-2.49.3-boo1225776-gcc14.patch
- Drop patch that doesn't apply anymore and doesn't seem to be
needed:
* graphviz-no_strict_aliasing.patch
- Rebase patches:
* graphviz-fix-pkgIndex.patch
* graphviz-no_php_extra_libs.patch
-------------------------------------------------------------------
Wed Feb 5 13:39:13 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@@ -1,7 +1,7 @@
#
# spec file for package graphviz
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -37,15 +37,9 @@
%define php_version 7
%endif
%endif
# No pkgconfig(gts) in sle12 GA or SPx, but in sle15
%if 0%{?suse_version} == 1315 && !0%{?is_opensuse}
%bcond_with gts
%else
%bcond_without gts
%endif
%define cdt_soversion 5
%define cgraph_soversion 6
%define gvc_soversion 6
%define cdt_soversion 6
%define cgraph_soversion 8
%define gvc_soversion 7
%define gvpr_soversion 2
%define lab_gamut_soversion 1
%define pathplan_soversion 4
@@ -56,7 +50,7 @@
%bcond_with java
%bcond_with ocaml
Name: graphviz%{psuffix}
Version: 2.49.3
Version: 14.0.0
Release: 0
Summary: Graph Visualization Tools
License: EPL-1.0
@@ -67,21 +61,6 @@ Source1: graphviz-rpmlintrc
#PATCH-FIX-UPSTREAM add flags to also link against libGLU and libGL
Patch0: graphviz-smyrna-link_against_glu.patch
Patch1: graphviz-fix-pkgIndex.patch
#PATCH-FIX-UPSTREAM Off-by-one bug
Patch2: graphviz-array_overflow.patch
Patch3: graphviz-2.20.2-interpreter_names.patch
#PATCH-FIX-UPSTREAM Don't warn about harmless issues with swig generated code
Patch4: graphviz-useless_warnings.patch
Patch5: graphviz-no_strict_aliasing.patch
Patch6: graphviz-no_php_extra_libs.patch
# https://gitlab.com/graphviz/graphviz/-/issues/2303
Patch7: swig-4.1.0.patch
#PATCH-FIX-UPSTREAM gvc: detect plugin installation failure and display an error
Patch8: gvc-detect-plugin-installation-failure-and-display-an-error.patch
#PATCH-FIX-OPENSUSE Bug 1225776 - Flavor addons of package graphviz does not build with gcc14
Patch9: graphviz-2.49.3-boo1225776-gcc14.patch
#PATCH-FIX-UPSTREAM
Patch10: graphviz-87cc546.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
@@ -93,14 +72,13 @@ BuildRequires: guile-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: python3-base >= 3.9
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(gts)
BuildRequires: pkgconfig(zlib)
Requires: bitstream-vera-fonts
Requires: graphviz-plugins-core = %{version}
Recommends: graphviz-gd = %{version}
%if %{with gts}
BuildRequires: pkgconfig(gts)
%endif
%if "%{flavor}" == "addons"
BuildRequires: freeglut-devel
BuildRequires: ghostscript
@@ -119,6 +97,7 @@ BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(gtkglext-1.0)
BuildRequires: pkgconfig(ice)
BuildRequires: pkgconfig(ijs)
BuildRequires: pkgconfig(libargon2)
BuildRequires: pkgconfig(libglade-2.0)
BuildRequires: pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(lua)
@@ -143,24 +122,24 @@ BuildRequires: java-devel >= 1.6.0
BuildRequires: ocaml
%endif
%endif
%if "%{flavor}" == "qt5"
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5PrintSupport)
BuildRequires: pkgconfig(Qt5Widgets)
%if "%{flavor}" == "qt6"
BuildRequires: pkgconfig(Qt6Core)
BuildRequires: pkgconfig(Qt6PrintSupport)
BuildRequires: pkgconfig(Qt6Widgets)
%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).
%if "%{flavor}" == "qt5"
%if "%{flavor}" == "qt6"
%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.
The Qt6 graph editor included with graphviz.
%endif
%package -n graphviz-smyrna
@@ -209,14 +188,6 @@ Requires: 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.
%package -n graphviz-lua
Summary: Lua extension for graphviz
Group: Productivity/Graphics/Visualization/Graph
@@ -247,6 +218,9 @@ Requires: perl = %{perl_version}
The graphviz-perl package contains the Perl extension for the graphviz
tools.
%if "%{flavor}" == "addons"
# flavor condition here only to calm down:
# Possible unexpanded macro in: Requires: php(api) =
%package -n graphviz-php
Summary: PHP Extension for Graphviz
Group: Productivity/Graphics/Visualization/Graph
@@ -258,6 +232,7 @@ Requires: php(zend-abi) = %{php_zend_api}
%description -n graphviz-php
The graphviz-php package contains the PHP extension for the graphviz
tools.
%endif
%package -n python3-gv
Summary: Python 3 Extension for Graphviz
@@ -365,15 +340,6 @@ Obsoletes: libgraphviz6 < %{version}-%{release}
The libxdot library provides support for parsing and deparsing graphical
operations specified by the xdot language.
%package -n liblab_gamut%{lab_gamut_soversion}
Summary: Library containing a rich set of graph drawing tools
Group: System/Libraries
Provides: libgraphviz6:%{_libdir}/liblab_gamut.so.1
Obsoletes: libgraphviz6 < %{version}-%{release}
%description -n liblab_gamut%{lab_gamut_soversion}
The lab_gamut library contains a rich set of graph drawing tools.
%package plugins-core
Summary: Core plugins for graphviz
Group: Productivity/Graphics/Visualization/Graph
@@ -394,7 +360,6 @@ Requires: libcdt%{cdt_soversion} = %{version}
Requires: libcgraph%{cgraph_soversion} = %{version}
Requires: libgvc%{gvc_soversion} = %{version}
Requires: libgvpr%{gvpr_soversion} = %{version}
Requires: liblab_gamut%{lab_gamut_soversion} = %{version}
Requires: libpathplan%{pathplan_soversion} = %{version}
Requires: libxdot%{xdot_soversion} = %{version}
@@ -405,17 +370,8 @@ programs that use the graphviz libraries including man3 pages.
%prep
#autosetup breaks graphviz-addons
%setup -q -n %{mname}-%{version}
%patch -P 0
%patch -P 1
%patch -P 2
%patch -P 3
%patch -P 4
%patch -P 5 -p1
%patch -P 6
%patch -P 7 -p1
%patch -P 8 -p1
%patch -P 9
%patch -P 10
%patch -P 0 -p1
%patch -P 1 -p1
# pkg-config returns 0 (TRUE) when guile-2.2 is present
if pkg-config --atleast-version=2.2 guile-2.2; then
@@ -427,10 +383,13 @@ 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@LUA_INSTALL_DIR="`$PKG_CONFIG.*@LUA_INSTALL_DIR="`$PKG_CONFIG --variable=INSTALL_CMOD lua$l`"@' \
-e 's@\(PHP_INSTALL_DIR=.*\)/php/modules@\1/php%{php_version}/extensions@' \
-e 's@\(PHP_INSTALL_DATADIR=.*\)/php@\1/php%{php_version}@' \
configure.ac
sed -i -e 's@LANGUAGE php7@LANGUAGE php8@' tclpkg/gv/CMakeLists.txt
%build
./autogen.sh RUBY_VER=%{?ruby_version}
CFLAGS="%{optflags} -ffast-math -fno-strict-aliasing -fno-strict-overflow -fPIC"
@@ -456,11 +415,10 @@ export LDFLAGS="-pie"
--without-visio \
%if "%{flavor}" == "addons"
--with-x \
--enable-lefty \
--with-smyrna \
RUBY_VER=%{ruby_version} \
%endif
%if "%{flavor}" == "qt5"
%if "%{flavor}" == "qt6"
--with-qt \
%endif
%if "%{flavor}" == ""
@@ -473,7 +431,7 @@ make %{?_smp_mflags}
%install
make install \
DESTDIR=%{buildroot} \
docdir=%{buildroot}%{_docdir}/%{mname} \
docdir=%{_docdir}/%{mname}-doc \
pkgconfigdir=%{_libdir}/pkgconfig
find %{buildroot} -type f -name "*.la" -delete -print
@@ -486,7 +444,6 @@ 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}
@@ -509,12 +466,13 @@ extension = gv.so
EOF
# Fix doc location
cp -a %{buildroot}%{_datadir}/%{mname}/doc %{buildroot}%{_defaultdocdir}/%{mname}-doc
%fdupes %{buildroot}%{_defaultdocdir}/%{mname}-doc
%fdupes %{buildroot}%{_datadir}/graphviz/demo
%else
rm -rf %{buildroot}%{_defaultdocdir}/%{mname}-doc
%endif
%if "%{flavor}" == "addons" || "%{flavor}" == "qt5"
%if "%{flavor}" == "addons" || "%{flavor}" == "qt6"
# Prune all the content of the base graphviz package
rm -rf %{buildroot}%{_libdir}/pkgconfig
rm -rf %{buildroot}%{_includedir}
@@ -526,9 +484,11 @@ 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_kitty*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_neato_layout*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_vt*
# 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
for i in acyclic bcomps ccomps circo cluster dijkstra dot dot2gxl dot_builtins dot_sandbox 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
@@ -541,11 +501,6 @@ rm -f %{buildroot}%{_libdir}/lib{cdt,cgraph,gvc,gvpr,pathplan,xdot,lab_gamut}.so
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
@@ -555,15 +510,13 @@ rm -rf %{buildroot}%{_libdir}/graphviz/php
rm -rf %{buildroot}%{_libdir}/graphviz/python*
rm -rf %{buildroot}%{_libdir}/graphviz/ruby
%endif
%if "%{flavor}" == "" || "%{flavor}" == "qt5"
%if "%{flavor}" == "" || "%{flavor}" == "qt6"
# 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*}
rm -f %{buildroot}%{_mandir}/man1/{diffimg.1*,dotty.1*,lneato.1*}
rm -f %{buildroot}%{_bindir}/{dotty,lneato}
# 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
@@ -597,11 +550,7 @@ test -s %{_libdir}/graphviz/%{config_file} || echo "%{_libdir}/graphviz/%{config
%postun -n libxdot%{xdot_soversion} -p /sbin/ldconfig
%post -n liblab_gamut%{lab_gamut_soversion} -p /sbin/ldconfig
%postun -n liblab_gamut%{lab_gamut_soversion} -p /sbin/ldconfig
%if "%{flavor}" == "qt5"
%if "%{flavor}" == "qt6"
%files -n graphviz-gvedit
%license epl-v10.txt
%{_bindir}/gvedit
@@ -632,9 +581,7 @@ if test -x %{_bindir}/dot; then rm -f %{_libdir}/graphviz/%{config_file} ; %{_bi
%{_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-gnome
%{_bindir}/dot -c
@@ -656,16 +603,6 @@ if test -x %{_bindir}/dot; then rm -f %{_libdir}/graphviz/%{config_file} ; %{_bi
%{lua_archdir}/gv.so
%{_mandir}/man3/gv.3lua%{ext_man}
%files -n graphviz-x11
%license epl-v10.txt
%{_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
@@ -679,7 +616,6 @@ if test -x %{_bindir}/dot; then rm -f %{_libdir}/graphviz/%{config_file} ; %{_bi
%files -n graphviz-php
%{phpext_dir}/gv.so
%{_datadir}/php%{php_version}/gv.php
%{_mandir}/man3/gv.3php%{ext_man}
%config(noreplace) %{phpconf_dir}/gv.ini
@@ -723,7 +659,7 @@ if test -x %{_bindir}/dot; then %{_bindir}/dot -c ; fi
%if "%{flavor}" == ""
%files
%doc doc/FAQ.html AUTHORS README NEWS ChangeLog
%doc doc/FAQ.html AUTHORS README NEWS CHANGELOG.md
%license epl-v10.txt
%{_bindir}/acyclic
%{_bindir}/bcomps
@@ -734,6 +670,7 @@ if test -x %{_bindir}/dot; then %{_bindir}/dot -c ; fi
%{_bindir}/dot
%{_bindir}/dot2gxl
%{_bindir}/dot_builtins
%{_bindir}/dot_sandbox
%{_bindir}/edgepaint
%{_bindir}/fdp
%{_bindir}/gc
@@ -802,7 +739,6 @@ if test -x %{_bindir}/dot; then %{_bindir}/dot -c ; fi
%{_datadir}/%{mname}/gvpr/histogram
%{_mandir}/man1/*.1%{ext_man}
%{_mandir}/man7/*.7%{ext_man}
%exclude %{_mandir}/man1/smyrna.1%{ext_man}
%files -n libcdt%{cdt_soversion}
%{_libdir}/libcdt.so.%{cdt_soversion}*
@@ -822,9 +758,6 @@ if test -x %{_bindir}/dot; then %{_bindir}/dot -c ; fi
%files -n libxdot%{xdot_soversion}
%{_libdir}/libxdot.so.%{xdot_soversion}*
%files -n liblab_gamut%{lab_gamut_soversion}
%{_libdir}/liblab_gamut.so.%{lab_gamut_soversion}*
%files plugins-core
%dir %{_libdir}/%{name}
%ghost %{_libdir}/%{name}/%{config_file}
@@ -836,7 +769,6 @@ if test -x %{_bindir}/dot; then %{_bindir}/dot -c ; fi
%{_libdir}/libcgraph.so
%{_libdir}/libgvc.so
%{_libdir}/libgvpr.so
%{_libdir}/liblab_gamut.so
%{_libdir}/libpathplan.so
%{_libdir}/libxdot.so
%{_libdir}/pkgconfig/*.pc

View File

@@ -1,31 +0,0 @@
From: Matthew Fernandez <matthew.fernandez@gmail.com>
Subject: gvc: detect plugin installation failure and display an error
References: bsc#1219491
Patch-Mainline: 10.0.1
Git-commit: a95f977f5d809915ec4b14836d2b5b7f5e74881e
Git-repo: git@gitlab.com:graphviz/graphviz.git.git
Gitlab: fixes #2441
Reported-by: GJDuck
A malformed config6 file that leads to plugin search failing no longer causes
out-of-bounds memory reads. This now causes an error message and graceful
failure. #2441
Signed-off-by: <trenn@suse.com>
Index: graphviz-2.49.3/lib/gvc/gvconfig.c
===================================================================
--- graphviz-2.49.3.orig/lib/gvc/gvconfig.c
+++ graphviz-2.49.3/lib/gvc/gvconfig.c
@@ -183,6 +183,10 @@ static int gvconfig_plugin_install_from_
do {
api = token(&nest, &s);
gv_api = gvplugin_api(api);
+ if (gv_api == (api_t)-1) {
+ agerr(AGERR, "config error: %s %s not found\n", path, api);
+ return 0;
+ }
do {
if (nest == 2) {
type = token(&nest, &s);

View File

@@ -1,18 +0,0 @@
diff --git a/tclpkg/gv/gv.i b/tclpkg/gv/gv.i
index ea65ada2f..0bab8817f 100644
--- a/tclpkg/gv/gv.i
+++ b/tclpkg/gv/gv.i
@@ -10,6 +10,13 @@
%module gv
+#ifdef SWIGPHP
+%pragma(php) code="/*
+This is a deprecated interface.
+Load graphviz via PHP's C API in php.ini instead.
+*/"
+#endif
+
#ifdef SWIGTCL
// A typemap telling SWIG to ignore an argument for input
// However, we still need to pass a pointer to the C function