Re: [fpc-devel] copyright infringement in FPC code
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
Re: [fpc-devel] copyright infringement in FPC code
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
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
Re: [fpc-devel] copyright infringement in FPC code
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_notify<>nil 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
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_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___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] copyright infringement in FPC code
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
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
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
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
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
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
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
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[2]: [fpc-devel] copyright infringement in FPC code
> > 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
> > 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: [fpc-devel] copyright infringement in FPC code
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
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
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
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
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
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
[fpc-devel] copyright infringement in FPC code
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