Delphi运行时代码是否打开

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

我已经完成了德尔福牌照的快速扫描,但无法清楚地了解它的许可状态。 它在system.pas中有一个名为DECLARE_GPL的编译器指令,它是所有其他Delphi单元的根。 系统单位是自动添加的单位,不需要添加到单位。 因此,如果system.pas是GPL,那么使用它的任何东西都将是GPL! 但是德尔福为这些源文件提供双重许可证,因此人们可以选择不使用GPL许可证。

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

从Delphi 2007的system.pas开始:

(* GPL符号的存在表示系统单元和Delphi运行时库的其余部分是根据GNU通用公共许可证(GPL)的条款进行编译以供使用和分发的。
根据GPL条款,所有使用GPL版本的Delphi运行时库编译的应用程序也必须按照GPL的条款进行分发。 有关GNU GPL的更多信息,请参阅http://www.gnu.org/copyleft/gpl.html

用于商业/专有软件开发的Delphi运行时库中不存在GPL符号。

如果您的源代码需要知道它正在编译到哪个许可模型,您可以使用{$ IF DECLARED(GPL)} ... {$ IFEND}来测试GPL符号的存在。 符号本身的价值并不重要。 *)

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


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

{ *********************************************************************** }
{                                                                         }
{ 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的双重许可模式)。 你发布的system.pas部分表明,他们过去是这么做的。

似乎有一个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在德尔福方面做出的所有更改以及所有不属于CLX组件的VCL都从未以开源许可证形式提供。

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

    链接地址: http://www.djcxy.com/p/16165.html

    上一篇: Is the Delphi runtime code open

    下一篇: Possible to force Delphi threadvar Memory to be Freed?