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

Wim*_*ink 5 delphi open-source definition

这个问题中,我将Delphi运行时源代码称为“开放源代码”,仅仅是因为它是开放的。其他人不同意这一点,因为Delphi本身是一种商业产品。根据Wikipedia的说法,开源必须遵守一组规则

我已经在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的更多信息,请参见http://www.gnu.org/copyleft/gpl.html

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

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

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

Tob*_*ner 3

不 - 它不是开源的。如果你拥有delphi,你可以看看它,但仅此而已。对于我的版本,它说:

{ *********************************************************************** }
{                                                                         }
{ Delphi / Kylix Cross-Platform Runtime Library                           }
{ System Utilities Unit                                                   }
{                                                                         }
{ Copyright (c) 1995-2005 Borland Software Corporation                    }
{                                                                         }
{ Copyright and license exceptions noted in source                        }
{                                                                         }
{ *********************************************************************** }
Run Code Online (Sandbox Code Playgroud)

它可能包含开放源代码,但存在许可例外情况。如果您想要一个开源版本,请查看免费的 pascal ( http://www.freepascal.org/ )


Borland 是版权持有者,因此他们可能会根据不同的许可证进行许可(例如,参见 MySQL 或 QT 的双重许可模式)。您发布的 Systems.pas 部分表明,他们过去曾这样做过。

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

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

  • 实际上,即使 Kylix 也提供了商业版本,但他们提供了双重许可证,因为 Delphi 支持 QT 库。另外,他们确实为开源开发人员提供了免费的 Kylix 版本,从而提供了开源运行时版本。这样你就可以理解我对Delphi运行时源码开放性的困惑了。(但只有运行时源代码是开源的。) (2认同)