Opened 7 years ago

Last modified 7 years ago

#950 new task

Static link in FDO

Reported by: davidji Owned by: gregboone
Priority: critical Milestone: 4.1.0
Component: General Version: 4.1.0
Severity: 2 Keywords: License
Cc: External ID:

Description

Hi All,

FDO now complies with LGPL v2.1, however, after I read carefully about the terms of LGPL, I happened to find LGPL does have some limitations on static link, you can take a reference from here - https://stackoverflow.com/questions/10130143/gpl-lgpl-and-static-linking. But there are a few fundamental projects which are configured as static library, e.g. providersCommon, schemaMgr, smLogicalPhysical and so on. It is hard to create a 3rd party provider without those static libraries.

I would suggest to add an exception in FDO license to allow 3rd party developers to use static link to open source projects, this can mitigate misunderstanding and potential legal risks, and I don’t think disallowing static link is the original idea of FDO. On the other hand, if we publicly announce the exception for static link, we probably can expand the usage of FDO in GIS world and attract more 3rd party developers.

What do you guys think?

Best regards,

David

Change History (6)

comment:1 by simonliu, 7 years ago

I agree with you.

comment:2 by jng, 7 years ago

+1 from me

comment:3 by gregboone, 7 years ago

Shared Libraries such as: providersCommon, schemaMgr, smLogicalPhysical, were never designed to be linked dynamically. The intent was always for 3rdParty developers to statically link to these libraries.

We can create an exception for the specific set of existing libraries that are required. Can you list them in this ticket? I would like to limit the exception to a limited set rather than alter the license to provide a blanket exception for all FDO libraries.

Greg

comment:4 by davidji, 7 years ago

Thanks Greg,

I have a list for the static libraries, please review:

Static libraries:
ProvidersCommon.lib
FdoGenericOra.lib
Gdbi_Oracle.lib
GrdSchemaMgr.lib
LockManager.lib
LongTransactionManager.lib
SchemaMgrNew.lib
SchemaMgr_LPNew.lib
SchemaMgr_OVNew.lib
SchemaMgr_PHNew.lib
FDONLS.lib

Corresponding project names:

Utilities\Common\FdoCommon.vcxproj
Providers\GenericRdbms\Src\Fdo\Fdo_Oracle.vcxproj
Providers\GenericRdbms\Src\Gdbi\Gdbi_Oracle.vcxproj
Providers\GenericRdbms\Src\SchemaMgr\GrdSchemaMgr.vcxproj
Providers\GenericRdbms\Src\LockManager\LockManager.vcxproj
Providers\GenericRdbms\Src\LongTransactionManager\LongTransactionManager.vcxproj
Utilities\SchemaMgr\SchemaMgr.vcxproj
Utilities\SchemaMgr\LogicalPhysical.vcxproj
Utilities\SchemaMgr\Overrides.vcxproj
Utilities\SchemaMgr\Physical.vcxproj
Fdo\Unmanaged\Nls.vcxproj

Last edited 7 years ago by gregboone (previous) (diff)

in reply to:  4 comment:5 by davidji, 7 years ago

I don't know why those "?" are created? Please ignore all "?" in the lib names and project names, sorry for that...

comment:6 by gregboone, 7 years ago

This this looks accurate

+1

Version 0, edited 7 years ago by gregboone (next)
Note: See TracTickets for help on using tickets.