Why are all the rust projects MIT licensed?

UPDATE:
I found this issue explaining the relicensing of rust game engine Bevy to MIT + Apache 2.0 dual. Tldr: A lot of rust projects are MIT/Apache 2.0 so using those licenses is good for interoperability and upstreaming. MIT is known and trusted and had great success in projects like Godot.

ORIGINAL POST:

RedoxOS, uutils, zoxide, eza, ripgrep, fd, iced, orbtk,...

It really stands out considering that in FOSS software the GPL or at least the LGPL for toolkits is the most popular license

Most of the programs I listed are replacements for stuff we have in the Linux ecosystem, which are all licensed under the (L)GPL:

uutils, zoxide, eza, ripgrep, fd -> GNU coreutils (GPL)

iced, orbtk -> GTK, QT (LGPL)

RedoxOS -> Linux kernel, most desktop environments like GNOME, KDE etc. all licensed GPL as much as possible

alsaaas ,
@alsaaas@lemmy.dbzer0.com avatar

always go with the GPL family if you don't want your work to be stolen by a proprietary project

Vorpal ,

LGPL specifically does as far as I understand have some issues when used in rust. In particular the border for the copyleft is dynamic linking. That doesn't work well with rust. I would instead consider MPL where the copyleft border is on a source file level.

That said, I'm not a lawyer!

anlumo ,

The GNU project emerged from academics, which don’t get paid for their software in general, they get paid for writing papers about it. So, they want to stop all commercial use of their software.

The Rust project emerged from the startup culture, where everything is just a stepping stone to eventually get sold in some kind of software project to get rich. So, being able to use the software in a commercial setting is essential.

jack OP ,

What's your source for this "startup culture"? Rust started at Mozilla to make the browser more secure

hunger ,
@hunger@programming.dev avatar

It is all about whos freedom you care for: GPL protects the freedom of end users, MIT and other permissive licenses focus on the freedoms of developers instead.

GPL defines freedoms end users of software have. It has to limit the freedoms of developers between the GPL project and the end user so that those developers can not strip out any of the freedoms the GPL wants end users to have. The hope is to build a better society by enabling everybody to understand the machines they own.

MIT and other permissive license care for the freedoms of people using the project directly, granting freedoms to those users only. Those people are free to forward the same rights to their own users or to remove them as they see fit. Thatbis way simpler for developers to work with: Basically do whatever you want.

Guess which option is more popular with developers and the companies that employ many of those developers?

technom ,

The newer FOSS projects have a preference for permissive licenses like MIT. That's due to a narrative going around that copyleft licenses like GPL are somehow 'less free'. Apparently, GPL etc are not free enough that companies avoid such projects. And if you want your project to be adopted, you have to avoid these licenses. You can easily guess who is behind such narratives and why.

BB_C ,

You can easily guess who is behind such narratives and why.

You would think so. But anti-FSF sentiment comes in different forms nowadays.

My first (and only) visit to the Mastodon world was years ago. Top post (or whatever you call them) was from some micro-celeb (who probably didn't even code) bitching about how Stallmann caused great damage, and how the FSF's biggest achievement was giving decades of "our" free labor to corporations. The microblogtards replying agreed of course. Needless to say, that tab didn't stay open for long.

Social war ultras (big intersection with microblogtards) also don't like Stallman and the FSF.

So, new developers may have chosen non-FSF licenses not only because of copyleft implications. But also because it looks and goes along better with the posturing ethics of the times. The snowball has already gotten large of course, and next-gen devs may just be going along with the choices made by their predecessors or library dependencies without knowing much about the why.

Still, there should probably be more MPLv2 in the Rust ecosystem.

technom ,

I don't completely agree with many of RMS' stances on sexual abuse. It often feels like he is a bit tone deaf in that regard. However, the cancel campaign against him was very much motivated and they twisted his words completely out of context in several cases. I'm not going to get into the tiresome argument of if he was right or not. But one thing I noticed back then was that many involved in the campaign had clear vested and conflicting interests with undisclosed financial motives. Watching it live, it was pretty clear that the campaign was sponsored by certain big names in the industry.

The anti-FSF campaign you mentioned and the anti-copyleft propaganda I mentioned shouldn't be seen in isolation. It might sound like a conspiracy theory, but there were clear indications of a long term corporate-funded smear campaign to attack the foundations of FOSS - a hit job, if you will. Too bad I didn't bother to save those back then. A lot of illuminating messages were forcefully deleted.

They really took advantage of the outrage mentality of common people. Meanwhile, people took the bait and went after the small fish while being completely oblivious to the big sharks feeding the outrage.

Narann ,
@Narann@lemmy.world avatar

GPL is basically a contract that code will always be shared if distributed. This licence ensure any distributed library will give your code (legal standpoint).

MIT is more a use as you want licence. Devs can take the code, build and distribute binaries without restrictions.

They are not made for the same reasons. If you want to write Libre software, GPL is your friend.

As other says, rust build statically by default, having a MIT ecosystem help to spread the langage. Yet, this also mean someone can see its code used in a commercial product without sharing back, credits or counterpart.

Different uses.

BB_C ,

It's a conspiracy too big that I don't think anyone of us can really understand or grasp the scale of it all.

Thankfully, the EU was aware and prepared. And the EUPL is ready to usurp whatever project license, whenever needed.

calcopiritus ,

Probably because rust links statically by default, so making a library gpl means users will be forced to make their project GPL too, so MIT libraries have an incredible advantage.

IANAL though, so idk.

jack OP ,

That's what the LGPL is for, the library itself has to stay open source but the program using it does not have to be. So no advantage for MIT

javasux ,

The text of the LGPL actually imposes some very inconvenient restrictions around static linking:

Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.

https://www.gnu.org/licenses/lgpl-3.0.html#section4

In order to be compliant, you would have to also ship linkable object files of the proprietary application code alongside the executable.

SomethingBurger ,
@SomethingBurger@jlai.lu avatar

so making a library gpl means users will be forced to make their project GPL too

So GPL libraries have an incredible advantage.

calcopiritus ,

GPL libraries have an advantage in their legal power. MIT libraries have an advantage when users have to choose between 2 libraries.

All other things being equal, users will use more permissive libraries. So unless maintainers put more effort into the GPL, a MIT one will gather more users, which attracts more maintainers, which ends up in more MIT libraries than GPL ones existing.

snowe ,
@snowe@programming.dev avatar

I have never heard anyone claim that GPL or LGPL are the most popular licenses for tools. From what I’ve seen it’s the opposite. MIT is by far the most popular by an insane margin. So much so that when I see an lgpl license I’m surprised.

jack OP ,

Most of the rust projects I listed are replacements for stuff in the Linux ecosystem which are licensed (L)GPL. The most popular toolkits by far are GTK and QT, both LGPL

rah ,

for tools

For GNU/Linux tools?

Octorine ,

GPL was the most popular at one point. MIT overtook it around the turn of the century, I think.

belated_frog_pants ,

Something being "the most popular" doesn't make it the right license for everything. FOSS uses the GPL if it makes sense and often when it doesn't but its not an end all be all for FOSS and its needs.

https://snyk.io/learn/open-source-licenses/

SomethingBurger ,
@SomethingBurger@jlai.lu avatar

It is, though. GPL forces all code using a GPL-licensed project to also be GPL-licensed. MIT is a cuck license allowing corporations to use your code for free without anything in return, the entire text of the MIT license could be replaced with "pls steal my code harder, daddy big corporation".

belated_frog_pants ,

A "cuck" license? I have 0 interest in engaging in any meaningful conversation around "we live in a society and rigidity of value measurement cannot be without context" because thats childish at best and a dog whistle of the anti-intellectual at worst.

SomethingBurger ,
@SomethingBurger@jlai.lu avatar

I'm using cuck in the literal sense, not the MAGA fascist sense. Your code, someone else's profit. GPL or bust. If corporations want to use the features of a FOSS project without contributing their changes, they can fuck off and rewrite it from scratch.

jack OP ,

That doesn't explain the preference for MIT tho

XTL ,

Mit is kind of the "I don't care and I don't want to think about it" license. I also suspect many will also just use the same license they see in other projects. So, if they've been using rust crates that are MIT, they're more likely to pick that. But who knows.

jack OP ,

That makes sense, it's probably easier to just use MIT instead of learning the differences between GPLv2, v3, AGPL, LGPL, MPL etc

Octorine ,

Preference for MIT and Apache is part of the culture of rust. Also, the lead dev behind Redox has mentioned that he chose MIT over GPL because it makes it easier to contribute, which he felt was important for getting Redox off the ground.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • rust@lemmy.ml
  • test
  • worldmews
  • mews
  • All magazines