On 27.04.2011 15:13, Keith Marshall wrote:
> On 27 April 2011 11:23, John Emmas wrote:
>> On 27 Apr 2011, at 11:11, LRN wrote:
>>> msvcrt was used because it isn't affected by XML manifests and SxS
> That isn't the reason, at all.
> See Tor Lillqvist's comment regarding your original misconception of the
> relationship between MSVCRT.dll and any particular version of MSVC.
> MinGW uses MSVCRT.dll because it is a fundamental component of the
> operating system; therefore, its use is permitted by the GPL -- GCC, on
> which MinGW is founded is a GPL tool chain. Although you are entitled
> to distribute MinGW built applications without them being constrained by
> the GPL, we are not entitled to distribute non-free components as part
> of the tool chain itself.
> MSVCR*.dll are NOT fundamental OS components. IIRC, they are not
> even redistributable, unless you are building your code with MSVC, and
> you have PURCHASED an MSVC licence from Microsoft. Thus, we CANNOT
> legally (AIUI: IANAL) make MinGW in any way dependent on any of them.
These are the terms for MSVCR100 (partially, open up vcredist_ARCH.exe
in 7zip to find the whole EULA):
You may not
• disclose the results of any benchmark tests of the software to any
third party without Microsoft’s prior written approval;
• work around any technical limitations in the software;
• reverse engineer, decompile or disassemble the software, except and
only to the extent that applicable law expressly permits, despite this
• make more copies of the software than specified in this agreement or
allowed by applicable law, despite this limitation;
• publish the software for others to copy;
• rent, lease or lend the software;
• transfer the software or this agreement to any third party; or
• use the software for commercial software hosting services.
Well, you can't redistribute vcredist without a special license, but
that's old news. Downloading it from MS is a burden, but not an obstacle.
All other terms do not apply (directly) to MinGW, as far as i've been
able to learn (IANAL, obviously, but regarding 'commercial software
hosting' there was an answer on MS forum from MS employee, and it says
that this youmaynot refers to redistribution).
As for GPL restriction on not using proprietary components - except when
they are normal part of the OS, here's what is in GPLv2 on this:
...need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
Windows 7 Ultimate x86 comes with these pre-installed:
Updates (even SP1) don't seem to bring anything newer (although "newer"
here is msvcr100, which will probably only come in with SP2 or Windows 8)
Windows XP Pro SP3 comes with these pre-installed:
MSVCR70 (not pre-installed, but it comes with .NET 1.1, which is bundled
on XP Pro CD, not sure if that counts).
Updates (updates only, no new IE or tools) will bring you:
msvcr71 (as part of .NET 1.1 SP1 update, i think)
And, of course, you'd get all relevant versions of msvcrXX with any of
MS compiler suites. So, obviously, msvcrXX doesn't qualify as a system
library neither by GPLv2, nor by GPLv3 standards.