窗口 – 与专有库链接的GPL代码是否依赖于首先创建?

Microsoft创建他们的Windows和MFC DLL库等。开源开发写一个新的MFC应用程序,并将源代码释放为GPL。该应用程序必须与MS DLL /库链接以在Windows中运行,但我不认为任何人都可以争辩说,我们现在有权强制Microsoft的GPL他们的DLL。

这是否意味着GPL许可证实际上取决于哪一个是“创建”的?如果首先创建了专有库(如Windows DLL),而不是链接和任何GPL代码,而后来GPL程序被链接,那么GPL程序不能将专有库转换为GPL,尽管专有代码是“链接“与GPL代码。

如果是这种情况,NVidia或RealNetworks公司能否做到以下几点?我们假设他们希望将专有的HDDecoding媒体解码引擎库保留为私有的,但他们也希望“利用”开源GPLed代码来展示其硬件。

>他们创建一个专有的库进行媒体解码并发布一些示例代码。
> Someone(opensource开发)创建“插件”,链接到这个GPLed代码的专有库,如XBMC,Mplayer或VLC。
>他们可以争辩说,由于他们首先创建了专有库(就像MS创建所有的DLL一样),与专有代码链接的GPL程序不会将它们隐藏成GPL代码。

理论上可以认为,创建与NVidia专有媒体解码器库链接的GPL vlc.exe文件的开源开发人员违反了GPL许可证。

这是否意味着在Windows中运行的所有GPL程序(如VLC,git,cygwin等)都违反了GPL许可证,因为它们肯定需要与专有的Microsoft Windows Libraries进行链接才能运行。

情况2:这是怎么回事?

NVidia可以创建一个隐藏最新图形功能的新硬件抽象库。他们还使用此库创建了一个FreeBSD驱动程序,并释放了BSD驱动程序的源代码,而不是库源代码。

有人(Linux开发人员)可以实现与这个库链接的linux驱动程序来为Linux创建一个NVidia显卡驱动程序。但是由于NVidia没有这样做,所以他们可以使图书馆的源头“隐藏”,同时启用“Linux支持”。

这肯定违反了GPL的精神。

这是否意味着在Windows / Mac / Iphone / PSP3中运行使用GPLed源创建的任何exe也违反了GPL的精神?

从GNU GPL常见问题解答:

07000

If the program uses fork and exec to
invoke plug-ins, then the plug-ins are
separate programs, so the license for
the main program makes no requirements
for them. So you can use the GPL for a
plug-in, and there are no special
requirements.

If the program dynamically links
plug-ins, and they make function calls
to each other and share data
structures, we believe they form a
single program, which must be treated
as an extension of both the main
program and the plug-ins. This means
that combination of the GPL-covered
plug-in with the non-free main program
would violate the GPL. However, you
can resolve that legal problem by
adding an exception to your plug-in’s
license, giving permission to link it
with the non-free main program.

See also the question 07001.

和:

07002

Both versions of the GPL have an
exception to their copyleft, commonly
called the system library exception.
If the GPL-incompatible libraries you
want to use meet the criteria for a
system library, then you don’t have to
do anything special to use them; the
requirement to distribute source code
for the whole program does not include
those libraries, even if you
distribute a linked executable
containing them.

The criteria for what counts as a
“system library” vary between
different versions of the GPL. GPLv3
explicitly defines “System Libraries”
in section 1, to exclude it from the
definition of “Corresponding Source.”
GPLv2 says the following, near the end
of section 3:

However, as a special exception, the
source code distributed 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.

http://stackoverflow.com/questions/1854843/does-gpl-code-linking-with-proprietary-library-depend-which-is-created-first

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:窗口 – 与专有库链接的GPL代码是否依赖于首先创建?