decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Microsoft Grabs Some Code for its ODF Plugin... From the ODF Fellowship
Monday, July 10 2006 @ 06:32 AM EDT

It seems that when Microsoft was looking to build its new ODF plugin, it took a short cut. It seems to have grabbed some code from the OpenDocument Fellowship's program that converts ODF to HTML, written by J. David Eisenberg. His code is released under a dual license, the LGPL and the Apache 2.0 license. Microsoft has put it into its ODF plugin, which is licensed under the BSD license.

Is that allowed? It's nice Microsoft endorses the value of the ODF Fellowship code, since they are forever telling us their own code is better. But we're trying to parse out which license Microsoft thinks it is complying with. Not the LGPL, I trust. My question, and I'm no Apache guru, is what about Apache sections 4.1, 4.2, 4.3, and maybe 4.4, plus the required form of notice in the Appendix? It's certainly possible I'm missing something. But it seems it may be Microsoft that neglected to notice some requirements.

I know. It's so funny. Naturally, David will be filing a major lawsuit asking for billions and gazillions in damages. He'll probably wait about 5 or 6 years though, until lots of folks are using the Microsoft plugin, and in the interim, he'll donate some code to the Microsoft project and distribute it himself, and *then* he'll announce he's shocked, shocked to discover his code inside the Microsoft plugin, call a press conference and let the media know he will be suing Microsoft. They have deep pockets, after all, and he has to consider his shareholders. A man can't just sit around the camp fire singing Kumbaya when there's money to be made.

And of course he'll also have to sue corporate end users and petition the courts to shut down their businesses under the DMCA, and he'll issue sanctimonious press releases about his stolen Most Holy IP and how Microsoft is made up of a bunch of lunatic fringe criminals who don't respect other people's intellectual property. Maybe he can grab some headlines by sending a letter to Congress. Those Congress critters need to know how dangerous and damaging Microsoft is to the economy, don't you think? And then, presto! David's stock will take off to teh moon!

NOT. He isn't planning on suing anybody, and he's glad to have people use the code, if they find it useful. After all, we're all trying to find a way to interoperate with Microsoft so the world will have an easier time of it. There may need to be some adjustments made to get fully in harmony with license terms, though. For one thing, they didn't spell his name right. It wasn't David's intention to release his code under the BSD license. He gave me this statement:

"I'm not the world's biggest fan of BSD, as it allows proprietary commercial use of freely-given software. Nonetheless, since this code is fairly obvious (anyone solving the problem independently would have come up with almost identical code), and they want it, I guess I could work it out to let them use it under BSD. Please fix the typo on my surname; I'm certain there's no H in it (obligatory Heisenberg joke)."

The Apache license terms could be followed more exactly, or, if necessary, David could grant special permission to use the code under the BSD license, which would probably qualify him for an award for having the most licenses on any 15-line piece of code.

If you'd like to compare what Microsoft did with the two licenses that this code is released under, here are the Apache 2.0 license terms. And here's the LGPL.

You can download Microsoft's plugin code here. The Fellowship plugin written by J. David Eisenberg is here. Both are zip files. Open them both up, and compare Microsoft's OdfConverter/source/OdfConverterLib/resources/document.xsl line 430 onward with David's odt_to_xhtml/odt_to_xhtml.xsl beginning with line 453 and here's what you'll see -- at a minimum, some sweet inspiration.

Note I had to change the lines to put the code inside this kind of brackets -- [] --instead of the usual because otherwise Geeklog kept stripping out all the code.

********************************

Microsoft David
[!-- Extra spaces management
from J. David Heisenberg --]

xml:space="preserve"]
[/xsl:variable]

[xsl:template name="extra-spaces"]
[xsl:param name="spaces"/]
[xsl:choose]
[xsl:when test="$spaces"]
[xsl:call-template
name="insert-spaces"]
[xsl:with-param name="n"
select="$spaces"/]
[/xsl:call-template]
[/xsl:when]
[xsl:otherwise]
[xsl:text] [/xsl:text]
[/xsl:otherwise]
[/xsl:choose]
[/xsl:template]

[xsl:template name="insert-spaces"]
[xsl:param name="n"/]
[xsl:choose]
[xsl:when
test="$n [= string-length($spaces)"]
[xsl:value-of
select="substring($spaces, 1, $n)"

xml:space="preserve"/]
[/xsl:when]

[xsl:otherwise]
[xsl:value-of select="$spaces"/]
[xsl:call-template
name="insert-spaces"]
[xsl:with-param name="n"]
[xsl:value-of
select="$n - string-length($spaces)"/]
[/xsl:with-param]
[/xsl:call-template]
[/xsl:otherwise]
[/xsl:choose]
[/xsl:template]

[xsl:variable name="spaces"
xml:space="preserve"]
[/xsl:variable]

[xsl:template match="text:s"]

[xsl:choose]
[xsl:when test="@text:c"]
[xsl:call-template
name="insert-spaces"]
[xsl:with-param name="n"
select="@text:c"/]
[/xsl:call-template]
[/xsl:when]
[xsl:otherwise]
[xsl:text] [/xsl:text]
[/xsl:otherwise]
[/xsl:choose]
[/xsl:template]

[xsl:template name="insert-spaces"]
[xsl:param name="n"/]
[xsl:choose]
[xsl:when
test="$n [= 30"]
[xsl:value-of
select="substring($spaces, 1, $n)"/]

[/xsl:when]

[xsl:otherwise]
[xsl:value-of select="$spaces"/]
[xsl:call-template
name="insert-spaces"]
[xsl:with-param name="n"]
[xsl:value-of
select="$n - 30"/]
[/xsl:with-param]
[/xsl:call-template]
[/xsl:otherwise]
[/xsl:choose]
[/xsl:template]


  


Microsoft Grabs Some Code for its ODF Plugin... From the ODF Fellowship | 248 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Off topic here please
Authored by: fudisbad on Monday, July 10 2006 @ 06:48 AM EDT
Don't forget those clickies.

---
"SCO’s failure to provide code for the methods and concepts it claims were
misappropriated is [...] a violation of this court’s orders." - Judge Brooke
Wells

[ Reply to This | # ]

Corrections here
Authored by: MathFox on Monday, July 10 2006 @ 06:49 AM EDT
So that Pamela and David can pick up the loose bits in a single swoop.

---
If an axiomatic system can be proven to be consistent and complete from within
itself, then it is inconsistent.

[ Reply to This | # ]

Apologies thread for the ODF Converter project
Authored by: MathFox on Monday, July 10 2006 @ 06:57 AM EDT
This thread is for coders, managers and others involved with the ODF Converter
project to make public apologies to David Eisenberg (if they wish to).

---
If an axiomatic system can be proven to be consistent and complete from within
itself, then it is inconsistent.

[ Reply to This | # ]

Gee. Look how easy it is...
Authored by: Anonymous on Monday, July 10 2006 @ 07:13 AM EDT
... to get code infringing someones copyright into an open source project
without anybody noticing.

[ Reply to This | # ]

Apache Licence v 2.0
Authored by: Anonymous on Monday, July 10 2006 @ 07:17 AM EDT
link

[ Reply to This | # ]

Microsoft Grabs Some Code for its ODF Plugin... From the ODF Fellowship
Authored by: Anonymous on Monday, July 10 2006 @ 07:23 AM EDT
That's not M$ code...

if it was, it'd be 500 lines long
with 75 GOTO statements in it...

Just kidding... :)

[ Reply to This | # ]

If You Are Going To Post Code...
Authored by: Anonymous on Monday, July 10 2006 @ 08:16 AM EDT
<p>Please don't remove the indentation. It really does serve a
purpose.</p>

<p>Having made that request I would like to point out that since the code
is different (and extremely generic) and the atribution name is different
perhaps there should be more hesitation (or contrition) before asserting that J.
David <b>Eisenburg</b> is the definative source of the Microsoft
code snippet. Before running off on these sort of witch hunts I believe
everyone would be better served if a stronger case was first discovered. If
this is the extent of Microsoft's infringement then why even mention it. If
not, then let's talk about the more substantive cases and ignore these
marginally relevant "examples". This story seems very similar to the
sort of half cocked crusades that someone else we all know attempts... Knowing
your <i>enemy</i> is all good and fine but when you start to emulate
them then perhaps there are other issues worth exploring?</p>

[ Reply to This | # ]

Microsoft Grabs Some Code for its ODF Plugin... From the ODF Fellowship
Authored by: rakaz on Monday, July 10 2006 @ 08:20 AM EDT
Before everybody starts bashing Microsoft, perhaps we should investigate this
issue a bit further. Is Microsoft really infringing the work of Eisenberg, or is
something else happening?

First of all, the goal of both ‘programs’ are very similar. Both are attempting
to transform an OpenDocument document and both are written in a very restrictive
language: XSL. Are the similarities between the two pieces of code just a
logical extension of the format that both try to transform and the fact that
they are written in the same language?

[ Reply to This | # ]

Microsoft Grabs Some Code for its ODF Plugin... From the ODF Fellowship
Authored by: Anonymous on Monday, July 10 2006 @ 08:20 AM EDT
I don't see the big deal. The Apache 2.0 license is a BSD-like license. Did
Microsoft forget to dot all the is and cross all the ts? Possibly. But there's
no reason why they shouldn't use the code; the author allowed them to.

If they did miss out on some of the yawn-worthy requirements of the Apache 2.0
license, they can easily correct this with a footnote buried in a README file
somewhere that nobody will ever read.

More of a puzzle is why somebody would use the LGPL and Apache 2.0 license
together, instead of just using the MIT license and saving on several pages of
legalese.

[ Reply to This | # ]

Microsoft Grabs Some Code for its ODF Plugin... From the ODF Fellowship
Authored by: Anonymous on Monday, July 10 2006 @ 08:43 AM EDT
This is the problem with BSDs (Apache as well)...they
where tailored such that every Corp. in the world can
use it without giving anything back. Just take a look
at who is funding Apache foundation (the big ones, not
the small ones...) As for BSD, well
it is an University license, and this is just what
Universities are 'supoused' to do: give away, spread knowledge.

What I never understood it is why an individual would
ever use one of the two... GPL/LGPL gives almost no
'back door' for corporate people (don't forget tivo and
alike).

[ Reply to This | # ]

Software Piracy, awareness of Copyright and Licenses
Authored by: DannyB on Monday, July 10 2006 @ 09:35 AM EDT
Here is what I find amusing.

I know the story, just like many users. Years ago I was a Mac guy. I had tons
of legitimate software, and some pirated software. Everyone was doing it and
does it. I don't need to give a detailed explanation of the rationalizations
that people use.

When I started using Linux in 1999, I had no need of even seeking out pirated
software. I haven't had any pirated software since then.

Of course, being a strict Linux guy now, I have lots of friends and coworkers
who use Windows (and some Mac).

One thing that I notice is that the biggest software pirates I know are strong
Windows/Microsoft advocates. They will argue with you for hours to defend
Microsoft, Windows, "pro-business", etc.; yet they are the _biggest_
software pirates I've ever seen!

When discussing software development issues, they are happy to draw upon open
source, but have, at best, only a vague idea of any obligations under the
licenses.

In my experience, advocates of proprietary closed software have the _least_
respect for licenses of anyone. Open Source guys pay careful attention to and
are keenly aware of copyright and license issues.

Seven years of piracy free as of last month.


---
The price of freedom is eternal litigation.

[ Reply to This | # ]

Microsoft's View of Open Source
Authored by: Anonymous on Monday, July 10 2006 @ 09:55 AM EDT
Microsoft has already made their views of the quality and benefits of Open
Source abundantly clear (sorry, I couldn't get the link to
work):

http://download.microsoft.com/download/d/2/5/d2513e64-0dcd-4ef6-89c4-c99
ee117936f/EUPolicyHandbook/commercialSoftware.pdf

Here are a few of my favorite
parts:

"... Consumers benefit from the commercial software development model.
... Commercial companies leverage OSS to drive associated hardware, services and
advanced proprietary software revenue. ... Microsoft believes OSS is an
important part of the software ecosystem. ... intellectual property rights ...
are essential to ensure that software firms have continuing protection for their
investments in innovation..."

So anyone contributing to Microsoft's OSS efforts
should feel properly "leveraged" as part of Microsoft's view of the "software
ecosystem".

[ Reply to This | # ]

Microsoft Grabs Some Code for its ODF Plugin... From the ODF Fellowship
Authored by: Anonymous on Monday, July 10 2006 @ 11:01 AM EDT
Has someone checked with David Eisenberg? It's possible that he was asked by
Microsoft whether it was OK to include this trivial piece of XSLT logic. They
may have done and been granted an exception to his licensing in this instance.
And to be totally honest, this is very generic stuff - doing it any other way
would be perverse and just to avoid this kind of comparison.

[ Reply to This | # ]

Where's MS's License in the download?
Authored by: MindShaper on Monday, July 10 2006 @ 11:02 AM EDT
I gave the MS download a quick look over. For a "source"
distribution, the zip file contains a *lot* of binary data. All the *.docx
files contain binary, there's a dll file. My examination was not exhaustive -
I may have missed something. But I never found anything like a Microsoft
copyright notice in any of it.
I found BSD-style copyright license text referring to "Clever Age" in
many, many of the files, and these names: bfleury, jgoffinet, yhougardy.

All have dates in 2006. How long did Microsoft say it would take them to
support ODF? And three guys at "Clever Age" did it in 6 months? I
think I figured out why Windows is so pathetic: MS needs to fire those 25000
programmers they got and hire these guys.

I also found (in some *.sln files) something that looks like a half-way
attribution to "Sharp Develop 2.0.0.1413", maybe that's a development
tool that wrote some of the files.

The style sheets refer to: schemas.openxmlformats.org Is this site really for
"open" formats, or is it a MS shill for their proprietary- but-
called-open version of XML?

This was found in several places. Is it a hook to add proprietary bits later?
I don't know enough about XML to say:
<xs:element name="fsb" type="CT_FSB"
minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Future Feature Data Storage
Area</xs:documentation>
</xs:annotation>
</xs:element>


I also found this "phone home" bit in file
ODFWord2007AddinSetup.vdproj.
This may be required to do any addin, I don't know - but it also means that
there may be hooks in this that are invisible, and you get more than the Open
Source project when you install:
( I cut out lotsa stuff, but this is otherwise uneditted: )

"DeployProject"
{
"IsWebType" = "8:FALSE"
"ProjectName" = "8:OdfWord2007AddinSetup"
"Deployable"
{
"ExternalPersistence"
{
"LaunchCondition"
{
{
"Name" = "8:.NET Framework"
"Message" = "8:[VSDNETMSG]"
"Version" = "8:2.0.50727"
"AllowLaterVersions" = "11:FALSE"
"InstallUrl" =
"8:http://go.microsoft.com/fwlink/?LinkId=9832"
}
}
}
"File"
{
"SourcePath" =
"8:..\..\..\lib\zlibwapi.dll"
"TargetName" = "8:zlibwapi.dll"

[NOTE: File zlibwapi.dll is in the "source" package, but I don't know
enough about this to say whether source for zlibwapi is included. If it is, WHY
put the dll in the "source" distribution?]


---
There's a difference between being free and being unnoticed.

[ Reply to This | # ]

Microsoft Grabs Some Code for its ODF Plugin... From the ODF Fellowship
Authored by: jsusanka on Monday, July 10 2006 @ 11:10 AM EDT
this is why I like the gpl so much it doesn't allow for this rape and pillaging
to go on from greedy for profit only customers.

[ Reply to This | # ]

Abstraction/Filtration/Comparison
Authored by: rdc3 on Monday, July 10 2006 @ 01:49 PM EDT

How would the abstraction/filtration/comparison test for copyright infringement apply in this case? It seems inconceivable to me that sufficiently many protectable elements would remain after filtration.

If there is no copyright infringement, there is no issue of licensing.

If this is copyright infringement, I shudder to think of the encouragement this would give to SCO-wannabees.

[ Reply to This | # ]

Microsoft Grabs Some Code for its ODF Plugin... From the ODF Fellowship
Authored by: Anonymous on Monday, July 10 2006 @ 02:02 PM EDT
BSD?

Yeah, well it's reasonably well known I think that Microsoft regard the BSD
licence as a "laundromat" that can transfer IP from protected forms
(such as GPL) to more-or-less public domain uses.

There's some email around from the anti-trust trial that shows some MS staffers
plotting to get GPL stuff dual-licenced through BSD so they can use it without
attributation or passing on source code modifications. [Sorry don't have time
to chase down the references/urls]

Leopards don't change their spots, and the devil never gives you back your
soul.

Avoid.

[ Reply to This | # ]

Microsoft should have to install DGA
Authored by: kawabago on Monday, July 10 2006 @ 04:09 PM EDT
David's Genuine Advantage, (DGA) which will track all correspondence using the
plugin, to ensure Microsofts user experience is up to David's high standards of
course.

[ Reply to This | # ]

Microsoft Grabs Some Code for its ODF Plugin... From the ODF Fellowship
Authored by: Anonymous on Monday, July 10 2006 @ 09:32 PM EDT
Where are software patents when we need 'em? Eisenberg should've patented
this... and then even an independant implementation would've been criminal.

See what world the corps want to bring us in?

[ Reply to This | # ]

Microsoft Grabs Some Code for its ODF Plugin... But from where?
Authored by: Anonymous on Monday, July 10 2006 @ 11:18 PM EDT
Disclaimer: I'm typing this on an openSuSE 10.1 system, do not, and never have, worked for Microsoft, or anyone related to them.

Having said that, historically, anytime someone claims a segment of code has been misused by IBM, the entire groklaw community swings into action, and immediately tracks down all the possible ways that code could have made it from Unix into Linux.

Whether you despise the very ground that Microsoft occupies (and as a former OS/2 user, and current windows admin, I tend to lean in that direction) or not, fair is fair-- Microsoft deserves the same consideration as IBM.

Browsing around, I found the following link:

http://books.evc-cit.info/oobo ok/book.html

Specifically, this code example .

It's a book on the OpenOffice.org file format, and it's got the following under acknowledgements:

Content licensed under a Creative Commons License. All content is copyright O’Reilly & Associates, Inc. During development, I give permission for non-commercial copying for educational and review purposes. After publication, all text will be released under the Free Software Foundation’s GNU Free Documentation License.
The page in question has certainly been there since 2004, although there's no obvious date of publication.

I'm definitely not versed in the law, but it seems, at least around Groklaw, that it's acceptable for a method & concept to be derived from a book, when being used in a project.

Based on this, it looks like one of the following is true:

  • Microsoft and J. David Eisenberg used the same source, this book, when writing their code.
  • J. David Eisenberg wrote his code, and the O'Reilly book borrowed it.
It's still conceivable that Microsoft was foolish enough to rip off code from an LGPL project, but my personal preference is to start by finding a decent documentation source, and this book qualifies.

[ Reply to This | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )