jdupuy/dj_fft

Licensing problems prevent dj_fft from being used in most software

Closed this issue · 5 comments

Public domain is a difficult concept to work around when it comes to OSS licensing and incorporating code into projects. Furthermore, dj_fft does not declare this formally using a document like CC0, meaning a few things:

  • The definition of 'public domain' rests in the jurisdiction of the licensee or user
  • Public domain software may be able to be revoked in some cases and jurisdictions.
  • The status of the software being public domain is almost certainly illegitimate with such a small clause stating so (that does not explicitly waive copyright)
  • You may be liable for your software that you release in public domain (ie. if your compute shader FFT implementation contributes to damaging graphics hardware)

Additionally, the incorporeality of public domain software in OSS projects encounters a problem with sub-licensing, where this is a gray area (the CC0 license is more explicit in this case and probably won't cause an issue, but your declaration of public domain makes this a problem).

For more information, see this SE post, and GNU licensing notes on informal licenses.

Assuming you wished to grant full rights to your users, I suggest:

  • Releasing the code under MIT
  • Or, dual licensing the code under CC0 and MIT if you have a good reason to prefer the code released in the public domain.

However, if want to keep your software available to the public including modifications to it, use the GPLv3.

Obligatory: I am not a lawyer and this is not formal legal advice

I should add on that in what I assume to be your country of origin (from your website) where you declared dj_fft in the public domain, there are recognized moral rights that may apply to software in in the public domain. Some of these rights are harmful to software development in general and would be difficult to contest in the absence of a license granting otherwise.

However, if you reside in another french-speaking region like Quebec, this does not pose an issue.

CC0 for software is controversial. Use Unlicense or MIT-0 variant instead :)

@r-lyeh Unlicense is probably a better choice, yes. Licenses that grant similar rights to public domain works like MIT-0 (No Attribution) are great too, but it is still a different types of document entirely since MIT-0 does not relinquish copyright or rely on public domain.

I am not particularly sure what rights @jdupuy intended to grant, although I suggest against using anything that relies on the public domain as a legal concept if he does not explicitly need it (and if he does, use dual-licensing).

Following @nothings, I have updated the license to a dual public domain / MIT open source; you may now pick whichever you want. Just to be clear on my intentions: my goal here is to make my library useful out-of-the-box to as many people as possible -- I believe we make the world a better place whenever we share our knowledge and technology to the rest of humanity. To this end, please let me know if this license update answers your concerns.

@jdupuy MIT is a perfect permissive license and nullifies any issues that I raised with public domain software.

The only thing I can ask is to include a copy of the license text & copyright (as the MIT license requires this is kept with copies of the software for attribution), or a copy of MIT-0 if you don't care for this requirement.