Hi, Here's an update to the latest graphviz.
Notes: - Used check_sym to help decide what to bump. - The only non-plugin shared libs that didn't remove symbols was libxdot. Diffing the xdot header, it only removes the def of a macro: -#define INITIAL_XDOT_CAPACITY 512 In the old version this macro dosn't appear in headers, so I think we are fine without a bump there. - The plugins are expected to all have the same SO version. The first one I examined (gvcore) had removed a load of symbols, so all plugins got a bump. - Spent a while tracking down why `dot -c` would generate empty config files. It was due to a failing plugin version check in the plugin scanner. It checks that X_Y in libgvplugin_*.so.X.Y is upstream's library version, which won't work with how we do things. Tried to fix this without a patch, but couldn't get it working, so gave in and used a patch+subst. It's a one-liner, so no big deal. - Some shared objects disappeared. They are mentioned in upstream's CHANGELOG: > The GTK plugin is no longer built or distributed. > liblab_gamut is no longer included in a Graphviz installation > Support for the legacy Microsoft Visio VDX format has been removed. - gvplugin_kitty was added. - I used dpb to compile test all ports that either RUN_ or BUILD_DEPENDS on graphviz. Thats the following: ``` sqlite> select fullpkgpath from ports where BUILD_DEPENDS LIKE '%graphviz%' or LIB_DEPENDS LIKE '%graphviz%'; devel/cutter devel/frama-c devel/iaito lang/vala,,-valadoc lang/vala,-valadoc math/graphviz,-tcl math/p5-GraphViz misc/open62541 misc/open62541,ns0_full www/rt ``` Nothing exploded. Diff follows. Let me know if I missed anything. Cheers Index: Makefile =================================================================== RCS file: /cvs/ports/math/graphviz/Makefile,v diff -u -p -r1.83 Makefile --- Makefile 27 Sep 2023 09:27:54 -0000 1.83 +++ Makefile 14 Apr 2024 20:25:43 -0000 @@ -1,7 +1,7 @@ COMMENT-main= graph drawing software COMMENT-tcl= Tcl bindings to graphviz -V= 7.1.0 +V= 10.0.1 DISTNAME= graphviz-$V PKGNAME-main= ${DISTNAME} PKGNAME-tcl= graphviz-tcl-$V @@ -11,23 +11,23 @@ MULTI_PACKAGES= -main -tcl SITES= https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/$V/ -SHARED_LIBS += cdt 2.0 # 5.0 +SHARED_LIBS += cdt 3.0 # 5.0 SHARED_LIBS += xdot 1.0 # 4.0 -SHARED_LIBS += cgraph 1.0 # 6.0 -SHARED_LIBS += pathplan 3.0 # 4.0 -SHARED_LIBS += gvc 2.0 # 6.0 -SHARED_LIBS += lab_gamut 0.0 # 1.0 -SHARED_LIBS += gvpr 1.0 # 2.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 # 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_pango gvplugin_rsvg gvplugin_visio gvplugin_xlib \ - gvplugin_dot_layout gvplugin_neato_layout gvplugin_webp \ + 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} 6.0 +SHARED_LIBS += ${plugin} ${GVPLUGIN_VERSION} .endfor HOMEPAGE= https://graphviz.org/ @@ -41,13 +41,13 @@ WANTLIB += ${COMPILER_LIBCXX} X11 Xau Xd WANTLIB += expat ffi fontconfig freetype fribidi gd gio-2.0 glib-2.0 WANTLIB += gmodule-2.0 gobject-2.0 graphite2 harfbuzz iconv intl WANTLIB += jpeg ltdl lzma m pango-1.0 pangocairo-1.0 pangoft2-1.0 -WANTLIB += pcre2-8 pixman-1 png tiff webp xcb xcb-render xcb-shm +WANTLIB += pcre2-8 pixman-1 png sharpyuv tiff webp xcb xcb-render xcb-shm WANTLIB += z zstd WANTLIB-main += ${WANTLIB} WANTLIB-main += Xcomposite Xcursor Xdamage Xfixes Xi Xinerama Xrandr -WANTLIB-main += atk-1.0 c cairo-gobject gc gdk-x11-2.0 gdk_pixbuf-2.0 -WANTLIB-main += gmp gtk-x11-2.0 guile-2.2 lcms2 openjp2 perl poppler +WANTLIB-main += c cairo-gobject gc gdk-x11-2.0 gdk_pixbuf-2.0 +WANTLIB-main += gmp guile-2.2 lcms2 openjp2 perl poppler WANTLIB-main += poppler-glib rsvg-2 unistring xml2 # "extra" libtclXX: tcldot is built against Tcl headers @@ -100,6 +100,7 @@ CONFIGURE_ARGS= --disable-man-pdfs \ --disable-php \ --disable-python \ --disable-python3 \ + --disable-quartz \ --disable-r \ --disable-ruby \ --enable-tcl @@ -143,8 +144,13 @@ FAKE_FLAGS= htmldir="${DOCBASE}/html" \ undirecteddir="${EXBASE}/graphs/undirected" \ pkgtcldir="${MODTCL_TCLDIR}/graphviz" +# Ensure plugin version check works. +SUBST_VARS += GVPLUGIN_VERSION +pre-configure: + ${SUBST_CMD} ${WRKSRC}/lib/gvc/gvconfig.c + post-install: -# generate config6 from fake-install directkry, so we don't need +# generate config6 from fake-install directory, so we don't need # @exec or a pregenerated file GVBINDIR=${PREFIX}/lib/graphviz \ LD_LIBRARY_PATH=${PREFIX}/lib \ Index: distinfo =================================================================== RCS file: /cvs/ports/math/graphviz/distinfo,v diff -u -p -r1.9 distinfo --- distinfo 1 Mar 2023 11:30:25 -0000 1.9 +++ distinfo 13 Apr 2024 12:19:23 -0000 @@ -1,2 +1,2 @@ -SHA256 (graphviz-7.1.0.tar.gz) = aV7zCp07Ai5Ap5HKG+/ZF+/2QBcauxeit5NnooqiaHY= -SIZE (graphviz-7.1.0.tar.gz) = 27565398 +SHA256 (graphviz-10.0.1.tar.gz) = cuGldenDgsT9ImeDeWK8RYKz2a10bjOM2AJL3soSTzI= +SIZE (graphviz-10.0.1.tar.gz) = 27286181 Index: patches/patch-cmd_tools_mm2gv_1 =================================================================== RCS file: patches/patch-cmd_tools_mm2gv_1 diff -N patches/patch-cmd_tools_mm2gv_1 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-cmd_tools_mm2gv_1 13 Apr 2024 15:51:56 -0000 @@ -0,0 +1,12 @@ +Silence mandocdb warnings. + +Index: cmd/tools/mm2gv.1 +--- cmd/tools/mm2gv.1.orig ++++ cmd/tools/mm2gv.1 +@@ -1,6 +1,3 @@ +-.EQ +-delim $$ +-.EN + .TH MM2GV 1 "31 July 2008" + .SH NAME + mm2gv \- Matrix Market-DOT converters Index: patches/patch-configure_ac =================================================================== RCS file: /cvs/ports/math/graphviz/patches/patch-configure_ac,v diff -u -p -r1.3 patch-configure_ac --- patches/patch-configure_ac 1 Mar 2023 11:30:26 -0000 1.3 +++ patches/patch-configure_ac 13 Apr 2024 12:27:50 -0000 @@ -10,8 +10,8 @@ Index: configure.ac ;; esac AC_DEFINE_UNQUOTED(GVPLUGIN_VERSION,$GVPLUGIN_VERSION,[Compatibility version number for plugins.]) -@@ -642,7 +642,7 @@ else - if test "x$GUILE_CONFIG" = "x"; then +@@ -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'`] @@ -19,3 +19,13 @@ Index: configure.ac 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 + +-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: patches/patch-lib_gvc_gvconfig_c diff -N patches/patch-lib_gvc_gvconfig_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_gvc_gvconfig_c 14 Apr 2024 20:12:00 -0000 @@ -0,0 +1,14 @@ +Ensure the plugin version check doesn't reject pugins with our version numbers. + +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) { + // turn GVPLUGIN_VERSION into a string + #define STRINGIZE_(x) #x + #define STRINGIZE(x) STRINGIZE_(x) +- static const char VERSION[] = STRINGIZE(GVPLUGIN_VERSION); ++ static const char VERSION[] = STRINGIZE(${GVPLUGIN_VERSION}); + #undef STRINGIZE + #undef STRINGIZE_ + Index: pkg/PLIST-main =================================================================== RCS file: /cvs/ports/math/graphviz/pkg/PLIST-main,v diff -u -p -r1.11 PLIST-main --- pkg/PLIST-main 1 Mar 2023 11:30:26 -0000 1.11 +++ pkg/PLIST-main 14 Apr 2024 20:23:52 -0000 @@ -42,8 +42,6 @@ include/graphviz/cgraph.h include/graphviz/color.h include/graphviz/geom.h include/graphviz/graphviz_version.h -include/graphviz/gv.cpp -include/graphviz/gv.i include/graphviz/gvc.h include/graphviz/gvcext.h include/graphviz/gvcjob.h @@ -71,12 +69,12 @@ lib/graphviz/guile/ @lib lib/graphviz/libgvplugin_dot_layout.so.${LIBgvplugin_dot_layout_VERSION} @lib lib/graphviz/libgvplugin_gd.so.${LIBgvplugin_gd_VERSION} @lib lib/graphviz/libgvplugin_gdk.so.${LIBgvplugin_gdk_VERSION} -@lib lib/graphviz/libgvplugin_gtk.so.${LIBgvplugin_gtk_VERSION} +@lib lib/graphviz/libgvplugin_kitty.so.${LIBgvplugin_kitty_VERSION} @lib lib/graphviz/libgvplugin_neato_layout.so.${LIBgvplugin_neato_layout_VERSION} @lib lib/graphviz/libgvplugin_pango.so.${LIBgvplugin_pango_VERSION} @lib lib/graphviz/libgvplugin_poppler.so.${LIBgvplugin_poppler_VERSION} @lib lib/graphviz/libgvplugin_rsvg.so.${LIBgvplugin_rsvg_VERSION} -@lib lib/graphviz/libgvplugin_visio.so.${LIBgvplugin_visio_VERSION} +@lib lib/graphviz/libgvplugin_vt.so.${LIBgvplugin_vt_VERSION} @lib lib/graphviz/libgvplugin_webp.so.${LIBgvplugin_webp_VERSION} @lib lib/graphviz/libgvplugin_xlib.so.${LIBgvplugin_xlib_VERSION} lib/graphviz/perl/ @@ -87,14 +85,12 @@ lib/graphviz/perl/gv.pm @lib lib/libcgraph.so.${LIBcgraph_VERSION} @lib lib/libgvc.so.${LIBgvc_VERSION} @lib lib/libgvpr.so.${LIBgvpr_VERSION} -@lib lib/liblab_gamut.so.${LIBlab_gamut_VERSION} @lib lib/libpathplan.so.${LIBpathplan_VERSION} @lib lib/libxdot.so.${LIBxdot_VERSION} lib/pkgconfig/libcdt.pc lib/pkgconfig/libcgraph.pc lib/pkgconfig/libgvc.pc lib/pkgconfig/libgvpr.pc -lib/pkgconfig/liblab_gamut.pc lib/pkgconfig/libpathplan.pc lib/pkgconfig/libxdot.pc ${P5ARCH}/ Index: pkg/PLIST-tcl =================================================================== RCS file: /cvs/ports/math/graphviz/pkg/PLIST-tcl,v diff -u -p -r1.1 PLIST-tcl --- pkg/PLIST-tcl 1 Mar 2023 11:30:26 -0000 1.1 +++ pkg/PLIST-tcl 14 Apr 2024 20:24:06 -0000 @@ -1,4 +1,5 @@ @conflict graphviz-<3 +lib/tcl/ lib/tcl/graphviz/ @so lib/tcl/graphviz/libgdtclft.so @so lib/tcl/graphviz/libgv_tcl.so -- Best Regards Edd Barrett https://www.theunixzoo.co.uk