Traditionally we have bundled the dot binary from the Graphviz
distribution in Taverna downloads for Windows and OS X - while Linux users normally install graphviz through their package management system.
Linux
Linux users typically only need to do apt-get install graphviz or equivalent, which will put dot in the PATH. Alternatively a binary or source distribution of Graphviz
can be downloaded and installed - after which the user will probably have to configure Taverna's dot location.
Mac OS X
As we bundle Taverna as an .app it's relatively easy to include the Graphviz binaries inside Contents/MacOS.
Up to and including Taverna 2.2 the Graphviz binary in the OS X application has been a very outdated (1.13 from 2004) PowerPC compiled version of dot. Unfortunately this means that Snow Leopard users (and later) are required to install the Rosetta PowerPC emulation.
For Taverna 2.3 a Universal Binary of Graphviz 2.28.0 should be included instead. Unfortunately this does not exists as an official download from Graphviz anymore.
Procedure:
- Upgrade JavaApplicationStub from SnowLeopard
Unfortunately the pkg downloads are OS specific (Leopard/Snow Leopard) and install various libraries into /usr/local/lib *and /opt/local/lib.
Suggested fix:
Download Graphviz source code and compile statically.
Windows
From Taverna 2.3.0 we've upgraded Graphviz for Windows
from version 2.2.1 to Graphviz 2.28.0. Unfortunately Graphviz for Windows is no longer distributed as a semi-static binary, only as an MSI file.
As we (probably) don't want to force users to install the MSI file, here's the procedure to extract files for bundling in workbench-distro/src/main/resources/bin/win32i386:
- Extracted the bin/ folder of http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.28.0.msi
- by using cmd as administrator
- msiexec /a graphviz-2.28.0.msi /qb TARGETDIR=C:\blah
- then I deleted:
- *.exe (except dot.exe),
- gvplugin_gd.dll
- gvplugin_gdiplus.dll
- gvplugin_neato_layout.dll
- libgio-2.0-0.dll
- libgtk-win32-2.0-0.dll
- QtCore4.dll
- QtGui4.dll
After that I ran dot.exe -c in that folder to update the plugin list in "config6" (Dot will discover the remaining gvplugin*.dll)
I'm sure more files could be stripped out - but doing so requires a series of running dot -c to make sure there are no errors, and then testing the binary in Taverna. In particular PNG and PS support easily stopped working if I stripped too much.
Testing
In an installation of Taverna, configuring the Dot location to the src/main/resources/bin/win32i386 folder,
To be sure Taverna is testing 'your' dot.exe and not a dot from PATH, try temporarily removing an important DLL such as graph.dll.
Open a fairly complex workflow (with nested workflows and control links).
Flip back and forth the various diagram settings; vertical/horisontal, expanded/collapsed, hidden/shown ports
Try zooming, panning and scrolling.
Try interacting with the diagram with right-click and dragging to make sure selection work fine:
- workflow inputs
- workflow outputs
- processors (collapsed)
- processors (expanded)
- processor ports (expanded)
- data links
- control links
- nested workflows
- empty workspace
Taverna should typically recognize the object in the right click menu. You should also try the opposite, select these items in the Workflow Explorer and check that the right selection is framed in diagram.
The run-dialogue when the workflow takes input confirms that the tiny-version of the Diagram works.
Run a workflow to ensure that workflow progress works properly, and that you can select output data/intermediate for:
- Workflow output ports
- Processor ports
- Processors
Try saving the diagram in the most complex view, save in each of the formats (DOT, PNG, SVG, PS, etc) and verify the files are rendered correctly.