Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Relicense espflash under Apache-2.0 and MIT license #224

Closed
tom-borcin opened this issue Aug 31, 2022 · 31 comments
Closed

RFC: Relicense espflash under Apache-2.0 and MIT license #224

tom-borcin opened this issue Aug 31, 2022 · 31 comments

Comments

@tom-borcin
Copy link
Contributor

tom-borcin commented Aug 31, 2022

Hello all,

firstly I want to emphesize that this issue is an RFC. Your comments are welcome.
I would like to open a discussion about the license we are using: GNU GENERAL PUBLIC LICENSE Version 2 (GPL-2.0).

The problem

Espressif currently maintains 4 codebases for flashing of microcontrollers:

  1. Esptool for flashing from OS
  2. esp-serial-flasher for flashing from host microcontroller
  3. esptool-js for flashing from web browser
  4. espflash for flashing from OS

Maintaining 4 different codebases is difficult, costs a lot of resources, is prone to mistakes and defies DRY (Don't Repeat Yourself) principle. Our end goal is to have one common codebase that will be used by other three codebases. And we chose espflash as our common codebase.

Unfortunately, there is one problem that prevents us to use it as library whitin other projects: its GPL-2.0 license.

esp-serial-flasher and esptool-js are both licensed under Apache 2.0, which is incompatible with GPL-2.0 due to the restriction that terminates the grant of patent rights if the license sues over patent infringement. You can read about it in more detail here.

Any library licensed under GPL-2.0 will enforce this licensing on any program that uses it. You can read about it here. Because of this we would have to relicense esp-serial-flasher and esptool-js to GPL-2.0 as well as any SW that uses these codebases.

Solution

From Espressif's and my perspective, the easiest and best solution to aforementioned problems would be relicensing of espflash to dual license it under MIT and Apache 2.0. Dual licensing under MIT and Apache 2.0 is widely accepted within Rust community and provides the most permissive licensing (MIT) that gives us patent grant (Apache 2.0) and as a whole is compatible with GPL-2.0.

Open Discussion

On the other hand we may be wrong, so I want to spark a discussion. Let us know what you think about suggested solution and let us know if there are any other solutions you think should be considered. If you are a contributor and you agree with aforementioned solution to change current GPL-2.0 license to MIT and Apache 2.0, please state your consent in the comment.

CCing all espflash contributors: @icewind1991 @jessebraham @MabezDev @ryankurte @svenstaro @marcelbuesing @bugadani @JurajSadel @kelnos @tpambor @nim65s @bjoernQ @mertzt89 @pavlus @ducktec @ubergeek801 @alazartech @kyrias @maspetsberger @KerryRJ @zRedShift @SergioGasquez @sirhcel @mchodzikiewicz @hanhossain

Tomas Borcin
Project Manager | Espressif Systems (Czech) s.r.o.
www.espressif.com
Přízova 285/3, 602 00 Brno, Czech Republic

@MabezDev
Copy link
Member

I agree with the motivation and consent to the relicensing.

@zRedShift
Copy link
Contributor

Same, I consent as well.

@tpambor
Copy link
Contributor

tpambor commented Aug 31, 2022

I am fine with relicensing.

@jessebraham
Copy link
Member

jessebraham commented Aug 31, 2022

I fully support this change! Thank you @tom-borcin for helping us move forward with this.

@hanhossain
Copy link
Contributor

I always wondered why it was GPL-2.0 anyway as most of the rust community is dual licensed MIT and Apache 2.0.

I consent to the relicensing.

@svenstaro
Copy link
Contributor

I agree to the relicensing.

@mchodzikiewicz
Copy link
Contributor

mchodzikiewicz commented Aug 31, 2022 via email

@mertzt89
Copy link
Contributor

I'm in agreement

@bjoernQ
Copy link
Contributor

bjoernQ commented Aug 31, 2022

I fully agree with relicensing espflash.

@SergioGasquez
Copy link
Member

SergioGasquez commented Aug 31, 2022

I agree with the relicensing!

@kyrias
Copy link
Contributor

kyrias commented Aug 31, 2022

I consent to the relicensing.

@sirhcel
Copy link
Contributor

sirhcel commented Aug 31, 2022

I fully support relicensing. Thank you for bringing this up @tom-borcin!

@marcelbuesing
Copy link
Contributor

I consent to the relicensing.

1 similar comment
@alazartech
Copy link
Contributor

I consent to the relicensing.

@kelnos
Copy link
Member

kelnos commented Aug 31, 2022

I consent to relicensing to dual MIT/Apache-2.0.

@ducktec
Copy link
Contributor

ducktec commented Aug 31, 2022

I consent to the proposed MIT/Apache-2.0 relicensing.

@KerryRJ
Copy link
Contributor

KerryRJ commented Sep 1, 2022

I too agree with the relicensing.

@bugadani
Copy link
Contributor

bugadani commented Sep 1, 2022

No objections from me

@icewind1991
Copy link
Member

I agree with relicensing my contributions to MIT/Apache-2.0

@ubergeek801
Copy link
Contributor

No argument here, and thanks for reaching out!

@JurajSadel
Copy link
Contributor

I agree with the relicensing.

@pavlus
Copy link
Contributor

pavlus commented Sep 3, 2022

No objections from my side.

@maspetsberger
Copy link
Contributor

I agree with the relicensing.

@nim65s
Copy link
Contributor

nim65s commented Sep 4, 2022

Agree

@zRedShift
Copy link
Contributor

@tom-borcin looks like all the contributors have agreed (@ryankurte reacted with a thumbs up, the rest in a comment), so I believe there's a unanimous green light to go ahead with the re-licensing.

@jessebraham
Copy link
Member

Thanks for the update @zRedShift! I believe Tomas has a couple days off, so either I or him will update this thread as soon as he's available.

Thank you everybody for playing nicely and agreeing to this! 😁 ❤️

@Janrupf
Copy link
Contributor

Janrupf commented Sep 8, 2022

I agree with the relicensing.

@jendakol
Copy link
Contributor

I agree with the relicensing.

@ryankurte
Copy link
Contributor

ryankurte commented Sep 13, 2022

fine by me!

@tom-borcin
Copy link
Contributor Author

Thank you all for your comments. We have unanimous agreement to relicense espflash from GPL-2.0 to dual license of MIT and Apache-2.0. I will move on with relicensing.

@jessebraham
Copy link
Member

Closed by #235

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests