Re: [fpc-devel] copyright infringement in FPC code

2007-11-14 Thread Michael Schnell



What I found in Lazarus code so far was that somebody _was_ peaking at
the Delphi code at some stage. Numerous methods have variables
declared with the exact same names, type and order or appearance.  
Changing the said likelihoods might help to obfuscate the potential 
peeking but does that really help to fight any suspicion ?


-Michael
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-14 Thread Alvise Nicoletti



What I found in Lazarus code so far was that somebody _was_ peaking at
the Delphi code at some stage. Numerous methods have variables
declared with the exact same names, type and order or appearance.
I am noone here, but I think that Borland have always know that (if that 
is true ;) ).


IMHO, they are complaining now cause Lazarus/FPC is becoming a better 
product than Delphi.


So the road is not the wrong one, but in reality the right one.

Some code must be very similar, you're doing the same things.
And honestly I don't think that the most important sources of 
FPC/Lazarus are the functions to manipulate the strings...


Always IMHO.

Alvise Nicoletti
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Graeme Geldenhuys
For those that don't follow the Lazarus mailing list.
It was brought to our attention by a ex-Borland employee (Steve
Trefethen), that FPC contains some stolen code from Delphi. Especially
Delphi 4  5.

The full discussion can be read here...
  http://www.stevetrefethen.com/files/ppcomp.htm


And a single code comparison can be seen here... FPC code is on the right.
  http://www.stevetrefethen.com/files/ppcomp.htm


I have heard that there is software that can do code comparisons to
find infringements (I'm thinking of a article between Linux and Minix
code).  Anybody got such a program available so we can possibly do a
automated comparison.  I'll try and find out what was used to compare
Minix and Linux code.


Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Luiz Americo Pereira Camara

Daniël Mantione wrote:

Op Tue, 13 Nov 2007, schreef Graeme Geldenhuys:

  

For those that don't follow the Lazarus mailing list.
It was brought to our attention by a ex-Borland employee (Steve
Trefethen), that FPC contains some stolen code from Delphi. Especially
Delphi 4  5.

The full discussion can be read here...
  http://www.stevetrefethen.com/files/ppcomp.htm



I don't see a discussion?

  


Look here: 
http://www.stevetrefethen.com/blog/IWishTheDelphiCommandLineCompilerWereFree.aspx


Luiz
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Michael Schnell



I have heard that there is software that can do code comparisons to
find infringements (I'm thinking of a article between Linux and Minix
code).  Anybody got such a program available so we can possibly do a
automated comparison.  I'll try and find out what was used to compare
Minix and Linux code.
Using this software to find out and eliminate stolen code sequences in 
a way that the software will not find them sounds more like trying to 
obfuscate something...


OTOH if two intelligent persons get a not too complex task (e.g. write 
some lines of code) they are very likely to create a similar solution.


-Michael
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Daniël Mantione


Op Tue, 13 Nov 2007, schreef Graeme Geldenhuys:

 For those that don't follow the Lazarus mailing list.
 It was brought to our attention by a ex-Borland employee (Steve
 Trefethen), that FPC contains some stolen code from Delphi. Especially
 Delphi 4  5.
 
 The full discussion can be read here...
   http://www.stevetrefethen.com/files/ppcomp.htm

I don't see a discussion?

Daniël___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Graeme Geldenhuys
On 13/11/2007, Florian Klaempfl [EMAIL PROTECTED] wrote:

 I wrote an answer.



The scary thing is, I used the tool mentioned earlier (sim_pasc) and
did a few random tests on Lazarus code and Kylix 3 code.  My god,
there is a lot of similar code and no, I'm not talking about the class
interfaces (which are duplicated on purpose).


Even if certain things can only be implemented in similar ways, I
still think it might be worth running this tool, to verify some code.
It's better than nothing, and the tool works much faster than any
human can.  Rather safe than sorry I say.  At least this way, we tried
to get rid of copyrighted copy from our side.


Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Florian Klaempfl
Graeme Geldenhuys schrieb:
 For those that don't follow the Lazarus mailing list.
 It was brought to our attention by a ex-Borland employee (Steve
 Trefethen), that FPC contains some stolen code from Delphi. Especially
 Delphi 4  5.

I wrote an answer.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Bee

I wrote an answer.


You (or other FPC core team members) should write a blog post about this 
and explain this situation in more complete description, instead write 
it as comment on someone's blog. This way, other people would see a 
better and more comprehensive responses from FPC side.


That's the power of blogging and open informations. ;)

-Bee-

has Bee.ography at:
http://beeography.wordpress.com

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Marco van de Voort
  I have heard that there is software that can do code comparisons to
  find infringements (I'm thinking of a article between Linux and Minix
  code).  Anybody got such a program available so we can possibly do a
  automated comparison.  I'll try and find out what was used to compare
  Minix and Linux code.
 Using this software to find out and eliminate stolen code sequences in 
 a way that the software will not find them sounds more like trying to 
 obfuscate something...
 
 OTOH if two intelligent persons get a not too complex task (e.g. write 
 some lines of code) they are very likely to create a similar solution.

Yes specially for stringroutines, since nearly all are based on pchars for
speed, and due to the weird requirements (like the #0..#31 limitation of
e.g. tstringlist)
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re[2]: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Пётр Косаревский
  I wrote an answer.
 You (or other FPC core team members) should write a blog post about this 
 and explain this situation in more complete description, instead write 
 it as comment on someone's blog. This way, other people would see a 
 better and more comprehensive responses from FPC side.
 That's the power of blogging and open informations. ;)
 -Bee-

It's not the best idea: that blog affected some people in september, but 
provided some base for accusations almost 2 months later. It's too late to 
enter baseless quarrel.

Before checking most parts of at least FPC at least once against at least 
several legally accessible source code versions of Delphi (does anybody own 
CodeGear Delphi 2007 variant with source code?) and posting big letters: YO! 
WE REGULARLY USE SPECIAL SOFTWARE TO CHECK OUR CODE FOR COPYRIGHT INFRINGEMENT! 
WE DO CARE! --- blogging would be the same as: You are fool-You are 
fool-No, you are fool-...

And I'm not sure that details should be discussed openly (i.e. accessible via 
open maillists like this to people like me) before some cure is at least 
planned (i.e. unresolved problems should be obscured).
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Graeme Geldenhuys
On 13/11/2007, Graeme Geldenhuys [EMAIL PROTECTED] wrote:

 there is a lot of similar code and no, I'm not talking about the class
 interfaces (which are duplicated on purpose).


I would like to apologize to the Lazarus developers.  I jumped the gun
a bit. I should have done a bit of RTFM before running the SIM tool.
My bad!

By default the tool compares all text involved, even for duplicate
code in the same file.  Due to this it found many false positives and
I interpreted them incorrectly.  In the end the similarities I found
in the select few files I tested were for very trivial functions. So
far, so good.

Even so, I still believe it a good idea to run this tool against the
complete set of code, though due to the extensive use of include files
it might take a bit longer than expected.

Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread peter green



And a single code comparison can be seen here... FPC code is on the right.
  http://www.stevetrefethen.com/files/ppcomp.htm

  
Reading the description carefully it seems like he has modified the 
delphi code to look more like the FPC code.


In many cases two people trying to implement the same relatively simple 
behaviour will end up with code that differs in little more than 
variable names and spacing without needing to copy.




___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Graeme Geldenhuys
On 13/11/2007, peter green [EMAIL PROTECTED] wrote:

 In many cases two people trying to implement the same relatively simple
 behaviour will end up with code that differs in little more than
 variable names and spacing without needing to copy.


What I found in Lazarus code so far was that somebody _was_ peaking at
the Delphi code at some stage. Numerous methods have variables
declared with the exact same names, type and order or appearance.  I
don't believe that was a coincidence.  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.


Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread ik
On Nov 13, 2007 10:51 PM, Graeme Geldenhuys [EMAIL PROTECTED] wrote:
 On 13/11/2007, peter green [EMAIL PROTECTED] wrote:
 
  In many cases two people trying to implement the same relatively simple
  behaviour will end up with code that differs in little more than
  variable names and spacing without needing to copy.
 

 What I found in Lazarus code so far was that somebody _was_ peaking at
 the Delphi code at some stage.

I can tell you that I used Delphi up until 2003/4 ... I stopped only
when I moved completely away from the Windows world... And so does
many other people in this list (that used/are using Delphi as the
development tool at work etc..).


 Numerous methods have variables declared with the exact same names, type and 
 order or appearance.  I
 don't believe that was a coincidence.

I think that some variable names will be the same. For example in
socket based HTTP, I saw many implementations that uses the variable
name of payload. Or when you have a variable that stores a name,
someone call it name, or when it is a coordinate based variable,
then you will find something such as coord or coordinates etc..
And it also looks like lack of good imagination, and the wish to make
the code more readable :)

 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 ?



 Regards,
   - Graeme -




Ido
-- 
http://ik.homelinux.org/
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Daniël Mantione


Op Tue, 13 Nov 2007, schreef Graeme Geldenhuys:

 On 13/11/2007, peter green [EMAIL PROTECTED] wrote:
 
  In many cases two people trying to implement the same relatively simple
  behaviour will end up with code that differs in little more than
  variable names and spacing without needing to copy.
 
 
 What I found in Lazarus code so far was that somebody _was_ peaking at
 the Delphi code at some stage. Numerous methods have variables
 declared with the exact same names, type and order or appearance.  I
 don't believe that was a coincidence.  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.

Please make a log of what you find, then we can discuss if something needs 
to be done about it.

Unfortunately similar variable names (that aren't obvious choices) can 
mean a whole procedure needs rewriting because it is then clear it is 
not an independend work.

Daniël___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Marc Weustink

ik wrote:

On Nov 13, 2007 10:51 PM, Graeme Geldenhuys [EMAIL PROTECTED] 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.

Marc

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Graeme Geldenhuys
On 13/11/2007, ik [EMAIL PROTECTED] wrote:

 What are the elementary methods ?


A simple or very basic methods only two or three lines long.
Something like a property Getter or Setter method.

Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Mattias Gaertner
On Tue, 13 Nov 2007 22:59:50 +0200
ik [EMAIL PROTECTED] wrote:

[...]
  What I found in Lazarus code so far was that somebody _was_ peaking
  at the Delphi code at some stage.

Yes. 

1.
Many pascal programmers have several years Delphi experience and are
used to the Delphi coding style and naming scheme. So when they create a
new method/class, the variables will usually have Delphi names, Delphi
block sizes, etc.

2.
There was a short discussion some years ago when I started
the codetools, how the generated code should look like. I feared that
when the codetools class completion creates the same code as Delphi,
people will eventually come up with copyright. The only strange thing
is that it took 6 years. One fourth of the LCL is auto generated
code.

 
[...]
 And it also looks like lack of good imagination, and the wish to make
 the code more readable :)

Many keep Delphi compatibility, because they like it, not only OOP
and the Delphi features, but the coding style as well.

 
  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 ?

Attached is an example.


Mattias
lazarus/lcl/include/control.inc: line 1044-1056|Vcl/Controls.pas: line 
3597-3606[55]
Function TControl.ScreenToClient(const |function TControl.ScreenToClient(const
var|var
P : TPoint;|Origin: TPoint;
begin  |begin
P := ClientOrigin; |Origin := ClientOrigin;
Result.X := APoint.X - P.X;|Result.X := Point.X - Origin.X;
Result.Y := APoint.Y - P.Y;|Result.Y := Point.Y - Origin.Y;
end;   |end;

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Daniël Mantione


Op Tue, 13 Nov 2007, schreef Marc Weustink:

 ik wrote:
  On Nov 13, 2007 10:51 PM, Graeme Geldenhuys [EMAIL PROTECTED]
  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_notifynil 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___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Mattias Gaertner
On Tue, 13 Nov 2007 23:51:14 +0100 (CET)
Daniël Mantione [EMAIL PROTECTED] wrote:

 
 
 Op Tue, 13 Nov 2007, schreef Marc Weustink:
 
  ik wrote:
   On Nov 13, 2007 10:51 PM, Graeme Geldenhuys
   [EMAIL PROTECTED] 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_notifynil then
Fon_some_notify(self);
 end;

That's not the same and will crash since lazarus svn rev 12822.
Lazarus now uses the Delphi 'Assigned' trick for design time events
as default.
I hope this trick is not copyrighted or patented.


Mattias
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] copyright infringement in FPC code

2007-11-13 Thread Daniël Mantione


Op Wed, 14 Nov 2007, schreef Mattias Gaertner:

 That's not the same and will crash since lazarus svn rev 12822.
 Lazarus now uses the Delphi 'Assigned' trick for design time events
 as default.
 I hope this trick is not copyrighted or patented.

Tricks cannot be copyrighted, and we live in sw patent unfriendly 
territory for the time being :)

Daniël___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel