cross-posted from: https://programming.dev/post/35495679
Earlier post version: image/text.
From another article referenced there:
The maintainers of the Ubuntu Linux distribution are now rewriting GNU Coreutils in Rust. Instead of using the GPLv3 license, which is designed to make sure that the freedoms and rights of the user of the program are preserved and always respected over everything else, the new version is going to be released using the very permissible or “permissive” (non-reciprocal) MIT license, which allows creating proprietary closed-source forks of the program.
There will surely be small incompatibilities - either intentional or accidental - between the Rust rewrite of coreutils and the GNU/C version. If the Rust version becomes popular - and it probably will, if Ubuntu starts using it - the Rust people will start pushing their own versions of higher level programs that are only compatible with the Rust version of coreutils. They will most probably also spam commits to already existing programs making them incompatible with the GNU/C version of coreutils. That way either everyone will be forced into using the MIT-licensed Rust version of coreutils, or the Linux userland becomes even more broken than it already is because now we have again two incompatible sets of runtime functions that conflict with one another. Either way, both outcomes benefit the corporations that produce proprietary software.
(Source – which does contain some more-than-problematic language outside of these passages, compare the valid objections raised by others in the cross-posts.)
Compare also how leaders of Canonical/Ubuntu have ties to Microsoft, and how the Canonical employee who leads the push to rewrite coreutils as non-GPL-licensed Rust software has spent years working for the British Army, where he “Architected and built multiple high-end bespoke Electronic Surveillance capabilities”, by his own proud admission.
I love rust, but I don’t like the use of permissive licenses in binaries. I think libraries are ok, but binaries should be copyleft.
copyleft is crucial for system utilities that form the foundation of our computing stack, otherwise we risk fragmentaton and corporate capture of essential tooling.
That’s the most sensible thing I’ve read all day. I think much of the reasoning for Cargo lockfiles could apply here as well.
What do you mean with lock files?
It’s been a while since I last touched Rust, but there’s a discussion on whether to commit Cargo lockfiles to version control, and the consensus is basically that you should do it if your crate is primarily a binary, and, conversely, you shouldn’t if it’s primarily a library. It acknowledges that code at the apex of the dependency graph should follow different rules than everything below it, and this kind of reasoning could apply to licenses in similar ways.
An excellent point.
They’ve spent too much time with Microsoft
Canonical are doing all they can to bastardise linux and piss off as many users are possible.