Delphi运行时代码是否开源?

Delphi运行时代码是否开源?,delphi,open-source,definition,Delphi,Open Source,Definition,在本文中,我将Delphi运行时源代码称为“开源”,因为它是开放的。其他人不同意这一点,因为德尔福本身就是一种商业产品。根据,必须遵守 我已经快速扫描了Delphi许可证,但找不到关于其许可状态的清晰注释。它在system.pas中有一个名为DECLARE_GPL的编译器指令,它是所有其他Delphi单元的根。系统单位是唯一不需要添加到单位中的单位,因为它是自动添加的。因此,如果system.pas是GPL,那么使用它的任何东西也将是GPL!但是Delphi为这些源文件提供了双重许可证,因此人们

在本文中,我将Delphi运行时源代码称为“开源”,因为它是开放的。其他人不同意这一点,因为德尔福本身就是一种商业产品。根据,必须遵守

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

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

来自Delphi 2007的system.pas:

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

为商业/专有软件开发而购买的Delphi运行时库中不存在GPL符号

如果源代码需要知道编译到哪个许可模型,可以使用{$If-DECLARED(GPL)}…{$IFEND}测试GPL符号是否存在。符号本身的值不重要。*)


尤其是源代码中的这段文字让我对许可证产生了怀疑。如果它可以作为GPL分发,这不意味着它也是开源的吗?

不-它不是开源的。如果你拥有德尔福,你可以看看它,但仅此而已。在我的版本中,它说:

{ *********************************************************************** }
{                                                                         }
{ Delphi / Kylix Cross-Platform Runtime Library                           }
{ System Utilities Unit                                                   }
{                                                                         }
{ Copyright (c) 1995-2005 Borland Software Corporation                    }
{                                                                         }
{ Copyright and license exceptions noted in source                        }
{                                                                         }
{ *********************************************************************** }
但是,它可能包含许可证例外的开放源代码。如果您想要一个开源版本,请查看免费的pascal()


Borland是版权持有人,因此他们可以使用不同的许可证对其进行许可(例如,请参见MySQL或QT的双重许可模式)。您发布的systems.pas部分表明,他们过去已经这样做了

似乎有一个定义GPL符号的systems.pas的GPL版本。如果您使用此版本编写程序,由于GPL的传染性,您编写的代码也必须放在GPL下。如果您购买的是商业版,那么您拥有不同的许可证,并且不需要将代码置于GPL之下

我只能猜测哪个版本的DelphiIDE具有GPLed systems.pas。如果必须的话,我会猜Kylix是Linux版的(可能也是Windows版的)。

在那个时代,图书馆。免费版本被称为FreeCLX,包含了这些部分

  • 请注意,NetCLX在开放源代码许可证下永远不可用
  • 您仍然可以从获得开源许可的FreeCLX
自Kylix 3.0以来的所有更改都是在Delphi端进行的,所有不属于CLX的VCL内容都从未在开源许可证形式下提供过


例如,尽管VCL的大部分内容都可以在网上找到,但它们实际上是非法拷贝

实际上,甚至Kylix也提供了商业版本,但他们提供了双许可证,因为Delphi支持QT库。此外,他们还为开源开发人员免费提供了Kylix版本,因此提供了开源运行时版本。因此,您可以理解我对Delphi运行时源代码开放性的困惑。(但只有运行时源代码是开源的。)也有一个叫做FreeCLX的分支,但它似乎在分支一年后就停滞了。近十年来都没有更新过。还有其他一些项目包含GPLed RTL的修改子集,比如和我投票结束这个问题,因为它是关于许可或法律问题,而不是编程或软件开发。有关详细信息,请参阅。