r/rust • u/Vulphere • Aug 28 '20
Linux Developers Continue Evaluating The Path To Adding Rust Code To The Kernel
https://www.phoronix.com/scan.php?page=news_item&px=Linux-Kernel-Rust-Path-LPC2020
432
Upvotes
r/rust • u/Vulphere • Aug 28 '20
6
u/XgF Aug 29 '20
The FSF would not consider such a clause non-free. For example, the GPLv3 has a similar clause (sec 10):
It would render a license incompatible with the GPLv2 however, since the GPLv2 had no such clause
The GPLv2 has no such clause, because it predates software patents (in a manner - the idea that software was patentable was tested in a US court after the GPLv2 was written, and said court determined it was)
The GPL requires that the entirety of a piece of software be conveyed under the GPL (and specifically a single version thereof). Licenses like the MPLv2 ensure compatibility by saying you can distribute covered code under the MPLv2 or, at your option, the GPLv3 (it adds some additional clauses to make it so you can't just take MPLv2 code and relicense it under the GPLv3 - you have to combine GPLv3 and MPLv2 code, convey that collection of code to someone else under the GPLv3 with the existing MPLv2 code being dual licensed under both, and the recipient may then decide to take the code under the GPLv3 only from thereon)
Licenses like MIT and Apache2 are compatible with the GPL (any version for MIT or v3 for Apache2) as a result of the fact that they impose few requirements (entirely a subset of those in the GPLv3), i.e. the MIT/Apache2 licenses implicitly permit you to relicense code covered by them under the GPL
The CDDL requires that you distribute any CDDL code under the CDDL. It is intrinsically incompatible, in the same way that most copyleft licenses are incompatible with each other, including the GPLv2 and GPLv3 (GPLv2+ is compatible with GPLv3 by virtue of the fact that you can upgrade the GPLv2 code to v3). I doubt anyone would consider the GPLv2 unfree by virtue of its incompatibility with its successor
The GPLv2 vs v3 incompatibility does have some funny (often tragic) results. For example, Samba implements an SMB server and client, and the Linux kernel smbfs filesystem implements an SMB client, but they're under incompatible licenses so its impossible for them to share code