I've got into a peculiar situation. I've installed two versions of Graphviz in two environments: 2.44.1 on Windows, and 2.40.1 on Debian. The graph I've generated produces identical sources on both, but its rendering fails on Debian with Syntax error on line 37 near [.
To my knowledge, I configured the Linux environment as it should, installing the package and running sudo dot -c. So I thought two things could be at fault: either the file is not right, or it's a bug that has been fixed in a newer release. I cannot verify the second hypothesis however, because the changelog is extremely terse after the latest updates. But I could test the first, at least indirectly. The Debian environment is on my "Windows Subsystem for Linux", so I was able to copy the file to my Windows file system to verify that the same exact file can be rendered with the newer version. So that points to it being possibly a version issue. Additionally, the file does not contain any stray special characters, as verified by a manual check with Notepad++.
I tried two things: 1) looking for an updated package - it didn't exist in Python's Conda or Debian backports (and that's the extent of my knowledge), and 2) installing from source. But I have very little experience in building source packages on Linux, so I failed. The png format was not recognised, which from what I've gathered is some dependency issue. Some of the libraries listed in requirements (like zlib) are not in the Debian repositories either, so I was once again at a loss.
I know this question isn't exactly a perfect fit for Stack Exchange, but I think I've extensively demonstrated what I've tried when debugging this issue, still getting nowhere. I wouldn't want to bother the maintainers just yet, so I decided to try my luck here. I'd very much appreciate an answer to either of the questions below.
- Are there any other straight-forward ways of installing newer versions of packages in general, or specifically the Graphviz package?
- Could anybody else with a Graphviz environment verify that the following source file produces either an error like I described, or a successful compilation? It was run with
dot -Kdot -Tpng -O source.
digraph {
__author__ [fillcolor="#E5E5E5", label=" __author__ \nV:22", shape=box, style=filled];
__version__ [fillcolor="#E5E5E5", label="__version__ \nV:23", shape=box, style=filled];
__license__ [fillcolor="#E5E5E5", label="__license__ \nV:24", shape=box, style=filled];
PY3 [fillcolor="#E4FFE4", label=" PY3 \nV:27", shape=box, style=filled];
GRAPH_ATTRIBUTES [fillcolor="#E4FFE4", label="GRAPH_ATTRIBUTES\nV:34", shape=box, style=filled];
EDGE_ATTRIBUTES [fillcolor="#E4FFE4", label="EDGE_ATTRIBUTES\nV:52", shape=box, style=filled];
NODE_ATTRIBUTES [fillcolor="#E4FFE4", label="NODE_ATTRIBUTES\nV:66", shape=box, style=filled];
CLUSTER_ATTRIBUTES [fillcolor="#E4FFE4", label="CLUSTER_ATTRIBUTES\nV:77", shape=box, style=filled];
DEFAULT_PROGRAMS [fillcolor="#E4FFE4", label="DEFAULT_PROGRAMS\nV:83", shape=box, style=filled];
is_windows [fillcolor="#E4FFE4", label=" is_windows \nF:93", shape=ellipse, style=filled];
is_anaconda [fillcolor="#E4FFE4", label="is_anaconda \nF:98", shape=ellipse, style=filled];
get_executable_extension [fillcolor="#FFFFFF", label="get_executable_extension\nF:104", shape=ellipse, style=filled];
call_graphviz [fillcolor="#FFFFFF", label="call_graphviz\nF:112", shape=ellipse, style=filled];
frozendict [fillcolor="#FFFFFF", label=" frozendict \nC:152", shape=parallelogram, style=filled];
dot_keywords [fillcolor="#E4FFE4", label="dot_keywords\nV:202", shape=box, style=filled];
id_re_alpha_nums [fillcolor="#E4FFE4", label="id_re_alpha_nums\nV:204", shape=box, style=filled];
id_re_alpha_nums_with_ports [fillcolor="#E4FFE4", label="id_re_alpha_nums_with_ports\nV:205", shape=box, style=filled];
id_re_num [fillcolor="#E4FFE4", label=" id_re_num \nV:207", shape=box, style=filled];
id_re_with_port [fillcolor="#E4FFE4", label="id_re_with_port\nV:208", shape=box, style=filled];
id_re_dbl_quoted [fillcolor="#E4FFE4", label="id_re_dbl_quoted\nV:209", shape=box, style=filled];
id_re_html [fillcolor="#E4FFE4", label=" id_re_html \nV:210", shape=box, style=filled];
needs_quotes [fillcolor="#FFE0E0", label="needs_quotes\nF:213", shape=ellipse, style=filled];
quote_if_necessary [fillcolor="#FFE0E0", label="quote_if_necessary\nF:249", shape=ellipse, style=filled];
graph_from_dot_data [fillcolor="#E4FFE4", label="graph_from_dot_data\nF:275", shape=ellipse, style=filled];
graph_from_dot_file [fillcolor="#BBEEFF", label="graph_from_dot_file\nF:287", shape=ellipse, style=filled];
graph_from_edges [fillcolor="#BBEEFF", label="graph_from_edges\nF:306", shape=ellipse, style=filled];
Dot [fillcolor="#FFE0E0", label=" Dot \nC:1694", shape=parallelogram, style=filled];
Edge [fillcolor="#FFA0A0", label=" Edge \nC:692", shape=parallelogram, style=filled];
graph_from_adjacency_matrix [fillcolor="#BBEEFF", label="graph_from_adjacency_matrix\nF:341", shape=ellipse, style=filled];
graph_from_incidence_matrix [fillcolor="#BBEEFF", label="graph_from_incidence_matrix\nF:378", shape=ellipse, style=filled];
Common [fillcolor="#E4FFE4", label=" Common \nC:415", shape=parallelogram, style=filled];
Error [fillcolor="#E4FFE4", label=" Error \nC:549", shape=parallelogram, style=filled];
InvocationException [fillcolor="#E5E5E5", label="InvocationException\nC:558", shape=parallelogram, style=filled];
Node [fillcolor="#FFE0E0", label=" Node \nC:568", shape=parallelogram, style=filled];
Cluster [fillcolor="#FFE0E0", label=" Cluster \nC:1639", shape=parallelogram, style=filled];
Subgraph [fillcolor="#FFFFFF", label=" Subgraph \nC:1585", shape=parallelogram, style=filled];
Graph [fillcolor="#FFE0E0", label=" Graph \nC:887", shape=parallelogram, style=filled];
get_executable_extension -> is_windows;
get_executable_extension -> is_anaconda;
call_graphviz -> get_executable_extension;
call_graphviz -> DEFAULT_PROGRAMS;
frozendict -> frozendict;
needs_quotes -> id_re_dbl_quoted;
needs_quotes -> needs_quotes;
needs_quotes -> dot_keywords;
needs_quotes -> id_re_alpha_nums_with_ports;
needs_quotes -> id_re_num;
needs_quotes -> id_re_alpha_nums;
needs_quotes -> id_re_html;
needs_quotes -> id_re_with_port;
quote_if_necessary -> needs_quotes;
graph_from_dot_file -> PY3;
graph_from_dot_file -> graph_from_dot_data;
graph_from_edges -> Dot;
graph_from_edges -> Edge;
Dot -> PY3;
Dot -> Graph;
Dot -> call_graphviz;
Edge -> quote_if_necessary;
Edge -> Cluster;
Edge -> Edge;
Edge -> PY3;
Edge -> Common;
Edge -> Subgraph;
Edge -> Node;
Edge -> frozendict;
Edge -> Error;
Edge -> EDGE_ATTRIBUTES;
graph_from_adjacency_matrix -> Dot;
graph_from_adjacency_matrix -> Edge;
graph_from_incidence_matrix -> Dot;
graph_from_incidence_matrix -> Edge;
Node -> quote_if_necessary;
Node -> Common;
Node -> NODE_ATTRIBUTES;
Cluster -> quote_if_necessary;
Cluster -> CLUSTER_ATTRIBUTES;
Cluster -> Graph;
Subgraph -> Graph;
Graph -> quote_if_necessary;
Graph -> Edge;
Graph -> Cluster;
Graph -> Common;
Graph -> Node;
Graph -> GRAPH_ATTRIBUTES;
Graph -> Error;
Graph -> Graph;
Graph -> Subgraph;
}