Mono Now Safe?

With Linux Distros taking sides, this week’s announcement that Microsoft promises not to make Necessary Claims against anyone using their patented specifications adds to the confusion. At first glance, this looks like a safe passage for Mono, but as we delve in deeper, we see that not everything is legally in the clear.

Disclaimer: I am not a lawyer, under no circumstances should this information be constituted as legal advice.

Background

First, some quick background information. Mono is an GPL‘ed implementation of Microsoft’s C# and CLI (Common Language Infrastructure) technologies as well as some implementation of the “higher” parts of the .NET framework. Namely, the ADO.NET, ASP.NET, and Windows.Forms. C# and the CLI are ECMA/ISO standards and are the building blocks of the .NET framework. ADO.NET, ASP.NET and Windows.Forms are built upon the technologies and specifications outlined in the two ECMA/ISO standards. These specifications and technologies are owned and patented by Microsoft. Richard Stallman has warned the Open Source community that creating open source programs with patented technologies can give Microsoft power to sue for patent infringement. Miguel de Icaza, the leader of the Mono project, has been trying to reassure users and developers that there is no danger. This has caused Distros to make different decisions about including Mono.

Scene Changing News

Today, a Microsoft employee has made an announcement on Microsoft’s Port25 blog that Microsoft will be adding ECMA 334 and ECMA 335 to their other works under the “Community Promise.” The Community Promise is a legally binding document that means Microsoft will not assert Necessary Claims against any implementations of any of the specifications under the Community Promise.

Great! Now we don’t have to worry about Ubuntu and others that will ship Mono by default right? Not quite. While this is a step in the right direction, Microsoft still can pull a couple of cards out of their sleeve if they choose too. Let’s take a deeper look into the implications of this Promise.

Deeper Look

The first issues is compliance. Microsoft’s Community Promise only applies to implementations that fully comply with the given specification before releasing. This is not a problem with Mono, since they are fully compliant with the specification. The second issue is with the “higher” technologies that Microsoft owns. ASP.NET, ADO.NET, Windows.Forms, and others are not covered under the Community Promise. This means that while Mono’s implementation of C# and the CLI are covered, the open source implementations of ASP.NET etc. are not covered. Miguel de Icaza, even says this himself:

Astute readers will point out that Mono contains much more than the ECMA standards, and they will be correct.

~ Miguel de Icaza (source)

In response to this, the Mono project is going to split their code up into two different pieces. One that is just the implementation of the two specifications covered by today’s announcement, and another with all the uncovered technologies. This can help minimize the impact of the threat of litigation.

What Does this Mean for Ubuntu?

Most of the C#/Mono projects that are included in Ubuntu and others do not use the higher technologies that are not covered by the Community Promise. This means that packages like Tomboy are most likely safe from legal threats. Dreams of making an inter-operable framework for multiple operating systems are still just dreams, until it’s legally clear that Microsoft will not make any moves against implementations of ASP.NET and the like.

Regardless of these theoritical threats, the Mono Project doesn’t seem worried:

For people who need full compatibility with the Windows platform, Mono’s strategy for dealing with any potential issues that might arise with ASP.NET, ADO.NET or Windows.Forms is: (1) work around the patent by using a different implementation technique that retains the API, but changes the mechanism; if that is not possible, we would (2) remove the pieces of code that were covered by those patents, and also (3) find prior art that would render the patent useless.

~Mono Project (source)

Buzz

As of the time of publishing, neither the Free Software Foundation nor Groklaw have made any comments about this issue. Also, although this has been announced by an official Microsoft Blog, the official Community Promise page has not been updated to include the two specifications. This story has already created a buzz on Slashdot and will likely be discussed a lot on sites like Planet Ubuntu.

What do you think? Is this the blessing Mono needed, or is it just another complication in this legal maze?

27 Comments on “Mono Now Safe?”

  1. Vadim Says:

    That probably does make it much clear (unless they still have something odd in the big legal letter). All I needed from this though was a justification that Vala using C#-ish syntax is quite okay. Sorry, but a no-dependencies, no-vm, no-controversy language is simply more pleasing and less nerve-wasting to work with!

  2. Josh Says:

    I think this is much bigger than a Java-imitation language on a subpar runtime. Microsoft must believe that this to be the best way for the company to establish dominance in the server market. Why do you think Mono came out of Novell? Microsoft wants to defeat Java, and Java often runs on Linux servers. There are two methods of attack against Linux here. First, by spreading .NET/Mono, Microsoft slowly eats away at revenues for those supporting Java on Linux servers (such as middle-ware vendors like Oracle). Secondly, if Microsoft can push .NET into the Linux space and then extend the platform with additional proprietary features, it can essentially force Mono software back into the Windows servers.

    Embrace, extend, extinguish. That’s exactly what we are seeing here, except this time Microsoft has found out how to dupe the open source community into being happy about it.

  3. Leo Says:

    Wow, excellent article, Patrick. Very informative. Can I rate it 5 stars?

    I think MS has a history of corporate bullying and monopolistic practices, and going to bed with them is not a good idea. We should stay away from them as much as we can. And team up with companies like Google.

    Talking of which: Google keeps going after MS, with another Linux based product:
    http://www.bloomberg.com/apps/news?pid=20601103&sid=aVidrsL6yQYY

    Awesome, in’nit?

  4. Jef Spaleta Says:

    Patrick, are you sure the following sentence is correct?

    “Most of the C#/Mono projects that are included in Ubuntu and others do not use the higher technologies that are not covered by the Community Promise. ”

    In rebuttal I submit this:
    http://mono-nono.com/2009/07/08/this-doesnt-fix-everything/

    You hold up tomboy as been safely covered by the ECMA specs..but both f-spot and banshee rely on .NET technologies not covered by the promise according to the url I’ve found. Things are not as simple as your statement appears for the existing application landscape.

    I think if you really care about the issue, then you have to look deeper at the details and do a full audit of all the projects shipping in Ubuntu and make a tally of what is and is not covered by the promise. If the Mono developers do split their codebase, that should make it easier to do the audit as long as Canonical chooses to package the two codebases separately so that mono applications which require the extra bits will depend on the non promise covered package.

    Looking further out, one has to wonder if Canonical plans to work CouchDB integration into mono based applications in a way that is covered by the promise. So far the CouchDB mono-integration experiments I’ve seen are not covered by the narrow protections in this promise. Microsoft may not go after individual users…but if Canonical builds its UbuntuOne service around CouchDB, how they integrate CouchDB support into mono-based applications might open up Canonical’s business to attack by Microsoft.

    -jef

  5. slumbergod Says:

    Thanks for a very good article.

    I don’t care what promises m$ make. I just don’t think it is a good idea to let Mono infiltrate linux distros. I know that some people love m$ and will embrace Mono and that is fine, let them install Mono themselves.

    Keep linux distros lean and clean.

  6. Leo Says:

    @slumbergod : agreed. After all, the trouble-free part is the language, which we don’t need (having Java/Python). When things start getting “interesting” though (in that you can support MS specific stuff assuming you really want to do that), MS says “wait kids, I didn’t tell you that you can play with _that_”. No thanks!

    @Jef. Excellent point. And the truth is, these applications you mentioned have very easy replacements that don’t involve MS risks (Digikam comes to mind).

  7. Patrick Regan Says:

    @Josh: This is possible. The Promise does not necessarily apply to future revisions of the specifications, thus making any new proprietary extensions possible. I think this has implications beyond just servers though.

    @Leo: Thank you for the complements. Microsoft does have a spotted past and this history makes them difficult to trust with promises like this. It will be interesting to see how Microsoft bangs their interoperability drum when the new Google OS comes out.

    @Jef Spaleta: I did not do a full code review so that sentence may be in error. If it is, I apologize. When making that statement I was focusing on the lack of WinForms in the implementation of Tomboy. I tried to make it clear that Canonical is not in the legal clear, but that some things are most likely ok. I also used the term “Most likely” twice now. That does not mean I know for sure what will happen.

    To All: I wrote the article as an informative piece and was not trying to argue one way or another. My own views with Mono are more agnostic. I’m still trying to weigh my own pragmatic views with that of my ideological. This was in no way meant to take sides.

  8. Leo Says:

    @Patrick: I got exactly that impression, that you were mainly trying to propose an open discussion, but mostly provided lots of info in a very concise but educating way. The “background” paragraph is brilliant journalism IMHO.

  9. aikiwolfie Says:

    I admit that some of the paranoia over Mono is just stupid and over the top. However Microsoft never do anything unless it’s to their benefit.

    When Microsoft released MS-DOS they practically gave it away to make sure OEMs bundled Microsofts OS with their PCs. When Windows came along they did the same thing.

    When the internet came along Microsoft licensed a web browser. Changed it’s name and ruined it along with adding proprietary tags to HTML. All in the name of keeping the Microsoft platform and business plan relevant and dominant.

    When virtualisation began to fly and the likes of VMware were giving away free virtual machine clients. Microsoft made Virtual PC 2004 SP1 a free download. Again, purely to keep people developing for the Microsoft platform.

    Compatibility with .Net bolsters .Net and keeps it relevant. Which helps Microsoft to maintain it’s position as the dominant OS and applications vendor.

    I would agree with Monos detractors that supporting Mono is short sighted and fool hardy. But not because of patent lawsuits. Simply because it puts Microsoft back in charge of the game. If Linux developers want to succeed as Linux developers they need to be totally independent of Microsoft. Otherwise Linux becomes irrelevant and we might as well all be running Windows.

    I don’t want to go back to Windows.

  10. Miguel de Icaza Says:

    Josh,

    Mono came out of Novell, because Novell bought my company, a startup called Ximian that did various things: Linux on the Desktop, the Evolution groupware suite, the software management stack Red Carpet and Mono.

    Mono is an open source effort and its direction has been since the beginning driven by its users. Ximian was a user, but so were some other 50 companies that contributed to it, and over 300 individuals.

    All of us -together- made Mono into what it is today. There was no Microsoft master plan.

    In 2006, the Novell/Microsoft collaboration agreement took place, and it opened the doors for us to have regular conversations with Microsoft.

    These conversations are fantastic, because we get to understand each other. I come from working on open source non-stop for the past 17 years, and Microsoft comes from the proprietary world that they helped create.

    The first step is for both parties to understand each other and peel the layers of hype and the bumper sticker culture that likes to portray things in black and white (“with us or against us”, “we = good, they = bad”).

    Working with Microsoft has been an absolute pleasure, just like working with the open source community has been a pleasure. In the end, we all love software and what computers and the internet can do to improve the world. We have different models, but the world is big enough for all of us, and it is interesting enough that we can all collaborate.

    Banshee and F-spot use a handful of APIs from the non-ECMA piece. Luckily it is not terribly difficult to remove the dependency, it is going to take a couple of weeks. My community is responsible for writing millions of lines of code, a couple hundred are not even a challenge. That is the amount of code we write before breakfast.

    Regarding future versions of ECMA: I am not sure why people are freaking out about this. When we get to that bridge, we will cross it. People like to point out to Microsoft’s actions in 1998, a decade letter the company is a different entity, all you have to see are all the specs that they have granted patent-free access (like the binary file formats and the XML file formats for Office, the crown jewel of the company).

    Finally, the commenter that claims that MS-DOS was given out for free is wrong. Microsoft became a rich company *precisely* because they charged for their software. DOS and Windows.

    But they did give IE away for free to screw their competitors.

    The level of paranoia exhibited sometimes with anything that Microsoft does has reached levels only seen in Hollywood dramatizations.

    As I posted a few months ago on Usenet: I believe in a world of possibilities, in a world where we can -all- make things a better place.

    I realize that looking at past actions and looking at history, and what happened in the past is educational to some extent. But do not let the past prevent you from inventing the future.

  11. WorksWithU gives thoughts « mono-nono Says:

    [...] WorksWithU, an Ubuntu-focused blog, weighs in on the latest developments with a fair overview of things. [...]

  12. Scott Says:

    @Miguel: There are better futures to invent than clones of unneeded MS technologies.

  13. FreeBooteR Says:

    I don’t see how MS is a changed entity, there is no evidence and plenty to the contrary.

  14. Jacob Says:

    @ Miguel de Icaza

    With all due respect I get a bit bored of being defined as “paranoid” and part of the “hype” or the “bumper sticker culture”. That is an arrogant bullying technique that doesn’t work on me.

    I’m sure that Mono is good for you
    I’m sure it’s good for Novell
    I’m sure it’s good for Microsoft

    Is it good for OpenSource/GNU/Linux? Well, that’s what you have to convince the likes of me to believe. Sadly, your argumentation is nowhere near cutting it.

    On the surface Microsoft’s Community Promise adding ECMA 334 and 335 appears to be good. No doubt it will reduce the sceptisism somewhat and that’s a smart strategic approach by Microsoft. They do it simply because the resistance towards Mono is getting harder.

    They HAD to do something to prevent the resistance becoming unmanageable. Not voluntarily – they HAD to. Neglecting the Microsoft history singing “We are the world” is naive at best.

    Your coding before breakfast may very well be impressive, but that’s the easy bit. Convincing bumper sticker characters like me that Microsoft is the “girl next door”, that we’ll marry and live happily ever after is harder. That’s a job to be done after breakfast, and you better bring lunch too.

  15. I. Giron Says:

    @miguel: The simplest way to convince us that your Mono is harmless, is to GPL it. Your choice: GPL v2 or GPL v3. No less.

    Any other thing is just PR.

  16. K. Sum Says:

    @Giron

    What are you talking about? Nearly all of Mono is either under GPL or X11 kind of license.

  17. Patrick Regan Says:

    To All: This is just a reminder to keep things respectful. Not pointing fingers or saying that anyone needs to change, just a reminder.

    @Mr. de Icaza: Thank you for taking the time to come and speak your mind. I consider it an honor to have someone who is directly involved come and say their peace. I agree that this issue is layered with “religious” rhetoric and hype. Both sides of the issue have taken things to extremes. On an issue such as this it can be hard for people to not let feelings get in the way. With that said, I believe that even if all emotion were to be stripped from this debate, there would still be valid arguments for both sides. This is one reason why I myself have not committed either way (something others may find frustrating).

    @I. Giron: Most of Mono is under the GPL. Unless you meant that it should be under version 2 or 3 specifically. In which case you may have wished to make that more clear. The way it sounds now, it seems as if you don’t know that most of it is already GPL’ed.

    To All: Thank you for making this a continued discussion.

  18. arthur Says:

    Miguel d. I., you are a lost case!
    I give you that mono has been good for you and your family, and at a human level it Is understandable that you try to draw as many people into the murky molasses as possible, as the number of users in the end alone, will be used for “we-were-right” arguments. All this assuming the boa constrictor in Redmond holds still and doesn’t pull a 2nd SCO on the community.

    Please keep doing what you do, but don’t poison open source community with your hog-wash.
    ONE MORE TIME FOR SLOW LEARNERS:
    “WE DO NOT WANT ANYTHING MICROSOFT!”

  19. I. Giron Says:

    @Patrick Regan:
    You’re right I didn’t make it clear. Indeed I was referring to C# and all Microsoft’s libraries behind Mono.

    @Arthur:
    I completely agree with you. Even if MS licensed their products under any FOSS license I doubt I could get used to their (defective by design?) low quality products.

  20. Leo Says:

    @Miguel: I didn’t know you were so fond of Microsoft, but I just don’t understand how you can really think what MS is not the same as it was in 1998. What happened on the netbook market is a little sample:

    http://www.groklaw.net/articlebasic.php?story=20090619161307529

    Just remember Asus revolutionized the Laptop market with the early Eee’s and sold millions of units running Linux. Hardly a “Linux Failure”. So, yes, life is not black and white, but no, when a monopolistic giant wants to take away my freedom, I do feel I need to stand up and react.

  21. The Mad Hatter Says:

    And of course, who has actually read the “Microsoft Community Promise” all the way through? I did, and I wasn’t impressed:

    http://crankyoldnutcase.blogspot.com/2009/07/microsoft-community-promise-mono.html

    It’s a poorly crafted, poorly worded, document that appears to have little if any real meaning. I wouldn’t depend upon it.

  22. scottFuz Says:

    If you can’t beat ‘em, divide ‘em.
    And that’s what MS has effectively done. Rather than beat Linux (and Ubuntu), Redmond has effectively fractured the Linux community over this single issue.

    I don’t trust MS (my opinion only) nor their motives. I cleaned out MONO using:
    http://www.learningubuntu.com/articles/how-completely-remove-mono-ubuntu

    I was shocked at what else was removed:
    (my logs of the event)
    beagle* bless* f-spot* libart2.24-cil* libavahi1.0-cil* libflickrnet2.1.5-cil* libgalago1.0-cil* libgconf2.24-cil* libgdiplus* libglade2.0-cil* libglib2.0-cil* libgmime2.2a-cil* libgnome-keyring1.0-cil* libgnome-vfs2.24-cil* libgnome2.24-cil* libgsf0.0-cil* libgtk2.0-cil* libmono-addins-gui0.2-cil* libmono-addins0.2-cil* libmono-cairo1.0-cil* libmono-cairo2.0-cil* libmono-corlib1.0-cil* libmono-corlib2.0-cil* libmono-data-tds1.0-cil* libmono-data-tds2.0-cil* libmono-data1.0-cil* libmono-data2.0-cil* libmono-getoptions1.0-cil* libmono-getoptions2.0-cil* libmono-i18n1.0-cil* libmono-i18n2.0-cil* libmono-posix1.0-cil* libmono-posix2.0-cil* libmono-security1.0-cil* libmono-security2.0-cil* libmono-sharpzip0.84-cil* libmono-sharpzip2.84-cil* libmono-sqlite2.0-cil* libmono-system-data1.0-cil* libmono-system-data2.0-cil* libmono-system-web1.0-cil* libmono-system-web2.0-cil* libmono-system1.0-cil* libmono-system2.0-cil* libmono0* libmono1.0-cil* libmono2.0-cil* libndesk-dbus-glib1.0-cil* libndesk-dbus1.0-cil* libtaglib2.0-cil*

    Granted most of these are libraries, but Beagle? Thunderbird add-ins? What other TomTom legal landmines await us in the future?

  23. Leo Says:

    @scottFuz: agreed, 100%. Note that Novell has always been involved:

    http://boycottnovell.com/

    Thanks for the link to remove mono!

  24. Zohib Says:

    toss mono in the dumpster its probably some microsoft trick.

  25. Scott Says:

    Don’t forget that this “announcement” comes from the blog of a low-level Microsoft employee and has yet to be confirmed by anyone at Microsoft authorized to speak for the company. Nothing has changed.

  26. Scott Says:

    The Free Software Foundation issued a statement estimating the value of the Microsoft Community Promise concerning ECMA 334 and 335 at http://www.fsf.org/news/2009-07-mscp-mono.

    Their issue with the Promise is that it is too narrow and provides loopholes that allow Microsoft to sue developers and users if they really want to, and that their recent behavior demonstrates that they intend to do so.

    From their statement: “If Microsoft genuinely wants to reassure free software users that it does not intend to sue them for using Mono, it should grant the public an irrevocable patent license for all of its patents that Mono actually exercises. That would neatly avoid all of the existing problems with the Community Promise: it’s broad enough in scope that we don’t have to figure out what’s covered by the specification or strictly necessary to implement it. And it would still be in force even if Microsoft sold the patents.

    “This isn’t an unreasonable request, either. GPLv3 requires distributors to provide a similar license when they convey modified versions of covered software, and plenty of companies large and small have had no problem doing that. Certainly one with Microsoft’s resources should be able to manage this, too. If they’re unsure how to go about it, they should get in touch with us; we’d be happy to work with them to make sure it’s satisfactory.”

  27. GNOME in .NET – Not on my desktop! « OPEN BYTES – cave quid dicis, quando, et cui. Says:

    [...] lets have a look at some other users comments from http://www.workswithu.com/2009/07/07/mono-now-safe/ in regards to MONO and its integration into a Linux distro near you! Embrace, extend, extinguish. [...]

Leave a Comment

Blog-Powered Site
By ContentRobot