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]
|
|
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 | # ]
|
|
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 - Authored by: Anonymous on Monday, July 10 2006 @ 01:43 PM EDT
- Corrections here - Authored by: Anonymous on Monday, July 10 2006 @ 03:25 PM EDT
|
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 | # ]
|
|
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 | # ]
|
- Gee. Look how fast and easy it is...to get noticed - Authored by: PJ on Monday, July 10 2006 @ 07:16 AM EDT
- But it helps... - Authored by: jplatt39 on Monday, July 10 2006 @ 07:16 AM EDT
- Gee. Look how easy it is... - Authored by: dcarrera on Monday, July 10 2006 @ 07:19 AM EDT
- Gee. Look how easy it is... - Authored by: Anonymous on Monday, July 10 2006 @ 07:20 AM EDT
- You must not be paying attention - Authored by: Anonymous on Monday, July 10 2006 @ 07:21 AM EDT
- I forgot that irony doesn't translate... - Authored by: Anonymous on Monday, July 10 2006 @ 07:24 AM EDT
- Gee. Look how easy it is...to add sarcasm tags! - Authored by: PSaltyDS on Monday, July 10 2006 @ 07:36 AM EDT
- Irony, sarcasm - Authored by: grundy on Monday, July 10 2006 @ 02:49 PM EDT
- And looks at what's even easier... - Authored by: Anonymous on Monday, July 10 2006 @ 08:12 PM EDT
|
Authored by: Anonymous on Monday, July 10 2006 @ 07:17 AM EDT |
link [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
|
|