Example Code - License Calirification - Is everything Apache v2.0

TimJWatts
Posts: 3
Joined: Tue Nov 16, 2021 10:24 am

Example Code - License Calirification - Is everything Apache v2.0

Postby TimJWatts » Tue Nov 16, 2021 10:37 am

Hi,

I'm forking some Espressif example code based around an ESP32 Web Camera application. Not all files in the group have an explicit license header.

Given the example code is a stand alone application and the largest file is headed Apache v2.0, can I assume the Apache license applies to the whole example WebCamera code?

I'll be releasing my fork on GitLab.com and I merely wish to ensure that the stated license I use remains correct. Of course, attribution to Espressif will be made and I will maintain a reference to your original Git code base.

The Espressif Web Camera example code was forked from here:
https://github.com/espressif/arduino-es ... aWebServer
the only license mentioned is the Apache v2.0 in the file app_httpd.cpp

However, at the top of this same repository, https://github.com/espressif/arduino-esp32 we find a LICENSE.md file stating the LGPL License.

I will assume the Apache v2.0 license applies to my fork, unless I hear otherwise here, having contacted Espressif in good faith.

Many thanks,

Tim

PS Loving your product - the ESP32 is amazing!

ESP_Sprite
Posts: 9749
Joined: Thu Nov 26, 2015 4:08 am

Re: Example Code - License Calirification - Is everything Apache v2.0

Postby ESP_Sprite » Wed Nov 17, 2021 4:10 am

I'm not a lawyer and I'm not involved with the Arduino code, but generally speaking, if there is a license covering the entire project I'd expect that license to cover all files unless otherwise specified. From that PoV, the files not having an Apache license would be LGPL here. (Note that the Arduino project itself is LGPL anyway, so if you're using Arduino stuff, you're bound by that license even if this code is not under it.)

TimJWatts
Posts: 3
Joined: Tue Nov 16, 2021 10:24 am

Re: Example Code - License Calirification - Is everything Apache v2.0

Postby TimJWatts » Wed Nov 17, 2021 1:10 pm

Hi,

Interesting thought... I wonder if Apache web server code was used in some places causing one part to be under an Apache license?

My initial thought was the same as yours - LGPL by default and Apache specificially for one file...

It makes a bit of a mess of a standalone fork though to have mixed or dual licensing. I'm not even sure how LGPL and Apache v2.0 play together (though I suspect the issue is covered somewhere on the Internet).

I have already put a disclaimer in the LICENSE file on my fork to say it's not clear and anyoine using for commercial reasons will need to do their own checks. Plus I have enquired of Espressif right here, so my good faith is solid.

For my purposes, it's not much of a problem - it's all Open Source and I won't be doing anything commercial - and if I have made an error, Espressif are free to contact me or reply here with clarification and I'll amend as required.

But for now - I think I'll go with your theory and have mixed licensing by assumption that the LGPL carries to all files unless they explicitly state otherwise.

Commercial users (if any) can pay for their own lawyer to advise... I just want to be responsible and act in best faith.

Many thanks for your comment :)

TimJWatts
Posts: 3
Joined: Tue Nov 16, 2021 10:24 am

Re: Example Code - License Calirification - Is everything Apache v2.0

Postby TimJWatts » Wed Nov 17, 2021 1:12 pm

Also - thanks for pointing out that the Arduino framework carries LGPL too - I hadn't even thought about that...

ESP_Sprite
Posts: 9749
Joined: Thu Nov 26, 2015 4:08 am

Re: Example Code - License Calirification - Is everything Apache v2.0

Postby ESP_Sprite » Thu Nov 18, 2021 3:31 am

Again, not a lawyer, but here's my interpretation: Between those two licenses, as long as you distribute source code, you should be good. When you 'mix up' the source files into a resulting binary, my understanding is that whoever distributes that binary should keep to the restrictions of both licenses. Sometimes this is impossible (license A says you should do X, license B forbids doing X) but if you have compatible licenses, you can do it. In this case, as the LGPL restrictions are a superset of those in the Apache license, effectively the binary would be LGPL licensed.

Who is online

Users browsing this forum: No registered users and 113 guests