Read and respond to this message at:
Thanks for the replies. This seems to be a bit of a difficult issue. I've finished
the simple MinGW port I discussed in my original post. I'll knock up a couple
of Dev-C++ project files as well as the makefiles I've got so people can use
Dev-C++ as well. My plan is to then upload what I've called the "Quake2MinGWBaseCode"
to the SourceForge project as a file release. Here's a couple of snips from
the long readme file I was going to include (it took me hours to write and it's
still probably wrong):
[Note that the following arguments in this section represent my view of the
situation. Please see the discussion "Possible License Violations" below for
other important points]
For compiled binaries to comply with the GPL, Quake 2's use of Microsoft's DirectX
library had to be removed. This is because although MinGW comes with GPL compatible
versions of the Win32 API, it doesn't come with any version of the DirectX SDK.
If DirectX were to be used, the DirectX source code would have to accompany
any binaries compiled from this distribution (this is a requirement of the GPL),
but the DirectX license does not allow this.
Possible License Violations
In my mind there are two problems with distributing Visual C++ compiled binaries
built from the original 3.21 source: the Microsoft supplied C-Runtime/Win32
API libraries and DirectX.
Quake 2 makes extensive use of the C Runtime Library (CRT) and the Win32 API.
Although most linking will be performed at runtime, it is my belief that enough
code from these libraries will be included with the executable and dlls that
distribution of such files must comply with the license terms for redistributing
these components. The Microsoft End-User License Agreement quite clearly prohibits
GPL compatible distribution of such binaries.
In my opinion, terms of the license agreement for DirectX quite clearly prohibit
GPL distribution of the DirectX headers and libraries. However, there is an
argument that DirectX source code need not accompany any compiled binaries because
DirectX comes pre-installed on modern Windows operating systems (this is a special
exception in the GPL). Even though Quake 2 makes use of DirectX by using
LoadLibrary() rather than linking directly with DirectX libraries, it must still
use Microsoft supplied headers. This means that some amount of code from the
DirectX SDK will end up in the binary, even if it is a very small amount. Whether
such use of header files is deemed as 'fair use' is not well defined by law
(this point is mentioned in the GPL). If it is not 'fair use' then the GPL is
violated because parts of DirectX would be deemed to accompany the executable,
which would thus require inclusion of DirectX source code with the distribution.
The DirectX license would also be violated because it then prohibits GPL distribution
of compiled binaries. It is quite possible that Quake 2's use of DirectX *might*
constitute 'fair use', but I am not a lawyer so it is simply safer for me to
not use DirectX. Note that directly linking to DirectX libraries or more extensive
use of DirectX features such as D3DX is less likely to be allowed. Even if it
is allowed, DirectX is not free software so use of a different library that
is free software would be preferred for GPL distribution of Quake 2.
What do you think?
You are receiving this email because you elected to monitor this forum.
To stop monitoring this forum, login to SourceForge.net and visit: