Cygwin license

Bernard Dautrevaux
Thu Mar 18 23:12:00 GMT 1999

> -----Original Message-----
> From: DJ Delorie [ ]
> Sent: Wednesday, March 17, 1999 1:45 AM
> To:
> Cc:
> Subject: Re: Cygwin license
> OK, massive legal arguments (from both sides) aside, it is Cygnus's
> intent that any programs that are linked with libcygwin.a must be
> distributed under the terms of the GPL.
> RMS's opinion on DLLs (and shared libraries in Unix) is that the mere
> fact that they exist in a separate file does not in itself make them a
> separate program in the eyes of the GPL (which has itself been subject
> to lengthy legal review).  Since the two (your exe and cygwin's dll)
> are inseparable for the purpose of running your program, they are
> legally (according to the GPL) considered *one* program.  

Doeas that mean that my fancy shell script that use some bash-only
feature, and is as such totally unusable WITHOUT bash, must then be
GPLed?... I think this is neither what the GPL says nor enforceable or

> This means
> that the GPL on the dll *does* apply to programs that require it.

You are saying that Micro$oft would be able to earn money from Cygwin
just by saying that any program that requires Windows to run must pay a
royalties to Micro$oft as it falls under some fine-print in Micro$oft
Windows license?... 

I think the only allowed restriction you could put on using a separate
piece of code, or any other code that requires it, is to have the right
to use it. So if someone has the right to use cygwin.dll on his machine,
he can use it and use with it any other piece of code.

If a program do NOT include crt0.o nor libcygwin.a, then I do not see
why it would fall under the GPL more than any program that references
kernel32.dll would have any possible restriction from Micro$oft. You
could say that I'm not allowed to distribute cygwin.dll with my product,
but that will be contrary to the GPL (as long as I distribute its source
code also).  

> If your program can operate *without* a cygwin dll available, then I
> would probably agree that the libcygwin.a code *may* fall into that
> "interoperability" regime (although, at the moment, any program that
> uses libcygwin.a usually does so in such a way that it will not
> operate without cygwin1.dll) if they avoid anything in libccrt0,
> libcmain, getopt, dll_entry, or dll_main, which aren't in the dll at
> all (the remainder of the objects are dll thunks, which can easily be
> regenerated from cygwin1.dll itself with microsoft tools).

If your program can operate without Windows, then you don't have to pay
anything to Micro$oft, but if you *require* windows, then your customer
has to obtain the right to use Windows; nobody can force hime to pay for
thi sright with each of th eprograms he want to use on Windows (and
don't say that the user do not pay twice for it: if I need a licence to
create Windows code using mingw32, I have to ask the custormer to pay
for it...)

It seems that Micro$oft is here more friendly to the developer than
Cygnus: you are aloowed to develop code that *require* Windows without
having to pay anything to Micro$oft, and you can do what you want with
your code. If you want to do the same with cygwin.dll (which arguably is
quite a bit smaller than WindowsNT) you need to pay this right to

I do not think that would be acceptable if it has to be defended in



Bernard Dautrevaux
Microprocess Ingéniérie
97 bis, rue de Colombes
Tel:	+33 (0) 1 47 68 80 80
Fax:	+33 (0) 1 47 88 97 85

Want to unsubscribe from this list?
Send a message to

More information about the Cygwin mailing list