Forum OpenACS Development: workflow still uses graphviz and asks it to build GIF files...

Is there a way to change all or part of this?

If graphviz is now GPL, good enough... but the question would remain, can we have graphviz build PNGs instead?

Jim,

Make it a parameter. Unfortunately not all browsers support PNG.

Don't all 4.x+ browsers support PNGs? It's a liability to leave something in OpenACS that generates .gif's. Any .gif for that matter, but especially generating them.

And, if it generates .gif's or depends on software that does, then OpenACS can't be considered free software.

You don't need to use graphviz in order to use workflow, there's an HTML output alternative, though the graphical output is nicer.

There are also a bunch of static GIF files in the toolkit.

On my standard Linux box I see that Squid, Apache (mod_perl, mod_ssl), Mozilla, Grass, Latex, and Linuxconf all contain static GIF files.  And the unofficial Linux penguin found in /usr/src/linux-2.4.8/Documentation is a GIF file ...

I would humbly suggest we have bigger fish to fry than to worry about this.

Well, let's thank aD (rip) for making acs package-based... acs-workflow is the package that depends on graphviz; I would say "this makes acs-workflow less useful than if it operated in a completely-free manner, but it doesn't necessarily make the package non-free, and it certainly wouldn't affect all of openacs".

In the invocation of the shell command which invoked graphviz (in response to me saying "show me a workflow"), I saw a command line option that said "generate a gif", so it's at least a potentiality that graphviz can generate such as PNGs. That might get us somewhere :)

IBM thinks graphviz might be free (there's a letter posted by IBM on some planet that said this.)

Conventional wisdom suggests that a piece of software can be free if it depends on a not-free thing but is in all other aspects free (as def'd by GPL)...

Having said that, we can also say this would limit its usefulness in a free environment.

Should we act on this? I think -yes-, and if there's an easy way to get graphviz to generate PNGs, I think we should fix it today.

A replacement for graphviz itself is of course a harder problem, so let's separate the hard from the easy, do the easy part now, and start working on the hard part.

Don,

You said...

I would humbly suggest we have bigger fish to fry than to worry about this.

Agreed... but if there's an easy way to stop -generating- GIFs (which is definitely a bigger problem than simply -having- static GIFs), I think it's a good idea to work on that.

gifs aren't necessarily a problem. If I create my gifs with a licensed program (i.e. photoshop) then I am legal. But, if I am generating them with a non-licensed progam I am infringing. So, yes if it is easy for graphviz to gen pngs that is better, but do make it easy to change (i.e. parameter)

I do think that png would be better, but not all browser support them and another problem is (I think) no transparent background support.

As Jym pointed out, having static gifs is not a problem, and I never implied it was. I explicitely mentioned generating gif's.

Sure it's a detail, and if folks feel it's not worth bothering about, then that's okay. I feel that this "let's just leave the details for later" attitude is becoming really pervasise, and the toolkit shows it everywhere.

Regarding PNGs transparency, http://www.libpng.org/pub/png/pngfaq.html#transparency says it does have transparency.

I believe the issue is browser support of transparency of PNG files. But Roberto makes an excellent point. We do need to start paying more attention to the details.
Just in case this was missed from my earlier note ... you don't *need* graphviz to use workflow.  So if a user feels that somehow using graphviz makes OpenACS "not free" then all they need to do is to tell workflow not to use graphviz (by setting the path parameter to graphviz blank, IIRC).  You can build and examine workflows interactively without graphviz, you just get a relatively ugly HTML diagram of your workflow rather than the cute graph, that's all.

I just checked the graphviz documentation and later versions, at least, allow for the generation of PNG files and may not allow for the generation of GIFs any more.  If someone wants to play with this for 4.7, feel free - I'm hoping Lars will have time to redo a bunch of workflow anyway in 4.7.

But ... just to make sure everyone understands ... acs-workflow does not depend on graphviz, its use is entirely optional.