Sorry for the late response and thanks for the suggestions.
@wp
I remember the discussion. I think I found a reasonable solution for everyone.
@korba812
LCLPlatformDef is a life saver. Thanks.
@avra
For now, the communication between the server and OPM is in a single direction. The site admin only allows upload if a CGI is implemented(security reasons). This is why I did not completed the voting system. For the same reasons, any other statistics is also out of reach.
I implemented the "incompatible package" warning. A few notes:
1. The warning is optional(see image1). If the checkbox is unchecked, everything works as it did until now. For testing purposes the option is enabled by default, it can be disabled later if needed. Even when enabled, the user has the possibility to continue the install process.
2. I only added stable Lazarus/FPC versions + trunk for both(see image2). By default the following versions are supported:
Lazarus: 2.0.0, 2.0.2
FPC: 3.0.0, 3.0.2, 3.0.4
WidgetSet: win32/win64, gtk2
In my experience almost every package supports the above Lazus/FPC versions and widgetsets. When needed, a package maintainer can extend the list. If a new stable version appears, I will extend the default list. Old, obsolete versions like Laz. 1.6.0 are no longer supported.
3. The warning dialog looks like this(see image3), more detailed information can be obtained from hint.
4. The feature does not require any extra work from the package developers.
5. The feature is compatible with older versions of OPM.
5. I did not have time to test extensively. I will fix the reamining bugs later.
PS1: Suggestions as always are welcomed.
PS2: If you wish to test, try to install LazProfiler. The package needs Laz/FPC trunk, any other configuration should trigger the warning message.