qarmin / czkawka

Multi functional app to find duplicates, empty folders, similar images etc.
Other
19.34k stars 634 forks source link

Considering GPLv3 Licensing #347

Open edo0 opened 3 years ago

edo0 commented 3 years ago

I personally really like Czkawka, and have used it a great deal to clean up my storage.

I was wondering why not using the GPLv3 (or other versions of the GPL license), to make sure your code is protected from unauthorized integration by third parties into proprietary software - which the MIT license does not protect against.

If you were instead open to companies using it for commercial software, you may still release it as GPL, and dual license it if approached, so as to enabling the commercial application at your conditions and following own ideas of remuneration.

I hope I made sense, and yes, it's really mostly a curiosity of mine as to why going with MIT over GPL Thanks again for you work on Czkawka @qarmin

lodenrogue commented 3 years ago

I second this. At the very least the UI can be GPL and the library itself can be AGPL.

qarmin commented 3 years ago

In general, I like the GPL license, but I have nothing against MIT either. Due to the fact that I am not very familiar with all the license terms, I decided to use the MIT license, because all the libraries I use are under this license. Additionally, from what I remember, MIT allows to change the license quite easily.

edo0 commented 3 years ago

Yes, that is absolutely correct! MIT allows to change licence quite easily, since it is a permissive licence. With that comes also that anyone can do so, which can clearly be a bit of a double-edged sword, as contrasted with the GPL which allows only licensing under the same licence (being a non-permissive, strong copyleft license).

The latter is known to be more resilient to potential commercial takeover, and it is ideal if you plan to keep the software and its derivatives free and open source software, since any derivative work, paid or free, would anyway have to release its source code freely publicly. It's also true that if you wanted to relicense or dual license a GPL project, you need to have rights to all of its code, which means you will have to accept third party contributions with a CLA (Contributor License Agreement) transferring rights to you, which can be integrated in the template of pull requests.

In order to offer both licenses, you would need to be and stay the primary or sole copyright holder. You would effectively need a CLA where contributors grant you enough rights to relicense using both licenses or assign the copyrights to you.

An example of software that does this is GPL-3.0 Licensed IM app Signal (here is its CLA)

Again, if you don't have commercial interests, a plain GPL would be the simplest way. But as you can see, there is also the possibility I explained above, allowing protection of the software, while granting to yourself only (unlike MIT) the rights to dual licensing (or relicensing) your work for commercial purposes