« Not really from Microsoft | Main| NotesDirectory »

Lotus Symphony


It's really easy to miss the point about the Lotus Symphony announcement yesterday.  If you find yourself thinking "this will never take market share away from MS office," then you're missing the point.  If you find yourself thinking "why would I run Symphony instead of OpenOffice.org 2.3?" then you're getting closer to the point.

A lot of people have already asked: why didn't IBM use OpenOffice 2.x when writing the Notes 8 productivity editor tools?  While part of the reason is undoubtedly some code they had already written, another big part is the shift in licensing terms from OOo 1.x to 2.x.  2.x is licensed under the Lesser GPL.  Let's look at one of the provisions of the LGPL
You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

There are other provisions that leave room for intepretation, but on this one point, the LGPL is crystal clear.  If you make a derivative work, it must be free and open.

So, in order to use OpenOffice.org 2.x code, IBM must make the product free and open.  That isn't going to happen with Notes (anytime soon, at least.)

But Symphony is free and open.  And therefore it's a basis for IBM to start using the 2.x code stream in Symphony.

That also means that Notes 8 (and Sametime 8 and Expeditor Workplace and anything else IBM wants to build on the Eclipse platform) becomes a product that uses Symphony.
A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

So that means that Symphony can be redistributed and integrated with other products, without forcing those other products to be free.  It makes Symphony a licensing bridge between OpenOffice.org 2 + and anything else in the IBM portfolio.

Now does it make sense why IBM joined the OOo team?  Why they're commiting resources to work closer with Sun and the general open source community?  It should.  GPL code is very tricky from a copyright standpoint, but this approach gives IBM a basis for using it without compromising the letter or the spirit of the license agreement.

Will someone want to use Symphony as a replacement for MS Office if they're not already a Notes shop?  Probably not.  Maybe if they're trying to make a transition to Linux desktops and they want a productivity tool that is supported by a global IT organization.

But does making Symphony available mean that there's a way to upgrade it to OOo 2.x?  Yep.  And does that way allow the results to be bundled with Notes.next?  I am not a lawyer, but it seems to me that it does.

What does a world where the productivity editors bundled with Notes are upgraded to the latest OpenOffice.org platform, working across Windows & Linux (and Mac next year) look like?  Is that a more compelling offering?  Will the availability of the OOo 2.x toolkit mean that we'll see better integration for Notes, Sametime, Connections and Quickr?  Does it make a bit more sense why we didn't ALREADY see better integration with the 1.x tools?

One can argue that this might not work.  I certainly have my doubts.  But the plan here is a bit more complex than "we're trying to make an Office killer."  It's "we're trying to deepen our ties with open source organizations so that we can harness that code without compromising our rights to our own stuff."  Offering a free and open version of OpenOffice 2.x that's wrapped in Eclipse and includes the accessibility & internationalization improvements that IBM's worked so much on is key to doing this.

Comments

1 - Excellent assessment Nathan! It all makes sense now... Emoticon

2 - Wow Nathan, thank goodness you can make this clear... Great summary...

3 - Very well explained Nathan, thanks.

4 - It seems to me that Notes Java uses parts of Notes C++. I've tried to remove nlnotes.exe and also replace it with notepad.exe, and then Notes Java won't run. If it's really so that Notes Java needs Notes C++ to run, wouldn't that also mean that IBM wouldn't need to publish the native database code of Notes, but only the parts which are built into the Notes Java client?

5 - I may be missing the point of what you are saying here, but I don't think that it follows that to use OOo 2.x they needed to release Symphony.

To use OOo 2.x code they would have to release the source of the productivity apps. But it would be perfectly possible to build an "IBM Productivity Apps Lib" that was used by Notes without entangling Notes with the LGPL. The source for the lib would be on the CD and availible for download etc, but they wouldn't have to turn the lib into an actual end user product.

That's not to say that releasing Symphony isn't a good idea, but there are many many pros and cons to this decision and I think it more to do with general market positioning than a simple matter of complying with the LGPL.

6 - @4 - So basically, the more Notes and the productivity apps get integrated, the fewer rights IBM would have to it.

I understand where you're coming from Mika, but the argument just isn't going to hold water to a lawyer. There has to be a clean line for this stuff, or IBM ends up in another SCO suit.

@5 - "c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License." It's the WHOLE OF THE WORK part that's key.

There has to be a WHOLE WORK that is LGPL. That's Symphony. Once that's there, then Notes becomes a "work that uses the library" where the library is Symphony.

Remember, folks... OOo isn't plug & play into Eclipse. There's a LOT of work that has to take place to make OOo an RCP app. The original uses SWING.

7 - You rock! Excellent summary.

I was really struggling to wrap my head around what they were trying to accomplish. It really seamed symilar to their brilliant moves a few years ago to kill notes and replace it with websphere (they marked that phase with constant statements about how they are not killing notes)

8 - @6: I don't really see a problem there. I can publish a GPL source at any time, which has some .DLL/.so binary files attached which are required for the whole program to work. I can say that these parts are open source, and these parts are not. You don't have to use them if you don't like it.

Many companies do it that way, they have some freeware version, and some commercial version with some additional features. If you want you can buy the commercial version, and if the freeware version is enough for you needs, be happy with it. Or if you don't like either, don't use them.

9 - @6, Symphony is an application suite, not a library. A part of that application will contain a library based on OOo. Only that library is required to be open source. Any changes IBM make to that library will have to be LGPL. The rest of Symphony will remain closed until IBM choose to open it, under whatever licence they like. That includes the bits of the expeditor stack that are not under the eclipse licence, which I believe are not open.

Under no circumstance does releasing an application suite, like Symphony, that *uses* an LGPL library make any difference to another application that also uses that library. Notes will also share code with Symphony that is not part of the LGPL library.

10 - @8 & 9 - I really think you guys aren't actually reading the LGPL. I encourage you to read it in full.

{ Link }

11 - Great analysis! I think your absolutely right

12 - @10, No Nathan, I've read LGPL, GPL, GPL with classpath exception, Apache 2.0, Mozila and various other open source licences in great detail, very recently.

Really, IBM can take code from OOo, under LGPL and give it to team A. Team A can modify that to there hearts' content, compile it as a library and then give it team B. Team A nead to release the sourse for thier work. Team B can statically link to that library and their work would NOT be encumbered with LGPL. If team A need the library to do something, they can ask team A to do it. As long as the library can be compiled without requiring code from team B then that is fine. The only thing that team B need to do to remain compliant with the LGPL is provide *object* code that would enable a third party to alter the library and relink it back into team B's code. But that's all.

If you want to define Symphony as team A's work then that's fine, but I don't think that isn't what IBM are saying, unless I've missed something. I'd say that Symphony is team B's work. Team C could also use team A's work entirely independently of team B. Guess who team C is?

13 - @12, Apologies for tyop horrors in that post. Uurgh! Emoticon

14 - 12 - I am precisely defining Symphony as Team A. And that's exactly what I spent all those words at the top of this post attempting to do.

Obviously I didn't do a very good job of it! Emoticon

15 - @14, OK. I've missed where IBM have said that everything *they* are labelling as Symphony is being released under the LGPL. I'd have thought that would be pretty big news. Can you point me to a link?

Unless I've also missed the whole point of your post, you are claiming that releasing Symphony *as a product* is some how required for the productivity apps in Notes to use code from OOo without encumbering the whole Notes codebase. That argument simply doesn't hold.

The release of Symphony *as a product* rather that just some source included on the Notes CD, is driven by market positioning, not legal.

16 - Wow - I'm *definitely* not trying to offend anybody, but I'm surprised that so many people needed this spelled out in such detail.

Great post. This has huge implications.

17 - Nathan,

I'm afraid you're confusing free and free. To quote the FSF on free software: "[...] you should think of 'free' as in 'free speech', not as in 'free beer'." { Link }

Neither GPL nor LGPL require anyone to give binaries away for free. Many Linux distributors sell their products. The LGPL explicitly says:

" You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee."

The licenses only require, under certain circumstances, the /source code/ to be made available at no additional cost.

I don't think IBM will give away the Symphony source code, do they? Symphony is not open, only free as in 'free beer'. So they cannot use code licensed under the GPL or LGPL. They must have licensed OOo code under a different license.

18 - Well, IBM could distribute Symphony and Notes 8 Java under the NSF (=Not So Free) license :P

19 - Manual Trackback - { Link }

20 - @15 - You are correct, Sir, that Symphony is not (yet) released under the LGPL. It doesn't have to be. It only uses the 1.x version of Open Office, which did not carry the LGPL license, and therefore can be modified and redistributed in whatever fashion that IBM sees fit (as can Apache & Eclipse-licensed code.)

However, now that Symphony is out there as free and open, if the NEXT version uses OOo 2.x, it can be distributed *without affecting IBM's copyright claims to Notes.*

Maybe I've dealt with a few too many lawyers to not see why this is so critical.

Without Symphony, there is no whole work to distribute as free and open. There is only Notes 8, which is not free and open. Whatever the licensing terms of OOo 1.x, 2.x is LGPL, which requires a WHOLE WORK that is under the LGPL. Symphony can be that. Notes 8 can't. Period, full stop.

@17 - Oreg, I must respectfully disagree. I reiterate...

"c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License."

And yes, if you download Symphony, you can unpack the JAR files (just like Notes 8.) And those are .class files, with the source code. Or, to be more precise, I haven't found one that didn't have all the source in it yet.

I welcome an example of such that I missed.

21 - @20, I suspect that we're just going to disagree on this. Emoticon But it'll be interesting to see how Symphony with OOo 2.0 code is licensed as a product. It won't have to be LGPL, but it would be quite cool if it was.

"Without Symphony, there is no whole work to distribute as free and open."

That's not correct. It comes down to how do you define "the work"? This is defined by how it is compiled and linked. All the code required to compile the library is what counts as "the work". Anything that just uses that library is not. The library can do what ever you want it to. It doesn't have to be a end user application.

Let me use an example. Say OOo have a library for doing file format conversions. IBM decide that they want to use it with Notes. They can quite happily do that without releasing Notes under the LGPL. Assuming Notes was statically linked to the library, IBM's obligation would be to 1. provide the source of the library. 2. provide object code for Notes that would enable a third party to modify the library recompile it and statically link Notes to it again.

If IBM then decided that they had a great enhancement to the Library, say better support for smartsuite files, they would have to release the code they put in the library. If for some bizarre reason IBM modified the library so that it couldn't be compiled without the Notes source, the Notes source would also have to be released. But IBM would never do that.

So IBM can quite happily take code from OOo, modify it package it up as "the whole of the work" provide the source, and link it into Notes, without encumbering Notes with the LGPL. Releasing Symphony *as a product* is not *required* for them to do that.

Also the LGPL and GPL can never, under any circumstance, affect IBM's copyright claims to Notes.

22 - @21 - Now, Kerr, that last claim is just patently false.

Step 1: Take GPL code off 'net
Step 2: Check GPL code into build library for nnotes.dll
Step 3: Build and ship the product
Step 4: Wait for call from gpl-violations.org

It's the Sue-O-Matic. Yes it's just. That. Easy!

That's why IBM requires that employees and contractors provide documentation on the origin of code that gets shipped with ANY IBM product.

23 - @22, Nice straw man there Nathan ;)

"Step 1: Take GPL code off 'net"

We're talking about LGPL.

"Step 2: Check GPL code into build library for nnotes.dll"

Who's talking about putting the code into nnotes.dll?


"When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library."

"5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License."

So lets try that again.

Step 1: Take LGPL code OOo.dll off 'net
Step 2: Modify it creating OOo2.dll
Step 3: Link nnotes.dll to OOo2.dll
Step 4: Build and ship the product, including source to OOo2.dll, but not nnotes.dll.
Step 5: Count the money.

No violation of the LGPL there. IBM should of course still have procedures in place to verify the origin of all code it uses, so that it can be managed appropriately. You wouldn't want any code from OOo.dll to accidentally slip into nnotes.dll, that would be Sue-O-Matic.

24 - Are we reading the same words?

"Also the LGPL and GPL can never, under any circumstance, affect IBM's copyright claims to Notes."

So I describe just such a circumstance, and you call it a strawman.

W
T
F
?

You're the one that said GPL and "under any circumstance."

25 - Ah, you didn't make it clear that was what you where taking issue with, and your example also has no copyright implications for IBM.

The lawyers from gpl-violations.org would be taking a bite out of their ass for violations to the licensing terms of other peoples copyrighted code. Code that IBM did not own the copyright to and hadn't followed the licence of. The copyright of the code IBM owns for Notes would never come in to it. They own it. They can do whatever they like with it.

26 - Kerr - The part you are missing is that the very fact that the two of you disagree is why this is an issue for IBM. If a reasonable person, and I will assume you both are, can think this means Notes would have to be released for free, that means that a lawsuit could be filed and would not be thrown out immediately. At that point, you are looking at the billion dollar fishing expdeition, where somebody sues the hell out of IBM. You know what, they would probably lose, but it could cost a ton of money, energy and distraction that IBM can't afford. It doesn't matter a bit whether you are right or Nathan is right, because IBM has some of the deepest pockets around and people are lining up to find idiotic reasons to sue IBM. There is no way they can afford to let this be even a teensy bit ambiguous, no matter how compelling your points might be. It is the lawsuit which would hurt, even if IBM won. Nobody needs that level of distraction right now, but there are plenty of hungry fish who would like to try to hassle a settlement out of IBM, whether they have a legal leg to stand on or not.

27 - I think everyone here is missing the fact that IBM would not publish something which would be illegal in first place.

Microsoft has also started an OpenSource initiative and they don't care about GPL and LGPL, they just invented their own: MPL!

Shouldn't we talk about the technical side rather than speculating about some legal issues, which can be solved by money anyway.

28 - @26 Ben, Interesting point, and yes I'm sure there are plenty of people out there that are looking to take a bite out of IBM. Of course I may be wrong and Nathan may be right, but I'm sure IBM's lawyers will know what's what before they do anything. I don't think they are looking at comments on this blog for the answer Emoticon

Nathan simply made a point that having Symphony released as an end user product is required for Notes productivity editors to use OOo 2.x code. I think that's nonsense for a few reasons and we are having a little debate about it. It's happened to have gone down the line of a discussion of the finer points of the LGPL, but I'm aware of the other issues, they just happen to not be part of the points being debated.

No harm in that is there? Or do you think that by discussing it we are somehow creating a terrible situation?

Nathan, I hope you aren't taking any of this personally btw. I finding this quite fun. Emoticon

29 - I don't think there is any harm in it, but I happen to be pretty sure that this is exactly the reason why IBM made a separate product. In any case, the "why" doesn't matter that much now, except to those interested in the often difficult to guess implications of decisions such as revising the GPL.

So, having said that, what do you all think the difficult to guess implications will be of releasing Symphony, both technically and from a business angle?

30 - @29 Regarding the technical side, it doesn't matter anything if Symphony and Office 2007 is released as free software. OpenOffice beats them both 100:1. In addition to OpenOffice you might also want to download InkScape, to start drawing real vector graphics. I used it to make company logos, which PowerPoint and Impress couldn't handle with the required quality. A Xerox Fiery high quality laser color printer made a wonderful result from the InkScape EPS file. It's true EPS, just a few bytes in size, and not a crappy bitmap emulation what PowerPoint and Impress produces.

31 - I'm with Ben @29 - the fact that one could possibly argue two sides of this at all is exactly why Symphony needed to be separated. Even if it didn't, the extra layer of separation is another protective wrapper in the battlegrounds of lawyer-land.

So now there's another product in the mix. It's funny how the "dual-lane highway" plan of a few years ago has changed...

32 - One last comment on this.

My guess at what will actually happen is that Lotus will licence the pluggin level code as LGPL. The complete Symphony suite as a download will not be LGPL as that includes expeditor and they won't LGPL that. The same pluggin level code will be what will be plugged into notes. With any luck third parties could take the pluggin code and develop their own inovative apps on top of Eclipse RPC.

33 - Well, I'm exhausted. :P

Anyway, Nathan, I just wanted to jump on the pile and thank you for that explanation. A bunch of us have been scratching our heads about Symphony/Productivity Tools quite loudly over at Ed's blog. I dropped a link of this thread over there.

Peace

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

11 Aug 

Hire Me 

Lotus-911-Logo.jpg

Search 

Disclaimer 

Welcome to Escape Velocity!

Opinions expressed here by Nathan T. Freeman are not necessarily those of his employer. However, there's a decent chance they are, so check with them if you really want to know.

But really... do you need that kind of validation? Are the opinions expressed here in doubt?

MiscLinks