Opened 2 weeks ago

Closed 2 weeks ago

#19735 closed enhancement (fixed)

graphviz-11.0.0

Reported by: Bruce Dubbs Owned by: Bruce Dubbs
Priority: normal Milestone: 12.2
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New major version.

Change History (3)

comment:1 by Bruce Dubbs, 2 weeks ago

[11.0.0] – 2024-04-28

Added

  • gv2gml gained a -y option to output the yWorks.com variant of GML instead of the default.
  • A new command line option, --filepath=… has been added to perform the function previously served by the $GV_FILE_PATH environment variable, use of which was removed in Graphviz 6.0.1. Unlike the old $GV_FILE_PATH mechanism, --filepath=… takes effect regardless of the setting of the $SERVER_NAME environment variable.

Changed

  • gvpack, in addition to recognizing a “cluster” name prefix as a mark of a cluster, now recognizes this case insensitively as well as recognizing the cluster attribute. This is more consistent with how the Graphviz libraries work.
  • Breaking: pkg-config (.pc) files shipped with Graphviz now include ${prefix}/include in the include path in addition to ${prefix}/include/graphviz. Previously this missing path meant building Graphviz demo examples against an installation of Graphviz in a non-system path would not work.
  • The core PostScript output format (-Tps) warns if using an out-of-specification font name. To avoid this, use a more sophisticated output format like Cairo (-Tps:cairo) that does font name lookup and translation.
  • Breaking: The libpack functions putRects, packRects, putGraphs, packGraphs, packSubgraphs, pack_graph, shiftGraphs, ccomps, cccomps, and pccomps now take the number of items they are operating on (ng) as a size_t.
  • Breaking: The bsearch_cmpf and qsort_cmpf typedefs have been removed.
  • dot -c -v, when constructing the config6 file, includes comments explaining any attempted actions that failed during plugin loading.
  • Breaking: The Ndim global is now a unsigned short.
  • fdpgen no longer truncates graph names when inferring new names for connected component subgraphs.
  • Breaking: The nodequeue type has been removed.
  • Breaking: The field Agraphinfo_t.n_nodes has been removed. The function agnnodes is a more robust way of retrieving the number of nodes.
  • The -q command line option will now suppress “no hard-coded metrics…” and other font lookup warnings.
  • Breaking: The CMP and SGN macros have been removed.
  • The CMake build system no longer early-binds all enabled plugins into dot/dot.exe. This early binding was a change introduced in 10.0.1, but was not noted in this changelog. Traditionally, of the three Graphviz build systems (Autotools, CMake, MS Build), only changes to the Autotools build system were noted in this changelog under the assumption that packaging ecosystems making use of the other two build systems would need finer grained details and would be monitoring the Git commit history instead. This seems to not be the case, so in future side-effecting changes to any of the three build systems will be included here.
  • The precision of sep- and esep-based calculations has been improved.
  • Breaking: Defines AGRAPH, AGNODE, AGOUTEDGE, AGINEDGE, and AGEDGE are replaced with enum.
  • Breaking: The obj_state_t.url_bsplinemap_poly_n field is now a size_t and the obj_state_t.url_bsplinemap_n field is now a size_t *.
  • Breaking: The Ppoly_t.pn (Ppolyline_t.pn) field is now a size_t.
  • Breaking: The Proutespline function takes its n_barriers parameter as a size_t.
  • Breaking: The gvattr_t type and the GVJ_t.selected_obj_attributes and GVJ_t.selected_obj_type_name fields have been removed.
  • Breaking: The gv_argvlist_t type and functions that operate on it have been removed.
  • Control characters in some error messages are escaped, preventing certain types of text injection that could cause user confusion.
  • Breaking: GVJ_t.numkeys is a size_t.

Fixed

  • Indexing within gvNextInputGraph no longer incorrectly retains the index from prior use of the GVC context. When using Graphviz libraries programmatically, this could previously cause crashes or misbehavior.
  • Color schemes, typically controlled through the colorscheme attribute are now pushed and popped as they are applied and released. Previously processing multiple graphs wherein the first uses color schemes but later ones do not could result in color schemes being incorrectly retained and reapplied or use-after-free memory accesses.
  • The GDI+ plugin, when asked to render a graphic metafile, no longer references uninitialized memory. This bug was introduced in Graphviz 2.24.0.
  • A free of an invalid pointer in edgepaint was fixed.
  • gvmap no longer references uninitialized variables when trying to process triangles and encountering only 2 points.
  • Using the point shape in combination with peripheries=0 no longer causes out of bounds memory writes. This was a regression in Graphviz 7.0.0.
  • Unsafe use of a dangling pointer in ccomps has been removed. This was a regression in Graphviz 7.1.0.
  • gvcolor no longer crashes when processing color names longer than 127 characters.
  • Interleaving calls to colorxlate and gvrender_resolve_color no longer confuse internal caching mechanisms. Callers should now get the correct color back.
  • The nop2 layout engine provided by the neato layout plugin is now equivalent to neato -n2 as intended instead of mistakenly being equivalent to nop/nop1/neato -n1.
  • An off-by-one error in rank installation was corrected. Previously, an unusual rank=same constraint could cause a crash when installing ranks.
  • gxl2gv no longer crashes or misbehaves when symlinked to a non-ASCII file name. This is a rare scenario that normal users should not encounter.
  • mm2gv no longer crashes or misbehaves when reading malformed Matrix Market files with non-ASCII bytes in the header.
  • A stack buffer overflow in mm2gv when processing malformed Matrix Market files has been fixed.
  • The newrank attribute is treated as a boolean instead of any value (including "false") being coerced into "true".
  • Crashes and misbehavior no longer occur when the sides attribute contains non-ASCII characters.
  • Graphviz binaries like dot.exe and neato.exe no longer crash or misbehave when symlinked to a non-ASCII file name on Windows. This is a rare scenario that normal users should not encounter.
  • GVPR programs that use tolower or toupper on strings containing non-ASCII characters no longer crash. These functions do not lowercase/uppercase non-ASCII characters, so users probably still do not want to use non-ASCII strings in a GVPR program.
  • Some routesplines miscalculations that led to lost edges and fatal errors have been avoided.
  • An inaccuracy involving an edge case when constructing lines within libpack has been corrected.
  • A bug in the internal heap implementation used in the network simplex algorithm has been corrected. This would previously cause certain runs to infer incorrect ordering or subtrees. This was a regression in Graphviz 2.40.0.
  • Compass points may be more accurately placed on the node boundary in some cases.
  • A very small random adjustment in the calculation of the space available for edge routing around ellipse shaped nodes in fdp and neato layouts, has been removed.
  • Incorrect edge splines for ellipse shaped nodes with ports using fdp or neato.
  • Incorrect edge splines for ellipse and polygon shaped nodes with ports and large penwidths using fdp or neato.
  • Incorrect edge splines for polygon shaped nodes with ports more than one periphery using fdp or neato.
  • Adjust the space available for edge routing based on penwidth when using fdp or neato and splines=ortho.

comment:2 by Bruce Dubbs, 2 weeks ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

comment:3 by Bruce Dubbs, 2 weeks ago

Resolution: fixed
Status: assignedclosed

Fixed at commit 1d4ab65d17.

Note: See TracTickets for help on using tickets.