Subject: CVS commit: pkgsrc/graphics/graphviz
From: Michael Baeuerle
Date: 2024-04-15 12:25:57
Message id: 20240415102557.F2D6BFA2C@cvs.NetBSD.org

Log Message:
graphics/graphviz: Update to 10.0.1

Remove pkgsrc patches for LUA location.
Add pkgsrc patch for nonportable shell syntax in configure script.
Remove pkgsrc option "gtk".

## [10.0.1] - 2024-02-11

### Added

- Releases now include packages for [Rocky Linux](https://rockylinux.org/) 8
  and 9.
- A new output format, `-Tsvg_inline`, has been added to generate a header-less
  SVG suitable for inlining into HTML. #2285
- The functionality of the `acyclic`, `tred` and `unflatten` command line tools
  are now exposed via the `graphviz_acyclic`, `graphviz_tred` and
  `graphviz_unflatten` API functions in libcgraph. #2194
- `graphviz_node_induce` is available as a new API function in cgraph.h.
- `tred` gained a `-o` command line option to redirect its output to a file.

### Changed

- The Criterion unit tests have been removed and migrated to Pytest. This is
  primarily relevant to downstream packagers of Graphviz. #2443
- **Breaking**: `Dtdisc_t.memoryf` and its associated macros has been removed.
- **Breaking**: The `Dt_t.type` field has been removed.
- **Breaking**: The `dtfound`, `DT_FOUND`, `dtleast`, and `dtmost` macros have
  been removed.
- The nrtmain.c test program has been removed from the portable tarball.
- The TCL Graphviz packages for inter-release versions/snapshots report
  themselves as `<next release>b<internal number>` instead of
  `<next release>~dev.<internal number>`. This fixes a problem \ 
wherein TCL would
  see `~dev` as being invalid characters to appear in a version. #2370
- Support for discovering Lua via `lua-config*` has been removed from the
  Autotools build system.
- Lua discovery in the Autotools build system should now respect the location of
  your Lua installation and not unconditionally attempt installation into
  `/usr`. #2152
- The GTK plugin is no longer built or distributed. This plugin relies on GTK 2
  and X11. If you use this plugin, please contact the maintainers to let
  them know it is worthwhile re-enabling this and forward porting it to GTK 3/4
  and Wayland. #1848
- In the Autotools build system, `LIBPOSTFIX=` can now be used to suppress `64`
  being appended to the library installation path.
- The `-m` command line option, whose functionality was disabled in Graphviz
  3.0.0, has been removed.
- Man page typography has been slightly improved.
- macOS release artifacts no longer include `vimdot`. This may be restored in
  future. #2423
- macOS release artifacts no longer include `smyrna`. This may be restored in
  future. #2422
- The PDF output format, `-Tpdf`, respects the environment variable
  `$SOURCE_DATE_EPOCH` for overriding `CreationDate` when built against Cairo
  >= 1.16.0. #2473
- The legacy C# viewer app is no longer distributed in the portable source
  tarball.
- Graphviz headers no longer define the `FALSE` and `TRUE` constants.
- The Autotools build system no longer supports Darwin 9 (Mac OSX Leopard).
- **Breaking**: `Agraph_t.link` has been split into `Agraph_t.id_link` and
  `Agraph_t.seq_link`. `Agraph_t.g_dict` has been split into `Agraph_t.g_id`
  and `Agraph_t.g_seq`.
- **Breaking**: `gvpropts.n_outgraphs` is now a `size_t`.
- The OCaml bindings have been removed. If you use these bindings, please contact
  the maintainers to notify them of the existence of users.
- **Breaking**: `polygon_t.sides` and `polygon_t.peripheries` are now `size_t`s.
- **Breaking**: liblab_gamut is no longer included in a Graphviz installation.
  This library had no accompanying header, so using it was not easy. If you are
  using this library, please contact the maintainers to notify them of the
  existence of users. #2489
- **Breaking**: `bezier.size` and `splines.size` are now `size_t`s.
- **Breaking**: the gv.i and gv.cpp SWIG inputs are no longer included in a
  Graphviz installation. #2491
- **Breaking**: the `gvrender_engine_t.beziercurve`,
  `gvrender_engine_t.library_shape`, `gvrender_engine_t.polygon`,  and
  `gvrender_engine_t.polyline` callbacks now take the number of points, `n`, as
  a `size_t`.
- **Breaking**: the `AVG` macro has been removed.
- **Breaking**: the `inside_t.s` union member gained members `lastn`, `radius`,
  `last_poly`, `last`, `outp`, `scalex`, `scaley`, `box_URx`, and `box_URy`.
  Zero initialize these when you construct instances of this type. #2498

### Fixed

- The paper size for Doxygen docs generation in the Autotools build system has
  been corrected to `a4`.
- References to `eventf` and `hashf` data structures in the libcdt man page
  have been removed. These data structures were removed in Graphviz 9.0.0.
- References to `DTOFFSET` in the libcdt man page have been removed. This macro
  was removed in Graphviz 2.40.0.
- A number of further updates to the libcdt man page have been made to reflect
  other changes that happened in Graphviz 9.0.0.
- Use of the non-portable `PATH_MAX` constant has been removed. This was a
  regression in Graphviz 7.0.1. In addition to fixing the regression, code has
  been adjusted to remove assumptions on the maximum path length and treat it as
  unbounded. #2452
- Compilation on NetBSD has been repaired. This was a regression in Graphviz
  9.0.0.
- Compilation on SunOS has been repaired. This appears to have been broken since
  the xlib plugin was added some time prior to Graphviz 2.38.0.
- gvpr programs that attempt to close out of range file descriptors no longer
  cause out of bounds memory accesses.
- When large edge weights are used that cause an integer overflow when summing
  them up, Graphviz now gracefully exits with an error message instead of
  crashing. #2450
- Support for the `%n` specifier in `scanf` in gvpr has been restored. This was
  a regression in Graphviz 9.0.0. #2454
- In the Autotools build system, `make dist` now processes cmd/gvedit correctly
  when Qt is not installed. Generating Qt "mocables" is postponed from \ 
configure
  time to build time. #2463
- The Autotools build system correctly detects Ruby headers, even when
  pkg-config support is unavailable. #2464
- Escaped characters in xdot fields no longer lead to the containing text being
  truncated. #2460
- When building against a libgd that is configured with `!gif && (jpeg \ 
|| png)`,
  the GD plugin is once again compilable. This was a regression in Graphviz
  2.46.0.
- edgepaint spline intersection code would previously incorrectly use the second
  spline in one instance where it should have used the first. #1464
- In the Autotools build, libexpat discovery on macOS has been improved. #2477
- A bug that caused compound edges to sometimes be drawn in the wrong direction
  has been corrected. This was a regression in Graphviz 8.0.3. #2478
- When operating on multiple graphs, `unflatten` no longer retains chain node
  and size internal state across graphs.
- Repeated runs of a graph with subgraphs now produce a stable subgraph
  ordering. #2242
- The `dot` and `gml2gv` tools are now built with case-insensitive parsing
  by the CMake and MSBuild systems, as they always were by autotools, and
  in accordance with the graphviz specification. #2481
- Putting nodes in a subgraph no longer causes their layout order to be
  reversed. #1585
- Edges are no longer lost when using subgraphs and record shapes in
  combination. #1624
- 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
- Discovery of `php` in the Autotools build system has been improved.
- Text in the PIC output format is no longer forced to font size 1. This was a
  regression in Graphviz 8.0.2. Even with this fix, the PIC output format is
  limited in its utility. #2487
- When encountering a syntactically invalid HTML-like label, Graphviz.app no
  longer aborts. The abort was an intentional change in Graphviz 8.0.1 to avoid
  invalid memory reads in `dot`, but had the undesirable side effect of the
  graphical Graphviz.app exiting with no obvious cause. #2488
- Use of an uninitialized variable in `poly_inside` has been corrected. #2498
- Input containing UTF-8 data that is destined to appear as-is in the output
  (e.g. UTF-8 characters in a label when using the `-Tdot` output format) is
  once again processed correctly. On platforms with a signed `char` this could
  previously crash. This was a regression in Graphviz 2.49.0. #2502

## 9.0.0 - 2023-09-11

### Added

- On non-Windows platforms, new -Tkitty and -Tkittyz output formats are
  available that render to the Kitty terminal emulator’s graphvics
  protocol.
- HTML/CSS-style 3 letter hex colors are supported. Each R/G/B letter
  is duplicated to form a 6 letter hex color. E.g. #09c is equivalent
  to #0099cc. #2377

### Changed

- Breaking: The definition of adjmatrix_t is no longer exposed in public
  headers.
- Breaking: The upper limit for minimum edge length
  (Agedgeinfo_t.minlen) has been expanded from USHRT_MAX to INT_MAX.
  #2413
- Breaking: The libcdt macros DTTREEMATCH, DTTREESEARCH, dtvnext,
  dtvcount, dtvhere, and dtcharhash have been removed.
- Breaking: The libcgraph macros AGHEADPOINTER, AGRIGHTPOINTER,
  AGLEFTPOINTER, FIRSTNREF, NEXTNREF, PREVNREF, LASTNREF, NODEOF,
  FIRSTOUTREF, LASTOUTREF, FIRSTINREF, NEXTEREF, and PREVEREF have been
  removed.
- Breaking: The libcgraph types Agnoderef_t and Agedgeref_t have been
  removed.
- Breaking: The libcgraph function agflatten has been removed.
- Breaking: The Agdesc_s.flatlock field has been removed.
- Breaking: The str parameter from gvPluginList has been removed.
- Breaking: The definition of the elist_append and alloc_elist macros
  have been changed to use newer allocation functions. Users were/are
  not expected to call these macros.
- The functions ageqedge, agtail, aghead, agopp, agmkout, and agmkin
  have been reintroduced. These were previously removed in Graphviz
  3.0.0. #2433
- Breaking: The first parameter dt to the makef and freef callbacks
  defined in cdt.h has been removed.
- Gvedit now identifies itself with organization name “Graphviz” and
  application name “gvedit” when reading and writing Qt-based settings.
  It would previously use organization name “Trolltech” and application
  name “MDI Example”. If you have existing settings under the old
  identification, Gvedit will attempt to migrate them to the new
  identification the first time it reads then writes settings. #2383
- Breaking: gvprintf is now tagged with
  __attribute__((format(printf, …))) when compiling with Clang or GCC.
  This enables the compiler to spot more misuses of this function. #2373
- Breaking: The hashf and eventf members of Dtdisc_t have been removed.
  Correspondingly, the hshf and evf parameters to the DTDISC macro have
  been removed. Also the _DTHSH macro has been removed.
- Breaking: The Dtdata_t.minp field has been removed.
- The print functionality of the macOS Graphviz app scales the graph to
  fit the output page size.
- Breaking: The libcdt containers Dtbag, Dthash, Dtlist, Dtorder,
  Dtdeque, and Dtstack have been removed.
- Breaking: The libcdt dtappend and dtattach macros have been removed.
- Support for Lua 5.0 has been removed. Building the Graphviz Lua
  bindings now requires Lua ≥ 5.1.
- Breaking: The Dt_t* parameter to the callback for dtwalk has been
  removed.
- Breaking: The POINTS_PER_PC macro has been removed.
- Breaking: The INITIAL_XDOT_CAPACITY macro has been removed.
- Breaking: The type parameter to dtdisc has been removed.
- Breaking: The h parameter to dtstrhash has been removed.
- In addition to Guile 2.0 and Guile 2.2, Guile 3.0 is now supported by
  the Graphviz Guile bindings.
- Breaking: The concept of “memory allocator discipline” has been
  removed, along with the type Agmemdisc_t and fields Agdisc_t.mem and
  Agdstate_t.mem.
- Breaking: The agcallbacks function and Agclos_t.callbacks_enabled have
  been removed.
- Breaking: pack_info.doSplines is now a C99 bool. Correspondingly, the
  doSplines parameter to shiftGraphs is now a C99 bool.

### Fixed

- Processing large graphs that induce ranks containing more than 46340
  (floor(√INT_MAX)) nodes no longer results in an integer overflow
  during crossing matrix allocation. Ranks of up to floor(√SIZE_MAX)
  nodes are now supported.
- Double arrow head types like invdot and onormalonormal once again
  display correctly. This was a regression in Graphviz 8.0.1. #2406
- The lvee and rvee edge arrow shapes are slighty incorrect for
  penwidths > 1. #2399
- Small gap between lcurve or rcurve arrow shaft and node. #2426
- Failure of arrowhead and arrowtail to respect penwidth #372
- Fixed also for the normal and inv edge arrow shapes when using the l
  or r arrow shape modifiers.
- Slightly improved for the normal and inv edge arrow shapes when not
  using any arrow shape modifier.
- Fixed also for the crow and vee edge arrow shapes and record based
  nodes.
- Various incorrect calls to gvprintf have been corrected. On some
  platforms like x86-64, these problems were benign thanks to
  coincidences in the Application Binary Interface (ABI).
  On other platforms, these problems may have caused stack corruption
  and crashes. #2373
- The font dictionary is now initialized even if a configuration file is
  not found. Previously this situation could lead to a crash when using
  Graphviz programmatically. This problem was present as least as far
  back as Graphviz 2.38.0. #1520
- Breaking: The vt100 output format has been renamed to vt. This fixes
  a problem where it was not discoverable on macOS. #2429
- Escape sequences like \" are recognized in strings and double
  escaping (producing \\") is avoided. #2397
- The Autotools build system no longer uses headers and libraries from
  the --prefix path given on the command line. This previously caused
  cross-compilation to incorrectly pick up host headers and libraries.
  #2442

Files:
RevisionActionfile
1.284modifypkgsrc/graphics/graphviz/Makefile
1.61modifypkgsrc/graphics/graphviz/PLIST
1.38modifypkgsrc/graphics/graphviz/buildlink3.mk
1.83modifypkgsrc/graphics/graphviz/distinfo
1.38modifypkgsrc/graphics/graphviz/options.mk
1.13modifypkgsrc/graphics/graphviz/patches/patch-configure.ac
1.3removepkgsrc/graphics/graphviz/patches/patch-plugin_xlib_gvdevice__xlib.c