Delphi运行时代码是否是开源的?

Is the Delphi runtime code open-source or not?

在这个问题中,我将Delphi运行时源代码称为"开源",仅仅因为它是开放的。其他人不同意这一点,因为Delphi本身就是一种商业产品。根据维基百科,开源必须遵守一套规则。

我已经对Delphi许可证进行了快速扫描,但无法找到关于它的许可状态的明确说明。它在system.pas中有一个名为DECLARE_GPL的编译器指令,它是所有其他Delphi单元的根。系统单元是您不需要添加到单元的唯一单元,因为它是自动添加的。因此,如果system.pas是GPL,那么使用它的任何东西也都是GPL!但是Delphi正在为这些源文件提供双重许可,因此人们可以选择不使用GPL许可。

尽管如此,如果Delphi源代码可用且它支持GPL,即使它也有可以应用的二级许可证,Delphi运行时源代码是否是开源的?

来自Delphi 2007的system.pas:

(* The existence of the GPL symbol indicates that the System unit and the rest of the Delphi runtime library were compiled for use and distribution under the terms of the GNU General Public License (GPL).
Under the terms of the GPL, all applications compiled with the GPL version of the Delphi runtime library must also be distributed under the terms of the GPL. For more information about the GNU GPL, see http://www.gnu.org/copyleft/gpl.html

The GPL symbol does not exist in the Delphi runtime library purchased for commercial/proprietary software development.

If your source code needs to know which licensing model it is being compiled into, you can use {$IF DECLARED(GPL)}...{$IFEND} to test for the existence of the GPL symbol. The value of the symbol itself is not significant. *)

特别是源代码中的这篇文章让我对许可证产生怀疑。如果它可以作为GPL分发,这是不是意味着它也是开源的?


不 - 它不是开源的。如果你拥有delphi,你可以看看它,但就是这样。对于我的版本,它说:

1
2
3
4
5
6
7
8
9
10
{ *********************************************************************** }
{                                                                         }
{ Delphi / Kylix Cross-Platform Runtime Library                           }
{ System Utilities Unit                                                   }
{                                                                         }
{ Copyright (c) 1995-2005 Borland Software Corporation                    }
{                                                                         }
{ Copyright and license exceptions noted in source                        }
{                                                                         }
{ *********************************************************************** }

它可能包含开源,但有许可证例外。如果你想拥有一个开源版本,请查看免费的pascal(http://www.freepascal.org/)

Borland是版权所有者,因此他们可以根据不同的许可证授权(例如,参见MySQL或QT的双重许可模式)。您发布的系统部分表明,他们过去曾这样做过。

似乎有一个GPL版本的systems.pas,它定义了GPL符号。如果您使用此版本编写程序,由于GPL的感染性质,您编写的代码也必须置于GPL之下。如果您购买了商业版,则您拥有不同的许可,并且您无需将代码置于GPL下。

我只能猜测哪个版本的Delphi IDE有GPLed systems.pas。如果我不得不这样做,我猜Kylix for Linux(也许也适用于Windows)。


在Kylix时代,CLX库以双许可模式提供。免费版本称为FreeCLX,包含BaseCLX,VisualCLX和DataCLX部分。

  • 请注意,NetCLX从未在开源许可下使用。
  • 您仍然可以从sourceforge上的FreeCLX项目获得开源许可的FreeCLX。

自Kylix 3.0在Delphi方面做出的所有更改,以及所有不属于CLX的VCL内容从未在开源许可证表格中提供。

虽然VCL的大部分可用于例如Koders,但它们实际上是非法拷贝。