Opened 17 months ago
Closed 17 months ago
#18535 closed enhancement (fixed)
graphviz-9.0.0
Reported by: | Bruce Dubbs | Owned by: | pierre |
---|---|---|---|
Priority: | normal | Milestone: | 12.1 |
Component: | BOOK | Version: | git |
Severity: | normal | Keywords: | |
Cc: |
Description
New major version.
Change History (11)
comment:1 by , 17 months ago
comment:2 by , 17 months ago
A new major version and it still uses gtk2! But only in graphviz/libgvplugin_gtk.so.6.0.0.
follow-up: 4 comment:3 by , 17 months ago
We might be waiting for a while on that, the last comment on the upstream ussue for it was 4 months ago: https://gitlab.com/graphviz/graphviz/-/issues/1848
It seems to be blocking other distros as well.
Their usage of GTK seems relatively simple, and I have ported things from 2 to 3 in the past. I can give that a shot someday if you want me to. For example, its already on Cairo for most operations, so that makes things a lot simpler than having to port away from gdk-pixbuf first. For context, see https://docs.gtk.org/gtk3/migrating-2to3.html
comment:4 by , 17 months ago
Replying to Douglas R. Reno:
We might be waiting for a while on that, the last comment on the upstream ussue for it was 4 months ago: https://gitlab.com/graphviz/graphviz/-/issues/1848
It seems to be blocking other distros as well.
Their usage of GTK seems relatively simple, and I have ported things from 2 to 3 in the past. I can give that a shot someday if you want me to. For example, its already on Cairo for most operations, so that makes things a lot simpler than having to port away from gdk-pixbuf first. For context, see https://docs.gtk.org/gtk3/migrating-2to3.html
Since they use Glade, converting UI files would be a bit easier as well, and most of what Graphviz has for this is generated code from Glade.
comment:5 by , 17 months ago
The only gtk reference I can find is in graphviz-9.0.0/plugin/gtk/. There are 3 non-generated .c files. All say copyright 2011. They total about 600 lines of code.
I can't find what the libgvplugin_gtk plugin is supposed to do for sure, but it looks to me like a shim libgtk-x11-2.0.so.0 and libgdk-x11-2.0.so.0.
comment:6 by , 17 months ago
That sounds right to me. The problem lies in that Graphiz needs it for JPEG, TIFF, ICO, and BMP files as well as for displaying graphs in a window. Gdk-x11 is probably going to be the big one there as that would contain the image formats if I remember correctly.
It is entirely in the GTK plugin, and wouldn't exactly be trivial but could be ported with a couple days of effort.
comment:7 by , 17 months ago
This could be an inhibitor, I haven't ported things from 2-3 but have from 3-4, so I'll take a look as well. Like Reno said, it wouldn't be trivial but it should be doable.
comment:8 by , 17 months ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
follow-up: 10 comment:9 by , 17 months ago
I don't think there is anything blocking the update, just that Gtk+2 is still used, and this is for #18531.
comment:10 by , 17 months ago
Replying to pierre:
I don't think there is anything blocking the update, just that Gtk+2 is still used, and this is for #18531.
It won't even block archiving Gtk+2 because the latter is only an optional dependency. I've not installed Gtk+2 for years but I can still use graphviz (as a vala depedency, and I also sometimes use it to draw some graphs in my presentations) fine.
## [9.0.0] - 2023-09-11
### Added
-Tkitty
and-Tkittyz
output formats are available that render to the Kitty terminal emulator’s graphvics protocol.#09c
is equivalent to#0099cc
.### Changed
adjmatrix_t
is no longer exposed in public headers.Agedgeinfo_t.minlen
) has been expanded fromUSHRT_MAX
toINT_MAX
.DTTREEMATCH
,DTTREESEARCH
,dtvnext
,dtvcount
,dtvhere
, anddtcharhash
have been removed.AGHEADPOINTER
,AGRIGHTPOINTER
,AGLEFTPOINTER
,FIRSTNREF
,NEXTNREF
,PREVNREF
,LASTNREF
,NODEOF
,FIRSTOUTREF
,LASTOUTREF
,FIRSTINREF
,NEXTEREF
, andPREVEREF
have been removed.Agnoderef_t
andAgedgeref_t
have been removed.agflatten
has been removed.Agdesc_s.flatlock
field has been removed.str
parameter fromgvPluginList
has been removed.elist_append
andalloc_elist
macros have been changed to use newer allocation functions. Users were/are not expected to call these macros.ageqedge
,agtail
,aghead
,agopp
,agmkout
, andagmkin
have been reintroduced. These were previously removed in Graphviz 3.0.0.dt
to themakef
andfreef
callbacks defined in cdt.h has been removed.gvprintf
is now tagged with__attribute__((format(printf, …)))
when compiling with Clang or GCC. This enables the compiler to spot more misuses of this function.hashf
andeventf
members ofDtdisc_t
have been removed. Correspondingly, thehshf
andevf
parameters to theDTDISC
macro have been removed. Also the_DTHSH
macro has been removed.Dtdata_t.minp
field has been removed.Dtbag
,Dthash
,Dtlist
,Dtorder
,Dtdeque
, andDtstack
have been removed.dtappend
anddtattach
macros have been removed.Dt_t*
parameter to the callback fordtwalk
has been removed.POINTS_PER_PC
macro has been removed.INITIAL_XDOT_CAPACITY
macro has been removed.type
parameter todtdisc
has been removed.h
parameter todtstrhash
has been removed.Agmemdisc_t
and fieldsAgdisc_t.mem
andAgdstate_t.mem
.agcallbacks
function andAgclos_t.callbacks_enabled
have been removed.pack_info.doSplines
is now a C99bool
. Correspondingly, thedoSplines
parameter toshiftGraphs
is now a C99bool
.### Fixed
floor(√INT_MAX)
) nodes no longer results in an integer overflow during crossing matrix allocation. Ranks of up tofloor(√SIZE_MAX)
nodes are now supported.invdot
andonormalonormal
once again display correctly. This was a regression in Graphviz 8.0.1.lvee
andrvee
edge arrow shapes are slighty incorrect for penwidths > 1.lcurve
orrcurve
arrow shaft and node.crow
andvee
[edge arrow shapes](https://graphviz.org/doc/info/arrows.html#primitive-shapes) and [record based nodes](https://graphviz.org/doc/info/shapes.html#record).gvprintf
have been corrected. On some platforms like x86-64, these problems were benign thanks to coincidences in the Application Binary Interface (ABI). On other platforms, these problems may have caused stack corruption and crashes.vt100
output format has been renamed tovt
. This fixes a problem where it was not discoverable on macOS.\"
are recognized in strings and double escaping (producing\\"
) is avoided.--prefix
path given on the command line. This previously caused cross-compilation to incorrectly pick up host headers and libraries.