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

Add SPDX headers and copyright notices at the beginning of files. #64

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

adrien-n
Copy link

In downstream projects, files may be copied and moved around. This makes it difficult to track the copyrights and licenses without having them stored in each file.

I started with .reuse/dep5 but I've also noticed some things:

  • for Files: *, there is no Copyright: entry which is required by the Debian machine-readable copyright format (and debian packaging is my ultimate goal)
  • for Files: *, License: is not the same as in the LICENSE file (no AND MIT clause)

I've eyed making these changes in a way that would permit creating .reuse/dep5 again in an automated fashion. This isn't possible due to the differences I outline here and due to the tools available but that was a goal (and explains why I changed */Makefile too).

While license was fine, I had an issue with copyrights which are not indicated in the project but are required by Debian. I've used "Copyright: TBD" in headers but I'd like to fix that obviously.

Moreover, I've chosen to use the most recent copyright/license/* header for ref/{api.h, PQCgenKAT_sign.c,rng.c,rng.h} based on the files at https://csrc.nist.gov/Projects/pqc-dig-sig/standardization/example-files because "All rights reserved." is not a valid license. This had the effect of changing Copyright: too but I think it is more meaningful now. The actual code for these files has changed too but upon review, the changes are all very minor.

In downstream projects, files may be copied and moved around. This makes
it difficult to track the copyrights and licenses without having them
stored in each file.

I started with .reuse/dep5 but I've also noticed some things:
- for Files: *, there is no Copyright: entry which is required by the
  Debian machine-readable copyright format (and debian packaging is my
  ultimate goal)
- for Files: *, License: is not the same as in the LICENSE file (no AND
  MIT clause)

I've eyed making these changes in a way that would permit creating
.reuse/dep5 again in an automated fashion. This isn't possible due to
the differences I outline here and due to the tools available but that
was a goal (and explains why I changed */Makefile too).

While license was fine, I had an issue with copyrights which are not
indicated in the project but are required by Debian. I've used
"Copyright: TBD" in headers but I'd like to fix that obviously.

Moreover, I've chosen to use the most recent copyright/license/* header
for ref/{api.h, PQCgenKAT_sign.c,rng.c,rng.h} based on the files at
https://csrc.nist.gov/Projects/pqc-dig-sig/standardization/example-files
because "All rights reserved." is not a valid license. This had the
effect of changing Copyright: too but I think it is more meaningful now.
The actual code for these files has changed too but upon review, the
changes are all very minor.
@adrien-n adrien-n force-pushed the add-copyright-and-license-headers branch from 1c52bf5 to b42439b Compare December 12, 2024 14:44
adrien-n added a commit to adrien-n/PQClean that referenced this pull request Dec 13, 2024
In downstream projects, files may be copied and moved around. This makes
it difficult to track the copyrights and licenses without having them
stored in each file.

I've tried my best to be correct but I had to retrace changes over time,
find origins again and make assumptions.

I've limited myself to Falcon for two reasons. First, at the moment, my
ultimate goal is Debian packaging for liboqs and it is one of the two
relevant algorithms in pqclean for liboqs. Second, it's already quite a
lot of changes and things to potentially discuss.

BTW, sphincsplus in pqclean is also relevant for liboqs packaging but
I've elected to first do changes in sphincs/sphincplus through
sphincs/sphincsplus#64 (even if the two repositories have diverged).

FInally, I'm adding mentions of NIST in copyrights for the reasons I
menetion in the sphincsplus PR: it's what NIST is now using in
https://csrc.nist.gov/Projects/pqc-dig-sig/standardization/example-files
and it's more sensible than the previous mention of a single person.
adrien-n added a commit to adrien-n/PQClean that referenced this pull request Jan 10, 2025
In downstream projects, files may be copied and moved around. This makes
it difficult to track the copyrights and licenses without having them
stored in each file.

I've tried my best to be correct but I had to retrace changes over time,
find origins again and make assumptions.

I've limited myself to Falcon for two reasons. First, at the moment, my
ultimate goal is Debian packaging for liboqs and it is one of the two
relevant algorithms in pqclean for liboqs. Second, it's already quite a
lot of changes and things to potentially discuss.

BTW, sphincsplus in pqclean is also relevant for liboqs packaging but
I've elected to first do changes in sphincs/sphincplus through
sphincs/sphincsplus#64 (even if the two repositories have diverged).

Finally, I'm adding mentions of NIST in copyrights for the reasons I
menetion in the sphincsplus PR: it's what NIST is now using in
https://csrc.nist.gov/Projects/pqc-dig-sig/standardization/example-files
and it's more sensible than the previous mention of a single person.
adrien-n added a commit to adrien-n/PQClean that referenced this pull request Jan 10, 2025
In downstream projects, files may be copied and moved around. This makes
it difficult to track the copyrights and licenses without having them
stored in each file.

I've tried my best to be correct but I had to retrace changes over time,
find origins again and make assumptions.

I've limited myself to Falcon for two reasons. First, at the moment, my
ultimate goal is Debian packaging for liboqs and it is one of the two
relevant algorithms in pqclean for liboqs. Second, it's already quite a
lot of changes and things to potentially discuss.

BTW, sphincsplus in pqclean is also relevant for liboqs packaging but
I've elected to first do changes in sphincs/sphincplus through
sphincs/sphincsplus#64 (even if the two repositories have diverged).

Finally, I'm adding mentions of NIST in copyrights for the reasons I
menetion in the sphincsplus PR: it's what NIST is now using in
https://csrc.nist.gov/Projects/pqc-dig-sig/standardization/example-files
and it's more sensible than the previous mention of a single person.
adrien-n added a commit to adrien-n/PQClean that referenced this pull request Jan 10, 2025
In downstream projects, files may be copied and moved around. This makes
it difficult to track the copyrights and licenses without having them
stored in each file.

I've tried my best to be correct but I had to retrace changes over time,
find origins again and make assumptions.

I've limited myself to Falcon for two reasons. First, at the moment, my
ultimate goal is Debian packaging for liboqs and it is one of the two
relevant algorithms in pqclean for liboqs. Second, it's already quite a
lot of changes and things to potentially discuss.

BTW, sphincsplus in pqclean is also relevant for liboqs packaging but
I've elected to first do changes in sphincs/sphincplus through
sphincs/sphincsplus#64 (even if the two repositories have diverged).

Finally, I'm adding mentions of NIST in copyrights for the reasons I
menetion in the sphincsplus PR: it's what NIST is now using in
https://csrc.nist.gov/Projects/pqc-dig-sig/standardization/example-files
and it's more sensible than the previous mention of a single person.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant