MSLU is not "open source" but I think that is really okay

by Michael S. Kaplan, published on 2005/01/13 02:06 -05:00, original URI:

A few days ago I posted about the Updated EULA for the Microsoft Layer for Unicode (MSLU) and one person left the following comment:

Unfortunately, it seems that the new EULA for MSLU is still not compatible with open source software. I know that MS sees open source as a bit of a threat and so is trying to close it off as much as possible, it is just disappointing that something as useful as MSLU is closed off this way. The clauses in question are 3.1 (ii) windows only, (iii) no less resrictive agreed EULA and the end clause of 3.1, no further redistribution. I would love to be wrong in my interpretation of this however...

I replied but I got a bunch of other questions about the reply so I thought I should make it a regular post, with clarifications. Here goes, wuth my response to the above comment and question, with all of the new clarifying text I am adding marked in bold. Note that I am not a lawyer, so I am not really talking about legalities. This is juat a developer talking to a bunch of other developers about how the world looks to me:

I am not sure what difference it really makes in this case whether MSLU was compatible with open source for the following reasons.

1) It is not possible to use unicows.dll on any platform other than Win95, 98, or Me. Ever. Not even a simulator of one of them there operating systems, because the DLL depends on a lot of Win9x internals that do not exist anywhere else. In tests here, even on an NT platform a non-console application would tend to crash rather quickly when forced to run with MSLU, which is the reason that you cannot run it any such a speciaal mode.The platfrom limitation in the EULA has the same de facto power as a clause enforcing gravity (which is to say, the circumstances of reality force it on the developer). 

2) You are allowed to redistribute it (unicows.dll) with a product; the only rule against redistribution of unicows.dll beyond the platform stuff is intended to keep the licensee who agreed to the EULA as the one who architects usage, which is to say who plans out the application that calls the APIs provided by MSLU. Everyone else is a consumer of calls. If you want to be a producer of calls, you have to agree to the license. So what?

2.5) As a bonus, those who agree to the license get the .PDB file for debugging and the right to call any of the APIs provided in unicows.dll.

3) MSLU is not open source, but it is "open binary" in the sense that you can use a loader override to replace MSLU function calls any time you prefer your own implementation. This has always been true and in fact I know of people who use their own (already written) Unicode layer based on Avery Bishop's article Design a Single Unicode App that Runs on Both Windows 98 and Windows 2000 but then use the MSLU lib file to do the platform gating since its cooler and more automatic -- all legal and does not even require you to agree to the MSLU license since you are not using any components in the redist. You do have to agree to whatever license the Platform SDK might require, but I assume that it does not have objectionable limitations as far as unicows.lib is concerned since nobody hs ever complained about those terms to me.

4) All the redist rules intend to say are that you cannot redistribute the package to producers of API calls to MSLU unless they agree to the same license that you did (or one that is more restrictive). So the open source project that can run on Win9x just has to have the developers agree to the same license you did and thats it. Easy. An open source project that is designed to be able to run on Win9x is entirely allowed as long as the people who are involved in the project do that one thing. If not, then the only limitation on them is that they would not be able to run it on Win9x. Which they may not have even cared about doing anyway?

So the only thing that is "blocked" is a thoretical open source project which uses MSLU but which ships with source and which you do not want to have them agree to the EULA and which they want to run on Win9x as well. MSLU is provided free of charge to help encourage people to write Unicode applications (more info in the article Cathy Wissink and I wrote), so the EULA is really not that high of a price to pay to be able to use it.

That theoretical open source project has a fairly outrageous set of conditions, and I will lose no sleep over hurting any community of users that is so unwilling to consider restrictions of any kind that they probably would have objected to the gravity clause had we put it into the EULA too....

I was the person who worked really hard to make sure the EULA would accurately reflect the spirit and intent under which the Microsoft Layer for Unicode on Win9x Systems was originally provided (large companies who asked for EULA clarifications would probably have been happy with just a letter from the Legal department, but regular developers would not be helped in that case).

I personally have no problem with any form of collaborative development project anywhere, and that includes open source projects. If I were coming do to work for someone I'd hope for at least that much respect was paid to me. It can't hurt that much to give that same respect to Microsoft, at least long enough to hit a YES button in a dialog. :-)

# Jeremy on 13 Jan 2005 5:04 AM:

Every time I see "unicows.dll" I get a mental image of a herd of cattle with horns in the middle of their foreheads.

# Larry Osterman on 13 Jan 2005 6:07 AM:

Aah, but I've been told that just requiring the developers of the project to agree to a eula to work on the code violates the "spirit" of open source. One of the principals of OS development is no mandatory licences of any form, and MSLU, while not restrictive, is a mandatory license.

One thing to keep in mind is that discussions like this aren't practical - they're religious.

To use a politically tinged example that has a huge potential of thread hijacking, it's the same thing as saying to an atheist that it's really not an imposition for them to have to listen to a prayer in school. Or a Hindu to eat beef, or an orthodox Jew or Muslim to eat pork.

IANAL, bigtime. IANAOSA either. But I've read enough discussions on /. to think I understand the logic.

# Anonymous Coward on 13 Jan 2005 10:34 AM:

Having navigated EULA waters before, I greatly appreciate the effort you're putting forth here to make these tools as accessible and distributable as possible.

Just a couple questions...not really about the spirit of open source but the logistics in creating a work under the GPL with the redistributable files.

> to distribute the Licensee Product
> containing the Redistributables
> pursuant to an end user license
> agreement (which may be
> “break-the-seal”, “click-wrap” or
> signed)

Does that mean a typical source distribution that includes a LICENSE text file would be violating the EULA?

> You also agree not to permit
> further distribution of the
> Redistributables by your end users

Does that mean if I send a ZIP containing source and the redistributable binaries to somebody they cannot in turn send that ZIP to another person?

> Your license rights to the
> Redistributables are conditioned
> upon your (i) not incorporating
> Identified Product into or
> combining Identified Product with
> the Redistributables or a
> derivative work
> thereof...Identified Product
> includes, without limitation, any
> Product that requires as a
> condition of its use, modification
> and/or distribution, that any other
> Product incorporated into, derived
> from or distributed with such
> Product must also be (1) disclosed
> or distributed in source code form;
> (2) licensed for the purpose of
> making derivative works; or (3)
> redistributable at no charge.

? That seems to preclude creating any software under the GPL that uses the redistributables.

# Michael Kaplan on 13 Jan 2005 10:55 AM:

Hi AC!

Well, this gats into a lot of legal issues that I really do not know the answer to. I understand many technical issues but my only real exposure to the law was being arrested once in Missouri for driving an uncredibly unreasonble speed in an unlikely vehicle....

# G* on 13 Jan 2005 10:56 AM:

@Larry Osterman

you write

"One of the principals of OS development is no mandatory licences of any form"

Isn't GPL a "mandatory license of any form"? As in linking a component that is GPL, not LGPL => app needs to be GPLled as well

# Michael Kaplan on 13 Jan 2005 10:58 AM:

Jeremy -- you should see all of the cows around here (including a print of the Andy W's "Cow Wallpaper" currently hanging in my office!).

Larry -- Yes, I hear you -- though the original person who posted was not violating any license but felt that the redist issues made any use in open source impractical due to its platform limitations, etc. I just did not see how it really did that. Others may have felt that he was betraying the spirit of open source by even agreeing to the license....

# Michael Kaplan on 13 Jan 2005 12:28 PM:

Hi G* --

There are certain extremists who look at any license outside of GPL or LGPL to be a type of violation. They look generally at GPL and LGPL as being ways to protect the rights of open source rather than of the code itself or the people who write it.

Personally, I do not have an opinion about GPL, LGPL, IPL (IBM Public License), or any others, other than my opinion that legalities are a pain no matter what their intent.

But I do not see those who wish to protect open source as any better or worse than people who wish to protect their source code or the IP within it. Everyone has different priorities, and it makes sense for licenses to reflect that fact.

# Dean Harding on 13 Jan 2005 2:40 PM:

@AC: the way I read it, it just means that whoever you send the source to needs to download/install their own copy of MSLU. It's like saying you can't send cl.exe with your source, that you assume whomever you're sending the source to has their own compiler.

# Michael Kaplan on 13 Jan 2005 3:07 PM:

Well, technically that is not true -- only the people who are running it on a Win9x system need to have the DLL. And anyone is allowed to redistribute it all as long as they do so with a license that has the same restrictions.

If someone is working on a project, why would they not agree to the rules of the project? And who would trust their checkins if they would not?

# Petr Vilir on 7 Feb 2005 12:22 AM:

You just don't get it. You write "So the only thing that is "blocked" is a thoretical open source project which uses MSLU but which ships with source and which you do not want to have them agree to the EULA" (that must be at least as restrictive as unicows one!). But this is oxymoron: by definition, Open Source licence always permits things that unicows licence does not -- it can't be shrink-wrap etc. kind of licence, it must allow redistribution. Both of these *are* forbidden by unicows licence, so how can you claim there's no problem?

Please, stop being annoyed at what you consider unreasonable demands and give some thought to this document:
It should give you better understanding of what "Open Source" means and hopefully you'll understand where the oxymoron is then.

# John on 7 Feb 2005 12:51 AM:

If you required that the software must apply at least this restrictive terms to *unicows redistributable only* (e.g. forbidding further redistribution by the users of unicows.dll, but allowing redistribution of the [thus incomplete] rest), that would be OK, but you are forcing this on the rest of the software. IMHO this is just plain stupid - the people who have problems with this are trying to provide software for *your customers*, for Christ's sake! Most of them couldn't care less for Windows 9x themselves (I certainly don't), but they do care for their users that are unfortunate enough to be using Win98 or even Win95.

Nowadays, unicows.dll is necessary extension of Win9x OS, because Unicode apps are more and more common, so why can't you just license it under same terms as other OS' DLLs. What's the matter?

go to newer or older post, or back to index or month or day