Ask HN: What is the license for Windows header files?
I understand that Windows.h et al are licensed for use in building Windows applications, etc. However I'm less clear on what the license is for the text of the headers.
Are you free to distribute them? What about distribute and modify? The copyright notice in Windows.h merely says "all rights reserved" which sounds meaningless in the context, as that's the default anyway and surely they allow some rights to the user.
I believe WINE and mingw have their own version of Windows headers but I'm unsure how those came to be.
18 comments
[ 4.0 ms ] story [ 53.9 ms ] thread>Are you free to distribute them?
No.
>What about distribute and modify?
No.
>I believe WINE and mingw have their own version of Windows headers but I'm unsure how those came to be.
Yes, MinGW headers were developed independently and most of them are either in the public domain or were released under some permissive license.
Right to Use and Distribute. The code and test files listed below are “Distributable Code”.
* REDIST.TXT Files. You may copy and distribute the object code form of code listed in REDIST.TXT files plus the files listed on the REDIST.TXT list located at http://go.microsoft.com/fwlink/?LinkId=524842. Depending on the specific edition of the software, the number of REDIST files you receive with the software may not be equal to the number of REDIST files listed in the REDIST.TXT List. We may add additional files to the list from time to time.
* Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.
...
Distribution Restrictions. You may not
...
* Distribute Distributable Code to run on a platform other than the Microsoft operating system platform;
* Modified or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. And Excluded License is one that requires, as a condition of use, modification or distribution, that
Yes, Windows is proprietary code. Not sure what you expected?
The headers are code that belongs to MS. The fact that they’re for a “public API” isn’t relevant.
If you want “specification of the API” have a look at the language spec for the CLR or JavaScript. Note that they generally don’t have code.
This particular sub thread started with apparent incredulity that I could think the headers would have anything but a very restrictive license.
Actually the same reasoning could be said to apply to STL.
Or, relatedly, somehow it's possible to link statically to CRT.
It's interesting with these cases, because something can seem perfectly reasonable behavior in the mind of a developer (an app using platform headers or standard library) but you can wind up with a different answer trying to figure out for what if anything enables that behavior in a legal context.
Of course IANAL but AFAIK this is what several projects (especially compilers and interpreters) that need to hook with other APIs are already doing.