70 Responses to “A puzzle wrapped in an enigma wrapped in bacon”

Does this mean Microsoft is assuring everyone that C# and CLI implimented for model are fully compatible with the GPL and that they will never sue anyone who uses it in a “GPL” compatible way? If so this is wonderful.

@Joseph Smidt, this is indeed the point of the statement. The relevant part from the Community Promise FAQ:

‘Q: I am a developer/distributor/user of software that is licensed under the GPL, does the Community Promise apply to me?
A: Absolutely, yes. The CP applies to developers, distributors, and users of Covered Implementations without regard to the development model that created such implementations, or the type of copyright licenses under which they are distributed, or the business model of distributors/implementers. The CP provides the assurance that Microsoft will not assert its Necessary Claims against anyone who make, use, sell, offer for sale, import, or distribute any Covered Implementation under any type of development or distribution model, including the GPL. As stated in the CP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding Microsoft’s implementation of the same Covered Specification. This type of “suspension” clause is common industry practice.’

“…If you file, maintain, or voluntarily participate in a patent infringement lawsuit against a Microsoft implementation of any Covered Specification, then this personal promise does not apply with respect to any Covered Implementation made or used by you…”

So if you’re a company that uses Mono to create a proprietary app to sell (with patents attached to it), and Microsoft decided to muscle in on your territory and step on your patents, you can’t sue or you’ll get sued for touching CLI/C#?

NB: Yes – this is a business-law minded question.

In terms of OSS – I do still hope there is a press release from Microsoft to show this. It’s good you have a blog as a source, but how legally binding is a blog? (Note the official link you gave me does not specify C#/CLI anywhere)

Don’t get me wrong – I’d like to see C# legally available for Linux – It’s my main language at this point in time.

Only if you sue Microsoft for patent infringement on the covered specifications.

The particular case this prevents is for example IBM adopting Mono, and then they find out that they have a patent that .NET infringes, and they decide to sue Microsoft. When they sue Microsoft over this patent that .NET infringes, Microsoft is entitled to suing them over the patents they own that IBM infringes in Mono or that they might use in Java for example.

This is indeed good news. Zealots abound on all sides, *nux not being immune. Jo, you’ve done a great job, imho, in espousing the virtues of .Net, and in particular Mono. RMS, et al, are currently engaged in the very FUD they accuse the MS camp of partaking. I’ve particularly enjoyed following comments from RMS and others followed by the retorts from the Mono crowd. It seems to RMS that FOSS is great, so long as it’s only written in C. C++ it seems is even a stretch at times. Long live Mono!

@Jesus Christ: Good for you to remove it from your installs. That’s the beauty of choice. Shouldn’t everyone have theirs?

I spent a lot of time talking about the FUD around Mono, and how it hurt Microsoft: many customers want the option of writing cross-platform code, and so they were choosing languages other than C# because of the Mono patent risk. (A risk that other platforms like Java do not have.)

1. Only the implementations that are complete implementations of all required parts of the respective standards are covered. If Microsoft changes the spec – you are screwed (until you fix it), if you want to implement only part of it (for speed, for example) – you are screwed, if you want to cut out a chunk of code from a complete implementation and use that in you software – you are screwed.
2. Only patents directly required for the spec are covered, if you implement something mentioned (but not required) in the optional parts of the specification and they have patents on that (FAT and MS Office document formats, compatibility formats, …) – you are screwed.
3. If there are patents that Microsoft has licensed from third parties for use in this spec with patent licences for all their users – guess what, you are not covered and thus you are screwed.

I guess a real lawyer would be able to poke more holes in that to find other ways to screw anyone they would really want to screw, if needed. So if there are software patents in your country (or if you deal with a country that has SW-pats) – you are screwed. Donate to FFII.org to help get rid of software patents, if you really want a permanent solution.

There has been a lot of discussion lately about Mono (a Free Software implementation of Microsoft’s .NET platform) and the GNU General Public License (which is the license behind most of the software that makes up a GNU/Linux distro).

The Mono project have been working for a good few years now, to make a .NET compatible platform for GNU/Linux systems, just as .NET works on MS Windows systems for the language they call “C#”. How successful they have been at this, I am not in a position to judge; I don’t write .NET code and I don’t use any .NET software.

As many people may be aware, the Microsoft way of distributing software, and the GNU/Linux way (particularly the Debian GNU/Linux way) of packaging and distributing software, are quite different.

Microsoft’s approach may be brutally summed up as “We wrote it, we own it. You may pay us for the privilege of using it.”
The Debian GNU/Linux approach may be similarly butchered as “It was written under a Free Software license; you get it on the same terms that we got it – we (and you) can take it, use it, change it, redistribute it; but it can’t be redistributed it under different terms than these.”

The biggest difference here, is the redistribution. You can’t resell a modified Windows; you can resell a modified GNU/Linux. So what is in a GNU/Linux distro matters. So when it was suggested that the next Debian default (and full) install would include an Mono app called Tomboy (which has a non-Mono equivalent, GNote), Richard Stallman (amongst others) stated his concern about the potential legal (patent) issues involved. Stallman says, “If we lose the use of C#, we will lose them [other apps written in C#] too. That doesn’t make them unethical, but it means that writing them and using them is taking a gratuitous risk.”

There has been some silly mud-slinging since, which is best ignored. Today, though, this link has been brought to the attention of the GNU/Linux community: http://www.microsoft.com/interop/cp/default.mspx. It claims a publication date of September 2007, with an Updated date of Feb 2009. This link has been cited by some pro-Mono people as a response to the anti-Mono coverage.

However, it does not seem to provide any clear assurances;

Q: What if I don’t implement the entire specification? Will I still get the protections under the CP?

A: The CP applies only if the implementation conforms fully to required portions of the specification. Partial implementations are not covered.

That is a long-winded way of saying “No”.

Q: Does this CP apply to all versions of the specification, including future revisions?
A: The Community Promise applies to all existing versions of the specifications designated on the public list posted at /interop/cp/, unless otherwise noted with respect to a particular specification.

Or – in other words: “No.”.

Q: Is the Community Promise intended to apply to open source developers and users of open source developed software?

A: Yes. The CP applies directly to all persons or entities that make, use, sell, offer for sale, imports and/or distributes an implementation of a Covered Specification. It is intended to enable open source implementations. Because open source software licenses can vary you may want to consult with your legal counsel to understand your particular legal environment.

It is not clear to me (IANAL) what the definition of a “Covered Specification” is.

Q: Is this Promise consistent with open source licensing, namely the GPL? And can anyone implement the specifications without any concerns about Microsoft patents?
A: The Community Promise is a simple and clear way to assure that the broadest audience of developers and customers working with commercial or open source software can implement the covered specifications. We leave it to those implementing these technologies to understand the legal environments in which they operate. This includes people operating in a GPL environment. Because the General Public License (GPL) is not universally interpreted the same way by everyone, we can’t give anyone a legal opinion about how our language relates to the GPL or other OSS licenses, but based on feedback from the open source community we believe that a broad audience of developers can implement the specifications.

Bit of anti-GPL FUD there – the GPL is clear enough, thank you. This is a question about the Microsoft license, not the GPL license.

Q: I am a developer/distributor/user of software that is licensed under the GPL, does the Community Promise apply to me?

A: Absolutely, yes. The CP applies to developers, distributors, and users of Covered Implementations without regard to the development model that created such implementations, or the type of copyright licenses under which they are distributed, or the business model of distributors/implementers. The CP provides the assurance that Microsoft will not assert its Necessary Claims against anyone who make, use, sell, offer for sale, import, or distribute any Covered Implementation under any type of development or distribution model, including the GPL. As stated in the CP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding Microsoft’s implementation of the same Covered Specification. This type of “suspension” clause is common industry practice.”

Hang on – so it does “absolutely, yes” cover me, or not? I think that the answer here is “No.”

As a Debian GNU/Linux user, I do not want, will not have, and maintain the freedom to not have, Mono as part of my OS environment.

As a GNU/Linux professional, I very strongly suggest Sun’s Java implementation over any others, for compatibility reasons – even having multiple JREs installed in different JAVA_HOMEs for apps that require a particular environment. I can not see a need in the Enterprise for a copy of Microsoft’s .NET platform, which can (unless I have seriously misunderstood the situation) only play catch-up with Microsoft’s implementation.

Mono; non-Sun Java – why have them at all? If you want .NET, why not use Microsoft Windows?

1. It states plainly that you have to implement the entire standard and plainly that partial implementations are not covered by this promise.

Using that standard, one of the most important languages on the planet and most important Free and Open Source projects (Cobol and OpenCobol respectively) would never have been able to be implemented, because by their nature new projects are ALWAYS only a partial implementation. Indeed, I speculate that this promise was so written to protect NO ONE, because no one (not even MS) implements specifications in FULL.

So the guy makes a long a very well written post and you answer back with an insult. Just like in the original article. One must gracious in victory as just as must be in defeat. You and your colleges promoting Mono, C# and .NET have been making posts escalating in insulting and offensive (intentional offensive) content in the past few weeks. Before was understandable given the basic and also offensive rhetoric from some on the anti-mono camp, but now…? Now that you have one clear argument that destroys most of theirs you still behave like an ill educated schoolyard kid.

Most people declaring opposition need a clear and unambiguous legal status for Mono. This is understandable. They got it and they and you can move on. The others are just trolls, perhaps you are too.

As for the promise the following Q&A troubles me:

Q: Does this CP apply to all versions of the specification, including future revisions?

A: The Community Promise applies to all existing versions of the specifications designated on the public list posted at /interop/cp/, unless otherwise noted with respect to a particular specification.

We already had, how many versions: v1 v1.1 v2 v3 v3.5 and in the future v4. So which ones are covered and which ones are not. Will the promise automatically cover future versions or will Microsoft release a different one for each version. What will happen to Mono if they don’t release future versions under the same promise?

@Jerome, When the “anti-Mono” people stop comparing what I do to spreading cancer, calling me some kind of Microsoft employee or shill or astroturfer, or talking about how I should be evicted from the projects I collaborate on, you get to criticize my tone. Until then, I can act as borderline psychotic as I do in real life without a twinge of guilt.

As for your versioning situation: firstly, your numbers are for the .NET framework (and explicitly ignore my reply to the guy where I mention that v3 and v3.5 are just add-ons for v2). The CP doesn’t relate to .NET releases though, it relates to ECMA 334 and 335 releases, of which there are 4 published editions at time of writing (corresponding to .NET 2.0), the most recent having been issued in June 2006.

The exact wording of the CP page once it appears will determine whether they are covering future versions or simply <=4. How will this affect Mono? It doesn't matter – Mono doesn't NEED to keep chasing Microsoft. Only the anti-Mono folks obsess about it – ignoring the places where Mono is the first-class implementation with its own advances and advantages. Just as Mono doesn't implement (or need) all the non-Standard libraries shipped by Microsoft, it doesn't need to keep chasing a standard marked as off-limits either.

@Steve Parker, There are exactly two versions of the core ECMA 335 Base Class Library – 1.1, and 2.0. These are the libraries that this latest move by Microsoft covers. When you hear about “.NET 3.5”, there is no such thing – “.NET 3.5” combines .NET 2.0, with some add-on libraries such as the Windows Presentation Foundation, plus a compiler for C# 3.0

Mono already implements the BCL libraries and CLR (and C# 3) – as far as ECMA 334/335 are concerned, Mono is complete. There’s nothing more to catch up with there. Done. Dusted. These released spec versions are also cemented – they could possibly change in a future version-incremented release, but these libraries are designed from day 1 to be parallel-installable, so apps made for the 2.0 BCL would continue to run in the future on any 2.0 implementation (be it Mono or MS.NET or whatever)

So, we’ve established the core parts as a non-issue. What other than those? Well, that’s more of a question of perspective. Mono implements a number of libraries which Microsoft doesn’t, such as Cecil or GTK#, and has a number of advanced language features which Microsoft hope to adopt in a future version of Microsoft.NET, such as Mono.Simd and the csharp REPL shell. Similarly, Microsoft.NET contains a number of non-standard libraries such as System.Windows.Forms which are used by Windows developers, but broadly uninteresting to Free Software developers. These libraries are the only real scope for “catch-up” – and they’re also pretty much useless for anything other than porting Windows apps to Linux. For pure ground-up Mono apps, we don’t need them.

Interestingly, those ground-up Mono apps should also run on Microsoft.NET – Mono’s libraries (such as GTK#, Mono.Addins, Novell.Directory.Ldap and so on) are cross-platform, and should run on any spec-compliant CLR, so apps should be portable with a minimum of debugging, and without the need to either restrict onesself to the “basic” Base libraries nor use potentially risky Microsoft libraries.

So is Mono “always playing catch-up”? Not on anything anyone who isn’t porting from Windows cares about. And Mono wasn’t created with that goal in mind. For making apps which look and feel at home on Linux, we’ve had what we need for years.

Additionally, people will be happy to know that the ECMA committee in charge of ECMA 335 is currently meeting and extending the current standard, hopefully there will be an updated version by the end of the year.

@KeithCu, So because saw the word ‘Windows’ in approximately 50 words into his response you decided to be an ignorant fool and not read it? Then you decided to comment on it claiming that mixing an OS with a programming language is idiotic? Well, if you had read the response you would realise that it doesn’t mix an OS with a programmign language.

“Why do you mix a programming language with an OS? That is so idiotic I never bothered to read the rest of your presumably just as ignorant words.”

That’s not the most idiotic thing I’ve read, but it does get into the top 20 as you have clearly (mistakenly) mixed up a programming language and a library.

@Steve Parker
It’s pretty easy for those who doesn’t even care about using Mono to get the wrong impression that Mono can only be playing catch-up with Microsoft .NET. Mono has support for SIMD, which CLR doesn’t yet have; Mono’s C# compiler can be used as a service, which is not in the Microsoft implementation until v.next; Mono has a great full-AOT model that allows it to run on iPhone and PS3, etc. If I want “.NET” (no, I just want C# + CLI instead) on the iPhone, Microsoft’s implementation just doesn’t fit.

I have heard it said the Banshee does not depending on any implementation of .net libraries which are not covered by the ECMA standard.

However ADO.net is not covered.
Banshee uses sqlite, it talks to sqlite using Mono.Data.Sqlite, which according to the mono website provides a full ADO.NET 2.0 API interface. And which uses the System.Data namespace. Can you please explain how this is not using an ADO.net implementation. Or if it is why this is OK.

I am not anti mono, I am actually creating my own mono application which uses sqlite and want to know what alternatives their are to using ADO.net because it is not covered by the ECMA standards.

If the anti-Mono crowd were provided with their GPL-compatible patent grant for Mono, which they spend so much time talking about the absence of, how would they react?

If only that were true.

1. The promise is not compatible. Not only it applies only to *you* but also the GPL doesn’t allow you to infringe other’s rights (even if they promise not to sue you), you need the rights to do it, but Microsoft doesn’t give you them, they ONLY promise not to sue.

2. GPL’ed and LGPL’ed software (depending on your source) is from 65% to 85% of all Free Software, so compatibility with it DOES matter. Microsoft knows this, but they don’t fix the promise, do they?

3. The FAQ is unbinding, and even the mention of the GPL/LGPL is not reassuring in any way. It’s not even a legal opinion.

4. Even though unbinding, it is revealing! If you want GPL/LGPL compatibility you need the rights to the software you got (not a promise). Those rights are obtained through a RAND or RAND-Z license. Microsoft hasn’t given that license to anyone who has asked for it.

In the Technical Commitee I am in which analysed OOXML they *promised* to bring it. They never did. They *promised* to give it to a company that asked for it. They never did.

So how binding are their promises? Not a single cent outside the USA, that’s for sure.

That covers every possible person who could possibly use .NET. If you’re not a developer, distributor or user, what are you? You cannot be sued with this promise.

So you think it is right to be an infringer of patents? In Europe they’re trying to make this a public crime (one failed attempt so far but you never know) and in that case there’s no promise that will save you.

The only way you will lawfully do it is with a patent license that no one knows the terms. This happens for two reasons:

1. FUD is much more useful for Microsoft
2. It would clarify wether GPL is or isn’t valid, and any choice would be bad for Microsoft because
a) if valid, then they’d be feeding an eco-system that’s the death of them
b) if clearly invalid, people wouldn’t even touch it and it would be the death of them.

It’s irrelevant whether they promise to sue because it you are not allowed to distribute GPL’ed software if you don’t have enough rights to pass along the four freedoms.

You’re just being promised that you won’t be sued, you’re not being granted rights of any kind.

@lspci, actually that’s not quite true. IANAL, but I think Microsoft could (quite easily) have a patent on some aspect of implementing a GUI on top of .Net that’s broad enough to cover Gtk#. For example, they might target it at using the .Net method of handling callbacks for GUI events. The reason Microsoft would want to target it to .Net specifically is that it severely reduces the amount of prior art that could be used against the patent. A patent that also applied to Gtk+ would be much harder for Microsoft to defend.

Since the Microsoft patent agreement only covers patents required to use the ECMA bits of .Net, and they don’t include any of the GUI aspects, any such patent wouldn’t be covered by the agreement.

Still this does not clear up the patent status of the class libraries like winforms that are currently with mono shipped under MIT license.

Personally I would love the patent issue completely cleared up even if it is that all the MIT licensed bits have to move to the non-free section of debian distrobutions.

Really if C# is a great language and the MIT bits are only required for Windows .net compatibility you should be able to keep on developing without them.

So basically you had no document that provided any patent protection for all these years. Thank you for being a fool saying we had no right to be upset. Without pressure this correction of the patent status would not be going on.

Join US in putting the pressure to get all the patent issues sorted out for once and all even at the cost of using a few class groups and having to build new ones.

It still leaves .net technical issues of speed and lack of system integration. This in its own right is a fairly large thing.

So basically you had no document that provided any patent protection for all these years. Thank you for being a fool saying we had no right to be upset. Without pressure this correction of the patent status would not be going on.

If Novell were the ones giving you the Community Promise, you would be right, this would be incompatible with the GPL.

But Novell is not involved in any of this. This is a third party giving you a grant.

Very much like IBM saying “We will not sue you for these patents” even if they do not place them under the GPL (as they have done already). The fact that they make that promise does not make a third party piece of software (Linux) GPL incompatible.

No, I did not mean that the Community Promise itself would make things GPL incompatible.

But the point remains that the Promise, from its very text, does not actually give any new rights. No new rights have been granted to distribute Mono; merely a freedom from the enforcement of those rights held by Microsoft.

If Microsoft reserves rights to the underpinnings of Mono’s C# implementation, then even if it agrees not to sue, the result seems to be that Mono and Mono programs cannot be distributed under GPL. GPL, from a general view, requires that the rights are expressly given — which requires that you possess the rights in the first place.

So the Promise is not inherently GPL-bad; it’s just irrelevant, since it doesn’t actually legally empower anyone, just promise not to prosecute them.

[Not a lawyer, but this seems to be the gist of the Fedora-Legal posts. And it makes logical sense, at face value.]

GPLv2 says you cannot redistribute if you have conditions imposed upon you which contradict the GPL. GPLv3 says you cannot redistribute if you have a specific patent license that is discriminatory. The MS promise is neither of these things.

If you think about it, this isn’t radically different from other well-known legal texts, such as the GPL. The “[mere] freedom from the enforcement of those rights” applies there too – otherwise, people would not be able to prosecute those who hadn’t adhered to the license. If you license software under the GPL, you are not giving up any rights, nor are you sub-licensing them, and you can enforce them at any point.

oiaohm Reply:July 10th, 2009 at 12:06 pm

IBM issues patent rights to particular licenses ie a particular list of condutions. As long a code is shipped under those condutions any person recieving gets the rights. So even creating something not related to a standard by IBM would also acquire the rights as long as it ships under the right licence. So yes anyone to use that license gets those rights to pass on to there users.

Now this is not a breach of GPL. Since the rights are transferable. Now shipping under a licence IBM has not approved you basically did not get the rights in the first place.

There is no legal way to back out of the way IBM does it. There are deeper legal inspection of the CP is need to find out if it is or is not GPL compadible.

MS might be able to back out on Mono by claiming particular areas don’t follow spec so they can sue. CP is not as solid as what IBM gives.

Hang on one sec. I meant that Mono needs the right to distribute itself, just like you meant.

Suppose A) there exist patents for even the mere implementation of the base ECMA standard. This is the limiting case that everyone is talking about.

If so, do those count as GPL-incompatible conditions? Since the GPLv2 requires that you can legally redistribute and modify, but patents infringement prevents that, it would seem that Mono could not legally distribute, given A.

Now, the Promise does not B) relinquish patents or C) grant redistribution and modification rights of any kind. [1]

So in this case, the MCP changes nothing from the GPL’s standpoint: Mono’s distribution would still be invalid, if it indeed had possible patent infringement from the standard (A).

If A is true, then the GPL’s standpoint (does Mono have full right to distribute itself under the GPL?) cannot be fulfilled unless Microsoft explicitly grants rights. “Promise not to sue if you redistribute” is obviously not the “right to redistribute” that the GPL requires.

And from the nature of the Community Promise itself (we promise not to sue if you implement the standard — implying they -can- sue if you implement the standard, but will not), it seems to suggest that A) is indeed true.

The Promise does nothing to resolve the real ambiguity — that is, are there patents in the base standard?

In fact, it ignores the question.

1. Note that the FAQ on the Community Promise page says that you need a separate RAND agreement from Microsoft to have actual redistribution rights.

Sorry, but that’s an incorrect interpretation (and this applies to many people above discussing GPL compatibility as well, not just you).

Mono is, and always has been, free software released under the GPL/LGPL (with respect to the runtime and the C# compiler(s) – its class libraries are MIT/X11, those relevant are covered by the other spec). Everything about Mono is GPL compatible. The “non-free” criticism has come in the form of patent FUD, saying that the Mono project was recklessly putting the rest of the community at risk by distributing and encouraging software that was {possibly|likely} subject to Microsoft-held patents.

The Community Promise from Microsoft now states that implementations of the ECMA specs are not vulnerable to patent litigation from them. This changes nothing about the GPL rights and restrictions on Mono, whatsoever. As far as “are there patents in the base standard?”, it resolves them pretty unambiguously: it doesn’t matter.

I am fine with my lay interpretation of GPL-compatibility being incorrect.

Please clear one point up for me: assume, a priori, that the FUD was true, and there are indeed patents in the spec that Mono’s C# violates. Could Mono then be distributed, in the -absence- of any such Community Promise not to litigate?

As an aside, I think you put perhaps too much faith in the Community Promise. It is a specific set of conditions under which you have protection from litigation. Microsoft has not actually completely waived their right to litigation on behalf of any patents in the C# standard, and several finer points (incomplete implementations, deviations from spec) are indeed not mentioned in the text (and the text, not the spirit of the agreement, is what lawyers use).

Given this, it seems a little unwise to claim that patents in the standard would not matter, as Microsoft’s promise of protection is enumerated, and not without qualification.

@Michael, Could Mono be distributed? Sure, absolutely – but you’d be taking it upon yourself to deal with the risks associated, just as you accept risk of patent litigation for using the Linux kernel in the absence of patent protection from everyone in the world, or using things like media players in the absence of patent grants.

Noted. I had forgotten the example of alleged patent infringement in the Linux kernel.

So distribution of code seems to be a separate legal issue aside from whether that code infringes on patents. Even FreeType, then, has subpixel-filtering and BCI code that is distributed, though not in binary form, and is patent-encumbered.

I think I understand. Patent infringement itself is not inherently a contradiction to the GPL.

Fedora’s case against the Community Promise then lies merely in the desire to reduce litigation vulnerability as far as possible, and not actually any licensing problem. And anxiety of taking on that risk is up to each individual distribution, and has been alleviated somewhat by this Promise.

Linux kernel is Different. Linux kernel has patent agreements covering large sections of its code base.

This makes taking on the Linux kernel a major risk. Linux Kernel does not have to depend on OIN to defend itself. Remember SCO case numbers of interested parties with weapons that came out at the start of that.

With the Linux Kernel you can be sure Linux foundation will be there to back you up in any case of patent attack. With Mono will Novell be there to protect those who get attacked or will it just be lining up to sell licences.

Freetype has an agreement with apple over the BCI code. Notice it don’t build by default you have to pass flag to enable it. If you read Freetype docs you will find where to get a patent license to use there restricted sections.

People are not worried about Freetype patent issue its there in black and white even with a date when the patents will expire and the feature can be enabled for everyone from then on.

Basically Mono does not have all the patent agreements it needs or have enough patents and money to scare attackers away. Linux kernel has enough patents and money that any attacker better be sure there patents are valid because they will fight or code patent usage out of existance.

can anyone address daniel’s question at #15? don’t banshee and f-spot (and maybe other popular apps too) use System.Data? if so, then they are using stuff that is not covered by the CP. should that be cause for concern since that namespace is not part of the ECMA standard?