Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CC0 license is an obstacle #1437

Closed
beldmit opened this issue Apr 17, 2023 · 19 comments
Closed

CC0 license is an obstacle #1437

beldmit opened this issue Apr 17, 2023 · 19 comments
Labels
enhancement New feature or request

Comments

@beldmit
Copy link
Contributor

beldmit commented Apr 17, 2023

Dear colleagues,

we are planning to package liboqs for Fedora. We build liboqs with -DOQS_ALGS_ENABLED=STD to minimize support of non-standardized algorithms.

We found that the folders

./src/kem/kyber/pqclean_kyber*_aarch64
./src/sig/dilithium/pqclean_dilithium*_aarch64
./src/sig/sphincs/pqclean_sphincs*

contain CC0 license which is not acceptable for Fedora by default (and AFAIU, other Linux distributions).

I believe that for aarch64 we could fallback to a generic (slower) implementation in the compile time, but it's obviously not the best possible option.

Is it possible to get in contact with the authors of these implementation to get an agreement about double-licensing of these implementations? MIT, Apache2 or smth else is fine for our purpose.

Many thanks in advance!

@dstebila
Copy link
Member

I've raised issues with the SPHINCS+ and neon-ntt team who did the aarch64 implementations for Kyber and Dilithium.

@beldmit
Copy link
Contributor Author

beldmit commented Apr 17, 2023

Thank you very much!

@baentsch
Copy link
Member

@beldmit As this "big company license madness" (pardon the quip from someone believing in all benefits of open source) apparently isn't sth easily resolved what about this proposal: Would it make sense/resolve your issue to add a (cmake) build define that ensures only MIT code gets included in a build? Or do you(r downstream :) need all code (incl. unbuild pieces) to be "license clean" from your perspective?

@beldmit
Copy link
Contributor Author

beldmit commented May 16, 2023

I'll ask my colleagues but I have a feeling it's acceptable.

@beldmit
Copy link
Contributor Author

beldmit commented May 16, 2023

@simo5 what do you think?

@baentsch
Copy link
Member

baentsch commented Jul 5, 2023

@beldmit @simo5 Any update on the above? Would it help if we'd introduce an "OQS_BUILD_MIT_ONLY" flag, for example? Or more generically an "OQS_PERMITTED_LICENSES" string to be set to suit any taste?

@dstebila
Copy link
Member

dstebila commented Jul 5, 2023

With PQClean/PQClean#488 landed in PQClean, once we update liboq, the aarch64 implementations of Kyber and Dilithium in liboqs should be acceptably licensed. That just leaves SPHINCS+; I've pinged them again on sphincs/sphincsplus#49.

@beldmit
Copy link
Contributor Author

beldmit commented Jul 10, 2023

@beldmit @simo5 Any update on the above? Would it help if we'd introduce an "OQS_BUILD_MIT_ONLY" flag, for example? Or more generically an "OQS_PERMITTED_LICENSES" string to be set to suit any taste?

Sorry for the delay. I'm afraid it doesn't help because we need all 4 algorithms :(

@baentsch
Copy link
Member

Sorry for the delay. I'm afraid it doesn't help because we need all 4 algorithms :(

Let's list them one-by-one:

That looks OK for me, no? Thus adding something like "-DOQS_PERMITTED_LICENSES=MIT|Apache-2" would allow creation of a binary with "suitable" licenses for your purpose. Just not optimizations if those authors don't agree to a "commercialization friendly" license.

@beldmit
Copy link
Contributor Author

beldmit commented Jul 12, 2023

Yes, this looks viable. Many thanks!

@dstebila
Copy link
Member

dstebila commented Aug 4, 2023

That looks OK for me, no? Thus adding something like "-DOQS_PERMITTED_LICENSES=MIT|Apache-2" would allow creation of a binary with "suitable" licenses for your purpose. Just not optimizations if those authors don't agree to a "commercialization friendly" license.

Yes, but I think we should be careful about making sure the logic here doesn't get unwieldy.

@SWilson4
Copy link
Member

It looks to me like this will be resolved if/when PQClean integrates the upstream Sphincs+ licence changes and we run copy_from_upstream. Assuming the PQClean update is straightforward, it shouldn't require too much effort on our part.

@beldmit @simo5 is this still something you would like to see done?

@beldmit
Copy link
Contributor Author

beldmit commented Jan 23, 2024

The NIST algorithms seem to have the licenses suitable for our purposes now.

@baentsch
Copy link
Member

The NIST algorithms seem to have the licenses suitable for our purposes now.

In that case, could we then consider closing #1514 (without implementing it) assuming you'll simply build liboqs setting OQS_ALGS_ENABLED=STD?

@beldmit
Copy link
Contributor Author

beldmit commented Jan 24, 2024

I believe yes. Many thanks!

@SWilson4
Copy link
Member

Is it safe to close this issue as well, @baentsch?

@baentsch
Copy link
Member

I would say so; but I'd suggest leaving that to the author of the issue.

@SWilson4
Copy link
Member

@beldmit Is this resolved from your perspective? (i.e., am I OK to close this issue as completed?)

@beldmit
Copy link
Contributor Author

beldmit commented Sep 25, 2024

Sure, thank you very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

No branches or pull requests

4 participants