Mads said:
The current consensus is, that if you look at this code provided by MS, you
will no longer be able to contribute to Mono.
But what does Microsoft say? A lot of people, especially those who are
more inclined to work with open-source and especially with Linux, have a
tendency to view Microsoft as a monolithic, power-hungry, lawyer-driven
company. And as with all great myths, there's probably at least some
grains of truth behind that view.
But without any evidence that suggests Microsoft's own position is that
looking at .NET code causes a person to be legally unqualified to work
on Mono, it's just rumor-mongering and not necessarily by people who
normally view Microsoft in a positive light anyway.
(Note: at this point it's been well-explained that the Microsoft license
would not permit the legal use of their source code as a foundation for
Mono or similar projects. So at this point, my original question has
been answered and I believe I understand that answer. I'm just
following the subsequent questions that now apply in that context).
So, no...you can't just port the .NET source code over to other
platforms. But where's the basis for the claim that you can't work on
Mono and also step through .NET code when you're debugging something else?
The problem is, that by looking at the code (and that is all you can,
really), you place yourself at risk for legal actions from MS against you,
if you happen to produce code that "looks" like their code.
You are already at risk for legal action, if you happen to produce code
that "looks" like their code. Especially if you work on Mono. Even
without source code, it is not difficult to reproduce in separate source
code the same algorithms used in a given piece of software, if that's
your intent and you use the compiled software you're trying to emulate a
as a reference.
Working on Mono, you are intentionally trying to reproduce the behavior
of the .NET Framework, and even without inspecting the compiled .NET
Framework code it would not be surprising if you should happen to on
occasion implement things in the same way they are implemented in .NET.
But how are you to prove to Microsoft in those cases that you didn't
actually use their compiled code as a reference?
They don't have to show you their source code for them to file legal
action on the basis of a copyright violation.
It seems to me that what puts you at risk for legal action (such as that
risk may be) is the fact that you work on Mono. This is true even
without the .NET source code.
Microsoft didn't need access to the Stacker source code for them to be
sued over DoubleSpace. All they needed was an implementation that
looked sufficiently like Stacker's implementation.
This is a real risk, and should not be ignored. Please note, that MS license
does _not_ allow you to use their code, but actually place you in risk of
legal actions.
Well, that's true of any published source code that carries an attached
license. Even regular "open source" stuff generally includes various
license requirements that can form the basis of a lawsuit of someone
believes you misused the source code.
So, for example, either you cannot look at any source code covered by
the GPL, or you must provide all of the disclosures and other
requirements made by the GPL, even if you did in fact not actually
intentionally reuse the source code you looked at. If you want to
follow the legal liability philosophy you're stating, that is.
Granted, in your specific case dealing with an open-source project your
own work may naturally already comply with the GPL, even if you don't
have a need to. But the more general "problem" still exists; it's
certainly not unique to Microsoft's publication of source code here.
As far as the question of actually being sued goes...
Not having any legal expertise, I wouldn't even try to make a claim as
to the reality of the situation. However, I suspect that fears of legal
action are highly over-inflated for a given individual, assuming no
actual misuse of the code happened (that is, assuming you didn't
actually copy the code or some non-obvious technique, that sort of thing).
Granted, there's a lot of gray area, but I think an individual worried
about being sued by Microsoft has, in most cases, a perception of their
value to Microsoft that is probably too high.
This probably wont be a problem to most, but as I have contributed 5-6 minor
patches to Mono and my company are producing more and more open source
software, I probably will not look at the MS code at all. Would be stupid
of me, really.
I think your concerns are overblown. But I'm not qualified to give
legal advice, so I won't try to argue the point.
If you feel that
working on Mono and also in other situations using the .NET source code
are mutually exclusive, it's certainly true that that's the safest bet
if your highest priority is to avoid legal trouble at all costs.
Pete