john30 / ebusd-esp

Firmware for ESP8266 allowing eBUS communication for ebusd (https://github.com/john30/ebusd)
150 stars 22 forks source link

Software License and source code access #61

Open mlesniew opened 2 years ago

mlesniew commented 2 years ago

Hi,

I couldn't find license information in this repository. Would you mind adding a license file, similar to how it's done in the ebusd repo? This would be useful to clarify how others can use it.

Even if you haven't decided what license to use, is it fair to say that this is open software? If so, how can source code be accessed?

Cheers

mlesniew commented 2 years ago

Looking around the repo I discovered that it uses the EspSoftwareSerial library, which is LGPL licensed. I think this limits the license choice to just LGPL and anything LGPL-compatible.

HeikoGr commented 2 years ago

you are wrong:

The LGPL is a weaker form of the GPL that is not contagious over library boundaries. Originally, LGPL was read out as Library General Public License. It has now been reinterpreted to be read out as the Lesser General Public License. I assume they mean lesser, as in less strong in forcing software to be open source.

Applying LGPL to a library ensures that the library itself and any modified versions of it will remain open source. But it can be used by closed source software.

(Source: https://dzone.com/articles/the-lgpl-license)

However: john30 should list the used libraries and their licences.

mlesniew commented 2 years ago

LGPL is less contagious than GPL, but the rule about not crossing library boundaries only holds for code which is linked dynamically. This is widely discussed online, it's also explained in the GNU License FAQ.

In this project, the EspSoftwareSerial library is linked statically (as usual in the microcontroller world).

Just because of this static vs dynamic linking issue, many projects use a LGPL license with an additional exception about static linking, e.g. wxWidgets or OpenScales. That wouldn't be necessary if they could just use plain LGPL, would it?

HeikoGr commented 2 years ago

This part of the LGPL is completely new for me. Thank you for pushing me onto it!

But as i read the FAQ john30 could just publish the *.o files to be fine. There is still no need to open source the whole thing.

Don't get me wrong: i want the source to be free, too! But I think it's john30s decision and we should respect it.

mlesniew commented 2 years ago

Great to hear we're on the same page now.

To be honest I didn't know that only publishing the object files is sufficient to comply to the LGPL. I assumed disclosing source is always required.

Looks like what the license aims to ensure is that anybody can build their own, potentially modified, version of the library and be still able to use it with the software that uses it. This is easy when linking dynamically. With static linking, relinking is required, but for that just the object files are needed.

Looking through comments in other (closed) issues in this project it seems that so far there were no plans to release the source.
That's a pity, but as you mentioned, opening the source code is only up to the author.