View Issue Details

IDProjectCategoryView StatusLast Update
0020200FPCCompilerpublic2011-09-09 14:08
ReporterJason Self Assigned ToJonas Maebe  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version2.4.2 
Target Version2.6.0Fixed in Version3.0.0 
Summary0020200: Unpublished Proprietary Source Code Found Within fpcbuild
DescriptionWhile examining fpxbuild I found a license on two files that caused concern:


** Copyright 1996 Silicon Graphics, Inc.
** All Rights Reserved.
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
** the contents of this file may not be disclosed to third parties, copied or ** duplicated in any form, in whole or in part, without the prior written
** permission of Silicon Graphics, Inc.
TagsNo tags attached.
Fixed in Revision19037
Attached Files


Vincent Snijders

2011-09-09 07:04

manager   ~0051628

I set the view state to private, because of the sensitive nature of this report.

FPC maintainers, feel free to view state to public, if you think that is OK.

Jonas Maebe

2011-09-09 11:28

manager   ~0051638

It doesn't make sense to make something like this private. It's embarrassing, sure, but making it private doesn't change that.

Besides, it has already been discussed in public ( ). In fact, it's one of the people from that thread who reported the bug.

Regarding the actual problem: it's again a file imported from a third party back in the days when no one checked where source came from or what its license was. And we're obviously not the only ones bitten by this particular one:

Vincent Snijders

2011-09-09 12:19

manager   ~0051644

If I am a told something embarrassing about myself ("you have a stain on your trousers"), I try to keep it as private as possible, until I can fix it.

But you are right, that view state private is not for keeping things that are embarrassing for us private, but rather to keep private information, that is sensitive for the reporter.

Marco van de Voort

2011-09-09 12:54

manager   ~0051648

Last edited: 2011-09-09 12:56

The relevant copyright bits are in Microsofts platform SDK, which is probably only licensed for use with MS platforms.

So probably this was a windows header for use with windows targets which was later also "fixed" for non windows.

Jonas Maebe

2011-09-09 13:16

manager   ~0051649

Last edited: 2011-09-09 13:32

I've found a C version of the original header on which that translation was based ( ).

I've compared that version (Mircosoft version) to the gl.h that ships with Mac OS X (which uses the SGI "Free License B", called "FreeB version" below). They are almost identical. The differences are:
a) the license blocks (obviously)
b) the FreeB version contains up to OpenGL 2.1 support (the Microsoft version only up to 1.1), which primarily means several more constant defines and a few extra functions
c) the FreeB version contains several extra (commented out) constant definitions
d) the Microsoft version contains a bunch of constant defines from glext.h, which are absent in the FreeB version (but they're present in the FreeB glext.h -- in FPC, those definitions appear both in gl.pp and glext.pp, so we should delete them from gl.pp)
e) the FreeB version contains the function definitions both in function pointer and in "extern" format, while the Microsoft version only contains them in "extern" format (with some Microsoft-specific modifiers for calling convention purposes)
f) the "mapsize" parameter of glPixelMapfv, glPixelMapuiv and glPixelMapusv is a GLInt rather than GLSizei in the FreeB version
g) the "internalFormat" parameter of glTexImage1D and glTexImage2D is a GLEnum rather than a GLInt in the FreeB version
h) the Microsoft version contains definitions for a 16 function pointers that do not exist in the FreeB version (PFNGLARRAYELEMENTEXTPROC, PFNGLDRAWARRAYSEXTPROC, ...). These same definitions are however available in Mesa's glext.h

And that's all. So as far as I can tell, simply replacing the "license" block with the Free License B block does not pose any problems. I will also adjust the parameter types mentioned about and remove the duplicate constant definitions.

Jonas Maebe

2011-09-09 14:08

manager   ~0051652

The OpenGL 1.2 and higher constants/functions are in the glext unit in FPC, so we already have everything that's in the FreeB-licensed version of gl.pp.

As mentioned before, I've replaced the license header, adjusted the parameter definitions and deleted the duplicate constants from our gl.pp.

Issue History

Date Modified Username Field Change
2011-09-09 06:33 Jason Self New Issue
2011-09-09 07:04 Vincent Snijders FPCOldBugId => 0
2011-09-09 07:04 Vincent Snijders Note Added: 0051628
2011-09-09 07:04 Vincent Snijders View Status public => private
2011-09-09 11:24 Jonas Maebe View Status private => public
2011-09-09 11:28 Jonas Maebe Note Added: 0051638
2011-09-09 12:19 Vincent Snijders Note Added: 0051644
2011-09-09 12:54 Marco van de Voort Note Added: 0051648
2011-09-09 12:56 Marco van de Voort Note Edited: 0051648
2011-09-09 12:56 Marco van de Voort Note Edited: 0051648
2011-09-09 13:16 Jonas Maebe Note Added: 0051649
2011-09-09 13:17 Jonas Maebe Note Edited: 0051649
2011-09-09 13:32 Jonas Maebe Note Edited: 0051649
2011-09-09 14:03 Jonas Maebe Fixed in Revision => 19037
2011-09-09 14:03 Jonas Maebe Status new => resolved
2011-09-09 14:03 Jonas Maebe Fixed in Version => 2.7.1
2011-09-09 14:03 Jonas Maebe Resolution open => fixed
2011-09-09 14:03 Jonas Maebe Assigned To => Jonas Maebe
2011-09-09 14:03 Jonas Maebe Target Version => 2.6.0
2011-09-09 14:08 Jonas Maebe Note Added: 0051652