Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: graphviz update
To:
Edd Barrett <edd@openbsd.org>, ports <ports@openbsd.org>
Date:
Wed, 29 Oct 2025 17:53:22 +0000

Download raw body.

Thread
On 2025/10/29 14:10, Stuart Henderson wrote:
> Here's an update to graphviz; I've built most dependent ports, and
> done some light runtime testing with xlib, png and pdf output plugins
> and xdot.

(btw, this diff needs up-to-date librsvg otherwise you will have an
error about a missing library for dav1d).

> Too many changes to list here, see
> https://gitlab.com/graphviz/graphviz/-/blob/main/CHANGELOG.md?ref_type=heads
> 
> This moves to gtk+3 (for gdk) so one less port using gtk+2.
> 
> Would anyone else like to do further testing?
> 
> OK?
> 
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/math/graphviz/Makefile,v
> diff -u -p -r1.89 Makefile
> --- Makefile	5 Aug 2025 12:30:55 -0000	1.89
> +++ Makefile	29 Oct 2025 14:00:31 -0000
> @@ -1,35 +1,30 @@
>  COMMENT-main=	graph drawing software
>  COMMENT-tcl=	Tcl bindings to graphviz
>  
> -V=		10.0.1
> +V=		14.0.2
>  DISTNAME=	graphviz-$V
>  PKGNAME-main=	${DISTNAME}
>  PKGNAME-tcl=	graphviz-tcl-$V
>  CATEGORIES=	math devel graphics
> -REVISION-main=	1
> -REVISION-tcl=	0
>  
>  MULTI_PACKAGES=	-main -tcl
>  
>  SITES=		https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/$V/
>  
> -SHARED_LIBS += cdt			3.0 # 5.0
> -SHARED_LIBS += xdot			1.0 # 4.0
> -SHARED_LIBS += cgraph			2.0 # 6.0
> -SHARED_LIBS += pathplan			4.0 # 4.0
> -SHARED_LIBS += gvc			3.0 # 6.0
> -SHARED_LIBS += gvpr			2.0 # 2.0
> +SHARED_LIBS +=	cdt                  4.0      # 6.0
> +SHARED_LIBS +=	xdot                 1.0      # 4.0
> +SHARED_LIBS +=	cgraph               3.0      # 8.2
> +SHARED_LIBS +=	pathplan             5.0      # 4.2
> +SHARED_LIBS +=	gvc                  4.0      # 7.1
> +SHARED_LIBS +=	gvpr                 3.0      # 2.2
>  
>  # plugins loaded by dlopen() in graphviz, not traditional shared libraries
>  # linked by other software. following upstream numbering reduces the patches
>  # needed to handle this to a simple .0 addition in configure.ac.
> -GVPLUGIN_VERSION =	7.0
> -.for plugin in \
> -	gvplugin_core gvplugin_gd gvplugin_gdk gvplugin_gtk gvplugin_kitty \
> -	gvplugin_pango gvplugin_rsvg gvplugin_xlib \
> -	gvplugin_dot_layout gvplugin_neato_layout gvplugin_vt gvplugin_webp \
> -	gvplugin_poppler
> -SHARED_LIBS += ${plugin} ${GVPLUGIN_VERSION}
> +GVPLUGIN_VERSION =	8.0		# 8.2
> +.for plugin in core gd gdk kitty pango rsvg xlib \
> +	dot_layout neato_layout webp poppler vt
> +SHARED_LIBS += gvplugin_${plugin} ${GVPLUGIN_VERSION}
>  .endfor
>  
>  HOMEPAGE=	https://graphviz.org/
> @@ -48,9 +43,10 @@ WANTLIB += z zstd
>  
>  WANTLIB-main += ${WANTLIB}
>  WANTLIB-main += Xcomposite Xcursor Xdamage Xfixes Xi Xinerama Xrandr
> -WANTLIB-main += c gc gdk-x11-2.0 gdk_pixbuf-2.0 gmp guile-2.2
> -WANTLIB-main += lcms2 openjp2 perl poppler poppler-glib rsvg-2 unistring
> -WANTLIB-main += xml2
> +WANTLIB-main += c cairo-gobject dav1d epoll-shim epoxy gc gdk-3 gdk_pixbuf-2.0
> +WANTLIB-main += gmp guile-2.2 lcms2 openjp2 perl poppler poppler-glib
> +WANTLIB-main += rsvg-2 unistring wayland-client wayland-cursor wayland-egl
> +WANTLIB-main += xkbcommon xml2
>  
>  # "extra" libtclXX: tcldot is built against Tcl headers
>  WANTLIB-tcl += ${WANTLIB} ${MODTCL_WANTLIB}
> @@ -64,7 +60,7 @@ LIB_DEPENDS=	graphics/jpeg \
>  		graphics/png \
>  		devel/libtool,-ltdl \
>  		graphics/gd>=2.0.34 \
> -		x11/gtk+2 \
> +		x11/gtk+3 \
>  		x11/gnome/librsvg \
>  		graphics/graphite2 \
>  		devel/harfbuzz \
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/math/graphviz/distinfo,v
> diff -u -p -r1.10 distinfo
> --- distinfo	16 Apr 2024 13:33:19 -0000	1.10
> +++ distinfo	29 Oct 2025 14:00:31 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (graphviz-10.0.1.tar.gz) = cuGldenDgsT9ImeDeWK8RYKz2a10bjOM2AJL3soSTzI=
> -SIZE (graphviz-10.0.1.tar.gz) = 27286181
> +SHA256 (graphviz-14.0.2.tar.gz) = 1VW0/RijZFw0vdh2vH6CBsjI4kBKv3hyquXuDV30Y3g=
> +SIZE (graphviz-14.0.2.tar.gz) = 26817906
> Index: patches/patch-configure_ac
> ===================================================================
> RCS file: /cvs/ports/math/graphviz/patches/patch-configure_ac,v
> diff -u -p -r1.4 patch-configure_ac
> --- patches/patch-configure_ac	16 Apr 2024 13:33:19 -0000	1.4
> +++ patches/patch-configure_ac	29 Oct 2025 14:00:31 -0000
> @@ -1,31 +1,12 @@
>  Index: configure.ac
>  --- configure.ac.orig
>  +++ configure.ac
> -@@ -77,7 +77,7 @@ case "${host_os}" in
> -     GVPLUGIN_VERSION=`expr $GVPLUGIN_CURRENT + 1`
> -     ;;
> -   * )
> --    GVPLUGIN_VERSION=$GVPLUGIN_CURRENT
> -+    GVPLUGIN_VERSION=$GVPLUGIN_CURRENT.0
> -     ;;
> - esac
> +@@ -74,7 +74,7 @@ dnl Checks for system type
> + 
> + AC_CANONICAL_HOST
> + 
> +-GVPLUGIN_VERSION=$GVPLUGIN_CURRENT
> ++GVPLUGIN_VERSION=$GVPLUGIN_CURRENT.0
>   AC_DEFINE_UNQUOTED(GVPLUGIN_VERSION,$GVPLUGIN_VERSION,[Compatibility version number for plugins.])
> -@@ -600,7 +600,7 @@ else
> -       if test "$GUILE_CONFIG" = ""; then
> -         use_guile="No (guile not available)"
> -       else
> --        [GUILE_VERSION=`$GUILE_CONFIG --version 2>&1 | sed -n '1 s/^.* \+\([0-9\.]\+\)$/\1/ p'`]
> -+        [GUILE_VERSION=`$GUILE_CONFIG --version 2>&1 | sed -En '1 s/^.* +([0-9\.]+)$/\1/ p'`]
> -         GUILE_VERSION_MAJOR=`echo $GUILE_VERSION | cut -d '.' -f 1`
> -         GUILE_VERSION_MINOR=`echo $GUILE_VERSION | cut -d '.' -f 2`
> -         AC_CHECK_PROGS(GUILE,guile$GUILE_VERSION_MAJOR.$GUILE_VERSION_MINOR guile$GUILE_VERSION_MAJOR guile)
> -@@ -1760,7 +1760,8 @@ AM_CONDITIONAL([WITH_QT], [test "$use_qt" = "Yes"])
> - dnl -----------------------------------
> - dnl INCLUDES and LIBS for QUARTZ
> + AC_SUBST([GVPLUGIN_VERSION])
>   
> --if test "${host_os::6}" = "darwin"; then
> -+# ${host_os::6}": bad substitution
> -+if test false; then
> -   AC_ARG_WITH(quartz,
> -     [AS_HELP_STRING([--with-quartz=yes],[Quartz framework (Mac OS X)])],
> -     [],[with_quartz=yes])
> Index: patches/patch-lib_gvc_gvconfig_c
> ===================================================================
> RCS file: /cvs/ports/math/graphviz/patches/patch-lib_gvc_gvconfig_c,v
> diff -u -p -r1.8 patch-lib_gvc_gvconfig_c
> --- patches/patch-lib_gvc_gvconfig_c	16 Apr 2024 13:33:19 -0000	1.8
> +++ patches/patch-lib_gvc_gvconfig_c	29 Oct 2025 14:00:31 -0000
> @@ -3,7 +3,7 @@ Ensure the plugin version check doesn't 
>  Index: lib/gvc/gvconfig.c
>  --- lib/gvc/gvconfig.c.orig
>  +++ lib/gvc/gvconfig.c
> -@@ -420,7 +420,7 @@ static bool is_plugin(const char *filepath) {
> +@@ -422,7 +422,7 @@ static bool is_plugin(const char *filepath) {
>       // turn GVPLUGIN_VERSION into a string
>       #define STRINGIZE_(x) #x
>       #define STRINGIZE(x) STRINGIZE_(x)
> Index: pkg/PLIST-main
> ===================================================================
> RCS file: /cvs/ports/math/graphviz/pkg/PLIST-main,v
> diff -u -p -r1.12 PLIST-main
> --- pkg/PLIST-main	16 Apr 2024 13:33:19 -0000	1.12
> +++ pkg/PLIST-main	29 Oct 2025 14:00:31 -0000
> @@ -8,6 +8,7 @@ bin/circo
>  @bin bin/dot
>  bin/dot2gxl
>  @bin bin/dot_builtins
> +bin/dot_sandbox
>  @bin bin/edgepaint
>  bin/fdp
>  @bin bin/gc
> @@ -62,7 +63,7 @@ include/graphviz/types.h
>  include/graphviz/usershape.h
>  include/graphviz/xdot.h
>  lib/graphviz/
> -lib/graphviz/config6
> +lib/graphviz/config8
>  lib/graphviz/guile/
>  @so lib/graphviz/guile/libgv_guile.so
>  @lib lib/graphviz/libgvplugin_core.so.${LIBgvplugin_core_VERSION}
> @@ -105,6 +106,7 @@ ${P5ARCH}/gv.pm
>  @man man/man1/dijkstra.1
>  @man man/man1/dot.1
>  @man man/man1/dot2gxl.1
> +@man man/man1/dot_sandbox.1
>  @man man/man1/edgepaint.1
>  @man man/man1/fdp.1
>  @man man/man1/gc.1
>