Things you can do with Cygwin

DJ Delorie dj@delorie.com
Wed May 3 09:23:00 GMT 2000


> I feel that since a dynamically linked chunk of code only specifies
> the interface, and not the internals, that the internals are not
> parts of the same work.

First off, the "dynamically linked chunk of code" *is* the whole DLL.
The DLL is real.  The import library is real.  The way the program and
dll interact is real.  The "api" is only a concept; only its
implementation is real.  You can't link a concept into your program.
You can only link an implementation of the concept into your program,
and when you do, you must obey the license terms of the
implementation, or hope that the court sides with you when you try to
defend your "fair use" of it.

Second, the definition of "work" does not mean "executable" or
"program", it means "work".  That word is used on purpose, because it
conveys the intentions and actions of the programmer in a legally
clear way (one would hope).  If two independent modules interact via a
published, well-known interface, yet it is obvious that the developer
intended those two specific modules to be used only together, it's
still one work.

Third, it's pointless to argue philisophical differences when, by the
time those differences are relevent, you'd be in court already anyway.
The court does what it does regardless of your beliefs.  We're wasting
our time trying to explore the gray areas of copyright law.  Just stay
away from them.  If you can't, hire a lawyer and take it to court,
because that's the only way you'll know for sure what the answer is.

> In particular it is certainly possible to have multiple hunks of
> code with the same name and effectively the same interface (minor
> variations may exist) because that is the source of windows "dll
> hell".  If there can be multiple versions that do very different
> things, after the manner of things returned by a factory pattern,
> then I don't see them as being the same work at all.  And since the
> caller doesn't know which of the different versions it will get, it
> can't be a part of the same work either.

All true, but irrelevent.  I *could* write a new version of Windows
NT, but that doesn't mean it exists *now*.  When a programmer creates
a work, it's either one work, or more than one work.  It doesn't
matter what "could" happen, only what *did* happen, and why.

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com



More information about the Cygwin mailing list