Header file legal issues (was Re: process.h patch)

Gavriel State gav at transgaming.com
Tue Feb 13 12:21:28 CST 2001

David Elliott wrote:
> Part of the reason for rewriting the include files was also for licensing.  If we
> rewrite the header files ourselves then it's pretty much guaranteed that they can
> be licensed exactly the same as Wine.  If we "borrow" them then who knows.  Most
> Windows compilers I have seen have some sort of license on what you can do with
> their header files that might not make them fit for inclusion into Wine.
> An idea that just popped into my head is maybe seeing if we can get a windows
> compiler maker (e.g. Borland) to donate a full set of headers under the Wine
> license.  However they may have licensed them with certain terms and be unable to
> do that.

While Jon has addressed this issue in regards to the MSVCRT headers, this might 
be a good time to point out that the legality of enforcing copyright on header
files through licensing restrictions is questionable.

I'll preface this with the usual mention of the fact that I am not a lawyer, nor
do I play one on TV.  Please consult a qualified professional before taking action
on anything I've written.

Copyright law does not protect idea, just the expression of them.  Several court
decisions have been rendered which suggest that the 'purely functional' elements
of a computer program are not copyrightable.  There are several cases that 
explicitly deal with the issue of copyright and header files.  The most relevant
one for Wine development is probably the 1992 decision in Sega v. Accolade, where
Accolade reverse engineered the headers for Sega's ROM libraries in order to 
develop games compatible with Sega's hardware without paying Sega's royalties.
  The court in that case said:
    Computer programs pose unique problems for the application of the 
    "idea/expression distinction" that determines the extent of copyright
    protection.  To the extent that there are many possible ways of 
    accomplishing a given task or fulfilling a particular market demand, 
    the programmer's choice of program structure and design may be highly
    creative and idiosyncratic.  However, computer programs are, in essence, 
    utilitarian articles -- articles that accomplish tasks.  As such, they
    contain many logical, structural, and visual display elements that are
    dictated by external factors such as compatibility requirements
    and industry demands... In some circumstances, even the exact set of
    commands used by the programmer is deemed functional rather than 
    creative for the purposes of copyright.  When specific instructions, 
    even though previously copyrighted, are the only and essential means
    of accomplishing a given task, their later use by another will not 
    amount to infringement.

Since Wine absolutely requires the specific header file layout, strucutre
and function names, etc to be the way the Windows headers express them, 
there is good cause to believe that the header files are unprotected by 

In fact, development tool licenses that attempt to restrict usage of 
these headers may even constitute anti-trust copyright misuse.  Early 
versions of MS Visual C++ contained a shrinkwrap license that forbade
the use of the product to create software for platforms other than 
Windows.  Later revisions (ie: SP3) removed that restriction, so perhaps
MS realized that this was not protectable.

One fly in the legal ointment is that while the headers may not be
copyrighable, the shrinkwrap license may still be legal as a contract.
There's a case where a court suggested that someone who buys a copy
of a product that contains a shrinkwrap license agreement and unwraps
it is legally bound to follow it, while the person who later finds the
unwrapped CD 'on the street' with no such license is allowed to copy 
the portions that are unprotected by copyright.  It's unclear where
the anti-trust issue fits in there.  

Food for thought, anyhow...


Gavriel State, CEO
TransGaming Technologies Inc.
gav at transgaming.com

More information about the wine-devel mailing list