]> granicus.if.org Git - graphviz/blob - CHANGELOG.md
gxl2gv: dedupe 'openFile' implementation
[graphviz] / CHANGELOG.md
1 # Changelog
2 All notable changes to this project will be documented in this file.
3
4 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
7 ## [Unreleased (6.0.2)]
8
9 ### Fixed
10
11 - Using `aspect` with a custom value in the `packmode` attribute is no longer
12   misparsed.
13 - Smyrna bounding box computation has been corrected. There was a regression in
14   4.0.0 that resulted in a degenerate bounding box being computed for any input
15   graph. See #2279 for details.
16 - Smyrna warnings about the `on_attrRB0_clicked` and `on_attrSearchBtn_clicked`
17   handlers being not found have been fixed and the buttons to which they are
18   wired should be functional again. This was a regression in 2.50.0 See #2279
19   for details.
20 - Smyrna warnings about the `mAttributesSlot` handler being not found have been
21   fixed and the button to which it is wired should be functional again. This was
22   a regression in 2.49.2 See #2279 for details.
23 - Graphviz no longer fails to load private Ghostscript symbols ("Could not load
24   `libgvplugin_gs.so.6`) #2280
25 - trailing commas issue with fdp layout #2282
26 - Missing `-S` in `sccmap` man page usage summary.
27 - In `sccmap`, a `-v` option following a `-S` option now re-enables strongly
28   connected component output that the man page implied.
29
30 ## [6.0.1] – 2022-09-11
31
32 ### Changed
33
34 - **Breaking**: libxdot fields for the size and number of operations, the
35   statistics counts, and polygon line points are now `size_t` values instead of
36   `int` values
37 - Accuracy of the bounding boxes printed by the `showboxes` feature have been
38   improved.
39
40 ### Fixed
41
42 - Id attribute is not used in linearGradient. #2258
43 - Graphviz 5.0.1 undocumented change of automatically generated output filename
44   with -O flag (missing dot separator). This was a regression in 5.0.1. #2270
45 - Assert fail in `aaglex` for multiple calls to `agmemread`. This was a
46   regression in 5.0.1. #2272
47
48 ### Removed
49
50 - The `$GV_FILE_PATH` sandboxing mechanism has been removed #2257
51
52 ## [5.0.1] – 2022-08-20
53
54 ### Fixed
55
56 - -Tx11: Assertion `xev.xbutton.button >= 1 && xev.xbutton.button <= 5 && "Xlib
57   returned invalid button event"` failed #2256
58 - missing Perl includes patch #2262
59 - smyrna: incorrect tokenization in frmobjectui.c:set_attr_object_type #2259
60 - [Dot] Record shape+UTF+" | "=Eats spaces. #925
61 - Memory leak in osage
62 - Segmentation fault when running test example neatopack.c #1800
63 - Memory leak in dot when using clusters
64 - Memory leak in patchwork when using clusters
65 - Subgraph layout and rendering
66 - Generated SVG files no longer use `transparent` paint or color as this keyword
67   does not exist in SVG 1.1, and instead use `none` or a zero-opacity color.
68 - Unnecessary space in 'points' attribute for 'polyline' in SVG output
69 - `graphml2gv` no longer calls itself `cvtgxl` in error messages
70
71 ### Added
72  - GVContext::version() to lib/gvc++
73  - GVContext::buildDate() to lib/gvc++
74
75 ## [5.0.0] – 2022-07-07
76
77 ### Changed
78
79 - `use_sanitizers` option has been removed from the CMake build system.
80
81 ### Fixed
82
83 - **Breaking**: The 4.0.0 change replacing the `Agiodisc_t` struct member
84   `putstr` by `printf` has been reverted
85 - graphviz-4.0.0: build error: cmd/tools/gvcolor.c:159: undefined reference to
86   `fmax` #2246
87 - Failed assertion in `chkSgraph` for twopi layout and ortho splines. #14
88 - Failed assertion in `chkSgraph` for dot layout and ortho splines. #1408
89 - Failed assertion in `chkSgraph` for circo layout and ortho splines. #1990
90 - Segmentation Fault with splines="ortho". #1658
91 - Transparent Label appear in SVG output #146
92 - Binary tcl modules should compile with -module #1285
93 - b15.gv crashes dot #827
94 - heap overflow in function startElementHandler in gxl2gv.c #2093
95 - Crash on assertion #121
96 - `xdotversion` attribute is no longer misparsed. This was a regression in
97   Graphviz 2.47.2. #358
98
99 ## [4.0.0] – 2022-05-29
100
101 ### Changed
102
103 - **Breaking**: The `mark` field of the `Agnodeinfo_t` struct is now a
104   `size_t` instead of a `char`.
105 - **Breaking**: The unused `shape_t` struct has been removed from the public
106   header `types.h`
107 - **Breaking**: The `Agiodisc_t` struct member `putstr` that was previously an
108   `fputs` analog is replaced by `printf` that is required to behave similar to
109   `fprintf`.
110 - the `mingle`, `diffimg`, `gvmap`, and `edgepaint` binaries are now included in
111   the CMake build system
112 - the `gvmap.sh` and `vimdot` scripts are now installed by the CMake build
113   system on operating systems other than Windows
114 - a brief note about the (previously undocumented) behavior of Graphviz when
115   sent `SIGUSR1` is now mentioned in the man page
116 - build system support for `dotty`, `lefty`, and `lneato` has been removed
117 - the CMake build system now includes the DevIL, GDK, GhostScript, GTK, LASi,
118   Poppler, Quartz, Rsvg, Visio, WebP, and Xlib plugins
119 - `awk` is no longer a build-time dependency #2118
120
121 ### Fixed
122
123 - `agcanon`, `agcanonStr`, and `agwrite` now return error values on memory
124   allocation failures instead of crashing or corrupting data
125 - `gvpr` programs can now pass dynamically allocated arguments to user-defined
126   functions without corrupting their content. Some cases of this were a
127   regression in Graphviz 2.46.0. Other cases have existed since the first
128   release of `gvpr`. #2185
129 - spurious "no hard-coded metrics" warnings on labels with empty lines #2179
130 - fixed corruption of user shape characteristics during EPSF initialization
131 - output formats canon, dot, and xdot are not completely faithful to input #2184
132 - gvpr index function produces wrong results #2211. This was a regression in
133   Graphviz 2.47.0.
134 - Error on more than 128 cluster subgraphs #2080
135 - `dot2gxl` no longer crashes on input `<node id="">` #2092
136 - remove itos #2229
137 - `sfdp` no longer crashes on certain graphs with cycles. #2225
138 - `gml2gv` does not handle integer penwidth correctly #1871
139
140 ### Removed
141
142 - the glitz plugin has been removed. The plugin was never complete and
143   distributions no longer ship glitz.
144
145 ## [3.0.0] – 2022-02-26
146
147 ### Changed
148
149 - **Breaking**: Using Graphviz as a library on Windows now requires the `GVDLL`
150   symbol to be set to ensure correct linking.
151 - **Breaking**: Graphviz headers no longer define the `boolean` type. A
152   replacement is C99 `bool` in the C standard library’s stdbool.h.
153 - **Breaking**: The `insidefn` member of the `shape_functions` struct must now
154   be a pointer to a function returning a C99 `bool` instead of a
155   Graphviz-specific `boolean`.
156 - **Breaking**: The `swapEnds` and `splineMerge` members of the `splineInfo`
157   struct must now be pointers to functions returning a C99 `bool`s instead of
158   Graphviz-specific `boolean`s. Similarly the `ignoreSwap` and `isOrtho` members
159   of this struct must now be C99 `bool`s instead of a Graphviz-specific
160   `boolean`s.
161 - **Breaking**: The `defined`, `constrained`, `clip`, and `dyna` fields of the
162   `port` struct are now C99 `bool`s instead of Graphviz-specific `boolean`s.
163 - **Breaking**: The `set` and `html` fields of the `textlabel_t` struct are now
164   C99 `bool`s instead of Graphviz-specific `boolean`s.
165 - **Breaking**: The `usershape` field of the `shape_desc` struct is now a C99
166   `bool` instead of a Graphviz-specific `boolean`.
167 - **Breaking**: The `candidate` and `valid` fields of the `rank_t` struct are
168   now C99 `bool`s instead of Graphviz-specific `boolean`s.
169 - **Breaking**: The `filled`, `landscape`, and `centered` fields of the
170   `layout_t` struct are now C99 `bool`s instead of Graphviz-specific `boolean`s.
171 - **Breaking**: The `has_images`, `has_flat_edges`, `has_sourcerank`,
172   `has_sinkrank`, `expanded`, and `exact_ranksep` fields of the `Agraphinfo_t`
173   struct are now C99 `bool`s instead of Graphviz-specific `boolean`s.
174 - **Breaking**: The `clustnode` and `has_port` fields of the `Agnodeinfo_t`
175   struct are now C99 `bool`s instead of Graphviz-specific `boolean`s.
176 - **Breaking**: The `conc_opp_flag` field of the `Agedgeinfo_t` struct is now a
177   C99 `bool` instead of a Graphviz-specific `boolean`.
178 - **Breaking**: The `must_inline` and `nocache` fields of the `usershape_t`
179   struct are now C99 `bool`s instead of Graphviz-specific `boolean`s.
180 - **Breaking**: The `device_sets_dpi`, `external_context`, `fit_mode`,
181   `needs_refresh`, `click`, `has_grown`, and `has_been_rendered` fields of the
182   `GVJ_t` struct are now C99 `bool`s instead of Graphviz-specific `boolean`s.
183 - **Breaking**: The `loadimage` member of the `gvloadimage_engine_t` struct must
184   now accept a C99 `bool` parameter instead of a former Graphviz-specific
185   `boolean` parameter.
186 - **Breaking**: The `textlayout` member of the `gvtextlayout_engine_t` struct
187   must now return a C99 `bool` instead of a Graphviz-specific `boolean`.
188 - **Breaking**: The `config` and `auto_outfile_names` members of the
189   `GVC_common_s` struct are now C99 `bool`s instead of Graphviz-specific
190   `boolean`s.
191 - **Breaking**: The `fixed` member of the `pack_info` struct is now an array of
192   C99 `bool`s instead of an array of Graphviz-specific `boolean`s. Similarly,
193   `pack_graph` now takes a `bool` array instead of a `boolean` array.
194 - **Breaking**: `pccomps` now takes a C99 `bool` instead of a `boolean` output
195   parameter.
196 - **Breaking**: `gvusershape_file_access` now returns a C99 `bool` instead of a
197   Graphviz-specific `boolean`.
198 - **Breaking**: 1-bit fields of the `obj_state_s` struct are now unsigned
199   instead of signed.
200 - **Breaking**: Graphviz headers no longer define the constant `MAXSHORT`. A
201   drop-in replacement is `SHRT_MAX` in the C standard library’s limits.h.
202 - **Breaking**: Graphviz headers no lnger define `NIL` macros. A drop-in
203   replacement is `NULL` in the C standard library’s stddef.h.
204 - **Breaking**: Graphviz headers no longer define the `NOT` macro. A drop-in
205   replacement is the C/C++ operator `!`.
206 - **Breaking**: Graphviz headers no longer (re-)define the C constants `INT_MIN`
207   and `INT_MAX`. Replacements can be found in the C standard library’s limits.h.
208 - **Breaking**: Graphviz headers no longer define the constant `_DUMMY_ELEM`.
209 - **Breaking**: The `-m` memory test option to Graphviz command-line programs
210   has been deprecated. Tools such as
211   [Leak Sanitizer](https://clang.llvm.org/docs/LeakSanitizer.html) are a more
212   effective modern way of diagnosing memory safety issues.
213 - **Breaking**: Graphviz headers no longer define the constant `MAXFLOAT`. A
214   replacement is `FLT_MAX` in the C standard library’s float.h.
215 - The Ming plugin that produced Shockwave files has been removed. This format
216   was EOLed by Adobe in April 2019. #2160
217 - CentOS 7 packages now include libmingle and the `mingle` program.
218 - The tclpkg Makefile no longer suppresses `-fstack-clash-protection` nor
219   other compiler options containing `-x`
220 - Lefty is no longer enabled in the portable source tarball.
221 - on Linux, the CMake build system uses the standard `GNUInstallDirs` to locate
222   target installation paths
223
224 ### Fixed
225
226 - **Breaking**: GVPR now typedefs `ssize_t` as `SSIZE_T` on Windows instead of
227   `int` #1804
228 - **Breaking**: `vgpanecmd` in the TCL tclpathplan library no longer accepts
229   abbreviated commands (e.g. `r` for `rotate`) and commands must be given in
230   full #1961
231 - fix detection of unavailable output format
232 - SVG layout doesn't always respect requested size #1855
233 - mismatched format string in `mingle`
234 - Building from scratch with Visual Studio fails #2175
235 - Plugins are not configured on MinGW #2176
236 - gvpr on MinGW does not support absolute paths #1780
237 - PNG format not available in CMake builds with MinGW
238 - tclpkg Makefile corrupts CFLAGS #2177
239 - lneato -? sometimes fails with STATUS_STACK_BUFFER_OVERRUN on Windows #1934
240 - expr misinterprets `<<` and `>>` #2103
241 - stdout and stderr are not flushed at exit on MinGW #2178
242 - Gvedit on macOS now understands the `-?` help command line argument
243 - CMAKE_LIBRARY_PATH is not honored #1973
244 - assert failure with `nslimit1=0` #1902
245 - `gvpr` usage output has been restored. This was a regression in Graphviz
246   2.46.0.
247 - C++ API not usable after install #2196
248
249 ## [2.50.0] – 2021-12-04
250
251 ### Added
252
253 - hard-coded lookup tables for fallback font metrics for more fonts and font
254   variants
255 - a new `gvputs_nonascii` API function has been implemented for GVC I/O with C
256   escaping
257
258 ### Changed
259
260 - Check for existence of `dl_iterate_phdr(3)` and if it is available, prefer
261   using it instead of iterating over `/proc/self/maps` for computing `libdir`.
262 - A limit on GVC config files of 100000 bytes has been removed.
263 - MD5 checksums of release artifacts are no longer provided. SHA256 checksums
264   are still provided and these should be used instead.
265 - when cross-compiling, the `dot -c` is no longer run during installation
266 - `$CMAKE_INCLUDE_PATH` is no longer manually configured in the CMake build
267   system
268
269 ### Fixed
270
271 - remove Bashism from `gvmap.sh` #2151
272 - Lefty artifacts are no longer installed when Lefty is disabled #2153
273 - Smyrna artifacts are no longer installed when Smyrna is disabled
274 - calling convention mismatches in delaunay.c’s GTS code
275 - impure assertion in `jacobi`
276 - undefined behavior in libgvc’s reading of little endian numbers
277 - boldness of `agnxtsubg` in cgraph man page
278 - parameter `name` in `gvusershape_find` prototype corrected to a const pointer,
279   to match the implementation
280 - xdot JSON output is not valid JSON #1958
281 - fix uninitialized read of `pid` in `_sfpopen` on Windows
282 - claimed minimum CMake version supported has been corrected to 3.9
283
284 ## [2.49.3] – 2021-10-22
285
286 ### Fixed
287
288 - gvpr "split", "tokens", and "index" functions produce incorrect results #2138.
289   This was a regression that occurred between 2.47.1 and 2.47.2.
290
291 ## [2.49.2] – 2021-10-16
292
293 ### Changed
294
295 - Lefty is disabled by default in the Autotools build system. To re-enable it,
296   pass `--enable-lefty` to `./configure`. In a future release, Lefty will be
297   removed.
298 - remove PHP5 support in SWIG bindings
299
300 ### Fixed
301
302 - Msys experimental packages are included in release artifacts #2130
303 - CMake build system incorrectly aliases gv2gml to gml2gv #2131
304 - Gv2gml Doesn't escape quotes in attributes #1276
305 - GVPR incorrectly understands color schemes #1956
306
307 ## [2.49.1] – 2021-09-22
308
309 ### Changed
310
311 - the CMake build system installs gzipped man pages if `gzip` is available #1883
312 - CMake projects using Graphviz as a subproject (`add_subdirectory`) can now
313   link against and use `gvc`.
314
315 ### Fixed
316
317 - various problems in the generation of Javascript bindings
318 - 2.48.0: test suite is failing #2112
319 - Ensure correct file-level dependency for generated file in cmake generated
320   projects #2119
321 - compile failures with a C++20-compatible toolchain #2122
322 - compile errors on macOS when using Bison 3.8 #2127
323 - Make Graphviz buildable as a cmake subproject/subdirectory #1477
324 - Header not found in Cmake project #2109
325
326 ## [2.49.0] – 2021-08-28
327
328 ### Added
329 - a very basic C++ API for a subset of the functions in lib/cgraph and
330   lib/gvc, allowing a graph to be rendered from DOT source to a
331   specified format. The new API is available through two new
332   libraries: lib/cgraph++ and lib/gvc++. It is experimental, meaning
333   that it might have breaking changes also in upcoming patch or minor
334   releases (towards #2001)
335 - CMake builds now support an `with_expat` option that allows the support for
336   using HTML-like labels through the optional expat library to be explicitly
337   enabled (default) or disabled
338 - CMake builds now support an with_zlib option that allows the support for
339   raster image compression through the optional zlib library to be explicitly
340   enabled (default) or disabled
341
342 ### Changed
343
344 - the CMake build system now enables `-Wextra` when building C++
345 - some Cgraph functions that take `char*` arguments that they do not modify have
346   been updated to take `const char*` arguments #634
347 - incorrectly using the `layout` attribute on anything other than a graph now
348   results in a warning about this being invalid #2078
349 - `edgepaint` accepts more standard `--` prefixed command line arguments and
350   rejects invalid options #1971
351 - improved detection of Lefty dependencies in the Autotools build system
352 - libexpr rejects printing the time (`%t`) if no format is provided
353 - `-DDATE=…` option in the CMake build system has been removed
354 - the Autotools build system no longer writes the DATE file and the portable
355   source tarball no longer includes this
356
357 ### Fixed
358
359 - The attached dot file causes a segfault when processed #2095
360 - fix typos and update URLs in `edgepaint` usage text and man page
361 - Fix clang's undefined behavior warning in dotLayout
362 - gvpr doesn't build on macOS but MKDEFS_EXECUTABLE points to wrong
363   directory #2101
364 - the generated gdefs.h header is no longer installed
365 - `ccomps` out-of-memory message no longer incorrectly refers to `gc`
366 - do not abort when `calloc(0, x)` or `calloc(x, 0)` in `gcalloc` return `NULL`
367 - failed Exshort_t type discrimination #1799
368 - dot manpage is in wrong directory on Windows #1936
369 - CMake builds fail when when the ltdl library is not available even if the
370   `enable_ltdl` option is `ON`
371 - CMake builds fail when when the optional `zlib` library is not available
372 - fix graph rotation in quartz plugin
373
374 ## [2.48.0] - 2021-07-17
375
376 ### Added
377 - a new C++ test infrastructure based on ctest and Catch2 towards #2002
378 - support for test coverage analysis with
379   [lcov](http://ltp.sourceforge.net/coverage/lcov.php) and
380   [test coverage visualization in GitLab MRs](https://docs.gitlab.com/ee/user/project/merge_requests/test_coverage_visualization.html)
381
382 ### Changed
383
384 - updated Graphviz bug report URL in the Autotools build system
385 - Fix `WIN32` path of `gvc.def` specified in `libgvc_la_LDFLAGS`
386 - the CMake build system now not only checks for Bison, but also ensures the
387   found version is recent enough #1916
388
389 ### Fixed
390
391 - ortho's eqEndSeg incorrectly modifies its arguments #2047
392 - Autotools enables -Wtrampolines and -Wlogical-op for Clang #2066
393 - node_distinct_coloring failure due to out-of-memory now reported correctly
394   instead of referring to a failure to open lab_gamut
395 - Fix a typo `GD_LIBS` to `GDLIB_LIBS` in `tclpkg/tcldot/Makefile.am` !2022
396 - Autotools build system sets libgd variables now instead of incorrectly setting
397   GTK variables
398 - HTML strings used as labels are distinguishable in GXL output by
399   `kind="HTML-like string"`
400 - a Bashism removed from the Autotools build system
401 - when Criterion is available, the `command_line` test binary is no longer built
402   and installed by default, but rather during `make check`
403 - round-tripping a file through ``gv2gxl`` and then ``gxl2gv`` no longer causes
404   HTML-like labels to become non-HTML like labels #517
405 - fix ODR violation by including the ortho object files in the gvc lib also for
406   CMake and MSbuild #2096
407
408 ## [2.47.3] - 2021-06-19
409
410 ### Changed
411
412 - marginally more accurate computations in Smyrna sphere projection
413 - Perl is no longer required to build Graphviz #2067
414 - nop more reliably returns success and failure exit statuses
415 - implicit 63 character limit on plugin names is removed in GVC
416 - the packaging work flow on CentOS 7 now selects the Python 3 bindings, instead
417   of Python 2 bindings
418 - remove Python 2 bindings #1992
419 - improved thread-safety in Graphviz bindings Makefile
420
421 ### Fixed
422
423 - no longer pass libcommon to the linker twice in mm2gv when building with CMake
424 - Quartz plugin is now compiled with explicit `--tag=CC` to libtool #2065
425 - out of bounds read when attempting to load a plugin whose name is ≥63
426   characters
427 - out of bounds read when examining a registered plugin whose name is ≥63
428   characters
429 - do not `fclose(NULL)` in gvmap
430 - Assertion error when using `dot` in `ortho.c` in `convertSPtoRoute` in
431   graphviz 2.47.2 #2082. This was a regression introduced in 2.47.2.
432
433 ## [2.47.2] - 2021-05-26
434
435 ### Added
436
437 - CMake option `use_sanitizers` which enables building with address and
438   undefined behavior sanitizer
439
440 ### Changed
441
442 - $PATH is no longer assumed to be "/bin:/usr/bin:/usr/local/bin" if unset
443 - test suite no longer assumes `python3` exists #2049
444 - CMake build system locates Python 3 before calling it
445 - diff and grep are no longer required to build Graphviz on Windows
446
447 ### Fixed
448
449 - Uninitialized variable read in delaunay_tri
450 - potentially mismatched format string in tclpkg
451 - `gvToolTred` is now exported from gvc.dll on Windows mirroring the behavior on
452   Unix platforms.
453
454 ## [2.47.1] - 2021-04-17
455
456 ### Changed
457
458 - More detailed error messages when opening input file fails
459
460 ### Fixed
461
462 - Windows build thinks xdg-open can be used to open a web browser #1954
463 - lab_gamut_data misses a value #1974
464 - xdot man page does not document some functions #1957
465 - Superfluous empty `@param` in documentation #1977
466 - PIC renderer does not work and probably never has #131
467 - dot conversion to dia format #689
468 - memory leak of reference-counted HTML strings
469 - Align rank from bottom in dot graph #1339
470 - Fix for TBbalance attribute code #1980
471 - HTML parser error with single closing square bracket in table row #1893
472 - reference counted strings put the HTML bit in the middle of the reference
473   count #1984
474 - &amp;amp; escape disappearing #797
475 - miscalculation of minimum rank on large graphs
476 - AddressSanitizer: strcpy-param-overlap in gvconfig_libdir when
477   running dot -c #1994
478 - fix reuse of va_list in pov rendering
479
480 ## [2.47.0] - 2021-03-15
481
482 ### Changed
483 - The edges in JSON output are ordered now !1728
484 - remove regex usage #1919
485 - RxSpencer is no longer a dependency on Windows
486 - gvmap.sh is compatible with POSIX shells in addition to ksh
487 - sed is no longer a build dependency on Windows
488 - SHA256 checksum generation? #1955
489
490 ### Fixed
491 - Fix gvpr -? to actually print usage and exit non-zero
492 - gvpr is not built by CMake #1878
493 - typos in gpcanvas.c #1927
494 - memory leak in libmingle
495 - private inheritance in IncVPSC #1874
496 - broken sorting in nearest_neighbor_graph_ann.cpp #1938
497 - memory leak in ANN bridge
498 - gvpr on Windows does not support absolute paths #1780
499 - buffer overflow in unflatten
500 - agxbputc macro does not bracket its arguments #1814
501
502 ## [2.46.1] - 2021-02-13
503
504 ### Added
505 - Support for building against Guile 2.2
506 - Portable source is now also offered as a .tar.xz
507
508 ### Changed
509 - CentOS/RHEL 6 is no longer supported
510 - Vestiges of Qt4 support have been removed
511 - C++11 support is now required of the C++ compiler used to build Graphviz
512 - C99 support is now required of the C compiler used to build Graphviz
513 - Question about userout() function in agerror.c #1924
514 - The minimum version of Python required to run the test suite is 3.6
515
516 ### Fixed
517 - memory leak in label construction
518 - gvedit compilation errors out, but works if manually compiled with qt5 #1862
519 - incorrect HTML BR attribute parsing code #1913
520 - broken overflow checks in RectArea #1906
521 - various memory leaks !1699
522 - Fix bad free in lefty !1709
523 - typo in pathcross #1926
524 - Out-of-bounds write caused by incorrect error handling of malloc in genUserdata #1928
525 - Offer .tar.xz files too #454
526 - Header file graphviz_version.h has no include guards #1929
527 - regression: newlines embedded in quoted labels / node names are not preserved in 2.46.0 #1931
528 - Properly fill graphviz_version.h !1706
529
530 ## [2.46.0] - 2021-01-18
531
532 ### Added
533 - Cgraph's agxbuf API gained a new function agxbdisown(), for dissociating
534   backing memory from the managed buffer
535 - Build system support for the Elbrus 2000 CPU, thanks to Michael Shigorin
536
537 ### Changed
538 - Cgraph's agheap() API has been removed
539 - Autotools build system support for eFence has been removed
540 - Building Graphviz with ICC defaults to -O2 instead of -O0
541 - Build system work arounds for GCC 3 have been removed
542 - Incomplete support for running the test suite under CMake has been removed
543 - Portable source tarballs now use the “ustar” POSIX format
544 - Minimum version of Flex required to build Graphviz is now 2.5.2
545 - Minimum version of Bison required to build Graphviz is now 3.0
546 - Minimum version of CMake required to build Graphviz using CMake is now 3.1
547
548 ### Fixed
549 - gvpr: line numbers in gvpr errors/warnings are incorrect #1594
550 - URL typo in patchwork man page
551 - Escaped backslashes are not correctly handled when producing xdot with dot #165
552 - heap-over-flow(off-by-null) in lib/common/shapes.c #1700
553 - Windows MSBuild executables have the wrong version #1745
554 - Cast Overflow at pango_textlayout #1314
555 - x11 back end segfaults if display is unavailable #1776
556 - typo in cmd/gvpr/lib/clustg #1781
557 - Segfault in dot #1783
558 - Incorrect 'Arrow type "s" unknown' error #1444
559 - segfault on reading 0x10 #1724
560 - Null-dereference READ (144736912) #1676
561 - "Warning! PATH too long installer unable to modify PATH!" using CMake Windows installer and PATH length > 1024 #1770
562 - gvedit -? gives "option - unrecognized - ignored" instead of showing usage #1813
563 - lefty is not built for Windows (fixed for MSBuild builds only) #1818
564 - a failure to detect OpenGL glGenTextures() errors has been corrected
565 - sfio does compile time benchmarknig #1422
566 - iffe "lib" check always succeeds when compiler optimises #1521
567 - syntax error near text who is not present #1411
568 - Explicitly links with libstdc++; should allow libc++ if appropriate #163
569 - A macOS file that was erroneously excluded from portable source tarballs has
570   been restored
571 - Add option -? for usage to diffimg
572 - Add option -? for usage to dotty
573 - Add option -? for usage to lneato
574 - Add option -? for usage to vimdot
575 - Fix smyrna -? to actually print usage instead of error
576 - Fix edgepaint -? to actually print usage instead of error
577 - Remove '"' from usage text in non-Windows version of dotty
578 - Correct misspelled 'smyrna' in usage
579 - Fix edgepaint -o option
580 - Correct shebang of gvmap.sh to use ksh
581 - Fix gvmap.sh -? option to exit with zero exit status
582 - Graphviz doesn't build on MacOS with the latest libc++ #1785
583 - make fails if ps2pdf is not installed (using autotools) #1763
584 - multiple graphs to file output causes a segfault #1845
585 - lefty PTY functionality relies on file descriptor implementation details #1823
586 - buffer overflow in fdpgen
587 - Crashes by VRML output when current directory is not writable #793
588 - Segmentation fault when newrank=true #1221
589 - sfdp craches #236
590 - fdp segmentation fault with GK=0 #1290
591 - fdp crash #1865
592 - Graphviz always crash with this simple dot file #167
593 - Seg fault in dot #1771
594 - gml2gv doesn't handle some attributes correctly #1869
595 - Add missing circo, fdp, neato, osage, patchwork, sfdp & twopi tools to Windows builds (copies of dot)
596 - Add gv2gml tool to CMake (copy of gml2gv on Windows, symlink to gml2gv otherwise)
597 - Regression: fdp generates internal names in the output #1876
598 - Regression: fdp assertion error on cluster in edge #1877
599 - Regression in id / &lt;title&gt; in svg for twopi #1907
600
601 ## [2.44.1] - 2020-06-29
602
603 ### Added
604 - applied RH patches (from graphviz-2.42.2-8.fc32.src.rpm)
605   - graphviz-2.42.2-coverity-scan-fixes.patch
606   - graphviz-2.42.2-dotty-menu-fix.patch
607   - graphviz-2.42.2-ocaml-allow-const-cast.patch
608 - some allocation failures that could previously allow memory corruption now exit
609 - lab_gamut.3.pdf is no longer included in release archives
610
611 ### Changed
612 - Windows binaries available at https://www2.graphviz.org/Packages/ instead of
613   https://ci.appveyor.com/project/ellson/graphviz-pl238
614 - Retarget Windows builds to Visual Studio 2019 and toolset v142
615
616 ### Fixed
617 - Released Ubuntu packages does not contain language bindings for Python3 #1737
618 - Neato's hier mode is broken since v2.44.0 #1726
619 - Segmentation fault (core dumped) #1436
620
621 ## [2.44.0] - 2020-04-08
622
623 ### Added
624 - New SGD mode in neato (thanks [Jonathan Zheng](https://gitlab.com/jxz12/graphviz/-/tree/sgd))
625 - Add pkg-config files !1322
626 - tred: add feature to output removed edges to stderr upon request !1326
627 - Fix issue #1671: Workaround: avoid creating a virtual edge loop. !1328
628 - Add riscv64 to host_cpu configure.ac !1329
629 - lib/cgraph: include empty malloc.h from subdir include !1332
630 - lib/gvpr: compile mkdefs with $(HOSTCC) rather than $(CC) !1333
631 - lib/vpsc: rename bcopy->b_copy !1334
632
633 ### Fixed
634 - MSB4018 The NativeCodeAnalysis task failed unexpectedly. #1481
635
636 ## [2.42.4] - 2020-04-05
637
638 ### Added
639 - Include all test files in distro !1341
640 - host_cpu add mips64 platform !1325
641 - Correct description of 'port' syntax in manual !1324
642
643 ### Fixed
644 - svg output displays TITLE of %3 if graph had no name #1376
645 - XML errors in generated SVG when URL attribute contains ampersand (&) #1687
646 - Test files missing from source distributions #1647
647 - SVG error for "g.transform.scale " in graphviz version 2.43 #1605
648
649 ## [2.42.3] and earlier
650
651 ```
652
653 October 9, 2019
654     - Release 2.42.3
655         - Merge 1316, 1317, 1319, 1320
656         - Patches #1591, #1596
657         - Add Fedora 32 builds
658         - CI/CD fixes
659         - Documentation (Warning about HTML label usage)
660
661 September 17, 2019
662     - Release 2.42.2 - ( Never fully released due to CI/CD hardware issues ) 
663     - Fix deployment issues.  Builds can now be found under:
664                      http://www2.graphviz.org/Packages/
665 July 17, 2019
666     - Release 2.42.1
667     - Fix deployment issues.  Builds can now be found under:
668                      http://www2.graphviz.org/Packages/
669 July 4, 2019
670     - Release 2.42.0
671     - Fixes quite a few bugs
672 September 22, 2017
673     - Move master repo to GitLab: https://gitlab.com/graphviz/graphviz
674 December 21, 2016
675         - Remove usage of ast_common.h
676 December 20, 2016
677     - Release 2.40.0
678         - network-simplex fixes and optimization (Stephen North)
679         - built-in tred tool now available in the various swig generated
680         language bindings (John Ellson)
681         - number rounding added to SVG renderer (same as PS and TK rounding)
682         to aid regression testing. (John Ellson)
683         - additional regressson test framework, used in Travis CI builds. (Erwin Janssen)
684         - PHP7 support (requires swig-3.0.11 or later). (John Ellson)
685         - Allow user to specify clustering algorithm in gvmap. (Emden Gansner)
686         - Add Sierpinski graph generator to gvgen. (Emden Gansner)
687         - Extensive code cleanup (Erwin Janssen)
688         - Removal of libgd source - use vanilla libgd from separate install 
689         - Windows builds (Erwin Janssen)
690         - Appveyor CI for automated Windows build testing (Erwin Janssen)
691         - Travis CI for Fedora/Centos builds (Erwin Janssen)
692         - Added JSON output format, -Tjson  (Emden Gansner)
693         - New curved arrowhead, cylinder node shape.
694         - Resolves bugs: 2599, 1172
695 June 18, 2016
696         - Experimenting with Travis CI
697 February 13, 2016
698         - Add cylinder shape for databases.
699         - Free installed plugins
700         - Update makefile for dot so that the using libpanco_C in the static build include PANGOFT2
701         as well as PANGOCAIRO_LIBS (needed for some versions of Ubuntu)
702 February 1, 2016
703         - Add json output format
704 April 26, 2015
705         - output class value in svg files
706 September 9, 2014
707         - Add plain shape for use with HTML-like labels.
708 August 12, 2014
709         - Add icurve arrowhead.
710 July 28, 2014
711         - Revert to old, translate to origin semantics in neato, etc. Add flag notranslate if that is
712           what the user desires.
713 April 13, 2014
714         - Release 2.38.0
715         - Resolves bugs: 2409, 2413, 2417, 2420, 2422, 2423, 2425
716 March 27, 2014
717         - Enable packing for dot
718         - Allow scaling to work for all non-dot layouts
719 March 9, 2014
720         - Add overline text characteristic.
721 March 4, 2014
722         - Fix bugs in gvpr and gv.cpp so edges can be created in subgraphs.
723         - Add edgepaint program for coloring edges to make them easier to tell apart.
724         - Modify neato to avoid unnecessary translations of output. This allows positions
725         given on input to remain the same on output.
726         - Fix swig java package to work and support gv.renderresult.
727         - Fix test for the absence of layout (old test relied on statically allocated Agraphinfo_t).
728         - HTML-like tables and cells can now specify which borders should be drawn.
729         - The fixedsize attribute now takes the value "shape" which allows labels much larger than the
730         node shape.
731 January 11, 2014
732         - Release 2.36.0
733         - Resolves bugs: 2372, 2384, 2388, 2391, 2392, 2383, 2395, 2401, 2406
734         - Various MacOS Fixes from Pixleglow.
735         - Remove old libgraph sources from distributions.
736         - Move master git repo to github.com
737 September 15, 2013
738         - Add <S> element for strike-through to HTML-like labels.
739 September 6, 2013
740         - Release 2.34.0
741         - New version of xdot supporting inline text characteristics such as <b> and
742         version-specific output based on xdotversion
743         - Resolves bugs: 2325, 2326, 2333, 2334, 2337, 2338, 2340, 2343,
744                 2345, 2346, 2349, 2350, 2351, 2352, 2353, 2354, 2357, 2359
745         - Resolves Redhat bug: BZ#847458
746 August 21, 2013
747         - Added mingle command and library for edge bundling
748 August 1, 2013
749         - Release 2.32.0
750         - New version of xdot format, annotating gradient color schemes
751         - Support for reading pdf images using poppler
752         - Lefty/dotty/lneato now accept anonymous graphs
753 July 2, 2013
754         - Add star node shape
755         - Add two-tone (non-gradient) fill
756 February 14, 2013
757         - Release 2.30.1
758         - various build fixes
759 January 13, 2013
760         - Release 2.30.0
761         - Replaced libgraph with libcgraph; use of libgraph is now deprecated
762         - New ranking algorithm that allows multiple subgraph constraints
763 November 27, 2012
764         - Add graphml2gv and gv2gml to Windows package.
765 September 25, 2012
766         - Support edges using curved arcs.
767 August 16, 2012
768         - Added new shapes used by the synthetic biology community.
769 July 12, 2012
770         - For HTML-like labels, provide rounded cells, and dashed or dotted borders.
771         - Add lcurve and rcurve arrowheads.
772         - Add prototype pie chart and striped fills.
773         - Support insets in treemaps to make containment clear
774 June 7, 2012
775         - Add random rooted tree generation to gvgen
776 February 29, 2012
777         - Allow GVPRPATH to specify that the default path be prepended or appended to it.
778 February 27, 2012
779         - Support arbitrary lists of layers; allow the user to specify arbitrary layers for output.
780 February 24, 2012
781         - A collection of gvpr scripts, which were part of the source package, are now
782         installed in <prefix>/share/graphviz/gvpr, and the that path is used as part of th
783         default built-in path for gvpr.
784 February 15, 2012
785         - Update libexpr to reflect Glenn Fowler's changes including scopes for variables.
786 February 9, 2012
787         - Add next graph variable to gvpr
788 February 8, 2012
789         - Modify dot and fdp so that a cluster's margin attribute will affect the space
790           between the bounding box and nodes
791 January 26, 2012
792         - Modify the dijkstra tool to use only directed edges
793         - Output numbers without quotes if quotes are not needed on input
794         - Support gradient fill
795 January 23, 2012
796         - Provide support for webp images
797 January 17, 2012
798         - Fix tapered edges to use the dir attribute and arrowhead
799 September 21, 2011
800         - Add imagepath attribute
801         - Add help functionality to Graphviz.app
802 August 24, 2011
803         - Add <B>,<I>,<U> to html strings via svg
804 August 16, 2011
805         - Add tapered edges
806 August 3, 2011
807         - Add support for external labels
808 July 14, 2011
809         - Add initial implementation of graphml2gv
810 July 8, 2011
811         - Add basic horizontal and vertical rules to html tables
812 May 6, 2011
813         - Release 2.28.0
814         - incremented library api version:
815             libcdt, libgraph, libcgraph, libgvpr, libgvc
816         - Add gvmap, cluster and gvmap.sh
817         - Deprecate dotty; prefer gvedit
818         - Add patchwork supporting squarified tree maps
819         - Add ordering as a node attribute
820         - Fix problems with font resolution
821         - Fix problems with text placement
822         - Fix twopi to set root attribute
823         - Make available layouts and formats available via the API
824         - Fix error message system so that an application can capture the messages
825         - New Qt-based version of gvedit
826         - New attributes and features for sfdp
827         - gvgen now allows the user to specify graph name and node name template
828         - Make overlap=false denote overlap=prism
829         - More efficient xdot library
830         - HTML-like labels provide ID
831         - Fixed bugs: 1480 1980 2044 2087 2088 2089 2091 2093 2094 
832         2095 2101 2102 2103 2104 2112 2113 2118 2128 2129 2139 2149 
833         2157 2113 2159 2160 2161 2163
834 March 31, 2011
835         - Add many new gvpr scripts to release package
836         - Add scale attribute to twopi
837 October 14, 2010
838         - Add <B>,<I>,<U> to html strings via cairo
839 February 15, 2010
840         - migrated to 2005 version of cdt 
841 January 26, 2010
842         - Release 2.26.3
843         - libcgraph.so   version bumped from 4 to 5 due to API changes
844         - Allow ranksep to specify multiple radial differences in twopi
845         - Allow the user to specify all pairwise distances in neato with
846         - Fixed bugs: 1280 1409 1567 1583 1624 1631 1655 1708 1709
847         1727 1784 1792 1798 1800 1813 1814 1830 1831 1833 1836 1839
848 model=mds
849 December 10, 2009
850         - Release 2.26.0
851         - Core features:
852                 - added: "smyrna" - a new opengl-based viewer for large graphs
853                 - added: rudimentary "gml2gv", "gv2gml" converters
854                 - extended support for various image formats in node images
855                 - removed vestiges of codegens, now all putput formats supported
856                   through plugins.  Dropped some output formats for which
857                   plugins have not been developed: -Tdia, -Tmif
858                 - gvpr converted to a library; additional array handling and
859                   text processing functions added; language extended to allow 
860                   multiple BEG_G/N/E blocks. 
861                 - allow background images specified via xdot
862         - Ports added/dropped from nightly builds:
863           (The dropped ports could probably be re-added if there was demand.)
864                 - added MacOSX SnowLeopard  (multiarch:  i386/x86_64/ppc)
865                 - added Fedora 12 (i386, x86_64)
866                 - added Fedora 13 (Rawhide) (i386, x86_64)
867                 - dropped Fedora 7 (i386, x86_64)
868                 - dropped Fedora 8 (i386, x86_64)
869                 - dropped RHEL 3 (i386, x86_64, ia64)
870                 - dropped Ubuntu 8 (i386)
871         - Fixed bugs: 1683 1713 1718 1720 1738 1747 1759 1770 1776 1786
872           1799 1816 1827
873
874 June 16, 2009
875         - Release 2.24.0
876         - Core:
877                 - add new layout engine for large graphs: sfdp
878                 - add new layout engine for nested graphs: osage
879         - pack library extended to handle array-based packing modes
880           using array bounds, aspect ratio, user-controlled sorting, etc. 
881         - Fixed bugs: 1515 1590 1598 1601 1605 1607 1609 1610 1611 1614
882         1615 1617 1625 1628 1634 1635 1640 1641 1642 1646 1649 1651 1652
883         
884 March 13, 2009
885         - Release 2.22.2
886                 - fix for buffer overflow (present in 2.22.0 and 2.22.1)
887         - Fixed bugs:
888                 1602
889
890 March 9, 2009
891         - Release 2.22.1
892                 - build fixes for Visual Studio and for FreeBSD
893 March 3, 2009
894         - Release 2.22.0
895         - Core:
896                 - libgvc api changed, version bumped.  Affects third party
897                   applications using libgvc.
898                 - plugin api changed, version bumped.  Affects third party
899                   plugins for graphviz.
900                 - 90% conversion to cgraph has been done, but not enabled yet,
901                   (and yes, its true what they say about the last 10% )
902                 - drop libagraph from distribution  (use libcgraph)
903                 - layout code completely converted to floating point.
904                 - new "dot -P" option for generating a graph of available
905                   plugins.
906                 - registered MIME type:  text/vnd.graphviz for .gv files
907                 - rename files from .dot to .gv to avoid conflict with
908                   Word templates.  .dot still supported, but deprecated.
909                 - new command: mm2gv   (matrix-market graph file conversion)
910                 - rename commands:      dot2gxl -> gv2gxl
911                                         gxl2dot -> gxl2gv
912         - Plugins:
913                 - new rsvg plugin for support of node shapes in SVG format
914                 - new gs plugin for support of node shapes in PS format
915                 - new lasi plugin for support of UTF-8 characters in PS output
916                   (the above thee plugins are Linux only, at the moment)
917                 - new quartz plugin (MacOSx only)
918                 - new gdiplus plugin (Windows only)
919                 - new -Tvml support in core plugin (thanks Steve Roush)
920                 - new -Ttk support in core plugin (also used by Tcldot and
921                   gv_tcl language bindings.)
922                 - disabled old style codegens completely
923         - Linux:
924                 - new Ubuntu8 builds
925                 - new Fedora 10 and 11 builds
926         - MacOSx: 
927                 - Universal binary for Leopard: i386, x86_64, ppc, ppc64
928                 - Should not conflict with parallel install of MacPorts
929                   version of graphviz
930                 - Improved GUI 
931         - Windows:
932                 - VisualC project files now available, in addition to the GNU
933                   Makefiles that are used the mingw builds.
934         - Language Bindings:
935                 - fixed problem with writing dot, xdot, plain, canon to 
936                   memory or to Tcl_Channels
937                 - renamed man pages to Debian style:  gv.3tcl, gv.3perl, etc
938         - Fixed bugs: 827 1365 1366 1367 1368 1374 1375 1376 1378 1380 1382
939         1383 1385 1386 1388 1390 1391 1392 1394 1395 1397 1398 1399 1405
940         1407 1410 1412 1414 1415 1416 1421 1424 1425 1427 1429 1431 1433
941         1435 1436 1437 1438 1440 1441 1444 1446 1451 1452 1453 1456 1457
942         1459 1460 1461 1462 1463 1464 1465 1466 1470 1474 1475 1476 1477
943         1478 1484 1485 1489 1490 1492 1493 1495 1496 1499 1500 1501 1502
944         1503 1505 1509 1513 1521 1523 1525 1530 1531 1532 1533 1535 1536
945         1539 1540 1542 1543 1546 1547 1551 1553 1554 1561 1565 1566 1568
946         1569 1570 1571 1573 1577 1578 1579 1580 1581 1582 1584 1586
947                 
948 June 25, 2008
949         - Release 2.20.2
950         - Fix bug in HTML-like labels 
951 June 23, 2008
952         - Release 2.20.1
953         - Fix bug in ccomps related to conversion to cgraph
954 June 20, 2008
955         - Release 2.20.0
956         - Preparing for Release 2.20
957         - Fixed bugs: 1315, 1317, 1324, 1336, 1343, 1364
958         - Add new "folder" shape for nodes.
959         - Migration of gvpr tools to libcgraph.   
960         - New output format -Teps  (encapsulated postscript)
961         - Various NetBSD and SuSE fixes incorporated
962         - ./configure now provides a summary
963         - RPM specfile updates for fedora-10 (no more string comparisons)
964         - Add MacOS support (Glen Low)
965 March 10, 2008
966         - Release 2.18
967         - Fixed bugs: 1249 1255 1256 1268 1276 1289 1295 1300 
968                 Fedora BZ#247376, 
969         - in -Tps use a new number formatter that suppresses trailing 0.
970         - support tcl/tk-8.5
971         - support gcc-4.3
972         - support for node usershapes/images in svg format (thanks Alex Poylisher)
973         - install: perl, php, python, ruby, tcl, bindings in language-specified directories
974         - add arrowhead scaling with edge penwidth
975         - add "folder" node shape (thanks Pander)
976         - many windows and mac fixes (thanks Glen)
977         - add "smyna" large graph view (thanks Arif) (not yet included in binary distros)
978 December 12, 2007
979         - Release 2.16.1
980         - Fixed bugs: 1228 1234 1238 1239 1245
981         - Improvements to PHP binding
982         - Improvements to OCAML binding
983         - Make regression tests run from the build tree, rather than require installation
984         - Repair freetype detection on RedHat-7 (Yes, people still use it!!)
985         - Fix zoom-at-mouse-location in -Txlib and -Tgtk
986         - Fix some dotty regressions
987 November 9, 2007
988         - Release 2.16
989         - Fixed bugs: 456 473 1021 1153 1154 1155 1159 1160 1162 1165 1166
990         1168 1169 1170 1172 1173 1174 1175 1177 1178 1179 1181 1182 1183
991         1185 1187 1189 1192 1193 1195 1196 1199 1204 1207 1210 1215 1216
992         1217 1218 1219 1220 1223
993         - new regression test suite
994         - new cgraph library (will eventually replace graph and agraph)
995         - add "image" and "imagescale" for simpler support for images in nodes
996         - add "tab" "box3d" and "component" shapes.  - Diomidis Spinellis
997         - replace arith.h in distro
998         - add functions to access version info to avoid need for gvcint.h
999         - Fix problem with irregular character spacing at 96dpi in pango/cairo output formats.
1000         - Add gdk_pixbuf plugin providing: .bmp .ico .jpg .png .tif 
1001         - Add DevIL plugin providing: .bmp .jpg .png .tif .tga
1002         - Extend GD plugin to provide a backend to cairo for: .gif .jpg .png .gd .gd2 .wbmp  <- gifs are now antialiased
1003         - Rework plugin framework to separate device from renderer, and to autoload load dependendent plugins
1004         - show defaults in output from: ./configure --help
1005         - add more info to dot -v  and dot -v2 debug outputs
1006         - various issues with CR/LF in windows, but not in binary outputs.
1007 August 15, 2007
1008         - release 2.14.1
1009         - Fixed bugs: 1163, 1167
1010         - Windows build fixes
1011         - Add xdot parsing library to source distros
1012         - graphviz.spec fixes for rpm distros from Gareth Armstrong
1013         - moved language binding man pages to mann (gv_php.n, gv_ocaml.n, etc.)
1014         - New access functions for version info in GVC_t - permits gvcint.h to
1015         be private.
1016 August 2, 2007
1017         - release 2.14
1018         - Fixed (or otherwise closed) bugs:
1019                 74 130 162 184 190 197 219 223 281 295 311 316
1020                 324 352 364 385 393 404 420 447 455 474 489 507
1021                 530 532 537 543 551 564 571 574 577 583 587 588
1022                 590 592 595 599 638 647 650 660 675 667 668 669
1023                 676 684 685 686 721 725 734 740 746 747 748 749
1024                 752 755 756 765 778 780 781 782 785 794 803 814
1025                 822 828 836 840 847 852 862 866 868 893 928 944
1026                 948 950 955 961 976 985 992 1024 1057 1064 1065
1027                 1066 1069 1072 1074 1079 1085 1086 1089 1091 1092
1028                 1093 1094 1096 1107 1111 1123 1124 1130 1138 1145
1029                 1151 1152 1156
1030         - Fixed Redhat bugs: 218191 237497
1031         - Fixed Debian bugs: 321128 422862 422873
1032         - Fixed Gentoo bugs: 173676
1033         - Using system version of libgd if gd-2.0.34 or later. (Fedora 7 and 8 distros)
1034                 internal copy of gd updated to gd-2.0.35.
1035         - Updated GVGUI viewer for Windows
1036         - Windows build process now uses GNU autoconf and UWIN
1037         - Added support for selection of edge routing types:
1038                 line, polyline, orthogonal, spline
1039         - Added -Tvml support
1040 December 5, 2006
1041         - release 2.12
1042         - Bug fix release for 2.10
1043         - The gd plugin for font handlers was not being used at all if the build
1044         did not use fontconfig, e.g., on Windows. In addition, the code had
1045         dropped the name mapping to Windows font names.
1046         - PostScript output had an extraneous '%' character on the first line,
1047         which would cause printing to fail.
1048         - Text handling, during both sizing and layout, incorrectly handled
1049         empty lines such as label="\nabc".
1050         - HTML-like tables had been changed to use too much vertical space,
1051         to possibly use the wrong font in calculating the height of a line,
1052         and to use the wrong offset when moving the baseline from one line to
1053         the next.
1054 November 27, 2006
1055         - release 2.10
1056         - dot - New pango+cairo renderer plugin (was in separate graphviz-cairo tree).
1057           -- -Tpng now uses cairo   (-Tpng:gd for old gd based renderer)
1058           -- -Tpdf now available
1059           -- -Tps:cairo now available (-Tps is a direct ps renderer not based on cairo)
1060           -- -Tsvg:cairo now available (-Tsvg is a direct svg renderer not based on cairo)
1061           -- -Txlib now available -- "dot -Tx11 foo.dot"  watches foo.dot with inotify and updates
1062           -- -Tgtk now available -- eventually to provide a graph editing capability - not fully working
1063           -- -Tswf "Flash" now available using the ming library. Currently has incomplete font support and not yet in Fedora rpms because ming not yet available as rpm.
1064         - remove hard gd dependencies from dot.  gd renderers now provided
1065           as optional plugin.   Deprecated, but required for -Tjpg, -Tgif and -Tvrml.
1066         - gvpr - Add kindOf function, plus functions to set and get default values
1067         - dot - Implement esep attribute to allow graph to specify room
1068         around nodes for spline routing.
1069         - neato - add vpsc library and DIGCOLA
1070         - neato - add IPSEPCOLA additions from Tim Dwyer
1071         - move: -Tps, -Tfig, -Tsvg, -Timap/ismap/cmap/cmapx, -Tdot/xdot,
1072         from codegens to a "core" plugin.
1073         - dot - new usershape plugin mechanism potentially supporting
1074           a wider range of input shape format -> output format combinations.
1075         display on changes
1076         - Fixes for builds on Mac OS/X
1077         - dot - new -O switch to automatically generate output file
1078         names based on the input filename and the -T value.
1079          e.g.  "dot -Tpng -O *.dot"   
1080         Also works for case of multiple graphs in a single input file.
1081         - add support for "Brewer" color nameset
1082         - move reusable .so libraries to $PREFIX/lib per frequent request
1083         from Debian community.   Plugin .so's remain in $PREFIX/lib/graphviz.
1084         - Fix bugs 882 884 886 896 902 905 906 911 918 919 933 936 938 940
1085            948 955 958 967 979 987 993 1005 1006 1011 1012 1013 1014 1016
1086            1018 1025 1030 1034 1035 1039 1040 debian#37300
1087
1088 February 3, 2006
1089         - release 2.8
1090         - (POTENTIAL INCOMPATIBILITY) The default input scaling, in the
1091         absence of a "-s" switch, has been changed from inches to points.
1092         The new behavior of "neato" is equivalent to "neato -s72".
1093         The old behavior can be restored with "neato -s1".
1094         The purpose of this change is to avoid a Frequently-Made-Mistake
1095         when using "neato -n" to process a previously generated layout.
1096         Previously it was necessary to use "neato -n -s72", but with this
1097         change the default matches dot's output and the "-s72" is not required.
1098         - Added pseudo layout engines: "dot -Knop" and dot -Knop1" equivalent
1099         to "neato -n"
1100         - Added pseodo layout engine: "dot -Knop2" equivalent to "neato -n2"
1101         - Add support for color namespaces; add Brewer color data
1102         - Add support for simulated duplex edges using parallel edges:
1103         head arrow takes first color, tail arrow takes second color.
1104         - source code management moved back to CVS until GIT matures a bit more
1105         - distribute separe rpms for binares of language bindings : 
1106         - Add a small pad region around graph renderings to allow for finite
1107         penwidths at the drawing edges
1108         - Add protonode(g) and E=protoedge(g) functions to simplify
1109         language bindings.
1110         - Add special purpose code to deal with html labels from language
1111         bindings.
1112         - Various portability fixes for: HPUX, Mac OS/X, Cygwin, Windows.
1113         - Fix bugs 784 786 787 788 789 790 791 793 795 796 798 799
1114             800 801 804 806 811 812 817 820 821 823 824 825 830
1115             837 839 841 842 843 848 850 851 854 855 856 857 858
1116             859 861 863 866 867 869 872 874 876 877
1117
1118 August 28, 2005
1119         - release 2.6
1120         - experimentally moved source code management from CVS to GIT
1121         - added iterator functions to script bindings
1122         - more C-API tuning
1123         - add "-c" switch to dot to explicitly generate plugin "config" file
1124                 instead of generating it as a side-effect of "dot -V"
1125         - better support for binary relocation.
1126         - plugin versioning and version checking
1127         - clean up of header files
1128         - provide statically linked "dot_static" (not incl. in rpms)
1129         - additional "event" support for GUIs (e.g. "DotEdit" graphviz-cairo)
1130         - add some information about plugins to "dot -v" output.
1131         - lefty/dotty fixes
1132         - fix bugs 746 750 752 753 754 756 761 763 764 765 768 
1133                 771 772 773 774 775 776 777 778
1134         - not a bug 757 760 770
1135 July 20, 2005
1136         - release 2.4
1137         - major code restructuring
1138         - new plugin architecture (e.g. see separate package: graphviz-cairo )
1139         - new script-language bindings using swig (perl, ruby, python, tcl, java ... )
1140         - C-API now in libgvc (no more dotneato.[ch] or dotneato-config.sh]
1141         - pkgconfig now used for reusable libraries
1142         - lefty upgrade
1143         - fix bugs 156 255 492 631 641 647 659 662 665 670 690 691
1144                         701 702 703 705 730 731 732 741 743
1145 April 7, 2005
1146         - release 2.2.1
1147         - correct license headers to CPL in .cpp files
1148         - undo indentation cleanup to dynagraph .h files
1149         - fix bugs: 183 247 419 615 616 625 626 627 643
1150                 646 651 658 661 664 674
1151         - fix buffer overrun in Gvfilepath construction
1152 January 19, 2005
1153         - release 2.2
1154         - fix bugs: 86 345 517 579 580 597 600 601 604
1155         - use the original cpl1.0.txt as the license master, instead of CPL.html        - fix for bug generating in memory bitmaps that was affecting webdot
1156         - fixes for windows builds
1157         - documentation updates
1158 December 11, 2004
1159         - release 2.0
1160         - new CPL license
1161         - re indent all sources
1162 December 11, 2004
1163         - release 1.18
1164         dotneato
1165         - fix bugs: 451 536 545 547 548 559 561 565 572
1166         - increase max size  of HTML tables.
1167         - spline cluster edges in fdp
1168         - center userimages in nodes
1169         - support user images in HTML table cells
1170         - syntax extension for node:port:compass as well as node:compass
1171         - FreeBSD fixes
1172         - sync with gd-2.0.32
1173         - attempt to catch some out-of-memory conditions with very large graphs
1174         - support background and node-fill partial transparency when truecolor=true
1175                 
1176 September 14, 2004
1177         - release 1.16
1178         dotneato
1179         - fix bugs: 275 523 526 527 529 534
1180 August 30, 2004
1181         - release 1.14
1182     dotneato
1183         - the official gd now has support support for GIFs again - the
1184                 internal gd is now closely sync'ed with the official version
1185                 and will eventually be removed in favor of using a
1186                 separate installation of the official version.
1187         - gd has new support for FontConfig (thanks to Dag Lem)
1188                 NB. the fontname attribute in graphs is now a font pattern
1189                 as understood by fontconfig (e.g. fontname="Times-Italic"),
1190                 unless it contains a '/' in which case it is interpreted as
1191                 a font path as before.
1192         - gd provides support for html4 entities in decimal, hex or named, e.g "&lt;"
1193         - "dot -v" debugging output now reports fontname -> fontpath resolutions
1194
1195         - PostScript generated by -Tps now uses "xshow" operator for strings
1196                 for better matching of bitmap and PostScript outputs.
1197
1198         - ability to use an external gd-2.0.29 version of libgd (EXPERIMENTAL)
1199
1200         - new feature: parallel edges by using a ":" separated list of edge colors
1201         - new feature: rankdir=BT and rankdir=RL  (thanks to Dag Lem)
1202
1203         - new layout engine: fdp - force directed placement (EXPERIMENTAL)
1204                 a neato-like undirected layout engine that produces
1205                 clustered symmetric layouts.
1206                 Supports edges between clusters and nodes.
1207
1208         - updated neato engine: now using stress majorization as the default,
1209                 which avoids the potential for cycling
1210         - model=subset in neato provides a third distance function, where
1211                 two nodes sharing many nodes will be place farther apart
1212         - shape=none now equivalent to shape=plaintext
1213         - fix label justification with \l and \r
1214         - first cut at <FONT> support added to html labels
1215         - various color transparency fixes
1216         - various fixes for UTF8 and Latin[12] character encodings.
1217         - various cluster fixes.
1218         - improved hyperlink support in -Tsvg
1219         - support tooltips on clusters in client-side imagemaps
1220
1221     gvpr
1222         - add support for scanf and friends
1223
1224     general
1225         - greater use of shared libraries.
1226         - pkg-config files provided for shared libraries (EXPERIMENTAL)
1227         - "./configure --disable-shared --enable-static" works if needed
1228         - C++ wrappers on all header files (thanks to Victor Wodecki)
1229         - various configuration and portablity fixes
1230         - provide pdf version of man pages
1231         - Windows package provides graphviz libraries and header files
1232         - Closed bugs: 195 198 234 321 330 399 401 406 410 411
1233                 412 413 415 416 417 423 424 427 430 431 433 434 435
1234                 438 441 442 444 445 449 450 452 454 457 458 462 463
1235                 464 467 468 469 471 475 480 482 485 495 496 498 499
1236                 500 501 504 508 511 512 514
1237
1238 March 5, 2004
1239     - added glyphwidths.ps support utility
1240
1241 March 1, 2004
1242     - release 1.12
1243     - general
1244         - rename bcc -> bcomps to avoid name conflict with "Bruce's C Compiler"
1245                 on Redhat distributions.
1246         - all build without X11 (fix problem in lefty tree)
1247         - remove from distribution:
1248                 dag, fdp, geo, grid, incr, shape, tcldgr, tcldgl
1249     - dotneato
1250         - fix "brown-bag" problem resulting in PNG and JPEG errors on RH8 and RH9.
1251 February 23, 2004
1252     - release 1.11
1253     - general
1254         - fix windows builds
1255         - add tool "bcc" to distribution
1256     - dotneato
1257         - add -Gviewport="X,Y,Z,x,y"  where XY are the dimensions of a viewport
1258           in device coordinates (pixels), Z is a zooming factor, x,y is the
1259           location of the center of the viewport in graph coordinates.
1260           Supported in bitmap and imagemap outputs only.
1261         - fix memory leak in gd/gdft.c
1262         - clean up calculation of whitespace around labels
1263     - dotty, lefty
1264         - fix for bug #400      
1265 December 23, 2003
1266         - added dijkstra (single source distance) filter
1267 September 10, 2003
1268     - general
1269         - removed CVS directories from .tar.gz distributions
1270         - add "config" directory to contain some of the autoconf clutter
1271         - only remove flex products with "make maintainer-clean" to
1272           avoid trying to regenerate them after "make distclean"
1273           basically this is to avoid the broken flex on Debian.
1274         - suppress complaints from ./configure about config.rpath
1275         - doc/build.html updated with notes about Windows builds
1276         - build fixes for Forte 6sp2 compiler on Sun -xarch=v9a (64bit)
1277         - build fixes for OpenBSD
1278         - improved configure testing for Tcl/Tk
1279         - various bug fixes, internal restructuring, etc
1280     - dotneato
1281         - fix problem with extra escape chars in .fig output
1282         - support for "setlinewidth" in -Tfig
1283         - improved splines in -Tfig
1284         - add manpage for dotneato-config
1285         - neato: add defaultdist graph attribute to set distance
1286           between components
1287         - first cut at html table formatter add. not ready for use yet
1288           as the syntax is going to change some more.
1289     - tools
1290         - renamed "colorize" to "gvcolor" to avoid conflict on Debian
1291         - renamed "gpr" to "gvpr" to avoid conflict on Debian
1292         - add fflush() to acyclic, ccomps, gvcolor, tred, dot2gxl
1293           to try to fix truncated output when used in php or perl cgi scripts
1294 July 9, 2003
1295         - rerelease 1.10 with ast_common.h fix in -devel rpms
1296 July 3, 2003
1297         - declare this version 1.10
1298         - general
1299             - "mkdir obj;cd obj;../configure;make"   now works (bug #293)
1300             - "make prefix=xxx"   now works (bug #274)
1301             - "--with-wish=xxx"   now works (bug #270)
1302             - remove generated file: ast_common.h from source distributions
1303             - make GIF support configurable
1304             - added .cvsignore throughout source tree to reduce CVS noise
1305             - FAQ updates
1306             - documentation updates for gpr
1307             - improve portability of dotneato-config, but requires libtool now
1308             - improvements to error processing for library users
1309         -gd
1310             - sync with gd-2.0.15
1311             - optimize line drawing code
1312         - dot, neato, twopi
1313             - fix bugs 240 270 274 293 298 303
1314             - support "peripheries=0" without crashing
1315             - add support for "dia" output format (-Tdia)
1316             - espf fixes (use of showpage)
1317             - svg fixes (coordinates and viewBox)
1318             - ismap/imap, fixes (quoting of label strings)
1319             - fix to "point" shape
1320             - improve (m|c|re)alloc usage
1321             - improve handling of very-small fonts in bitmap outputs.
1322             - various fixes for multiple -T -o feature
1323             - add support for splines to records and ports (neato)
1324             - various improvements to libpack
1325             - dot_init_graph and neato_init_graph external for library users
1326             - cluster improvements (neato)
1327             - fix support for truecolor
1328             - normalize splines so that they now always go from tail to head
1329             - add some simple help text for any unrecognized option
1330                 (e.g. -?  -h  --help)
1331         - tools
1332             - extend gpr language to allow access to command-line arguments
1333             - add sqrt() function to gpr
1334             - add new tool - gvpack
1335         - tcldot
1336             - use .dll extension if on windows
1337             - doted demo
1338                 - use tcl's file requestor instead of homebrew
1339                 - add zooming controlled by mousewheel
1340                 - support additional export formats
1341             
1342 January 31, 2003
1343         - declare this version 1.9
1344                 (3-level version numbering has been dropped now
1345                 that we have nightly snapshot builds with their
1346                 own extended numbering.)
1347         - general
1348             - config.h is no longer installed.  config.h is generated by
1349                 ./configure for the current build only.  It may not be
1350                 applicable for derivative builds.
1351             - improve ICONV configure tests
1352             - lots of janitor-work to clean up warning messages from -Wall
1353             - use @OBJEXT@ in Makefile.am so that .obj is used under cygwin
1354             - fixes for Solaris builds
1355             - use libpng-config if available
1356             - reduce long build times due to touching ast_common.h too often
1357             - improve dependency tracking.  "make -j8" now works with distcc
1358             - autogen.sh fixes to work on RH7.3, RH8.0, and Solaris.
1359             - eliminate use of suffix rules which confused some makes.
1360             - DOT language allows '+' for concatenation of quoted strings
1361         - dot, neato, twopi
1362             - fix bugs 209 210 214 216 217 222 224 225 229
1363                         230 233 236 237
1364             - update gd into alignment with gd-2.0.9
1365             - change to make libagraph output compatible with libgraph input
1366             - add shapes: septagon, pentagon, a_ediamond, rect, rectangle
1367             - introduce "ND_...", "ED_...", "GD_...", node/edge/graph-data
1368                 accessor macros in partial preparation for use of
1369                 libagraph in dot.
1370             - add libdotneato.so, dotneato.h, dotneato-config
1371                 to aid use of dot libraries by user apps based
1372                 on installed graphviz-devel rpm and without access
1373                 to graphviz sources.
1374             - new xdot output format providing detailed drawing instructions
1375             - new -y command line flag, inverts y coordinates
1376             - support multple -T when -o given, as in:
1377                         cat xxx.dot | dot -Tpng -Tcmap -o xxx
1378                 which produces xxx.png and xxx.cmap from a single
1379                 layout computation.   Intended for use in CGI programs.
1380         - agraph
1381             - correct callback ordering for deletions
1382         - tools
1383             - add gxl2dot and dot2gxl for GXL language conversions
1384             - gvui now provides *map output
1385         - tcldot, tcldgr, tcldgl
1386             - improve tcl8.4 support
1387             - extend search path for tcl.h to include /usr/local/include/tcl8.4/
1388                 in support of BSD install conventions.
1389         - dynagraph
1390             - many fixes
1391             - change to not build dynagraph by default (use --with-dynagraph)
1392         - docs
1393             - dotguide updates
1394 September 27, 2002
1395                 - declare this version 1.8.10
1396         - general
1397             - various configure.in fixes and simplifications
1398             - change configure to now build dynagraph by default
1399                 "--without-dynagraph" is supported
1400             - fix graphviz.spec.in to partition packages properly
1401                 graphviz no longer depends on graphviz-tcl.
1402             -  Makefile.old cleanups
1403             - configure.old now set version number automatically from
1404               configure.in
1405         - dot, neato, twopi
1406             - Initial support for image node shapes + URL fetch.
1407             - Made number of dimensions a runtime variable in neato.
1408             - Bug fix in vrmlgen for degenerate splines.
1409             - Bug fix - ordering=in should now work
1410             - Bug fix - layers no numbered from 0 to match PS requirements
1411             - Bug fix - don't draw arrows on invisible edges
1412             - Bug fix - when pack=true and ratio is set
1413             - Bug fix - agraph/scan.l to work with latest flex beta
1414
1415 August 2, 2002
1416                 - declare this version 1.8.9
1417         - general
1418             - split rpm into:
1419                 graphviz, graphviz-tcl, graphviz-graphs, graphviz-devel
1420             - gcc3 warning cleanup
1421             - Install lincdt, libgraph, libagraph, libgd, libpathplan, libexp,
1422                 and libpack so that they can be used by other programs. 
1423                 Headers and man3 in graphviz-devel
1424         - dynagraph, graphsearch
1425             - New tools based on libagraph and written in C++
1426         - dot, neato, twopi
1427             - Add node and edge tooltips for use with -Tcmap
1428                 \N,\E,\H,\T substitutions also work in tooltips.
1429             - Add alt="label_string" to -Tcmap
1430             - Add edge-label and port mappings to -Tps and -Tps2 so
1431                 that edges can be hyperlinked in PDF documents.
1432             - Add support for \E (edge name), \H (head-node name),
1433                 \T (tail-node name) substitutions in edge labels and edge URLs
1434             - Add support for stylesheet="file.css" for use in -Tsvg
1435             - Fix -Tpic to work with recent gpic (Bruce Lilly)
1436             - Fix alignment of imagemaps to images.
1437             - Fix "transparent" color support in -Tsvg
1438             - Fix support for graph [URL="default.html"] in -Tsvg and -Tcmap.
1439             - Fix '&' escaping in URLs in -Tsvg
1440             - Fix infinite loop in dot layout algorithm
1441             - Fix text rotations again (hopefully freetype is stable now.)
1442             - Cluster layout improvements
1443             - Clean up warning messages from pathplan
1444             - Consolidation of mapping code from imapgen.c and ismapgen.c into mapgen.c
1445         - gpr
1446             - Added additional mode to extract components based sharing an
1447                 edge or a cluster
1448             - Fix test for getopt
1449         - tcl-based tools
1450             - Disable tcl-based tool building if tcl/tk not available
1451                 with stubs support.
1452         - documentation updates: FAQ, dotguide, dot.1
1453 July 5, 2002
1454             - declare 1.8.7 a "brown bag" release
1455                  and declare this version 1.8.8
1456         - remove wrong assert in gdgen.c
1457         - fix graph centering in bitmap outputs
1458         - provide enough margins
1459         - fix line widths after scaling 
1460                 (test with directed/proc3d.dot)
1461         - fix text rotations (requires libfreetype.so.6.3.1) 
1462                 (test with directed/NaN.dot)
1463 July 5, 2002
1464             - declare this version 1.8.7
1465         - Fix missing "]" in ihi demo.
1466 July 2, 2002
1467         - Add URL mappings for clusters: svg,svgz,ps,ismap,imap,cmap.
1468         - Fix to avoid white edges in bitmap outputs when bgcolor is set.
1469         - Improve sizing and position of strings in bitmap outputs
1470           when using builtin fonts (when font file not found).
1471         - Fix \N substitution in edge URLs in imap and cmap outputs.
1472         - Add -Tcmap for client-side imagemaps.
1473         - Generate warnings instead of access violation for EPSF file problems.
1474         - Various spline fixes in neato.
1475         - Fixes to pack.c
1476         - Add feature to ccomps to allow extraction of individual component
1477           by number or node.
1478         - Cdt make to use iffe provided in the tools directory.
1479         - Various Makefile.old fixes.
1480         - Use HAVE_LIBZ to remove GD2 format if libz not available.
1481           Now bare-bones programs can be built without any add-on libraries.
1482         - Modified dot grammar to allow simple name attributes in attribute
1483           lists.  Thus, [splines] is equivalent to [splines=true]. Adopted
1484           the same convention for command line attributes -G, -E and -N.
1485           In addition, such command line attributes now override any
1486           competing initial attribute statements.
1487         - HP-UX 11.11 build fixes for struct dioattr.
1488         - Fix for bug #158 "Nodes disappear with ports"
1489         - Various Windows-specific #ifdefs
1490         - Fix edge coordinates in -Tplain.
1491         
1492 May 24, 2002
1493             - declare this version 1.8.6
1494 May 19, 2002
1495         - Fixed segfault from use of bgcolor in clusters.
1496 May 15, 2002
1497         - Changed install location of architecture-independent demo
1498           scripts and graphs to <prefix>/share/graphviz/ to conform to FHS.
1499         - Avoid multiple linking of libfreetype (and others) which caused
1500           problems on SunOS-2.8.
1501 May 6, 2002
1502         - Factored out some duplicated arrow code from dotgen/splines.c
1503           and neatorgen/splines.c into common/arrows.c.
1504         - Added new arrow types:  halfopen, box, obox, crow.
1505         - Touched up the arrow designs so that they look better at default size.
1506         - Modified/extended graphs/directed/newarrows.dot to show new arrows.
1507 May 3, 2002
1508         - Added some UML arrow types from Diomidis Spinellis <dds@aueb.gr>
1509           empty, invempty, open, diamond, odiamond.
1510 May 2, 2002
1511         - Added new pack option to neato. This causes each connected component
1512           to be laid out separately, and then the resulting graphs are packed
1513           together in a single layout.
1514         - Amended neato to accept new tee arrowhead.
1515 April 19, 2002
1516         - Coords of rectangles changed to left/top right/bottom in -Timap.
1517         - Generate COPYING from LICENSE.html during ./authogen.sh,
1518           remove COPYING from CVS.
1519 April 16, 2002
1520         - Minor license file patches.
1521         - Corrected one of those reversed flat edge bugs again.
1522
1523 April 11, 2002
1524              - declared this version 1.8.5
1525         - various portability fixes 
1526         - various SVG fixes and optimizations
1527 April 5, 2002:
1528              - declared this version 1.8.4
1529         - SVG renderer:
1530                 - make graph|node|edge ids unique, particularly for multiedges
1531                 - put graph|node|edge names in <title>...</title>
1532                 - use some property inheritance to reduce size of output
1533                 - fix compile errors when no zlib
1534                 - updated DTD reference
1535         - GD renderer:
1536                 - Minimal Type1 font support:
1537                         - look in /usr/lib/X11/fonts/Type1/
1538                         - look for .pfa or .pfb font files based on fontname
1539                 - run gdgen.c through dos2unix - problems with gcc on SuSE
1540         - fix Mac-OSX build problems:
1541                 - improve strto[u]ll configure tests
1542                 - add -fno-common for extern problem
1543                 - function renamed to avoid conflicts (vis -> visibility)
1544                 - add configure tests for search.h, malloc.h, getopt.h, errno.h
1545                 - improve configure tests for FILE struct features
1546                 - add configure tests for lrand48
1547         - add new demo graphs:
1548                 - graphs/undirected/Heawood.dot
1549                 - graphs/undirected/Petersen.dot
1550         - neato:
1551                 - fix for -x implementation in neato (Bug 77)
1552                 - fix spline problem (Bug 87)
1553                 - fix some divide-by-zero problems
1554         - twopi:
1555                 - fix Bug 117
1556                 - update man pages for unconnected graphs capability
1557         - added arrowhead or arrowtail = tee
1558 March 22, 2002:
1559         - add dotneato/pack code to twopi
1560         - add contrib/prune to gnu build and install
1561 March 20, 2002:
1562             - declared this version 1.8.3
1563         - fixed parse error for lines starting with '#' in .dot files
1564         - fixed a recently introduced bug that caused failure of:
1565                 digraph G {  {rank = same;  A -> B; B -> A } }
1566         - updated DOCTYPE header in SVG outputs
1567         - added dotneato/common/xbuf.[ch] for dynamic string handling
1568           to avoid sprintf buffer overruns.
1569         - twopigen - handle special case of graphs with < 3 nodes.
1570         - neato - handle point shapes
1571         - added fontcolor support to svg
1572 March 14, 2002:
1573         - Fixed bug 109
1574         - Removed duplicate definitions for str[n]casecmp
1575         - Added missing declarations needed for Windows
1576         - Cleaned up warning messages from set but unused variables
1577         - Removed use of DOS preprocessor variable; uniformly replaced by MSWIN32
1578 March 8, 2002:
1579         - declared this version 1.8.2
1580     - Mainly to fix a missed static buffer problem which trips up the
1581       Windows community
1582 March 1, 2002:
1583         - declared this version 1.8.1
1584     - Bug fixes reported from user testing of 1.8.0, especially problem
1585       with SVG output
1586 February 25, 2002:
1587         - updated dotguide.tex and moved to LaTeX article format
1588         - added webdot.cgi perl script, enhanced to accept the same
1589             argument format as John's tcl version (so it can also
1590             serve neato and twopi graph layouts).
1591
1592 February 7, 2002: graphviz-1.8.0 pre
1593         - declared this version 1.8.0
1594
1595 February 5, 2002: graphviz-1.7.17-0
1596     - various 64bit portability fixes
1597     - various bug fixes
1598 January 2, 2002: graphviz-1.7.16-0
1599     - dotneato 
1600         - fix bugs in -Tps output due to pen/fill color changes
1601         - various -Tfig.c fixes
1602         - various portability fixes
1603 December 28, 2001: graphviz-1.7.15-0
1604     -dotneato
1605         - introduce damping factor into neato's solver
1606         - clean up pencolor v fillcolor code so that filled polygons are drawn
1607                 just once if the renderer is capable (e.g. svg, fig)
1608         - complete -Tfig support (xfig format)
1609 December 11, 2001: graphviz-1.7.14-0
1610     -dotneato
1611         - add -Tsvgz (compressed SVG) support
1612 December 11, 2001: graphviz-1.7.13-0
1613     - dotneato
1614         - fontwidth fixes
1615         - remove some potential buffer overruns
1616         - escape '&' in SVG, unless it is already part of a UTF entity sequence
1617         - recognize Times_New_Roman and Courier_New as default font names.
1618         - improve -liconv support in configure
1619         - clean up some compiler warnings
1620     - dynagraph
1621         - change "round" to "ROUND" to avoid conflict with system headers on linux
1622 December 03, 2001: graphviz-1.7.12-0
1623     - dotneato
1624         - add -Tplain-ext which includes port identifiers edge records
1625         - escape '>' with '&gt;' in edge ids and edge URLs in -Tsvg.
1626         - spline fixes
1627         - mincross fixes
1628         - improved text alignment in nodes - particularly in bitmap outputs.
1629         - fixed text scaling problems for 8-bit characters (e.g. umlauts)
1630         - add graph lexer and postscript support for extended characters
1631     - lefty
1632         - fix for X11 displays
1633     - pathplan
1634         - added workaround for gcc-0.96 bug when "-O2 -mcpu=686 -ffast-math"
1635 October 22, 2001: graphviz-1.7.11-0
1636     - dotneato
1637         - svg - fix landscape "y" direction
1638               - fix text rotation (works in batik, not yet in sodipodi or amaya)
1639               - fix linewidth
1640               - fix xmnls:xlink reference
1641     - doc
1642         - Dot.ref - updated 
1643     - graphs/directed
1644         - newarrows.dot expanded 
1645         - honda-tokoro.dot added
1646 October 21, 2001: graphviz-1.7.10-0
1647     - lefty & dotty
1648         - realign code with EK's master tree.
1649           includes fix for dirty trails when dragging nodes in dotty.
1650     - dotneato
1651         - svg - kludge escape of "<" & ">" characters in labels.
1652     - general
1653         - generate doxygen documentation on http://www.graphviz.org/
1654 August 20, 2001: graphviz-1.7.9-0
1655     - general
1656         - first release from relocated cvs server
1657     - dotneato
1658         - fix for abort from spline code
1659         - fix for crash from gd tiling code
1660 August 15, 2001: graphviz-1.7.8-0
1661     - general
1662         - Update gd to gd-2.0.1 with extensions
1663     - dotneato
1664         - more spline fixes
1665         - add suport for "#rgb" color specification
1666         - add twopi layout engine (circular layouts)
1667 July 13, 2001: graphviz-1.7.7-0
1668     - Synchronization release prior to relocating CVS server.
1669     - general
1670         - some Makefile fixes for OpenBSD
1671         - some FAQ updates
1672     - dotneato
1673         - self-edge fixes
1674         - spline fixes
1675     - libgraph
1676         - parser fixes
1677 July 1, 2001: graphviz-1.7.6-3
1678     - general
1679         - portability fixes (including 14 charater file names !)
1680         - memory leak fixes
1681         - "make test" targets in graphs/directed, graphs/undirected
1682     - configure
1683         - add support for building without X11, Tk, Tcl
1684         - add hooks for dmalloc and ElectricFence debugging
1685     - dotneato
1686         - spline fixes
1687         - cluster fixes
1688         - fix label centering
1689         - fix support for graph margins in bitmapped outputs
1690         - correction to PostScript preamble
1691         - SVG generator improvement - now works with Amaya and SodiPodi
1692     - tcldot 
1693         - now uses Tcl Channels properly for input
1694         - fixes for linewidth support
1695         - command extensions 
1696             - listattributes now accepts list
1697             - queryattributes now accepts list
1698             - setattributes now accepts list
1699             - queryattributevalues - new command
1700                 - generates list of pairs compatible with setattributes
1701     - dotty
1702         - passthrough keyboard events
1703     - doted
1704         - fix resizing problems
1705         - add PNG and SVG output formats
1706  
1707 April 27, 2001: graphviz-1.7.6
1708
1709     NEW FEATURES
1710
1711     Added a collection of graph processing tools:
1712
1713     acyclic : a filter that takes a directed graph as input
1714     and outputs a copy of the graph with sufficient edges
1715     reversed to make the graph acyclic.
1716
1717     ccomps : decomposes graphs into their connected components,
1718     printing the components to standard output.
1719
1720     colorize : is a filter that sets node colors from initial
1721     seed values. Colors flow along edges from tail to head.
1722
1723     gc : a graph analogue to wc in that it prints to standard
1724     output the number of nodes, edges, connected components or
1725     clusters contained in the input files.
1726
1727     gpr : a graph stream editor inspired by awk. It copies
1728     input graphs to its output, possibly transforming their
1729     structure and attributes, creating new graphs, or
1730     printing arbitrary information.
1731
1732     nop : reads a stream of graphs and prints each in
1733     pretty-printed (canonical) format on stdout.
1734
1735     sccmap : decomposes digraphs into strongly connected components
1736     and an auxiliary map of the relationship between components.
1737
1738     tred : computes the transitive reduction of directed graphs,
1739     and prints the resulting graphs to standard output. This
1740     removes edges implied by transitivity.
1741
1742     unflatten : is a preprocessor to dot that is used to improve
1743     the aspect ratio of graphs having many leaves or disconnected
1744     nodes. The usual layout for such a graph is generally very
1745     wide or tall. unflatten inserts invisible edges or adjusts
1746     the minlen on edges to improve layout compaction.
1747
1748
1749     FIXES
1750
1751     Add FAQ
1752
1753     Change PNG default background color from transparent to white
1754     because of the difficulty some viewers have with transparency.
1755
1756     Add support for [color=transparent]
1757
1758     Fix broken support for specific capitalized fontnames
1759     (Times Helvetica Arial Courier) 
1760
1761     Fix broken support for DOTFONTPATH
1762
1763     Some bitmap font scaling fixes - we're still not happy with
1764     bitmap font scaling as some labels still exceed the area
1765     allocated by the layout engines.
1766
1767     Some -Timap fixes for mouse sensitive graphs on web pages
1768
1769     Some cluster layout fixes
1770
1771     Fix for [rankdir=LR] problems when using neato layout engine
1772
1773     Some neato layout fixes
1774
1775     Updates to unix.dot
1776
1777     Various OS and distro fixes
1778
1779
1780 December 23, 2000: graphviz-1.7.5
1781
1782    - update to gd-1.8.4 and freetype2 
1783    - add support for font paths
1784
1785
1786 December 15, 2000: graphviz-1.7.4
1787     -various cluster fixes
1788     -separate support for node fillcolor from pencolor (see dot.1)
1789     -add support for dotted and dashed lines to bitmap renderers (PNG, GIF etc)
1790     -add support for varying linewidth to bitmap renderers
1791     -remove libtcldot dependence on lingdtclft (already statically included)
1792     -various fixes to build processes, GNU and non-GNU
1793
1794
1795 graphviz-1.7.3 .....
1796
1797 May 3, 2000: removed webdot into its own CVS module and rpm package
1798
1799 April 16, 2000: Use check for "gdImagePng" to make sure that we have
1800    recent version of libgd.  <ellson@graphviz.org>
1801
1802 April 14, 2000: Add Tcldgl and dge demo <ellson@graphviz.org>
1803
1804 April 14, 2000: Add dynagraph libraries <north@research.att.com>
1805
1806 April 14, 2000: Flatten directory hierarchy of sources <ellson@graphviz.org>
1807
1808 April 14, 2000: Fix X11 library detection for lefty:
1809         src/configure.in, src/lefty/Makefile.in
1810    <ellson@graphviz.org>
1811
1812 April 14, 2000: Fix pic support:
1813         src/dotneato/picgen.c,
1814         src/dotneato/emit.c,
1815         webdot/tcl/webdot.tcl
1816    <Bruce Lilly>
1817
1818 April 7, 2000: Upgrade webdot installation process:
1819         webdot/Makefile, webdot/README
1820     <ellson@graphviz.org>
1821
1822 March 13, 2000: Support for virtual hosts in webdot/webdot.tcl, add
1823    "puts $skt "Host: $server"     Michael Tillberg <mt@proteome.com>
1824
1825 March 13, 2000: Fix to src/graph/parser.y line 149
1826    "if ((e->head == t->node) && !(Agraph_type & AGDIGRAPH)) {"
1827    Stephen North  <north@research.att.com>
1828
1829 March 13, 2000: Use AM_PROG_LIBTOOL instead of AC_PROG_LIBTOOL
1830    in configure.in.  John Ellson <ellson@graphviz.org>
1831 ```
1832
1833 [Unreleased (6.0.2)]: https://gitlab.com/graphviz/graphviz/compare/6.0.1...main
1834 [6.0.1]: https://gitlab.com/graphviz/graphviz/compare/5.0.1...6.0.1
1835 [5.0.1]: https://gitlab.com/graphviz/graphviz/compare/5.0.0...5.0.1
1836 [5.0.0]: https://gitlab.com/graphviz/graphviz/compare/4.0.0...5.0.0
1837 [4.0.0]: https://gitlab.com/graphviz/graphviz/compare/3.0.0...4.0.0
1838 [3.0.0]: https://gitlab.com/graphviz/graphviz/compare/2.50.0...3.0.0
1839 [2.50.0]: https://gitlab.com/graphviz/graphviz/compare/2.49.3...2.50.0
1840 [2.49.3]: https://gitlab.com/graphviz/graphviz/compare/2.49.2...2.49.3
1841 [2.49.2]: https://gitlab.com/graphviz/graphviz/compare/2.49.1...2.49.2
1842 [2.49.1]: https://gitlab.com/graphviz/graphviz/compare/2.49.0...2.49.1
1843 [2.49.0]: https://gitlab.com/graphviz/graphviz/compare/2.48.0...2.49.0
1844 [2.48.0]: https://gitlab.com/graphviz/graphviz/compare/2.47.3...2.48.0
1845 [2.47.3]: https://gitlab.com/graphviz/graphviz/compare/2.47.2...2.47.3
1846 [2.47.2]: https://gitlab.com/graphviz/graphviz/compare/2.47.1...2.47.2
1847 [2.47.1]: https://gitlab.com/graphviz/graphviz/compare/2.47.0...2.47.1
1848 [2.47.0]: https://gitlab.com/graphviz/graphviz/compare/2.46.1...2.47.0
1849 [2.46.1]: https://gitlab.com/graphviz/graphviz/compare/2.46.0...2.46.1
1850 [2.46.0]: https://gitlab.com/graphviz/graphviz/compare/2.44.1...2.46.0
1851 [2.44.1]: https://gitlab.com/graphviz/graphviz/compare/2.44.0...2.44.1
1852 [2.44.0]: https://gitlab.com/graphviz/graphviz/compare/2.42.4...2.44.0
1853 [2.42.4]: https://gitlab.com/graphviz/graphviz/compare/2.42.3...2.42.4
1854 [2.42.3]: https://gitlab.com/graphviz/graphviz/compare/2.42.2...2.42.3