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

Reply via email to