[fpc-devel] Important: Call for testing.

Michael Van Canneyt michael at freepascal.org
Thu Mar 27 21:50:33 CET 2008


Hello,

at the end of last year, the FPC team was notified that certain portions
of the FPC codebase contained possible copyright infringements on copyrighted
code from Codegear (Borland). 

As a precaution, an internal audit was done by the FPC team using an 
automated tool, and a list of routines was compiled that could possibly 
be considered a copyright infringement. The complete list is at the end 
of this mail.

It was decided that these routines should be re-implemented with cleanroom
implementations, to remove all suspicion from the FPC codebase.

The FPC team has now finally completed creating cleanroom implementations, 
and the implementations have been committed to the main branch (trunk) of 
the FPC codebase. Later, these will be merged to the fixes branch, and release
2.2.2 will be created with this implementation.

While extensive testing has been done (using the FPCunit testing framework),
and the working of Lazarus with this new code was verified, it is possible 
that bugs remain. We would therefor very much appreciate that if you have code
that uses some of the routines below, that you test your code with the latest
FPC from subversion (revision 10572 or above) and report any bugs that you may
encounter. If you do, please submit a bugreport in mantis:

http://bugs.freepascal.org/

We'll give the code 2 weeks to be tested, and unless major problems pop up,
the code will be merged to the fixes branch, and then release 2.2.2 will be
started with this code. It is therefor vital that the code be tested very 
well, as it will definitely end up in the next release.

For the FPC team,

Michael.

-----------------------------------------------------------------------

Complete list of replaced routines:

Classes unit:
-------------

ExtractStrings
TParser.TokenComponentIdent
TParser.NextToken
TWriter.WriteComponent
TWriter.WriteComponentData
TWriter.WriteProperties
TStringList.Grow
TStringList.QuickSort
TStringList.Find
FindNestedComponent
GlobalFixupReferences
GetFixupInstanceNames
RemoveFixupReferences 
RedirectFixupReferences
GetFixupInstanceNames
RemoveGlobalFixup
RemoveFixups
TReader.DoFixupReferences
TReader.FindComponentClass
TReader.ReadCollection
TList.Extract
TFPList.Assign
TCollection.GetNamePath

Strutils unit:
--------------
SearchBuf
DecodeSoundexInt

Varutils unit:
--------------
DoVarClearArray

Math unit:
----------
MomentSkewKurtosis

ComObj unit:
------------
HandleSafeCallException

DB unit:
--------
TDataset.CalculateFields
TDataset.DataEvent
TDataset.EnableControls
TDataLink.CalcFirstRecord
TField.CalcLookupValue
TField.RefreshLookupList



More information about the fpc-devel mailing list