Updated MFC legal issues section according to the new license, some
other changes.
This commit is contained in:
parent
a47eb31d2a
commit
609c93df49
|
@ -4,42 +4,42 @@
|
|||
<sect1 id="mfc-introduction">
|
||||
<title id="mfc-introduction.title">Introduction</title>
|
||||
<para>
|
||||
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
|
||||
write a wrapper for the Windows MFC as described in
|
||||
<xref linkend="bindlls" endterm="bindlls.title">. But in practice
|
||||
it does not seem to be a realistic approach for the MFC:
|
||||
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
|
||||
write a wrapper for the Windows MFC as described in
|
||||
<xref linkend="bindlls" endterm="bindlls.title">. But in practice
|
||||
it does not seem to be a realistic approach for the MFC:
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<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.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<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.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<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.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
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
|
||||
to actually work to in order for you to be able to compile an
|
||||
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
|
||||
to actually work to in order for you to be able to compile an
|
||||
MFC based application.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<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.
|
||||
</para>
|
||||
</sect1>
|
||||
|
@ -47,53 +47,54 @@
|
|||
<sect1 id="mfc-legal-issues">
|
||||
<title id="mfc-legal-issues.title">Legal issues</title>
|
||||
<para>
|
||||
(Extracted from the HOWTO-Winelib written by Wilbur Dale
|
||||
(Extracted from the HOWTO-Winelib written by Wilbur Dale
|
||||
<wilbur.dale@lumin.nl>)
|
||||
</para>
|
||||
<para>
|
||||
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.
|
||||
In any case you should not consider the remainder of this section to
|
||||
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.
|
||||
In any case you should not consider the remainder of this section to
|
||||
be authoritative since it has not been written by a lawyer.
|
||||
</para>
|
||||
<para>
|
||||
Well, let's try to have a look at the situation anyway.
|
||||
</para>
|
||||
<para>
|
||||
During the compilation of your program, you will be combining code
|
||||
from several sources: your code, Winelib code, Microsoft MFC code,
|
||||
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
|
||||
allowed and not allowed to do can vary depending on how you compile
|
||||
your program and if you will be distributing it. For example, if you
|
||||
are releasing your code under the GPL, you cannot link your code to
|
||||
MFC code because the GPL requires that you provide ALL sources to your
|
||||
users. The MFC license forbids you from distributing the MFC source so
|
||||
you cannot both distribute your program and comply with the GPL
|
||||
license. On the other hand, if your code is released under the LGPL,
|
||||
you cannot statically link your program to the MFC and distribute it,
|
||||
but you can dynamically link your LGPL code and the MFC library and
|
||||
distribute it.
|
||||
During the compilation of your program, you will be combining code
|
||||
from several sources: your code, Winelib code, Microsoft MFC code,
|
||||
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
|
||||
allowed and not allowed to do can vary depending on how you combine
|
||||
the code and if you will be distributing it. For example, if you
|
||||
are releasing your code under the GPL or LGPL, you cannot use MFC
|
||||
because these licenses do not allow covered code to depend on
|
||||
libraries with non-compatible licenses.
|
||||
There is a workaround - in the license for your
|
||||
code you can make an exception for the MFC library.
|
||||
For details see
|
||||
<ulink url="http://www.gnu.org/licenses/gpl-faq.html">The GNU GPL FAQ</ulink>.
|
||||
</para>
|
||||
<para>
|
||||
Wine/Winelib is distributed under an X11-like license. It places few
|
||||
restrictions on the use and distribution of Wine/Winelib code. I doubt
|
||||
the Wine license will cause you any problems. 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
|
||||
Wine/Winelib is distributed under the GNU Lesser General Public
|
||||
License. See the license for restrictions on the modification and
|
||||
distribution of Wine/Winelib code. In general it is possible to
|
||||
satisfy these restrictions in any type of application.
|
||||
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.
|
||||
</para>
|
||||
<para>
|
||||
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
|
||||
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
|
||||
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
|
||||
your system is to buy Visual Studio and install it on a dual boot
|
||||
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
|
||||
Linux box.
|
||||
</para>
|
||||
<para>
|
||||
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:
|
||||
</para>
|
||||
<blockquote>
|
||||
|
@ -108,7 +109,7 @@
|
|||
</blockquote>
|
||||
<para>
|
||||
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):
|
||||
</para>
|
||||
<blockquote>
|
||||
|
@ -124,12 +125,12 @@
|
|||
So under this license it appears you can compile MFC for Winelib.
|
||||
</para>
|
||||
<para>
|
||||
Finally you must check whether you have the right to distribute an
|
||||
MFC library. Check the relevant section of the license on
|
||||
<quote>redistributables and your redistribution rights</quote>. The
|
||||
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
|
||||
you distribute it with an application that provides significant
|
||||
Finally you must check whether you have the right to distribute an
|
||||
MFC library. Check the relevant section of the license on
|
||||
<quote>redistributables and your redistribution rights</quote>. The
|
||||
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
|
||||
you distribute it with an application that provides significant
|
||||
added functionality to the MFC library.
|
||||
<!-- FIXME: quote relevant sections of EULA in above paragraph. -->
|
||||
</para>
|
||||
|
@ -220,8 +221,8 @@
|
|||
<para>
|
||||
</para>
|
||||
<para>
|
||||
Specific winemaker options,
|
||||
the configure options,
|
||||
Specific winemaker options,
|
||||
the configure options,
|
||||
the initialization problem...
|
||||
</para>
|
||||
</sect1>
|
||||
|
|
Loading…
Reference in New Issue