Recent

Author Topic: Code snippets and Delphi  (Read 4140 times)

Thaddy

  • Hero Member
  • *****
  • Posts: 14209
  • Probably until I exterminate Putin.
Code snippets and Delphi
« on: November 15, 2016, 11:47:54 am »
Since the issue of quoting Delphi sourcecode creeps up every time I want to make that issue more clear.
I posted a legally correct answer on the bugtracker but everybody should take note.
Here's my quote:
"Bart,
Delphi sourcecode is copyrighted, but may be governed by GPL, if that is the case, it is perfectly legal to show a codesnippet from Delphi. It depends on where the Delphi version is sourced. E.G. Kylix sourcecode is mostly GPL. D7 is GPL'd when sourced from free magazine versions as per their use instructions and the flags with which the DCU's are compiled. See Delphi 7 or Kylix system.pas.
Delphi has a define for that to test: {$IFDEF GPL} and a const gpl boolean.
Some code is impossible to use under GPL, but this particular code is not.
Not many people know that, but now you do.
Note there is no LGPL with linker exception option in Delphi sourcecode, hence unless your program is full GPL you can not use Delphi sourcecode with Lazarus or FPC without releasing all sources to your program under GPL. The rtl sourcecode and some but not all VCL sourcecode for these versions is dual licensed, though: commercial and GPL. Both are incompatible with FPC and Lazarus sourcecode LGPL. For the purpose of documentation and demonstration this code is legal to publish under GPL.
We just can't use it in our sources unless it is obvious implementation or derived code (see the MS license for use of their headers).
It is only legal to use GPL'd Delphi or Kylix sourcecode in the compiler itself, since that is GPL. ;)
"
You can check that for yourselves.
But, a big but, make sure that IF you quote Delphi sources it is indeed within the GPL defines. All of the RTL sources are (at least upto 2007, but when unchanged..), some of the VCL is too.
Inprise had a difficult time..... And did not hire enough lawyers at that point. And did not fully understand GPL.

Don't quote XE+ sources.... They hate that, because they forgot about the GPL. Once done it's done.
« Last Edit: November 15, 2016, 11:53:41 am by Thaddy »
Specialize a type, not a var.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11383
  • FPC developer.
Re: Code snippets and Delphi
« Reply #1 on: November 15, 2016, 12:02:12 pm »
Since the issue of quoting Delphi sourcecode creeps up every time I want to make that issue more clear.
I posted a legally correct answer on the bugtracker but everybody should take note.
Here's my quote:
"Bart,
Delphi sourcecode is copyrighted, but may be governed by GPL, if that is the case, it is perfectly legal to show a codesnippet from Delphi. It depends on where the Delphi version is sourced. E.G. Kylix sourcecode is mostly GPL. D7 is GPL'd when sourced from free magazine versions as per their use instructions and the flags with which the DCU's are compiled.

Strange. Which magazine came with a GPL D7? I only saw personal editions with a gigantic EULA?


Thaddy

  • Hero Member
  • *****
  • Posts: 14209
  • Probably until I exterminate Putin.
Re: Code snippets and Delphi
« Reply #2 on: November 15, 2016, 12:17:44 pm »
There was a PROFESSIONAL edition, not personal, of Delphi 7 that came with the German edition from CHIPS (and to my knowledge C't). Those were compiled with GPL=true.
There were also so some French versions, afaik.

At that point in time they lost the legal plot.

This is all verifiable.

If you own a copy of Kylix, you know what I mean.
Professional edition also means full sourcecode included, not just dcu's.

I also know of a professional edition that was provided by PRO Magazine in Brittain. Dunno the status of those DCU's. But full sources were included.
[edit]
PCPRO also had the professional at some point.

Most first googles end up with personal, that's true. Try harder ;)
« Last Edit: November 15, 2016, 12:34:14 pm by Thaddy »
Specialize a type, not a var.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11383
  • FPC developer.
Re: Code snippets and Delphi
« Reply #3 on: November 15, 2016, 06:19:13 pm »
If you agreed to an Eula, you are bound by that, not by a random define that the RTL was compiled with.

Thaddy

  • Hero Member
  • *****
  • Posts: 14209
  • Probably until I exterminate Putin.
Re: Code snippets and Delphi
« Reply #4 on: November 15, 2016, 06:46:09 pm »
If you agreed to an Eula, you are bound by that, not by a random define that the RTL was compiled with.

You are quite right.

That eula mentions the dual license. At least the Kylix 3 one. The other (D7) I need to check, but that is the exact same sourcecode.
I still have those disks (the free professional version) , I hope they still work ;)

Note that it does not matter too much: once released as GPL it stays GPL. For that version and its derivatives...
Note also that Embarcadero is fully aware of this issue.

And for the record: I am fully licensed for all my Delphi and Kylix versions. Some of which are the expensive ones (architect).
Note that on wikipedia the GPL stuff is editted away ;) But I will do my utmost to put it back.
https://en.wikipedia.org/wiki/Borland_Kylix
« Last Edit: November 15, 2016, 07:04:32 pm by Thaddy »
Specialize a type, not a var.

Ondrej Pokorny

  • Full Member
  • ***
  • Posts: 220
Re: Code snippets and Delphi
« Reply #5 on: November 15, 2016, 07:05:25 pm »
Note that it does not matter too much: once released as GPL it stays GPL. For that version and its derivatives...

This is not true. The author (copyright holder) can always change the license. Derivatives released from the author under a new license are not bound by the GPL any more. But of course you can fork the original GPL code and continue modifying it as GPL software. You can't do it with the newer versions released under a different license.

E.g. version 1.0 is GPL, version 2.0 (direct successor) is commercial. You can fork 1.0 and handle it according to GPL but you cannot do it with 2.0.

Thaddy

  • Hero Member
  • *****
  • Posts: 14209
  • Probably until I exterminate Putin.
Re: Code snippets and Delphi
« Reply #6 on: November 15, 2016, 08:28:45 pm »
You are correct that the original author can re-license derivatives. Only the original author or copyright holder.
But you can not re-license material - in the sense that you withdraw another license - that is already licensed at some point.
Any given license. The original license stays.
That is what I mean.

I know for a fact that Borland/Inprise rued their decision at that time.
If you claim GPL, you will get GPL, though. And they will honor it if you do.

This is all about the specific Kylix and D6/D7 sources. Later material with significant changes can be re-licenced by the copyright holder. That is correct.
GPL v2 is applicable here.

One of the reasons that the original license stays is obvious: changing an original license may invoke royalty claims.
And that is therefor forbidden.
Slightly related: Oracle vs Google. Google won. Because the way Sun specified their license (not GPL, I know) That's a nice read up on licensing.

Anyway: GPL v2 stays for these specific sources.
« Last Edit: November 15, 2016, 08:49:40 pm by Thaddy »
Specialize a type, not a var.

 

TinyPortal © 2005-2018