Syringe.Net.Nz
Irregular Injection of Opinion
RSS 2.0|Atom 1.0|CDF

 Monday, February 18, 2008
How Feasible Is a Non-GPL ODF Implementation
We had reason to delve into the ODF spec recently. Speficially we were looking at the Blinking Text feature in ODF (no comparable feature in OOXML so well discussed in our OOXML vs ODF shit fight here in New Zealand).
The ODF spec certainly provides details that this feature exists, it doesn't however tell us what it actually does. Sure it makes text blink, but there isn't a whole lot more detail beyond that. We specifically wanted to know how long to blink for. In the end we used a stop watch to time it... we think it's 2.5 seconds on and 1 second off.... at least in OpenOffice it is. But without looking at the OpenOffice source code we can't be sure. And of course, strictly, reverse engineering OpenOffice doesn't make one standards complaint.

But it got me thinking about how easy (or hard) it would actually be to build a good, interoperable, implementation of ODF. If I had to resort to my stopwatch for blinking text what else might I have to reverse engineer? Brian Jones provides a start to the list of application defined bits here. Now I'm guessing that OpenOffice interoperability is sort of the thing to measure ones self against in the ODF space (i.e. the presumption being that just implementing the ODF spec without any of the application specific extensions is not sufficient).

So reverse engineering by observation of behaviour isn't too risky from a legal view point. I can watch how long the text blinks on and off for pretty easily and I'm not likely to find myself encumbered by licences. But, what if there is application defined functionality that cannot be reverse engineered through observation? The obvious solution would be to dive into the source code- but, at that point we might find ourselves caught by the GPL license.

So what's one to do?

I haven't really thought about this situation in a lot of detail so consider this post a starter for discussion rather than a conclusion that you can't do a good interoperable implementation of ODF without being caught by the GPL.

What do others think?

|Monday, February 18, 2008 12:06:04 AM UTC|Comments [4]|    

Monday, February 18, 2008 3:10:32 AM UTC
What is it specifically about the GPL that prevents from diving into the source code and identifying behaviour from that?
Stu
Tuesday, February 26, 2008 9:05:57 AM UTC
Google question Stu. Got an answer Chris, or is this just GPL FUD?
Tuesday, February 26, 2008 9:56:33 AM UTC
Matthew Holloway: "is this just GPL FUD"

Last I heard Uncertainty and Doubt were required for scientific reasoning. Fear is often quite healthy too. Why is it that when anyone raises a question about anything to do with OSS, it is shot down as FUD?

Instead, why not come up with some valid reasoning and evidence rather than just trotting out the tired old "FUD" excuse for closing down any rational question or discussion that you feel threatened by.

Person: "Oh look a purdy Tiger."
Guide: "Watch out, they can bite you, and I've been watching this one for a few weeks now. I'm not sure, but the way it acts, it just might be a man-eater."
Blissfully Ignorant Person: "What exactly is it about a Tiger that could hurt me?"
OSS Person: "Got an answer, Guide, or is this just Tiger FUD?"
Guide: "Huh?"


(Full disclosure: OSS People typically make more money if people ignore the dangers of Tigers.)

Stu: "What is it specifically about the GPL"

It's about the foundation of GPL. In other words, copy right law.

You can only use the copy right work to the extent the owner licenses you to. Since GPL does not specifically allow copying of features outside of GPL, this seems like a valid point.

Chris Auld: "reverse engineering by observation of behaviour isn't too risky from a legal view point"

Don't count on it. Copy right covers UI as well, and Apple and Xerox had a few goes at enforcing it in that area. I didn't really follow it but I think they ended up losing on technicalities. I don't think my lawyer would be as confident as you.

To avoid your GPL issue, perhaps you should use an arbitrary timing that someone came up with who had no contact with OpenOffice or your observations.

Wasn't <blink> started by Netscape as a non-standard extension to a standard? Interesting to see the wonders of <blink> being continued by IBM/Sun/OASIS. I have fond memories of entire websites blinking in Netscape because someone forgot to close a tag.
Jo
Sunday, March 30, 2008 1:57:56 AM UTC
>It's about the foundation of GPL. In other words, copy right law.
>You can only use the copy right work to the extent the owner licenses you to. Since GPL does not >specifically allow copying of features outside of GPL, this seems like a valid point.

The GPL is a license for source code. It says nothing about what you can or cannot do with the ideas that you extract from that source code.

The intention of the GPL (or one of them) was to prevent a vendor from locking up an idea in a proprietary implementation. There is still nothing to prevent a vendor from implementing an idea in such a way; the benefit of the GPL is that there will still be a freely-available implementation of that idea that cannot be locked up.

The basic rules still apply: if you want to be squeaky clean about it, you do a clean-room spec. One person infers the behaviour and writes the specification from that. That person is then kept totally separate from the development team that implements the specification. Here we have an exchange of ideas, not implementations.

In other words, focus on process and technical details, not political or legal maneuvering.

Chris's original discussion above could also be couched in terms of "how easy (or hard) would it be to implement a good, interoperable implementation of OOXML?". That, I believe, would be more fraught with difficulty, working purely from the published specification.
All comments require the approval of the site owner before being displayed.
Name
E-mail
Home page

Comment (Some html is allowed: a@href@title, b, em, i, strike, strong, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview