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">
|
<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
|
||||||
<wilbur.dale@lumin.nl>)
|
<wilbur.dale@lumin.nl>)
|
||||||
</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>
|
||||||
|
|
Loading…
Reference in New Issue