Closed ohecker closed 6 months ago
Whilst the original motivation of this story is valid, the solution to replace current values STATIC_LINKING
and DYNAMIC_LINKING
with three new values SEPARATED
, EXCHANGEABLE
and FIXED
has the following drawbacks:
SEPARATED
probably will be used very rarely, in pretty all cases the up to now used DYNAMIC_LINKING
would be replaced by EXCHANGEABLE
. So the practical value of "more fine grained classification" is very limited.So to avoid effort and confusion the decision is to stick to the original values STATIC_LINKING
, DYNAMIC_LINKING
and STANDALONE_PRODUCT
and to "simply" extend the documentation with respect to the semantics of these values.
This will be tracked in new story #260. Closing this story now.
(This story is not implemented and has been superseeded by #260)
As a user of Solicitor I want to be sure that the semantics of the
UsagePattern
is clear so that no legal evaluation done based on the Solicitor data / rules is jeopardized by wrongly selected/understoodUsagePattern
settings.The
UsagePattern
describes how a component is linked to the overall application executable. BesidesSTANDALONE_PRODUCT
which is used if the component is not linked at all to other components there are currently two possible values:STATIC_LINKING
DYNAMIC_LINKING
The semantics of
STATIC_LINKING
seems to be quite clear: The component is linked into the executable in a way that makes it (practically) impossible to separate it from the rest of the executable. In case that this single component needs to be replaced the linking process has to be re-executed based on the (unlinked) components. De facto this means that separating and/or exchanging the single components with only the executable at hand is practically impossible.The semantics of
DYNAMIC_LINKING
is not that clear. At the core it means that linking is done at the moment when the executable is loaded into the main memory to be executed.So qualifying e.g. all java based executable as
DYNAMIC_LINKING
might result in wrong legal evaluation of license compliance.To avoid this
DYNAMIC_LINKING
should be split/replaced by two different new valuesSEPARATED
andEXCHANGEABLE
. To possibly even better align wording with semanticsSTATIC_LINKING
will be renamed toFIXED
. This will then result in the following possible values forUsagePattern
:FIXED
: The component is linked into the executable in a way that makes it (practically) impossible to separate it from the rest of the executable. In case that this single component needs to be replaced the linking process has to be re-executed based on the (unlinked) components. De facto this means that separating and/or exchanging the single components with only the executable at hand is practically impossible. .EXCHANGEABLE
: The component is included in the executable and is linked into the executable in a way that allows it to clearly distinguish it from the other components. It is possible to separate the component from the rest of the executable and to replace the component with a modified version of the component just using common tooling.SEPARATED
: The component is not included in the executable but is either already existing on the target system or is deployed separately from the executable. Exchanging the component can be done by exchanging the component without touching the executable / other components of the application.STANDALONE_PRODUCT
: The component is not linked to other components.Using
DYNAMIC_LINKING
andSTATIC_LINKING
will be deprecated (and later the value will be removed).AC:
SEPARATED
,EXCHANGEABLE
andFIXED
for the EnumUsagePattern
.DYNAMIC_LINKING
andSTATIC_LINKING
are still available, but any usage of it will issue a deprecation warning.SEPARABLE_LINKING
instead ofDYNAMIC_LINKING
(this might be the standard replacement. UsingSHARED_LINKING
possibly is limited to rare occasions). Usage ofSTATIC_LINKING
is replaced byFIXED
.DYNAMIC_LINKING
orSTATIC_LINKING
in any of the Solicitor sample rules.