General licensing question....

I was wondering- what are some of the more common types of licenses (and their stipulations)? Ive just been having some difficulty understanding the ones I’ve read and figured I may as well ask if some were more common than others or for some sort of simplification (in general).

Im looking to make a commercial product based around an Arduino (or more likely a microcontroller, for which I will likely ask a few questions in the hardware sub forum), but unfortunately the design is reliant on at least one library (for the screen) and likely another (for using the Arduino libraries)... I’ve seen that the Arduino FAQ addresses this, I’m just not entirely sure what it means (and unfortunately I’ve still had a hard time making sense of other threads asking similar questions).

Thanks!

Have you seen this?

CatDadJynx:
Im looking to make a commercial product based around an Arduino

If you want "proper" legal protection for your project then you will need to get professional legal advice from a lawyer that is familiar with software (and hardware?) licensing. I doubt if the advice will be cheap.

By "proper legal protection" I mean the sort that you can use as a defence if someone sues you for breaching the terms of his/her licence. However, no matter how expensive the expert advice there will be no guarantee that you cannot be successfully sued - especially if the person or company suing you has a great deal more money than you have.

I guess a more complex question arises if you are trading as a limited company and that is whether the Directors have taken sufficient steps to protect the company. If not the Directors might be held personally liable for the losses incurred by the company. Getting good legal advice would probably be a reasonable defence against an accusation that the Directors were negligent.

The main purpose of most Open Source licences is to prevent you (and anyone using your creation) from changing the Open Source nature of the software (or design) into a Closed Source thereby preventing other people from using it.

...R

Ah, thank you both. Unfortunately I’m not part of any company- I got commissioned to make something for a friend, I just don’t want to profit off of other people’s work if I’m not explicitly allowed (for the obvious ethical aspect involved), and because I’ve been trying to get into programming as a career I was hoping I could turn it into a commercial product long term (because there’s a need for it on the market outside of my friend’s commission, I was hoping to use my own firmware and graduate off an arduino board)... I can seek legal counsel, but unfortunately I don’t have the money to yet and didn’t want to go through all the development work for nothing if I ended up not being able to use it.

One thing I forgot to mention is that you should look out for the country under whose legal system a licence will be enforced.

There are similarities between, for example, the Irish, UK and USA legal systems but AFAIK the French and other European legal systems are significantly different. Where would you like to go to prison ?

As a general (non-legal) comment my take on the situation is that most Open Source licences allow you to include Open Source code in commercial products. Where you might run into difficulty is if the actual product is a piece of software that you have developed and which includes Open Source code. It may be difficult to fulfil the requirements of the Open Source license without also making your own code public.

...R

Oh alright, thanks! Yeah, the idea would be to use the code in part of something commercial (as opposed to using the code in commercial software) so that’s a plus, I’ll just have to be sure before going through with anything. Thanks!

Okay, so I actually just went ahead and directly asked the person who wrote the screen library (because there is a community which supports this, luckily :)) ) and he told me it was free/available for commercial use, I would just have to check the fonts.

However, I’ve realized that one of the sensors I am using also relies on an Adafruit library, so I would need to use that and some of the Arduino libraries. Since these are more specific (and I’d rather just ask here than start another thread)- does anyone know about the particulars involving Adafruit’s or Arduino’s licensing in this regard? Like I know some open source licensing requires the software/product it’s used in also make the design/code open source too, etc. Thanks!

Do you have links to the libraries you're using, or know which licenses they're using?

I've found https://choosealicense.com/ helpful for understanding the permissions, conditions, and limitations of each license. For example here is their interpretation of the MIT license.

I don’t, but I’ll get them and post them here shortly.

And thanks, I’ll definitely check those as well!

Okay, so I looked at what the specific licenses were, in reference to the link you provided above and came up with this for the arduino and wire libraries:

Which, if I am understanding correctly, requires that the source code for the product likewise be open source?

But, it also says this:

“However, a larger work using the licensed work through interfaces provided by the licensed work may be distributed under different terms and without source code for the larger work.”

So if the product is hardware based (as opposed to software based), would this constitute a larger work?

And lastly, I found the sensor library uses a BSD license, which the website you provided for reference didn’t include. But I found this:

Which seems pretty self explanatory, though the only stipulation being that if the LGPL license requires the source code be available then that means the BSD license must similarly be included, in turn.

CatDadJynx:
would this constitute a larger work?

I think you're squarely in "ask a lawyer" territory :frowning: Even if you might be using the library "through interfaces provided by the licensed work", in an embedded system the library is compiled and statically linked into that the image the hardware runs. That might be an important distinction, or not, I have no idea.

So maybe turn it around... could you perhaps use these libraries and honor their conditions by releasing the source code to your commercial product?

Yeah, that’s fair, I wouldn’t have any issues making the code open source, and really all I care about in doing this is starting a good career portfolio anyway (so putting the code out there helps with that as well), plus the licenses say patenting the product is permitted (which I only care about so someone couldn’t claim my work as their own and discredit my work on soon so), I got just wrapped up in wanting to understand the particulars when you’re right, I suppose i already have enough info to go off of :stuck_out_tongue: Thanks again!

CatDadJynx:
So if the product is hardware based (as opposed to software based), would this constitute a larger work?

Your problem is NOT SIMPLY whether the answer is YES or NO, but whether the person giving you the answer is qualified to do so - and whether you can sue him/her if the advice is wrong and you get sued because you relied on the advice.

If you feel you need legal protection (and your questions imply that you do) then getting unprofessional advice is like using an out-of-date condom. If it works it would just be by accident.

I spent my working life in the Civil Service. Foolishly or otherwise, if I was worried about software licensing I think I would rely on my own ability to interpret the licence texts. But a large part of my willingness to do that is because I think it is unlikely I would be sued even if I accidentally contravene a licence and because I have so few assets that I would not be worth suing. In other words my approach to the need for legal advice is based on my assessment (right or wrong) of the risks I face.

You have to assess the risks you face.

My (unqualified) opinion is that when they talk about "larger work" they are talking about a piece of software that makes use of the licensed software. I doubt very much that they mean the phrase to include hardware.

...R

Well that’s fair :stuck_out_tongue: and thanks! In that case I can still proceed, just means I have to make the code open source (which I don’t mind doing, like I said). And yeah, I wish I could afford proper legal advice, but luckily these licenses seem clear cut enough I think I can avoid any issues. Thanks!

CatDadJynx:
I wish I could afford proper legal advice,

You, me and a million others :slight_smile:

...R

"GPL" usually means your source code would also need to open.

"LGPL" is a special license for libraries that theoretically allows open source libraries to be used with close source applications. But it gets pretty ambiguous when it comes to embedded hardware, because you're supposed to distribute your close source binaries in a way that permits them to be re-linked with newer versions of the library. Which is reasonable on a desktop or server with dynamically loaded libraries with a high degree of standardization, but is a bit difficult if you have just a chip.

BSD and MIT licenses are more "well known" to be more flexible, with varying degrees of needing to credit the original author.

There may be issues with Version 3 specifically of the GPL/LGPL licenses. At least according the legal department of the last place I worked.

People have been known to slap a license on their code without understanding what it actually means. You ask, and they say "oh sure, you can do that", when the license they've picked very explicitly says something different. Other people are very careful about this (there's at

Arduino has stated that the core libraries (which are mostly LGPL) are allowed to be used in proprietary products, and I don't think that they've offered clarification of the "linkability" issue. But IMO, a clear statement of intent beats the actual license on most days. (An actual lawyer may disagree.)

Libraries "owner" by a particular author are relatively clear. The fun comes when something has more than one major contributor. (V.42bis, the modem compression protocol, required separate (patent) licenses from three different companies. It was very annoying.)

westfw:
But IMO, a clear statement of intent beats the actual license on most days.

Only if the person making the statement has the authority to do so.

There is also the interesting question whether an authoritative formal statement like that would make the entire licence invalid and irrelevant for everyone. Or, maybe that potential problem means that nobody has the authority to change a terms of a licence without formally re-writing the licence.

...R

Ohh, alright, thanks for the clarification @westfw, that makes a bit more sense for sure. In all likelihood I can (and will) just make it open source, just to avoid any issues.

Luckily the person who gave me permission to use his library when I asked is someone who is synonymous with the library itself, so I’ll take that as fairly credible :stuck_out_tongue: