Updated MFC legal issues section according to the new license, some

other changes.
This commit is contained in:
Andriy Palamarchuk 2002-07-24 19:01:11 +00:00 committed by Alexandre Julliard
parent a47eb31d2a
commit 609c93df49
1 changed files with 50 additions and 49 deletions

View File

@ -4,42 +4,42 @@
<sect1 id="mfc-introduction"> <sect1 id="mfc-introduction">
<title id="mfc-introduction.title">Introduction</title> <title id="mfc-introduction.title">Introduction</title>
<para> <para>
To use the MFC in a Winelib application you will first have to To use the MFC in a Winelib application you will first have to
recompile the MFC with Winelib. In theory it should be possible to recompile the MFC with Winelib. In theory it should be possible to
write a wrapper for the Windows MFC as described in write a wrapper for the Windows MFC as described in
<xref linkend="bindlls" endterm="bindlls.title">. But in practice <xref linkend="bindlls" endterm="bindlls.title">. But in practice
it does not seem to be a realistic approach for the MFC: it does not seem to be a realistic approach for the MFC:
</para> </para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
the huge number of APIs makes writing the wrapper a big task in the huge number of APIs makes writing the wrapper a big task in
itself. itself.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
furthermore the MFC contain a huge number of APIs which are tricky furthermore the MFC contain a huge number of APIs which are tricky
to deal with when making a wrapper. to deal with when making a wrapper.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
even once you have written the wrapper you will need to modify even once you have written the wrapper you will need to modify
the MFC headers so that the compiler does not choke on them. the MFC headers so that the compiler does not choke on them.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
a big part of the MFC code is actually in your application in a big part of the MFC code is actually in your application in
the form of macros. This means even more of the MFC headers have the form of macros. This means even more of the MFC headers have
to actually work to in order for you to be able to compile an to actually work to in order for you to be able to compile an
MFC based application. MFC based application.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<para> <para>
This is why this guide includes a section dedicated to helping you This is why this guide includes a section dedicated to helping you
compile the MFC with Winelib. compile the MFC with Winelib.
</para> </para>
</sect1> </sect1>
@ -47,53 +47,54 @@
<sect1 id="mfc-legal-issues"> <sect1 id="mfc-legal-issues">
<title id="mfc-legal-issues.title">Legal issues</title> <title id="mfc-legal-issues.title">Legal issues</title>
<para> <para>
(Extracted from the HOWTO-Winelib written by Wilbur Dale (Extracted from the HOWTO-Winelib written by Wilbur Dale
&lt;wilbur.dale@lumin.nl&gt;) &lt;wilbur.dale@lumin.nl&gt;)
</para> </para>
<para> <para>
The purpose of this section is to make you aware of potential legal The purpose of this section is to make you aware of potential legal
problems. Be sure to read your licenses and to consult your lawyers. problems. Be sure to read your licenses and to consult your lawyers.
In any case you should not consider the remainder of this section to In any case you should not consider the remainder of this section to
be authoritative since it has not been written by a lawyer. be authoritative since it has not been written by a lawyer.
</para> </para>
<para> <para>
Well, let's try to have a look at the situation anyway. Well, let's try to have a look at the situation anyway.
</para> </para>
<para> <para>
During the compilation of your program, you will be combining code During the compilation of your program, you will be combining code
from several sources: your code, Winelib code, Microsoft MFC code, from several sources: your code, Winelib code, Microsoft MFC code,
and possibly code from other vendor sources. As a result, you must and possibly code from other vendor sources. As a result, you must
ensure that the licenses of all code sources are obeyed. What you are ensure that the licenses of all code sources are obeyed. What you are
allowed and not allowed to do can vary depending on how you compile allowed and not allowed to do can vary depending on how you combine
your program and if you will be distributing it. For example, if you the code and if you will be distributing it. For example, if you
are releasing your code under the GPL, you cannot link your code to are releasing your code under the GPL or LGPL, you cannot use MFC
MFC code because the GPL requires that you provide ALL sources to your because these licenses do not allow covered code to depend on
users. The MFC license forbids you from distributing the MFC source so libraries with non-compatible licenses.
you cannot both distribute your program and comply with the GPL There is a workaround - in the license for your
license. On the other hand, if your code is released under the LGPL, code you can make an exception for the MFC library.
you cannot statically link your program to the MFC and distribute it, For details see
but you can dynamically link your LGPL code and the MFC library and <ulink url="http://www.gnu.org/licenses/gpl-faq.html">The GNU GPL FAQ</ulink>.
distribute it.
</para> </para>
<para> <para>
Wine/Winelib is distributed under an X11-like license. It places few Wine/Winelib is distributed under the GNU Lesser General Public
restrictions on the use and distribution of Wine/Winelib code. I doubt License. See the license for restrictions on the modification and
the Wine license will cause you any problems. On the other hand, MFC distribution of Wine/Winelib code. In general it is possible to
is distributed under a very restrictive license and the restrictions satisfy these restrictions in any type of application.
vary from version to version and between service packs. There are On the other hand, MFC
is distributed under a very restrictive license and the restrictions
vary from version to version and between service packs. There are
basically three aspects you must be aware of when using the MFC. basically three aspects you must be aware of when using the MFC.
</para> </para>
<para> <para>
First you must legally get MFC source code on your computer. The MFC First you must legally get MFC source code on your computer. The MFC
source code comes as a part of Visual Studio. The license for source code comes as a part of Visual Studio. The license for
Visual Studio implies it is a single product that can not Visual Studio implies it is a single product that can not
be broken up into its components. So the cleanest way to get MFC on be broken up into its components. So the cleanest way to get MFC on
your system is to buy Visual Studio and install it on a dual boot your system is to buy Visual Studio and install it on a dual boot
Linux box. Linux box.
</para> </para>
<para> <para>
Then you must check that you are allowed to recompile MFC on a Then you must check that you are allowed to recompile MFC on a
non-Microsoft operating system! This varies with the version of MFC. non-Microsoft operating system! This varies with the version of MFC.
The MFC license from Visual Studio 6.0 reads in part: The MFC license from Visual Studio 6.0 reads in part:
</para> </para>
<blockquote> <blockquote>
@ -108,7 +109,7 @@
</blockquote> </blockquote>
<para> <para>
So it appears you cannot even compile MFC for Winelib using this So it appears you cannot even compile MFC for Winelib using this
license. Fortunately the Visual Studio 6.0 service pack 3 license license. Fortunately the Visual Studio 6.0 service pack 3 license
reads (the Visual Studio 5.0 license is similar): reads (the Visual Studio 5.0 license is similar):
</para> </para>
<blockquote> <blockquote>
@ -124,12 +125,12 @@
So under this license it appears you can compile MFC for Winelib. So under this license it appears you can compile MFC for Winelib.
</para> </para>
<para> <para>
Finally you must check whether you have the right to distribute an Finally you must check whether you have the right to distribute an
MFC library. Check the relevant section of the license on MFC library. Check the relevant section of the license on
<quote>redistributables and your redistribution rights</quote>. The <quote>redistributables and your redistribution rights</quote>. The
license seems to specify that you only have the right to distribute license seems to specify that you only have the right to distribute
binaries of the MFC library if it has no debug information and if binaries of the MFC library if it has no debug information and if
you distribute it with an application that provides significant you distribute it with an application that provides significant
added functionality to the MFC library. added functionality to the MFC library.
<!-- FIXME: quote relevant sections of EULA in above paragraph. --> <!-- FIXME: quote relevant sections of EULA in above paragraph. -->
</para> </para>
@ -220,8 +221,8 @@
<para> <para>
</para> </para>
<para> <para>
Specific winemaker options, Specific winemaker options,
the configure options, the configure options,
the initialization problem... the initialization problem...
</para> </para>
</sect1> </sect1>