ruuda/filebuffer

Please consider dual-licensing under MIT/Apache

Closed this issue · 4 comments

The Apache 2.0 license is incompatible with GPL version 2, which means programs under that license can't use the filebuffer crate. Most of the Rust ecosystem uses a dual-license of MIT and Apache 2.0, rather than just Apache 2.0, for the specific reason of providing such compatibility. Would you consider using the same dual-license for filebuffer?

ruuda commented

There is a note about GPLv2 in the readme. I am not a lawyer and I prefer a licensing situation that I think I understand over one that I do not fully understand the implications of, and I prefer Apache2 over MIT for a few reasons. For thread-id I made an exception because there is hardly anything worthy of copyright in there.

Do you have an actual use case for this crate where this is a problem?

@ruuda I'm not a lawyer either, though I do work professionally with FOSS licensing (and thus regularly deal with license compatibility issues).

One of the reasons people commonly prefer Apache 2.0 is that when someone submits a patch, they're granting a patent license. Dual-licensing under Apache 2.0 and MIT provides the same benefit, because when developers submit patches, they're doing so under both licenses (which you can state in the README). See, for instance, the license and contribution note at the bottom of the README for https://github.com/serde-rs/serde .

For practical issues, see for instance https://github.com/jameysharp/static-ldd#license .

Other practical use cases: writing a virtual machine in userspace, using filebuffer to mount disk devices, and borrowing code from the Linux kernel or QEMU (both GPLv2) as part of writing their virtual drivers.

est31 commented

If you want to use Filebuffer in your GPLv2-licensed software, you can add an exception to your copyright notice.

IANAL, but to my best knowledge, adding an exception to your copyright notice is basically a change of licensing terms and therefore requires the consent of all contributors. And this is nearly impossible for many (L)GPLv2 projects that have amassed a number of contributors, like the Linux kernel or QEMU.

ruuda commented

I have thought about this for a few days, and I have decided to not change the license.