Arduino Core License

I just noticed that the Arduino AVR core is LGPL. Since dynamic linking is impossible here, does this mean that all Arduboy games that don’t reimplement all core functionality (which Arduboy2 also relies on) have to be LGPL as well?

Yes, I think there are one or two people built on their own using vs code and the avr tools but yeah probably.

Can’t imagine it ever being enforceable but good to know.

The LGPL does actually permit static linking, but if you statically link a library rather than dynamically linking it, you’re technically supposed to provide everything that will allow the user to relink the program with a modified version of the LGPL-licensed library.

From the official FAQ:

(1) If you statically link against an LGPLed library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application.

So essentially anyone who has released their source code is complying with the licence, and anyone who hasn’t is breaching its terms.

(That’s a bit of an oversimplification. Theoretically it would also allow precompiled code that has been set up in such a way that it could be statically linked to the Arduino library, but I think it’s doubtful that anyone will have actually done that.)

That said, technically any game distributed as a single .hex file is breaching the LGPL by not including the LGPL licence text along with the compiled executable.

The same actually applies for most of the open source licences that most games are published under - any game that uses MIT, BSD 3-clause, or Apache 2.0 is technically supposed to have the corresponding licence bundled with the .hex file, but in practice pretty much everyone ignores that.

1 Like