[fpc-devel] copyright infringement in FPC code

Daniël Mantione daniel.mantione at freepascal.org
Tue Nov 13 23:51:14 CET 2007



Op Tue, 13 Nov 2007, schreef Marc Weustink:

> ik wrote:
> > On Nov 13, 2007 10:51 PM, Graeme Geldenhuys <graemeg.lists at gmail.com>
> > wrote:
> 
> [..]
> 
> > > Good news is that that's where the similarity ends (well in the units
> > > I checked). Importantly, the
> > > method bodies seem to be implemented differently, except for the very
> > > elementary methods.
> > 
> > What are the elementary methods ?
> 
> methods like:
> 
> TSomeObject.DoSomeNotify;
> begin
> if Assigned(FOnSomeNotify)
> then FOnSomeNotify(Self);
> end;
> 
> You cannot write this another way.

You can:

Tsomeobject.do_some_notify;

begin
 if Fon_some_notify<>nil then
   Fon_some_notify(self);
end;

The "algorithm" cannot be implemented in another way. That is okay, you 
don't have a copyright on your algorithm or ideas, but on the code as you 
have written it. So it is no problem that our implementation uses the same 
"algorithm".

The choice of algorithms, your style, your choice of identifier names, 
order of statements, choice of data types all contribute to the 
creativity. If a piece you write has sufficient creativity, it is 
protected by copyright. Copying copyrighted code and modifying it into a 
different style, changing identifier names doesn't change the copyright 
status, as there is still creativity of the original author left.

Now, a piece of code this size has little creativity in it, I consider a 
procedure like this uncopyrightable. Nothing I wrote above means your code 
is illegal and mine is legal, by the way. However, while the algorithm is 
the same, you should still carefully watch out for byte-per-byte copies.

Daniël


More information about the fpc-devel mailing list