maestro-os / maestro

Unix-like kernel written in Rust
https://blog.lenot.re
GNU Affero General Public License v3.0
2.97k stars 96 forks source link

The License Issue #9

Closed workingjubilee closed 8 months ago

workingjubilee commented 10 months ago

Splitting off from llenotre/maestro#3 because that issue has two concerns listed in it.

I am currently thinking about switching the license. A lot of people made that remark.

To be fully honest, the decision to use the MIT license was taken a long time ago and was based only on "this is somewhat acceptable" and "this is easy to understand". Literally a no brainer because I didn't want to spend time thinking about this.

Now that the question gained relevance, I am considering it.

Originally posted by @llenotre in https://github.com/llenotre/maestro/issues/3#issuecomment-1876034967

The MIT license fails to address patents, which is liable to become relevant eventually if your project continues growing in popularity, as patents are not the same as copyright. This is why the Rust project uses its MIT/Apache 2.0 dual-license scheme. An alternative license is the Blue Oak Model License, which is kinda just "the MIT license, but it directly addresses the patent problem". It was designed by a lawyer specializing in this area. Others have already made the arguments for/against various licenses in llenotre/maestro#3 and I offer no real disagreement with their points: it's just a matter of what you want.

LesikEdelweiss commented 10 months ago

In my opinion, the GPL (or MPL, which is a less strict copyleft license) is the best choice for any important code. This is because it follows the rule of "one's freedom ends where another's begins" giving people the freedom to use the program while disallowing the restriction of others freedom

qaxi commented 10 months ago

In my opinion, the GPL is better choice. Take a look at Apple OSX and BSD Unix - with MIT the will just grab and never give anything back.

Codycody31 commented 10 months ago

+1 on the GPL, as it protects the project against others who might use the software without contributing back, helping future contributions and preventing one-sided exploitation, just as Qaxi highlighted.

sapsicle commented 10 months ago

I can agree on GPL, I suppose the question becomes v2 or v3.

workingjubilee commented 10 months ago

The main problem with the arguments re: the GPL is that the primary author may not actually want a relationship with corporations that is based on this project.

qaxi commented 10 months ago

The main problem with the arguments re: the GPL is that the primary author may not actually want a relationship with corporations that is based on this project.

GPL does not force authors to have any relationship with corporations, it just protects their work from one-sided exploitation. Corporations programmers may cooperate on the project, or fork it, use it, whatever. But they can not use you work behind closed doors (except internal usage). Author may or may not accept contributions from anybody.

qaxi commented 10 months ago

I can agree on GPL, I suppose the question becomes v2 or v3.

v3 will protect from Tivoization, so in case of OS it is better use v3 I belive This statement was wrong. As @LesikEdelweiss noted in https://github.com/llenotre/maestro/issues/9#issuecomment-1882700450 it could prevent adoption.

GPL v2 is good choice

LesikEdelweiss commented 10 months ago

I can agree on GPL, I suppose the question becomes v2 or v3.

v3 will protect from Tivoization, so in case of OS it is better use v3 I belive

That was the reason busybox didn't switch license to v3. That tivoiztion restriction would reduce corporations use of this program. If we actually want corporations to use it (so they would make changes and commit it back) GNU GPL v2 is better

rbmarliere commented 10 months ago

On 9 Jan 01:29, Alex Edelweiss wrote:

I can agree on GPL, I suppose the question becomes v2 or v3.

v3 will protect from Tivoization, so in case of OS it is better use v3 I belive

That was the reason busybox didn't switch license to v3. That tivoiztion restriction would reduce corporations use of this program. If we actually want corporations to use it (so they would make changes and commit it back) GNU GPL v2 is better

Also why Linux hasn't switch. For reference:

https://lore.kernel.org/all/466A3EC6.6030706@netone.net.tr/

elliotwutingfeng commented 9 months ago

Do note that re-licensing does not retroactively apply to existing versions of the software; they will continue to remain under the MIT license.

llenotre commented 8 months ago

Hi!

After taking the time to think about it all, I decided to settle for the AGPLv3 license, which I think corresponds to what I want for this project.

When I will start taking contributions from other people, I may ask them to sign a contributor license agreement (though I am still thinking about that) to avoid issues related to changing the license in the future if necessary.

LesikEdelweiss commented 8 months ago

I decided to settle for the AGPLv3 license, which I think corresponds to what I want for this project.

That's a really interesting decision, because it will really prevent adoption. As far as I know, now even when running it on server, one will have to share the source code with users. That's fine as long as you're fine with it.

When I will start taking contributions from other people, I may ask them to sign a contributor license agreement (though I am still thinking about that) to avoid issues related to changing the license in the future if necessary.

That's similar to what FSF does, really good idea!

Also, you should change the LICENSE badge in the README

And, probably, the issue should be closed now?

llenotre commented 8 months ago

That's a really interesting decision, because it will really prevent adoption. As far as I know, now even when running it on server, one will have to share the source code with users. That's fine as long as you're fine with it.

The way I understood it (but maybe I am wrong) is that you don't need to share the code yourself as long as you do not modify it. If you are running a modified version on a server, then you need to share the code, which is the intended effect.

Also, you should change the LICENSE badge in the README

And, probably, the issue should be closed now?

You are right! I forgot about the badge