License incompatibilities #132

Open
opened 2024-11-22 09:04:43 +00:00 by potyarkin · 1 comment
Member

Currently we import parts of this project from non-GPL repos:

- policy-engine ->
  - frostfs-contract/commonclient.ReadIteratorItems()
  - frostfs-contract/policy.Container
  - frostfs-contract/policy.Kind
  - frostfs-contract/policy.Namespace
  - frostfs-contract/rpcclient/policy.Actor
  - frostfs-contract/rpcclient/policy.Contract
  - frostfs-contract/rpcclient/policy.ContractReader
  - frostfs-contract/rpcclient/policy.Invoker
  - frostfs-contract/rpcclient/policy.New()
  - frostfs-contract/rpcclient/policy.NewReader()

- frostfs-s3-lifecycler ->
  - frostfs-contract/commonclient.ReadIteratorItems()
  - frostfs-contract/frostfsid/client.Subject
  - frostfs-contract/frostfsid/client.ParseSubject()
  - frostfs-contract/nns.TXT

- frostfs-sdk-go ->
  - frostfs-contract/nns.TXT

To fix license compatibility issues I suggest to:

  • Relicense /rpcclient and /commonclient under Apache-2.0
  • Move constants (nns.TXT, policy.Container, policy.Namespace, policy.Kind) into one of these Apache-2.0 directories (/rpcclient or /commonclient). Then we will be able to avoid importing whole nns and policy modules into non-GPL projects just because of a few consts.
  • Review usage of frostfsid/client in frostfs-s3-lifecycler: they import it to lookup a public key based on 20-byte hash. Can we expose a way to do that under Apache-2.0? Or may be there already is such a way? //cc: @alexvanin @dkirillov
Currently we import parts of this project from non-GPL repos: ``` - policy-engine -> - frostfs-contract/commonclient.ReadIteratorItems() - frostfs-contract/policy.Container - frostfs-contract/policy.Kind - frostfs-contract/policy.Namespace - frostfs-contract/rpcclient/policy.Actor - frostfs-contract/rpcclient/policy.Contract - frostfs-contract/rpcclient/policy.ContractReader - frostfs-contract/rpcclient/policy.Invoker - frostfs-contract/rpcclient/policy.New() - frostfs-contract/rpcclient/policy.NewReader() - frostfs-s3-lifecycler -> - frostfs-contract/commonclient.ReadIteratorItems() - frostfs-contract/frostfsid/client.Subject - frostfs-contract/frostfsid/client.ParseSubject() - frostfs-contract/nns.TXT - frostfs-sdk-go -> - frostfs-contract/nns.TXT ``` To fix license compatibility issues I suggest to: - [ ] Relicense `/rpcclient` and `/commonclient` under Apache-2.0 - [ ] Move constants (`nns.TXT`, `policy.Container`, `policy.Namespace`, `policy.Kind`) into one of these Apache-2.0 directories (`/rpcclient` or `/commonclient`). Then we will be able to avoid importing whole `nns` and `policy` modules into non-GPL projects just because of a few consts. - [ ] Review usage of `frostfsid/client` in frostfs-s3-lifecycler: they import it to [lookup a public key](https://git.frostfs.info/TrueCloudLab/frostfs-s3-lifecycler/src/commit/27bbb7b0d183fde4c10b677ebab0c29a50bad54e/internal/morph/contract/frostfsid.go#L60-L88) based on 20-byte hash. Can we expose a way to do that under Apache-2.0? Or may be there already is such a way? _//cc: @alexvanin @dkirillov_
potyarkin added the
help wanted
discussion
labels 2024-11-22 09:04:43 +00:00
potyarkin added this to the FLOSS Best Practices Criteria (Passing) project 2024-11-22 09:04:45 +00:00
Owner

Let's do #65 first, with this task in mind.

Let's do #65 first, with this task in mind.
Sign in to join this conversation.
No milestone
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: TrueCloudLab/frostfs-contract#132
No description provided.